
window.onresize = resize;
window.onload = loaded;

//Global variables
var timer1 = 35;
var liMenu;
var liPos;
var endPos;
var divMenu;
var navBar;
var secondNav;
var inProgress = 0;
var expand;

/*This function toggles individual sections for the navbar on / off.*/
function navBarToggle(thisClass) {
	navBar = document.getElementById('navbar');
	secondNav = document.getElementById('secondnav');
	divMenu = navBar.getElementsByTagName('div');
	
	if(!inProgress) {
		inProgress = 1; //functions as a lock so that the same (or different) menu cannot be expanded simultaneously
		
		for(var i = 0; i < divMenu.length; i++)
			if(divMenu[i].className == thisClass) {
				liMenu = divMenu[i].getElementsByTagName('li');
				liPos = liMenu.length - 1;
				endPos = liPos; //endPos used for reversing the order of <li> shown, see toggleMe()
				
				if(liMenu[0].style.display == "none") {
					expand = 1;
					divMenu[i].getElementsByTagName('a')[0].style.background = "url(/Images/style2/collapse.png) no-repeat center right";
					divMenu[i].getElementsByTagName('a')[0].style.margin = "0 6px 0 0";
				}
				else {
					expand = 0;
					divMenu[i].getElementsByTagName('a')[0].style.background = "url(/Images/style2/expand.png) no-repeat center right";
					divMenu[i].getElementsByTagName('a')[0].style.margin = "0 5px 0 0";
				}
					
				setTimeout(toggleMe, timer1);
				
				if(liMenu[0].style.display == "none")
					divMenu[i].style.margin = "0 0 8px 0";
				else
					divMenu[i].style.margin = "0";
			}
	}
}

/*This function changes the min-height of the #inside div
	to make it long enough for the secondary nav bar.*/
function adjustInside() {
	var secondNavPos = findPosY(secondNav) + secondNav.offsetHeight;
	var inside = document.getElementById('inside');
	
	//if((secondNavPos - findPosY(inside) - 25) > 440)
		inside.style.minHeight = secondNavPos - findPosY(inside) - 25 + "px";
	//else
		//inside.style.minHeight = 440 + "px";
}

/*See navBarToggle().*/
function toggleMe() {
	if(liPos >= 0) {
		if(expand)
			liMenu[(endPos - liPos)].style.display = "";
		else
			liMenu[liPos].style.display = "none";
		liPos--;
		
		if(secondNav)
			secondNav.style.top = navBar.offsetHeight + 125 + 10 + "px"; //moves second nav bar if present
			
		setTimeout(toggleMe, timer1);
	}
	else {
		inProgress = 0;
		
		if(secondNav)
			adjustInside(); //adjusts the footer if second nav bar present
	}
}

/*This function closes the entire navbar when called.*/
function closeNavBar() {
	navBar = document.getElementById('navbar');
	secondNav = document.getElementById('secondnav');
	divMenu = navBar.getElementsByTagName('div');
	liMenu = document.getElementById('navbar').getElementsByTagName('li');
	
	for(var i = 0; i < liMenu.length; i++)
		liMenu[i].style.display = "none";
		
	for(var i = 0; i < divMenu.length; i++) {
		divMenu[i].style.margin = "0";	
		divMenu[i].getElementsByTagName('a')[0].style.background = "url(/Images/style2/expand.png) no-repeat center right";
		divMenu[i].getElementsByTagName('a')[0].style.margin = "0 5px 0 0";
	}
		
	secondNav.style.top = navBar.offsetHeight + 125 + 10 + "px";	
}

/*This function is for the expand / collapsing functionality of
	find an article, etc.*/
function initCollapse(id, collapse, color) {
	var main = document.getElementById(id);
	var aList = main.getElementsByTagName('a');
	var ulList = main.getElementsByTagName('ul');
	
	if(ulList) {
		for(var i = 0; i < ulList.length; i++)
			if(ulList[i].className == 'left')
				var left = ulList[i].getElementsByTagName('ul');
			else if(ulList[i].className == 'right')
				var right = ulList[i].getElementsByTagName('ul');
				
		if(collapse) {
			for(i = 0; i < left.length; i++)
				left[i].style.display = "none";
			
			for(i = 0; i < right.length; i++)
				right[i].style.display = "none";
				
			for(i = 0; i < aList.length; i++)
				if(aList[i].getAttribute('onclick'))
					if(color == "green")
						aList[i].style.background = "url(/Images/style2/arrow_green.png) no-repeat right center";
					else
						aList[i].style.background = "url(/Images/style2/arrow_maroon.png) no-repeat right center";
		}
		else {
			for(i = 0; i < left.length; i++)
				left[i].style.display = "";
			
			for(i = 0; i < right.length; i++)
				right[i].style.display = "";
				
			for(i = 0; i < aList.length; i++)
				if(aList[i].getAttribute('onclick'))
					if(color == "green")
						aList[i].style.background = "url(/Images/style2/arrow_green_down.png) no-repeat right center";
					else
						aList[i].style.background = "url(/Images/style2/arrow_maroon_down.png) no-repeat right center";
		}
	}
}

/*See initCollapse.*/
function toggleDisplay(obj, color) {
	var child;
	
	if(obj.parentNode)
		if(child = obj.parentNode.getElementsByTagName('ul')[0])
			if((child.style.display == "none")) {
				child.style.display = "";
				if(color == "green")
					obj.style.background = "url(/Images/style2/arrow_green_down.png) no-repeat right center";
				else
					obj.style.background = "url(/Images/style2/arrow_maroon_down.png) no-repeat right center";
			}
			else {
				child.style.display = "none";
				if(color == "green")
					obj.style.background = "url(/Images/style2/arrow_green.png) no-repeat right center";
				else
					obj.style.background = "url(/Images/style2/arrow_maroon.png) no-repeat right center";
			}
}

/*This function randomizes the welcome screen (index) picture.*/
function welcome() {
	var pictures = new Array();
	var backColor = new Array();
	
	pictures[0] = "url(/Images/style2/welcome/welcome.png) no-repeat right";
	backColor[0] = "#000";
	pictures[1] = "url(/Images/style2/welcome/welcome2.png) no-repeat right";
	backColor[1] = "#A78C3F";
	
	var randNo = Math.floor(2 * Math.random()); //Then number here is the total number of pictures
	var welcome = document.getElementById('welcome');

	welcome.style.background = pictures[randNo];
	welcome.style.backgroundColor = backColor[randNo];
}

/*Adjusts the width of the news section (index) depending on browser width.
	A default size (smallest) is defined in the CSS files in case a browser
	does not support javascript.*/
function newsBoxSize(news) {	
	if(window.innerWidth)
		if(window.innerWidth > 965)
			news.style.width = window.innerWidth - 575 + "px";
		else
			news.style.width = 390 + "px";
	else if(document.all)
		if(document.body.clientWidth > 965)
			news.style.width = document.body.clientWidth - 575 + "px";
		else
			news.style.width = 390 + "px";
}

/*Finds the Y position of given object.*/
function findPosY(obj) {
	var curtop = 0;
	
	if(obj.offsetParent)
		while(1) 
		{
			curtop += obj.offsetTop;
			
			if(!obj.offsetParent)
				break;
				
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
		
	return curtop;
}

/*This function handles all window resizing for all pages.*/
function resize() {
	var news = document.getElementById('box');
	if(news)
		newsBoxSize(news);
}

/*This function handles all window onload events for all pages.*/
function loaded() {
	var inside = document.getElementById('inside');
	
	if(inside)
		if(inside.className == "secondnav")
			adjustInside(); //adjusts the footer if second nav bar present
			
	//Disables highlighting of the navbar		
	var target = document.getElementById('navbar');
	
	if(target) {
		if(typeof target.onselectstart!="undefined")
			target.onselectstart=function(){return false}
		else if(typeof target.style.MozUserSelect!="undefined")
			target.style.MozUserSelect="none"
		else
			target.onmousedown=function(){return false}
	}
	//end	
}

