// $Id: main.js 69 2008-04-29 11:51:52Z mstillwell $

// onLoad functions
function init() {
	externalLinks();
	setupHiddenHeader();
	formFieldListener();
	initHomeTabs();
	restartTabTimer();
	setupTabTimerListener();
}

//hides hidden header bars on load
function setupHiddenHeader(){
	//first hide hidden header bars
	//$$('div.hiddenHeader').invoke('hide');
	loadInBarsWithAjax();
	
	//set up a listener on the links to show hidden header bars
	$$('ul.searchBar a').invoke('observe','click', showHiddenHeader); //add listener to each drop down
}

function hiddenHeaderCloseButton(header){
	//$(header).hide();
	//empty container
	$('hiddenHeaderWrapper').innerHTML = " <!-- empty --> ";
	
	$('hiddenHeaderWrapper').hide();
	
	clearHiddenHeaderLinkStyles();
}

function showHiddenHeader(e){
	var barToShow = Event.findElement(e, 'li').id;
	if(barToShow == 'logoutLink1'){
		//don't do anything
	} else {
			if( $('hiddenHeaderWrapper').visible() == false){
				$('hiddenHeaderWrapper').show();
			}
			
			//remove existing selected class
			clearHiddenHeaderLinkStyles();
			
			//add a selected class
			$(barToShow).addClassName('searchBar_selected');
											   
			//get content to show
			if(barToShow == 'searchBar0'){
				loadInBarsWithAjax(1);
				//revealBar('accountHeader');
			} else if(barToShow == 'searchBar1'){
				loadInBarsWithAjax(2);
				//revealBar('loungeHeader');
			} else if(barToShow == 'searchBar2'){
				loadInBarsWithAjax(3);
				//revealBar('contactHeader');
			}
			
			Event.stop(e);
	} 
		
	return true;
}

function loadInBarsWithAjax(headerToLoad){
	
	var mvc = "/ajax/hiddenHeader";
	var response = "";
		new Ajax.Request(mvc, { method: 'get', parameters: 'whichHeader='+headerToLoad, onSuccess: function(e){
				//alert(e.responseText);																				
				$('hiddenHeaderWrapper').innerHTML = e.responseText;
			}
		});
	
}

function revealBar(barid){

	var doAnimation;
	
	//animate if required
	if( $('accountHeader').visible() == false && $('loungeHeader').visible() == false && $('contactHeader').visible() == false ){
		//Effect.SlideDown('searchBar', { duration: 0.5 });
		//make space
		$('searchBar').addClassName('expanded');
		$(barid).show();
	} else {
		$$('div.hiddenHeader').invoke('hide');
		$(barid).show();
	}

	return true;

}


// opens links in new window with rel="external" to validate xhtml strict
function externalLinks() {
	if (!document.getElementsByTagName) return; 
	var anchors = document.getElementsByTagName("a"); 
 	for (var i=0; i<anchors.length; i++) { 
   			var anchor = anchors[i]; 
 			if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external"){
 				anchor.target = "_blank"; 
       		} else if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "thiswindow")anchor.target = "_top";
 	} 
}

function formFieldListener(){
	var inputFields = document.getElementsByTagName("input");
	var textFields = document.getElementsByTagName("textarea");
	
	if(inputFields){
		
		for(i=0; i<=(inputFields.length - 1); i++){
			var att = $(inputFields[i]).readAttribute("type");
			if(att=="text" || att=="password"){
			
                inputFields[i].style.fontSize = 1.2+"em";
                inputFields[i].style.color = "#96703e";
			
				inputFields[i].observe('focus', function(e){
					e.element().style.backgroundColor = "#ffffff";
                    e.element().style.backgroundImage = "none";
				});
				inputFields[i].observe('blur', function(e){
                    e.element().style.backgroundImage = "url(/images/common/textfield_bg.gif)";
                    
				});
			}
		}
	}
		
	if(textFields){
		for(i=0; i<=(textFields.length - 1); i++){
		
			textFields[i].style.fontSize = 1.2+"em";
			textFields[i].style.color = "#96703e";
			
			var theField = textFields[i];
			
			textFields[i].onfocus = function(){
				theField.style.backgroundColor = "#ffffff";
                theField.style.backgroundImage = "none";
			}
			textFields[i].onblur = function(){
				theField.style.backgroundImage = "url(/images/common/textarea_bg.jpg)";
			}
		}
	}
	
}

function clearHiddenHeaderLinkStyles(){
	//remove existing selected class
	$('searchBar0').removeClassName('searchBar_selected');
	if ($('searchBar1') != undefined){
		$('searchBar1').removeClassName('searchBar_selected');
	}
	$('searchBar2').removeClassName('searchBar_selected');
}

function showPension(e){
	$('pensionFundDropDown').toggle();
	
}


// switches panels on homepagePromo in utilitybar
function initHomeTabs(){
	
	if( $$('.homeTabbedPanel') ){
		//hide all but 1st div
		var homeTabbedPanels = $$('.homeTabbedPanel');
		for(var i = 1; i <= (homeTabbedPanels.length-1); i++){
			homeTabbedPanels[i].hide();
		}
		
		//set-up event listeners
		var homepromolink = $$('.homepromolink');
		for(var j = 0; j <= (homeTabbedPanels.length-1); j++){
			//set up click functions - 
			Event.observe(homepromolink[j].down(0), 'click', function(e) {
				Event.stop(e);
				var homeTabbedPanel = $$('.homeTabbedPanel');
				var options = {'duration':0.5, queue: 'end'};
				
				//toggle button states
				var activeLinks = $$('.activeTab');
				
				if(this.className!="activeTab"){
					activeLinks[0].className = "nothing";
					this.className = "activeTab";
					
					//toggle panels
					var promoId = $(this.id+"panel");
					homeTabbedPanel.each(function(e){e.hide()});
					$(promoId).show();
				}
				
				restartTabTimer();
				
			});
		}
	}
}

function autoNextTab(){
	//get current active tab
	var panels = $$('div.homeTabbedPanel');
	var selectedPanel = null;
	var panelId = null;
	var newPanelId = null;
	for(var i = 0; i <= (panels.length)-1; i++){
		if(panels[i].visible()){
			selectedPanel = panels[i].identify();
		}
	}
	panelId = selectedPanel.substr(0,3);
	
	//this is a bit brute force but we need to find out 
	//which is the next tab
	if(panelId == "one"){
		newPanelId = "two";
	} else if(panelId == "two"){
		newPanelId = "three";
	} else if(panelId == "thr"){
		newPanelId = "one";
	}

	//move onto correct tab
	hideAllTabs();
	setActiveTab(newPanelId);
	
	//restart counter
	restartTabTimer();
}

function setActiveTab(tabId){
	$(tabId+"tab").addClassName('activeTab');
	$(tabId+"tabpanel").show();
}

function hideAllTabs(){
	$$('.homeTabbedPanel').invoke('hide');
	$$('.activeTab').invoke('removeClassName','activeTab');
}

function stopTabTimer(){
//	alert('stop me oh, oh, stop me!');
	if( $$('.homeTabbedPanel') != ""){
		if(typeof(t) != 'undefined'){
			clearTimeout(t);
		}
	}
}

function restartTabTimer(){
	if( $$('.homeTabbedPanel') != ""){
		stopTabTimer();
		t = setTimeout("autoNextTab()", 15000);
	}
}

function setupTabTimerListener(){
	if( $$('.homeTabbedPanel') != ""){
		  panels = $$('li.homepromolink a');
		  for(var i = 0; i <= (panels.length)-1; i++){
			  currentPanel = panels[i].identify();
			  Event.observe($(currentPanel), "mouseover", stopTabTimer);
			  Event.observe($(currentPanel), "mouseout", restartTabTimer); 
		  }
		  tabContent = $$('div.homeTabbedPanel');
		  for(var i = 0; i <= (tabContent.length)-1; i++){
			  currentPanel = tabContent[i].identify();
			  Event.observe($(currentPanel), "mouseover", stopTabTimer);
			  Event.observe($(currentPanel), "mouseout", restartTabTimer);  
		  }
	}
}

//change bg_colors of text fields and text areas
Event.observe(window, "load", function() {
		init();
});
