
window.onload = function() { 
	initColHeight();
	//if (doFlashAlert) alertbox(sFlashHeader,sFlashText);
	//addClass(document.body,"loaded");
	initSubmenu();
	initPacks();
	
}

function initColHeight() {
	setColHeight("resize","filler",40);
}

function setColHeight(resizeStr,fillerStr,minHeight) {
	var cols = new Array();
	var oResize = new Array();
	var oFiller = new Array();
	
		
		// set up page cols
		if (document.getElementById("col-left")) cols[cols.length] = document.getElementById("col-left");
		if (document.getElementById("col-middle")) cols[cols.length] = document.getElementById("col-middle");
		if (document.getElementById("col-right")) cols[cols.length] = document.getElementById("col-right");
		
		// remove campaign row if no childNodes
		if (document.getElementById("camp-row")) {
			var oRow = document.getElementById("camp-row");
			if (oRow.childNodes.length==0) {
				oRow.style.display = "none";
			}
		}

		for (var i=0; i<cols.length; i++) {
			var elms = cols[i].getElementsByTagName("div");
			
			for (var j=0;j<elms.length;j++) {
				if (elms[j].className.indexOf(resizeStr)!=-1) {
					oResize[i] = elms[j];
					oResize[i].style.height = "1px";
				}
				if (elms[j].className.indexOf(fillerStr)!=-1) {
					oFiller[i] = elms[j];
					oFiller[i].style.display = "none";
				}
			}
		}
		
		function getMaxHeight() {
			var n = 0;
			for (var i=0;i<cols.length;i++) {
				if (parseInt(cols[i].offsetHeight)>n) n = parseInt(cols[i].offsetHeight);
			}
			return n;
		}
		
		
		function toggleFillers() {
			for (var i=0;i<cols.length;i++) {
				if (oFiller[i] && oResize[i] && parseInt(cols[i].offsetHeight)<maxHeight) {
					if (oResize[i].parentNode == oFiller[i]) {
						oFiller[i].style.display = "block";
						oResize[i].style.height = minHeight - parseInt(oFiller[i].offsetHeight) + parseInt(oResize[i].offsetHeight) + "px";
					}
				}
			}
		}
		
		function setToMaxHeight(n) {
			for (var i=0;i<cols.length;i++) {
				if (n) {
					if (oResize[i]) oResize[i].style.height = n - parseInt(cols[i].offsetHeight) + parseInt(oResize[i].offsetHeight) + "px";
				} else {
					if (oResize[i] && parseInt(cols[i].offsetHeight)<maxHeight) oResize[i].style.height = maxHeight - parseInt(cols[i].offsetHeight) + parseInt(oResize[i].offsetHeight) + "px";
				}
			}
		}
		
	if(document.getElementsByTagName("body")[0].className.indexOf("popup")==-1) {
		var maxHeight = getMaxHeight();
		toggleFillers();
		var maxHeight = getMaxHeight();
		setToMaxHeight();
	} else {
		setToMaxHeight(435);
	}
}


function initSubmenu() {
	if (document.getElementById("sub-menu")) {
		var menu = document.getElementById("sub-menu");
		
		for (var i=0;i<menu.childNodes.length;i++) {
			var node = menu.childNodes[i];
			if (node.nodeType==1) {
				
				submenuBgAlign(node,menu);
				
				node.onmouseover = function() {
					submenuBgAlign(this,menu,true);
				}
				node.onmouseout = function() {
					submenuBgAlign(this,menu);
				}
			}
		}
	}
}

function initPacks() {
	if (document.getElementById("packages")) {
		var packs = document.getElementById("packages");
		var oLi = packs.getElementsByTagName("li");
		for (var i=0;i<oLi.length;i++) {
			var oInner = oLi[i].getElementsByTagName("span")[2];
			oInner.style.left = (parseInt(oLi[i].offsetWidth) - parseInt(oInner.offsetWidth)) / 2 + "px";
		}
		
	}
}

function submenuBgAlign(oNode,oMenu,isSel) {
	var oSpan = oNode.getElementsByTagName("span")[0];
	
	var x = (isSel || oNode.className.indexOf('selected')!=-1)? 10 : 6;
	var y = getAbsTop(oNode) - getAbsTop(oMenu.parentNode);
	
	var strPos = (-1*x) +"px "+ (-1*y) +"px";
	oSpan.style.backgroundPosition = strPos;
	
	
}

function websiteDropdown(str) {
	var url = str.split('||');
	if (url[1]=='_self') location.href = url[0];
	else window.open(url[0],url[1]);
}

function doPopup(o,w,h) {
	var popupWin = window.open(o.href,"popWin","width="+w+",height="+h+",status=0,resizable=0");
	return false;
}


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," ");
}


// Returns absolute left pixelnumber of element 
function getAbsLeft(o) { 
        n = 0 
        while(o != null){ 
                n += o.offsetLeft 
                o = o.offsetParent 
                //alert(o.offsetLeft) 
                //alert(o.offsetParent.nodeName+", class="+o.offsetParent.className+", id="+o.offsetParent.id) 
        } 
        return n 
} 
// Returns absolute top pixelnumber of element 
function getAbsTop(o) { 
        n = 0 
        while(o != null){ 
                n += o.offsetTop 
                o = o.offsetParent 
        } 
        return n 
}

function isValidInt(str) {
	var re = /^\d+$/;
	return re.test(str);
}
function isValidFloat(str) {
	var re = /^\d+(,|.)?\d*$/;
	return re.test(str);
}
function isValidEmail(str) {
	var re = /^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/;
	return re.test(str);
}
