// ----------------------------------------------------------------
// all js routines for the executive tour (eTour)
// ~sg
// ----------------------------------------------------------------

var gActiveSection = 0;
var gActiveDrawer = "#dvDrawer1";
var gActiveDrawer = "";
var gbClosed = true;
var gbSwitching = false;
var gbSS = false;
var gidTimer = null;
//var gsBtnList = "";

var giSSFrameCounter = 0;
var MAX_FRAMES = 7 * 3;		// 3x loop * 7 frames per loop == max slide show run

var gBaseImgPath = "/hpinfo/globalcitizenship/gcreport/eTour/images/"

var garrBtnIds =    new Array ("tb1", "tb2", "tb3", "tb4", "tb5", "tb6", "tb7");
var garrSSCtrlIds = new Array ("ssCtrl_1", "ssCtrl_2", "ssCtrl_3", "ssCtrl_4", "ssCtrl_5", "ssCtrl_6", "ssCtrl_7");
var garrSSCtrlOfs = new Array ("0px", "-25px", "-50px", "-75px", "-100px", "-125px", "-150px");
var garrDrawers =   new Array ("#dvDrawer1", "#dvDrawer2", "#dvDrawer3", "#dvDrawer4", "#dvDrawer5", "#dvDrawer6","#dvDrawer7");
var garrCloseImgs = new Array ("bar_close_1.gif", "bar_close_2.gif", "bar_close_3.gif", "bar_close_4.gif", "bar_close_5.gif", "bar_close_6.gif", "bar_close_7.gif");
var garrPtrImgs =   new Array ("bar_ptr_1.gif", "bar_ptr_2.gif", "bar_ptr_3.gif", "bar_ptr_4.gif", "bar_ptr_5.gif", "bar_ptr_6.gif", "bar_ptr_7.gif");
var garrBtnOffImgs = new Array ("tb_tour1.gif", "tb_tour2.gif", "tb_tour3.gif", "tb_tour4.gif", "tb_tour5.gif", "tb_tour6.gif", "tb_tour7.gif");
var garrBtnOnImgs = new Array ("tb_tour1_on.gif", "tb_tour2_on.gif", "tb_tour3_on.gif", "tb_tour4_on.gif", "tb_tour5_on.gif", "tb_tour6_on.gif", "tb_tour7_on.gif");


	//--------------------------------------------------------------------------------
	function createCookie(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}

	//--------------------------------------------------------------------------------
	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

	//--------------------------------------------------------------------------------
	function eraseCookie(name) {
		createCookie(name,"",-1);
	}

	//--------------------------------------------------------------------------------
	// switch to the 1st section and then start the slide show
	function initOpen() 
	{
		switchSection("tb1");
		ssInit(true); 
	}
	
	//--------------------------------------------------------------------------------
	//css inits visible states of the following elements as below:
	function initClosed() 
	{
		//css inits the following:
		/*
		$(".Tdrawers").hide();
		
		$("#dvCloseBar").show();
		$("#dvDrawerFrame").hide();
		$("#dvPointerBar").hide();
		$("#dvToolBar").show();
		*/
	}
	
	//--------------------------------------------------------------------------------
	//find the button's image and replace it with its 'on' state
	function hilite(btnId) 
	{
		var selector = "#" + btnId;
		var img = $(selector).css("background-image").split(".gif");
		var newImg = img[0] + "_on.gif)";
		$(selector).css("background-image", newImg);
	}
	
	//--------------------------------------------------------------------------------
	//find the button's image and replace it with its 'off' state
	function unHilite(btnId)
	{
		var selector = "#" + btnId;
		var img = $(selector).css("background-image").split("_on.gif");
		var newImg = img[0] + ".gif)";
		$(selector).css("background-image", newImg);
	}
	
	//--------------------------------------------------------------------------------
	//slide the whole drawer frame up, hide the pointer bar, reset the toolbar
	//change close bar image to an off state, and set the cursors to reflect the new 
	//states
	function closeSection() {

		//kill slideshow
		clearTimeout(gidTimer);
		gbSS = false;
		if (gbSwitching) return;
		
		$("#dvDrawerFrame").slideUp("slow", function () {
			$(gActiveDrawer).hide();
			$("#dvPointerBar").hide("slow");
			$("#dvCloseBar").css("background-image", "url(" + gBaseImgPath + "bar_close_off.gif" + ")");	
      		$("#dvCloseBar").html("");
			$("#"+garrBtnIds[gActiveSection]).css("background-image", "url(" + gBaseImgPath + garrBtnOffImgs[gActiveSection] + ")");	
			gActiveDrawer = "";
		});	
		$("#dvCloseBar").css("cursor", "default");
		$("#"+garrBtnIds[gActiveSection]).css("cursor", "pointer");	
		//alert("#"+garrBtnIds[gActiveSection]+"h");
		$("#"+garrBtnIds[gActiveSection]+"h").focus();		//!sg for accessability
		
		gbClosed = true;
		
		//$(gsBtnList).unbind();
		//btnSetup("reset");
	}

	//--------------------------------------------------------------------------------
	//set cursor state to default for all toolbat btns
	function disableToolbar()  {

		$("#dvCloseBar").css("cursor", "default");
		$(".Tbtns").css("cursor", "default");
		for (i= 0; i< 7; i++)
			$("#"+garrBtnIds[i]).css("background-image", "url(" + gBaseImgPath + garrBtnOffImgs[i] + ")");	
	}

	//--------------------------------------------------------------------------------
	//set cursor state to pointer for all toolbat btns
	function enableToolbar()  {
	
		$("#dvCloseBar").css("cursor", "pointer");
		$(".Tbtns").css("cursor", "pointer");
	}

	//--------------------------------------------------------------------------------
	//play pause slideshow functionality
	function playPause()  {
	
		if (gbSS) 
			ssStop();
		else
			ssInit(false);
	}

	//--------------------------------------------------------------------------------
	//setup flags, timer and buttons states, then start the slide show
	function ssInit(bDelaySwitch)  {
	
		if (gbSS) return;
		gbSS = true;
	
		$("#ssCtrl_play").attr("title", "Pause tour");
		$("#ssCtrl_play").css("background-position", "0px -80px");	
		
		//disableToolbar();
		if (bDelaySwitch==true)
			gidTimer = setTimeout (slideShow, 5000)
		 else {
			$(".Tdrawers").hide();
			slideShow();
		 }
	}

	//--------------------------------------------------------------------------------
	//reset flags, kill timer and buttons states, update state to current section
	function ssStop()  {
	
		if (!gbSS) return;
		
		clearTimeout(gidTimer);
		gbSS = false;
		
		$(".Tdrawers").hide();
		$("#ssCtrl_play").attr("title", "Resume tour");
		$("#ssCtrl_play").css("background-position",  "-25px -80px");	

		//enableToolbar();
		switchSection(garrBtnIds[gActiveSection]);
	}


	//--------------------------------------------------------------------------------
 	//goto next frame set timeout if not 3x loop through slide show
	function slideShow()  {
	
	
		next();
		
		if (++giSSFrameCounter < MAX_FRAMES)
			gidTimer = setTimeout (slideShow, 5000)
		else
			gbSS = false;
	}
	
	//--------------------------------------------------------------------------------
	//map gActiveSection to a btn, then call switchSection()
	function next() {
	
	  var btnId = ""
		switch(gActiveSection) {
			case 0: btnId = "tb2"; break;
			case 1: btnId = "tb3"; break;
			case 2: btnId = "tb4"; break;
			case 3: btnId = "tb5"; break;
			case 4: btnId = "tb6"; break;
			case 5: btnId = "tb7"; break;
			case 6: btnId = "tb1"; break;
		}
		switchSection(btnId);
	}

	//--------------------------------------------------------------------------------
	//map gActiveSection to a btn, then call switchSection()
	function prev() {
	
	var btnId = ""
		switch(gActiveSection) {
			case 0: btnId = "tb7"; break;
			case 1: btnId = "tb1"; break;
			case 2: btnId = "tb2"; break;
			case 3: btnId = "tb3"; break;
			case 4: btnId = "tb4"; break;
			case 5: btnId = "tb5"; break;
			case 6: btnId = "tb6"; break;
		}
		switchSection(btnId);
	}
	
	//--------------------------------------------------------------------------------
	function switchSection(btnId, bClick)
	{
			//if a click called this fn, kill slideshow
		if (bClick==true) {		
			clearTimeout(gidTimer);
			gbSS = false;
			giSSFrameCounter = 0;
			$("#ssCtrl_play").css("background-position",  "-25px -80px");	
		}

		gbSwitching = true;
		
		var idx = 0;
		var selector = "#" + btnId;
		
		switch(btnId) {
			case "tb1": idx = 0; break;
			case "tb2": idx = 1; break;
			case "tb3": idx = 2; break;
			case "tb4": idx = 3; break;
			case "tb5": idx = 4; break;
			case "tb6": idx = 5; break;
			case "tb7": idx = 6; break;
		}
		//restore last section
		$("#"+garrBtnIds[gActiveSection]).css("background-image", "url(" + gBaseImgPath + garrBtnOffImgs[gActiveSection] + ")");	
		
		$("#"+garrBtnIds[gActiveSection]).css("cursor", "pointer");	
		if (gActiveDrawer != "")
			$(gActiveDrawer).hide();
		
		//setup new section
		gActiveSection = idx;
		gActiveDrawer = garrDrawers[idx];
		
		//slightly different procedure depending upon whether the drawer state is open or closed
		if (gbClosed) {
			if ($.browser.msie) {
				$("#dvDrawerFrame").slideDown("slow");
				$(gActiveDrawer).fadeIn(1500);
			}
			else {
				$("#dvDrawerFrame").slideDown("slow");
				$(gActiveDrawer).fadeIn(1200);
			}
			$("#dvCloseBar").hide();
			$("#dvCloseBar").html('<a href="#" id="closebar" tabindex="0"><img src="/hpinfo/globalcitizenship/gcreport/eTour/images/blank.gif" alt="Close" width="974" height="15"></a>');
			$("#dvCloseBar").css("background-image", "url(" + gBaseImgPath + garrCloseImgs[idx] + ")");	
			$("#dvCloseBar").fadeIn(1000);
			$("#dvCloseBar").css("cursor", "pointer");	
			$("#dvPointerBar").css("background-image", "url(" + gBaseImgPath + garrPtrImgs[idx] + ")");	
			$("#dvPointerBar").show("slow");
		}
		else {
			//$("#dvCloseBar").hide();
			$("#dvPointerBar").hide();
			$(gActiveDrawer).fadeIn(2000);
			//$("#dvCloseBar").css("background-image", "url(" + gBaseImgPath + garrCloseImgs[idx] + ")");	
			//$("#dvCloseBar").fadeIn(1000);
			//$("#dvCloseBar").css("cursor", "pointer");	
			$("#dvPointerBar").css("background-image", "url(" + gBaseImgPath + garrPtrImgs[idx] + ")");	
			$("#dvPointerBar").fadeIn(1000);
		}
		
		//setup new button
		$(selector).css("background-image", "url(" + gBaseImgPath + garrBtnOnImgs[idx] + ")");	
		$(selector).css("cursor", "default");	
		
		//setup ctrl panel
		for (i= 0; i< garrSSCtrlOfs.length; i++)
			$("#"+garrSSCtrlIds[i]).css("background-position", garrSSCtrlOfs[i] + " 0px");	
		$("#"+garrSSCtrlIds[gActiveSection]).css("background-position", garrSSCtrlOfs[gActiveSection] + " -40px");	

		gbClosed = false;
		gbSwitching = false;
		
    	if (bClick==true) {
  			$("#closebar").focus();
    	}
		
		//$(gsBtnList).unbind();
		//btnSetup("init");
	}

	//--------------------------------------------------------------------------------
	//register click and hover event handlers for toolbar buttons
	function btnSetup() {

		
		$("#tb1").click(function () {
			if (gActiveDrawer == "#dvDrawer1" || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb2").click(function () {
			if (gActiveDrawer == "#dvDrawer2" || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb3").click(function () {
			if (gActiveDrawer == "#dvDrawer3" || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb4").click(function () {
			if (gActiveDrawer == "#dvDrawer4" || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb5").click(function () {
			if (gActiveDrawer == "#dvDrawer5"  || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb6").click(function () {
			if (gActiveDrawer == "#dvDrawer6"  || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});
		$("#tb7").click(function () {
			if (gActiveDrawer == "#dvDrawer7"  || gbSwitching) return;
			switchSection($(this).attr("id"), true);
			return false;
		});

		$("#tb1").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer1" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer1" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb2").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer2" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer2" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb3").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer3" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer3" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb4").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer4" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer4" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb5").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer5" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer5" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb6").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer6" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer6" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
		$("#tb7").hover(
			function () {
				if (gActiveDrawer == "#dvDrawer7" || gbSwitching) return;
				hilite($(this).attr("id"));
			}, 
			function () {
				if (gActiveDrawer == "#dvDrawer7" || gbSwitching) return;
				unHilite($(this).attr("id"));
			}
		);
	}

	//--------------------------------------------------------------------------------
	var windowOnLoad = function(){
	
		var bOpenWithCookie = true;

		//alert("ready");
		$(".Tdrawers").hide();

		$("#dvCloseBar").click (function () {
			closeSection();	
			//eraseCookie("tourState")
		});
		
		btnSetup();
		
		if (bOpenWithCookie) {
			if ("open" == readCookie("tourState")) {
				initOpen();
				eraseCookie("tourState");
			}
			else    
				initClosed();
		}
		else {
			var url = document.URL
			var filename = url.substring(url.lastIndexOf('?')+1)
			if(filename == "open")
				initOpen();
			else    
				initClosed();
		}
	}
	
	if (window.addEventListener)
	{
		window.addEventListener('load', windowOnLoad, false);
	}
	else
	{
		window.attachEvent('onload', windowOnLoad);
	}

