window.onload = loadup;

function loadup() {
	//After Page Load call up functions -
	languageSelector();
	siteOptions();
	inputFix();
	navigation ();
	openMiniSite();
	screenshots();
	news();
	
	/* Show Flash - SWFOBJECT JS script
	var so = new SWFObject("flash/advert.swf", "adverted", "599", "75", "8", "#171714");
    so.addParam("movie", "flash/advert.swf");
	so.addParam("quality", "High");
	so.addParam("wmode", "transparent");
	so.addParam("loop", "False");
	so.addParam("menu", "False");
	so.addParam("scale", "False");
	so.write("flashcontent");
	*/// End Show Flash
}

function languageSelector() {
	// Flag Script
	var languageContainer = document.getElementById('language');
	var language = languageContainer.getElementsByTagName('li');
	
	languageContainer.onmouseover = displayLanguages;
	languageContainer.onmouseout = removeLanguages;
	
	//Hide Flags not used.
	removeLanguages();
	
	function  displayLanguages() {
		for (i=0;i<language.length; i++) {
			language[i].style.display = 'block';
		}
	}
	
	function  removeLanguages() {
		for (i=1;i<language.length; i++) {
			language[i].style.display = 'none';
		}
	}
	// End Flag Script
}

function siteOptions() {
	// Site Options
	var optionInfo = document.getElementById('optionInfo');
	var options = document.getElementById('options').getElementsByTagName('li');
	
	// Set Text on mouse over/out
	for (var i=0;i<options.length;i++) {
		options[i].onmouseover = runOption;
		options[i].onmouseout = function() {
			optionInfo.innerHTML = 'Welcome to JAGeX';
		}
	}
		
	function runOption() {
		var optionId = this.id
		switch (optionId) {
			case 'optionPrint':
				optionInfo.innerHTML = 'Print Page';
				break;
			case 'optionSiteMap':
				optionInfo.innerHTML = 'View Site Map';
				break;
			case 'optionFav':
				optionInfo.innerHTML = 'Add to Favourites';
				break;
			case 'OptionRss':
				optionInfo.innerHTML = 'Get RSS feed';
				break;
			default:
				optionInfo.innerHTML = 'Welcome to JAGeX';
		}
	}
	// End Site Options
}

function inputFix() {
	// input fix for active elements
	// Hover - focus fix for IE5/6 can`t do in css
	var textBox = document.getElementsByTagName('input');
	for (var i=0; i<textBox.length; i++) {
		if (textBox[i].getAttribute('type') == 'text') {
			textBox[i].onfocus=function() {
				this.parentNode.className+=" inputFocus";
			}
			textBox[i].onblur=function() {
				this.parentNode.className=this.parentNode.className.replace(new RegExp("inputFocus\\b"), "");
			}
			textBox[i].onmouseover=function() {
				this.parentNode.className+=" inputFocus";
			}
			textBox[i].onmouseout=function() {
				this.parentNode.className=this.parentNode.className.replace(new RegExp("inputFocus\\b"), "");
			}
		}
	}
	// End input fix for active elements
}

//return array of classes by name - http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function navigation() {
	//mouse over navigation show subnav
	var navId = document.getElementById('nav');
	var navList = navId.getElementsByTagName('li');
	var navElement = navId.getElementsByTagName('a');
	var navListContainer = navId.getElementsByTagName('ul');
	
	//if lte ie6 
	var navStart = getElementsByClassName(document.getElementById("nav"), 'li', 'navStart');
	var navEnd = getElementsByClassName(document.getElementById("nav"), 'li', 'navEnd');

	for (i = 0;i<navStart.length;i++) {
		navStart[i].onmouseover = displayLftCrner;
		navStart[i].onmouseout = hideLftCrner;
	}
	
	for (i = 0;i<navEnd.length;i++) {
		navEnd[i].onmouseover = displayRghtCrner;
		navEnd[i].onmouseout = hideRghtCrner;
	}
	
	function displayLftCrner() {
		this.className = 'navStartHover';
	}
	function hideLftCrner() {
		this.className = 'navStart';
	}
	function displayRghtCrner() {
		this.className = 'navEndHover';
	}
	function hideRghtCrner() {
		this.className = 'navEnd';
	}
	
	//if lte ie6 
	
	
	var timer = '';
	
	for (var i=0;i<navListContainer.length;i++) {
		if (navListContainer[i].className == 'subNav') {
			var navLCase = navListContainer[i].parentNode.id.toLowerCase();
			navListContainer[i].parentNode.firstChild.onmouseover = showSubNav;
			navListContainer[i].parentNode.firstChild.onmouseout = resetSubNav;
			for (var j=0;j<navListContainer[i].getElementsByTagName('a').length;j++) {
				navListContainer[i].getElementsByTagName('a')[j].onmouseover = stopTimer;
				navListContainer[i].getElementsByTagName('a')[j].onmouseout = resetSubNav;
			}
			if (navLCase.indexOf(document.body.id) > 0) {
				navListContainer[i].style.display = 'block';
				navListContainer[i].parentNode.className = 'selector';
			} else {
				navListContainer[i].style.display = 'none';
				navListContainer[i].parentNode.className = '';
			}
			
		}
	}
	
	var navigationId = document.getElementById('navigation');
	navigationId.className = 'navStartActive';

	
	function showSubNav() {
		stopTimer();
		for (var i=0;i<navListContainer.length;i++) {
			if (navListContainer[i].className == 'subNav') {
				navListContainer[i].style.display = 'none';
				navListContainer[i].parentNode.className = '';
			}
		}
		//alert(this.nodeName);
		this.parentNode.className = 'selector';
		//alert(this.className);
		this.nextSibling.nextSibling.style.display = 'block';
	}
	
	function stopTimer() {
		clearTimeout(timer);
	}
	
	function resetSubNav() {
		timer = setTimeout('testtimeout()',3000);
	}
	
	testtimeout = function() {
		navigation();
	}

	//mouse over navigation show subnav
}

function openMiniSite() {
	//Display pullout Menu
	var siteContainer = document.getElementById('siteContainer');
	var miniSitePlacement = document.getElementById('miniSitePlacement');
	var miniSite = document.getElementById('miniSite');
	var miniSiteContainer = document.getElementById('miniSiteContainer');				
	var miniSiteSections = miniSiteContainer.getElementsByTagName('div');
	var miniSiteNav = document.getElementById('miniSiteNav');
	var miniSiteNava = miniSiteNav.getElementsByTagName('a');
	var pullMenuButtons = document.getElementById('pullMenuButtons');
	var miniSiteLinks = document.getElementById('miniSiteLinks');
	
	// Hide MiniSite
	miniSiteContainer.style.display = 'none';
	
	// Set Link events
	for (i = 0;i<miniSiteNava.length;i++) {
		miniSiteNava[i].setAttribute('href','#miniSiteTop');
		miniSiteNava[i].onclick = showMiniSiteSection;
	}
	
	// Show Content Sections
	function showMiniSiteSection() {
		for(i = 0;i<miniSiteSections.length;i++) {
		miniSiteContainer.style.display = 'block';
			if ((miniSiteSections[i].id == this.className) || (miniSiteSections[i].id == '')) {
				miniSiteSections[i].style.display = 'block';
			} else {
				miniSiteSections[i].style.display = 'none';
			}
			
		}
	}
	
	// Hide all divs ignore first 2.
	for (i = 2;i<miniSiteSections.length;i++) {
		miniSiteSections[i].style.display = 'none';
	}
	
	// set events for Footer links
	for (i = 0;i<miniSiteLinks.getElementsByTagName('a').length;i++) {
		miniSiteLinks.getElementsByTagName('a')[i].setAttribute('href','#miniSiteTop');
		miniSiteLinks.getElementsByTagName('a')[i].onclick = showMiniSiteSection;
	} 
	
	// Re position minisite for absolute position
	miniSitePlacement.appendChild(miniSite,miniSitePlacement);
	
	// set Styles - maybe change later to id/class.
	
	miniSite.style.position = 'fixed';
	miniSite.style.top = 0;
	miniSite.style.right = 0;
	// Should really detect #miniSiteNav width
	miniSiteContainer.style.width = '391px';
	resetMiniSiteHeight();
	miniSite.style.textAlign = 'left';
	miniSite.style.background = '#131313 url(images/border_miniSite.gif) repeat-y left';
	miniSiteContainer.style.marginLeft = '11px';
	miniSiteContainer.style.overflow = 'scroll';
	miniSiteContainer.background = '#131313';
	miniSiteNav.style.top = '0px';
	pullMenuButtons.style.display = 'block';
	// Show Mini Site
	pullMenuButtons.onmousedown = displayMiniSite;
	
	// Pull out button
	function displayMiniSite() {
		if (miniSiteContainer.style.display == 'none') { 
			miniSiteContainer.style.display = 'block';
		} else {
			miniSiteContainer.style.display = 'none';
		}
		// if user accesses minisite with keyboard.
		resetMiniSiteHeight();
	}
	
	// on mouse move over site reset height incase user manually resizes browser.
	document.body.onmousemove = resetMiniSiteHeight;
	
	function resetMiniSiteHeight() {
		// Opera - document.body.clientHeight // ie6? - || window.height;
		if (window.opera) {
			var browserHeight = document.body.clientHeight 
		} else {
			var browserHeight = document.documentElement.clientHeight
		}
		miniSite.style.height = browserHeight + 'px';
		miniSiteContainer.style.height = browserHeight + 'px';
		
	}
}

function screenshots() {
	var devScreenshots = document.getElementById('devScreenshots');
	devScreenshots.style.display = 'block';
}

function news() {
	var newsList = document.getElementById('newsList');
	var newsListTR = newsList.getElementsByTagName('tr');
	var newsImg = document.getElementById('newsImg');
	var imageEnlarge = document.getElementById('imageEnlarge');
	
	//newsList.style.display = 'block';
	newsImg.onmouseover = showImageIcon;
	//newsImg.onmouseout = hideImageIcon;
	
	function showImageIcon() {
		imageEnlarge.style.display = 'block';
	}
	
	function hideImageIcon() {
		imageEnlarge.style.display = 'none';
	}
	
	for (i = 0;i<newsListTR.length;i++) {
		newsListTR[i].onmouseover = displayNewsCaptions;
		newsListTR[i].onmouseout = hideNewsCaptions;
	}
	
	function displayNewsCaptions() {
		this.style.background = 'transparent';
		for (i = 0;i<newsListTR.length;i++) {
			document.getElementById('location' + i).style.display = 'none';
		}
		document.getElementById('location' + this.className).style.display = 'block';
		document.getElementById('newsImg').setAttribute('src', 'images/news/news_' + this.className + '.jpg');
	}
	
	function hideNewsCaptions() {
		this.style.background = '#252621';
		//document.getElementById('location' + this.className).style.display = 'none';
	}
}
