/**
 * Business Energy Coalition Navigation Controller
 * @author cyap
 */



var NavController = Class.create();

Object.extend(NavController.prototype, {
	initialize: function(){
		var navContainerDiv = $('nav');
		var navElementArray = navContainerDiv.getElementsByTagName('li');
		var navArray = new Array('login.php','member_list.php', 'member_benefits.php', 'program_details.php','enewsletter.php', 'energy_info.php'); // this array contains all pages in the top level of the nav, and the pages must be listed in order of appearance
		var url = String(window.location);
		var splitted = url.split("Coalition/");
		var section = splitted[1];
		for(i=0;i<navElementArray.length;i++){
			if(section == navArray[i]) {
				Element.addClassName(navElementArray[i], 'selected');
			}
		}
		
		if($('subnav')){
			this.initSubnav();
		}
	},
	
	initSubnav: function(){
		var subnavUL = $('subnav').getElementsByTagName('ul');
		var subnavLI = subnavUL[0].getElementsByTagName('li');
		Element.addClassName(subnavLI[0], 'selected');
		var contentVisibleID = subnavLI[0].id;
		
		// set initial content display
		var contentDivs = document.getElementsByClassName('showHide');
		contentDivs[0].style.display = "block";
		contentDivs[0].style.visibility = "visible";
		Effect.AppearCYap(contentDivs[0],{duration:0.5});
		
		// set click events onto subnav list items
		for(i=0;i<subnavLI.length;i++){
			
			// set click event
			Event.observe(subnavLI[i], 'mouseup', function() 
				{
					this.obj.handleSubnavClick(this.currentLI, this.currentFlag);
				}
				.bindAsEventListener({obj:this, currentLI:subnavLI[i], currentFlag:i}));
		}
	},
	
	handleSubnavClick: function(currentLI, currentFlag){
		var subnavUL = $('subnav').getElementsByTagName('ul');
		var subnavLI = subnavUL[0].getElementsByTagName('li');
		var oldLI = subnavUL[0].getElementsByClassName('selected')[0];
		var contentDivs = document.getElementsByClassName('showHide');
		var currentContent = contentDivs[currentFlag];
		var samePage = false;
		
		// determine old content div
		for(i=0;i<subnavLI.length;i++){
			if(subnavLI[i] == oldLI){
				var oldContent = contentDivs[i];
			}
		}
		
		// set nav state
		if(oldLI == currentLI){
			samePage = true;
		}
		for(i=0;i<subnavLI.length;i++){
			Element.removeClassName(subnavLI[i], 'selected');
		}
		Element.addClassName(currentLI, 'selected');
		
		if(samePage != true){
			// hide old content and display new content
			Effect.FadeCYap(oldContent,{duration:0.5});
			currentContent.style.display = "block";
			currentContent.style.visibility = "visible";
			Effect.AppearCYap(currentContent,{duration:0.5});
			oldContent.style.visibility = "hidden";
			oldContent.style.display = "none";
		}
	}

});

var nav = new NavController;