jQuery.noConflict();

jQuery(document).ready(function($){

// Controls charts on Briefing Room
function ChartSwitcher(item) {
	jQuery("div#chartswitcher .chart").removeClass("current");
	jQuery("div#chartswitcher img#chart" + item).addClass("current");
	jQuery("div#chartswitcher p#info" + item).addClass("current");
}


// Returns a random number from min to max
function randomRange( min, max )
{
	return Math.floor((max - min + 1) * Math.random()) + min;
}

// Randomizes a value, by maxdiff with granlarity
function randomize( value, maxdiff, granularity )
{
	rnd = Math.round( (value + ((randomRange( 1, maxdiff ) / granularity) * (randomRange(0,1) ? -1.0 : 1.0))) * granularity ) / granularity;
	return rnd;
}

// Represents a point to be created
function Pypnt( lat, lng, ttl, adr, dte )
{
	this.Point = new GLatLng( lat, lng );
	this.title = ttl;
	this.address = adr;
	this.date = dte;
}

// Marker click function handler
function createGMapMarker( point, html )
{
	var marker = new GMarker( point, {icon:icon} );
	GEvent.addListener( marker, "click", function() 
	{ 
		map.openInfoWindowHtml( point, html );
	});
	return marker;
}
		
	function bevelBox(item) {
		var spanCode = "<span class='bbtl bevelbox'></span><span class='bbt bevelbox'></span><span class='bbtr bevelbox'></span><span class='bbl bevelbox'></span><span class='bbr bevelbox'></span><span class='bbbl bevelbox'></span><span class='bbb bevelbox'></span><span class='bbbr bevelbox'></span>";
		jQuery(item).append(spanCode);
	}

	function closeBreaking() {
		jQuery("div#breakingbox").slideUp(600, function() { jQuery("div#breakingbox").remove(); });
	}

	function toggleNews(newsid) {

		if ( (jQuery.browser.msie) && (jQuery.browser.version == 6.0) ) {
			jQuery("img.newsbw").hide();
		}

		if ( jQuery("table#list tr.metainfo.N" + newsid +".inactive").length > 0) {
			jQuery("table#list tr.metainfo.N" + newsid).removeClass("inactive").addClass("active");
			jQuery("table#list tr.N" + newsid + " span.toggle").addClass("activetoggle");
		}
		else {
			jQuery("table#list tr.metainfo.N" + newsid).removeClass("active").addClass("inactive");
			jQuery("table#list tr.N" + newsid + " span.activetoggle").removeClass("activetoggle");
		}
	}

	function showNewsList() {
		jQuery("div#map").hide();
		jQuery("table#list").show();
		jQuery("span#showmap").removeClass("active");
		jQuery("span#showlist").addClass("active");
		if ( (jQuery.browser.msie) && (jQuery.browser.version == 6.0) ) {
			jQuery("div#newsfilter select").show();
		}
		jQuery("div.nopage").show();
	}

	function showNewsMap() {
		jQuery("table#list").hide();
		jQuery("div#map").show();

		map.checkResize(); 
		map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );

		jQuery("span#showlist").removeClass("active");
		jQuery("span#showmap").addClass("active");
		if ( (jQuery.browser.msie) && (jQuery.browser.version == 6.0) ) {
			jQuery("div#newsfilter select").hide();
		}
		jQuery("div.nopage").hide();
		
	}

	// Read a page's GET URL variables and return them as an associative array.
	function getUrlVars()
	{
	    var vars = [], hash;
	    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	    for(var i = 0; i < hashes.length; i++)
	    {
	        hash = hashes[i].split('=');
	        vars.push(hash[0]);
	        vars[hash[0]] = hash[1];
	    }
	    return vars;
	}

	function replaceFonts() {
		Cufon.replace('.cufon');
		Cufon.replace('div.bevelbox h2');
		Cufon.replace('div#slider li h2');
		
		jQuery("div#fontsize").click(function(){
			if (jQuery(this).hasClass("small")) {
				jQuery(this).removeClass("small").addClass("big");
				jQuery(".georgia").addClass("bigfont");
			} else {
				jQuery(this).removeClass("big").addClass("small");
				jQuery(".georgia").removeClass("bigfont");
			}
		});
	}

	function innerContMatch() {
		// Make sure both Inner columns are the same height so page doesn't look bad
		var innerH = jQuery("#inner_cont").height();
		jQuery("#inner_cont div.bevelbox").css("height",innerH-40);
	}

	// Initialize the eBook pagination + allow a custom start page via URL parameter Added 3-10 TR
	function eBookPagination() {
		var totalPages = jQuery("div#ebook_toc ul").length;
		var currentPage = 0;
		if (typeof(getUrlVars()["page"]) != "undefined") {
			var setPage = getUrlVars()["page"];
			var setPage = setPage - 1;
			// if the page is invalid then show the first page
			if ((jQuery("div#ebook_content div.page:eq(" + setPage + ")").length) == 0)
			{
				setPage = 0;
			}
			currentPage = setPage;
			jQuery("div#ebook_content div.page:eq(" + setPage + ")").show().addClass("currentpage");
		} else {
			jQuery("div#ebook_content div.page:eq(0)").show().addClass("currentpage");
		}
		jQuery("div#ebook_pagination").append("<span id='ebook_pagination_caption'>Page <span id='currentpage'>" + (currentPage + 1) + "</span> of <span id='totalpages'>" + totalPages + "</span></span><span id='ebook_pagination_controls'></span>");
		if (currentPage != 0) {
			var prevPage = currentPage - 1;
			jQuery("span#ebook_pagination_controls").append("<span class='prev' onclick='eBookChangePage(" + prevPage + ")'>Prev</span>");
		}
		jQuery("div#ebook_content div.page").each(function(index){
			var printPage = index + 1;
			jQuery("span#ebook_pagination_controls").append("<span class='circle' title='Show Page " + printPage + "' onclick='eBookChangePage(" + index + ")'>Page " + printPage + "</span>");
		});
		if (currentPage != (totalPages - 1)) {
			var nextPage = currentPage + 1;
			jQuery("span#ebook_pagination_controls").append("<span class='next' onclick='eBookChangePage(" + nextPage + ")'>Next</span>");
		}
		jQuery("span#ebook_pagination_controls span.circle:eq(" + currentPage + ")").addClass("current").removeAttr("onclick");

	}

	function eBookChangePage(pagenum) {
		var scrollPos = jQuery("#ebook_title").offset().top;
		jQuery('html, body').animate({scrollTop: scrollPos}, 1500);
		var totalPages = jQuery("div#ebook_content div.page").length;
		var currentPage = pagenum;
		jQuery("div#ebook_content").css("min-height",jQuery("div#ebook_content").height());
		jQuery("div#ebook_content div.page:visible").hide().removeClass("currentpage");
		jQuery("div#ebook_content div.page:eq(" + pagenum + ")").show().addClass("currentpage");
		jQuery("div#ebook_content").css("min-height","");
		jQuery("div#ebook_pagination").empty();
		jQuery("div#ebook_pagination").append("<span id='ebook_pagination_caption'>Page <span id='currentpage'>" + (currentPage + 1) + "</span> of <span id='totalpages'>" + totalPages + "</span></span><span id='ebook_pagination_controls'></span>");
		if (currentPage != 0) {
			var prevPage = currentPage - 1;
			jQuery("span#ebook_pagination_controls").append("<span class='prev' onclick='eBookChangePage(" + prevPage + ")'>Prev</span>");
		}
		jQuery("div#ebook_content div.page").each(function(index){
			var printPage = index + 1;
			jQuery("span#ebook_pagination_controls").append("<span class='circle' title='Show Page " + printPage + "' onclick='eBookChangePage(" + index + ")'>Page " + printPage + "</span>");
		});
		if (currentPage != (totalPages - 1)) {
			var nextPage = currentPage + 1;
			jQuery("span#ebook_pagination_controls").append("<span class='next' onclick='eBookChangePage(" + nextPage + ")'>Next</span>");
		}
		window.location.hash = "?page=" + (pagenum + 1);
		jQuery("span#ebook_pagination_controls span.circle:eq(" + currentPage + ")").addClass("current").removeAttr("onclick");
	}

	function setupTwitterScroll() {
		var tweetlength = (jQuery("div.tweet").length * 230) + 150;
			jQuery("#tweets").css("width", tweetlength + "px").animate({
	    left: tweetlength * -1
	  }, 100000, function() {
	    // Animation complete.
	    jQuery("#tweets").hide().css("left", "20px").fadeIn('slow');
	  });
	}


	function setTallestHeight(divid) {
		var highestValue = 0;
		
		jQuery("div.bevelbox." + divid + " div div").each( function() {
			var currentValue = jQuery(this).height();
			if (currentValue > highestValue)
			{
				highestValue = currentValue;
			}
		});
		
		highestValue += 80;
		
		jQuery("div.bevelbox." + divid).css("height", highestValue);
	}

	
	jQuery("#ticker").newsticker();
	
	// add beveled effect to divs
	if ( (jQuery.browser.msie) && (jQuery.browser.version == 6.0) ) {
		//alert("IE 6 detected, disable bevelbox... " + jQuery.browser.msie + " " + jQuery.browser.version);
	}
	else 
	{
		jQuery("div.bevelbox").each( function() { bevelBox(this); });
	}
	
	jQuery("div.whitecallout").append("<span class='whitecalloutbot'></span>");
	
	jQuery("#slider").easySlider({
				auto: true, 
				continuous: true,
				controlsShow: true,
				prevId: 'topstory_left',
				nextId: 'topstory_right',
				speed: 900,
				pause: 8000,
				numeric: true,
				numericId: 'slidercontrols'
			});
	replaceFonts();

	// FJ: Conditional upon ebook existing
	if (jQuery("#ebook_toc").length>0)
	{
		eBookPagination();
		jQuery("#ebook_toc").jScrollPane({showArrows:true, arrowSize:26, scrollbarWidth: 18, scrollbarMargin: 5});
		jQuery("#ebook_toc")[0].scrollTo("li.currentchapter");
		jQuery("#ebook_content blockquote").each(function() { jQuery(this).append("<div class='clear'></div>"); });
		setupZoom();
		setupTwitterScroll();
	}
	
	// use :nth-child instead of :odd because jquery doesn't know how to count
	jQuery("ul.altlist li:nth-child(even)").css("background-color","#e8f5f9");
	
	jQuery('#tabcont').tabs();
	
	setTallestHeight("whatsup");
	jQuery('#whatsuptab').tabs();
	
	setTallestHeight("commentary");
	jQuery("#commentarytab").tabs();
	
	jQuery("#accordion").accordion({
			autoHeight: false
		});
	jQuery("#insiderAccordion").accordion({
			autoHeight: false,
			collapsible: true,
			active: false,
			disable: true,
			event: 'null'
		});
	jQuery("select#Form_NewsFilterForm_filtercountry").change( function() {
		jQuery("input#Form_NewsFilterForm_action_ProcessNewsFilter").click();
	});


	// IMM 090809 - Setup to toggle instruction on form fields when empty
	var fields = {'Form_NewsletterForm_Email': 'Email Address'};
	jQuery.each(fields, function(key, value) 
	{
		var f = jQuery('#' + key);
		f.focus(function () 
		{
			if(f.val().match(new RegExp(value, 'i'))) f.val('');
		});

		f.blur(function() 
		{
			if(f.val() == '') f.val(value);
		});
	});
	// IMM 090809 - Ends

	// KK 110909
	jQuery('li.slider').css("position","relative").css("left","auto");
	
	// Added to compliment Apache Caching - disabled for load concerns
	// -JBane
	// jQuery.getJSON("/?getUser=current", function(data){
    //    if(data.FirstName && data.LastName) {
	//	     jQuery('#navigation li.action').html('<a href="profile/logout">Logout</a>');
	//		 jQuery('#navigation li.member').html('<a href="profile/edit">'+data.FirstName+' '+data.LastName+'</a>');
	//	  } else {
	//		 jQuery('#navigation li.action').html('<a href="profile/register">Register</a>');
    //       jQuery('#navigation li.member').html('<a href="profile/login">Login</a>');
	//	  }
    // });

    
	
});

