window.onload = pageSetup;

function pageSetup() {
	menuSetup();
	powerMenu();
	setSectionHeight();
	//IEmarginFix();
	
}

function IEmarginFix() {
	if(navigator.appName.indexOf("Internet Explorer")!=-1 && document.getElementById('main-content-row')){
		document.getElementById('main-content-row').style.marginBottom = '2px';
	}
}

function menuSetup() {
	var oMenu = document.getElementById("main-menu");
	var menuItems = oMenu.getElementsByTagName("li");
	var menuLinks = oMenu.getElementsByTagName("a");

	var menuWidth = parseInt(oMenu.offsetWidth)-1;
	for (var i=0;i<menuLinks.length;i++) {
		var cWidth = 0;
		var cY = parseInt(menuLinks[i].offsetTop);
		
		cWidth = parseInt(menuItems[menuItems.length-1].offsetLeft) + parseInt(menuItems[menuItems.length-1].offsetWidth) - parseInt(menuItems[0].offsetLeft);
		
		var itemPadding = Math.floor((menuWidth-cWidth) / (menuLinks.length-i));
		menuLinks[i].style.width = parseInt(menuLinks[i].offsetWidth) + itemPadding + "px";
	}
}

function setSectionHeight() {
	var strClass = (navigator.appName.indexOf("Internet Explorer")!=-1)? "className" : "class";
	var rows = getNodes(document,"div",strClass,"content-row");
	
	for (var i=0;i<rows.length;i++) {
		var iRowOffset = _getAbsTop(rows[i]);
		var iRowHeight = rows[i].offsetHeight;
		var sCol = (document.body.className.indexOf("frontpage")==-1)? "col":"w";
		var cols = getNodes(rows[i],"div",strClass,sCol);

		for (var l=0;l<cols.length;l++) {
			var sections = getNodes(cols[l],"div",strClass,"section");
			var spacers = getNodes(cols[l],"div",strClass,"resize");
			innerHeight();
		}
	}
	
	function innerHeight() {
		var sectionsY = new Array();
		for (var j=0;j<sections.length;j++) {
			if (j==0 || _getAbsTop(sections[j])>_getAbsTop(sections[j-1])) {
				sectionsY[sectionsY.length] = _getAbsTop(sections[j]);
			}
		}
		for (var j=0;j<sections.length;j++) {
			var rowH = iRowHeight + iRowOffset
			for (var k=0;k<sectionsY.length;k++) {
				if (_getAbsTop(sections[j])==sectionsY[k] && k<sectionsY.length-1) {
					rowH = sectionsY[k+1];
				}
			}
			
			if (spacers.length>0) {
				var spacer = spacers[spacers.length-1];
				
				var iSectionOffset = _getAbsTop(sections[j]);
				var iSectionHeight = sections[j].offsetHeight;
				var h = rowH - (iSectionOffset + iSectionHeight) + spacer.offsetHeight;
				
				if (h>0) spacer.style.height = parseInt(h) + "px";
			}
		}
	}
}

function powerMenu() {
	if (document.body.className.indexOf("frontpage")!=-1) {
		var menu = document.getElementById("power-menu");
		var mainItems = menu.getElementsByTagName("ul")[0].childNodes;
		for (var i=0;i<mainItems.length;i++) {
			if (mainItems[i].nodeType==1) {
				mainItems[i].onmouseover = function() {
					//addClass(this,"over");
					this.className += " over";
				}
				mainItems[i].onmouseout = function() {
					//remClass(this,"over");
					this.className = this.className.substring(0,this.className.length-5);
				}
			}
		}
	}
}

function brandingSection(str) {
	if (document.getElementById("headerimage") && navigator.appName.toLowerCase().indexOf("microsoft")!=-1) {
		var o = document.getElementById("headerimage");
		o.SetVariable("jsSection",str);
	}
}
function showStatus(str) {
	//document.getElementById("test").innerHTML += ", " + str;
}
function _getAbsLeft(o) {
	var n = 0;
	while(o != null){
		n += o.offsetLeft;
		o = o.offsetParent;
	}
	return n;
}
function _getAbsTop(o) {
	var n = 0;
	while(o != null){
		n += o.offsetTop;
		o = o.offsetParent;
	}
	return n;
}

function addClass(o,str) {
	remClass(o,str);
	o.className += " " + str;
}
function remClass(o,str) {
	o.className = o.className.replace(str,"");
	o.className = o.className.replace(/' '{2,}/gi," ");
}
function getNodes(oParent,nodeType) {
	var oNodes = oParent.getElementsByTagName(nodeType);
	var rNodes = new Array();
	for (var i=0;i<oNodes.length;i++) {
		var pass = true;
		for (var j=2;j<arguments.length;j+=2) {
			if (!oNodes[i].getAttribute(arguments[j]) || oNodes[i].getAttribute(arguments[j]).toString().indexOf(arguments[j+1].toString())==-1) {
				pass = false;
			}
		}
		if (pass) rNodes[rNodes.length] = oNodes[i];
	}
	return rNodes;
}