﻿var noOfButtons = 3; /*The number of link buttons required*/
	
function initialiseRollover(){
	if (noOfButtons > 0){
		var sideNav;
		hideText(noOfButtons);
		addAdditionalText();
		createTextContainer();
		sideNav = document.createElement("ul");
		sideNav.id = "sideNav";
		$("dc22dc23TechBanner").appendChild(sideNav);
		setupButtons();
	}else{
		throw("At least one link must be defined in JS file.");
	}
}

function addAdditionalText(){
	var additonalText, textToAddTo, textNodeContainer;
	var textToAddTo = $("endOfContent").firstChild.nodeValue;
	$("endOfContent").removeChild($("endOfContent").firstChild);
	textNodeContainer = document.createTextNode(textToAddTo + " (Klik venligst på numrene for yderligere information)");
	$("endOfContent").appendChild(textNodeContainer);
}

function setupButtons(){
	var button = Class.create();
	button.prototype ={
		initialize: function(buttonNumber, buttonType){
			var button, textNodeContainer, listItem;
			listItem = document.createElement("li");
			button = document.createElement("a");
			button.href = "javascript:void(0);";
			textNodeContainer = document.createTextNode("Stage " + (buttonNumber + 1));
			button.appendChild(textNodeContainer);
			if(buttonType == "navBtn"){
				button.id = "buttonLinkNo" + buttonNumber;
				listItem.appendChild(button);
				$("sideNav").appendChild(listItem);
			}else{
				button.id = "contentItemNo" + buttonNumber;
				listItem.appendChild(button);
				$("boxNav").appendChild(listItem);
			}
			this.id = button.id ;
			this.buttonNumber = buttonNumber;
		},
		
		observingButton: function(){
			this.loadTextBox();
		},
		
		loadTextBox:function(){
			var i;	
	
			for(i = 0; i < noOfButtons; i++){
				Event.stopObserving($("buttonLinkNo" + i), 'click', buttonBind);
				Event.stopObserving($("contentItemNo" + i), 'click', contentButtonBind);
				if(i == this.buttonNumber){
					$("buttonLinkNo" + i).addClassName("btnOn");
					$("contentItemNo" + i).addClassName("btnOn");
				}else{
					$("buttonLinkNo" + i).removeClassName("btnOn");
					$("contentItemNo" + i).removeClassName("btnOn");
				}
			}
			
			getLatestContent(this.buttonNumber);
			for(i = 0; i < noOfButtons; i++){
				Event.observe($("buttonLinkNo" + i), 'click', buttonBind);
				Event.observe($("contentItemNo" + i), 'click', contentButtonBind);
			}
		}
	};
	
	var buttonBind, contentButtonBind;
	var button0 = new button(0, "navBtn");
	var button1 = new button(1, "navBtn");
	var button2 = new button(2, "navBtn");
	var contentButton0 = new button(0, "contentBtn");
	var contentButton1 = new button(1, "contentBtn");
	var contentButton2 = new button(2, "contentBtn");

	for(i = 0; i < noOfButtons; i++){

		switch(i){
			case 0:
				buttonBind = button0.observingButton.bindAsEventListener(button0);
				Event.observe(button0.id, 'click', buttonBind);
				contentButtonBind = contentButton0.observingButton.bindAsEventListener(contentButton0);
				Event.observe(contentButton0.id, 'click', contentButtonBind);
				break;
			case 1:
				buttonBind = button1.observingButton.bindAsEventListener(button1);
				Event.observe(button1.id, 'click', buttonBind);
				contentButtonBind = contentButton1.observingButton.bindAsEventListener(contentButton1);
				Event.observe(contentButton1.id, 'click', contentButtonBind);
				break;
			case 2:
				buttonBind = button2.observingButton.bindAsEventListener(button2);
				Event.observe(button2.id, 'click', buttonBind);
				contentButtonBind = contentButton2.observingButton.bindAsEventListener(contentButton2);
				Event.observe(contentButton2.id, 'click', contentButtonBind);
				break;
		}
	}
}

function hideText(noOfButtons){
	var i, j, tempVar, rolloverContent;
	
	for(i = 0; i < noOfButtons; i++){
		tempVar = "rolloverItem" + i;
		rolloverContent = document.getElementsByClassName(tempVar);
		for(j = 0; j < rolloverContent.length; j++){
			rolloverContent[j].addClassName("hide");
		}
	}
}

function createTextContainer(){
	var container, closeButton, closeButtonText, boxNav;
	
	container = document.createElement("div");
	container.id = "rolloverBox";
	container.className = "clear";
	boxNav = document.createElement("div");
	boxNav.id = "rolloverBox_Nav";
	boxNav.className = "clear";
	closeButton = document.createElement("a"); 
	closeButton.id = "closeBox";
	closeButton.href = "javascript:void(0);";
	closeButtonText = document.createTextNode("X");
	closeButton.appendChild(closeButtonText);
	boxNav.appendChild(closeButton);
	container.appendChild(boxNav);
	$("letterbox").appendChild(container);
	$("rolloverBox").style.display = "none";
	boxNav = document.createElement("ul");
	boxNav.id = "boxNav";
	$("rolloverBox_Nav").appendChild(boxNav);

	Event.observe($("closeBox") ,"click", closeTextBox);
}

function closeTextBox(){
	new Effect.Fade($("rolloverBox"), {duration: 0.3});	
	clearContainerText();
}

function getLatestContent(currentItemNo){
	var headerElementNode, headerElementNodeText, textElementNode, textElementNodeText, i, tempVar, rolloverContent, contentContainer;
	
	clearContainerText();
		
	contentContainer= document.createElement("div");
	contentContainer.id = "rolloverBoxContent";
	contentContainer.className = "clear";
	contentContainer.style.display = "none";
	$("rolloverBox").appendChild(contentContainer);
	
	tempVar = "rolloverItem" + currentItemNo;
	rolloverContent = document.getElementsByClassName(tempVar);
	for(i = 0; i < rolloverContent.length; i++){
		
		if(rolloverContent[i].nodeName == "H2"){
			headerElementNode = document.createElement("h2");
			headerElementNodeText = document.createTextNode(rolloverContent[i].firstChild.nodeValue);
			headerElementNode.appendChild(headerElementNodeText);
			$("rolloverBoxContent").appendChild(headerElementNode);
		}
		if(rolloverContent[i].nodeName == "P"){
			textElementNode = document.createElement("p");
			textElementNodeText = document.createTextNode(rolloverContent[i].firstChild.nodeValue);
			textElementNode.appendChild(textElementNodeText);
			$("rolloverBoxContent").appendChild(textElementNode);
		}
	}
	displayContent();
}

function clearContainerText(){
	if($("rolloverBoxContent")){
		$("rolloverBox").removeChild($("rolloverBoxContent"));
	}
}

function displayContent(){
	if($("rolloverBox").style.display == "block"){
		new Effect.Appear($("rolloverBoxContent"), {duration: 1.0, from: 0, to: 1, afterFinish:function(){}});	
	}else{
		new Effect.Appear($("rolloverBox"), {duration: 0.5, from: 0, to: 1.0, afterFinish:function(){$("rolloverBoxContent").style.display = "block"; $("rolloverBox").style.display = "block";}});
	}
}

Event.observe(window,"load",initialiseRollover);
