window.onload = globalsInit;

var arrImages = new Array();		// array for preloading image rollovers
var arrDynamicNav = new Array();	// array for storing expanding box handles and their open/closed states
var currPopupNav;					// variable for storing the currently active breakout layer object
var activeMenuId = -1;

var arrExampleInputs = new Array();	// array for form inputs with example values
// removing since we are using the watermarkextender
//arrExampleInputs[arrExampleInputs.length] = { id: "searchQuery", value: "Keyword, Model/Literature #" }
arrExampleInputs[arrExampleInputs.length] = { id: "signupEmail", value: "Email Address" }

function globalsInit() {
	rolloversInit();
	subnavInit();
	jumpInit();
	formInit();
	dnavInit();
	pnavInit();
	try {
		pageInit();
	} catch(e) { }
}

function rolloversInit() {			// initialize image rollovers
	var arrPreload = new Array();
	var strSrcTmp;
	arrImages = document.getElementsByTagName('img');
	
	for (var i=0; i<arrImages.length; i++) {
		if (arrImages[i].className.indexOf("imgOver") == 0) {
			var src = arrImages[i].src;
			var imgtype = src.substring(src.lastIndexOf("."), src.length);
			var altsrc = src.replace(imgtype, "_on" + imgtype);

			arrImages[i].setAttribute('altsrc', altsrc);
			arrPreload[i] = new Image();
			arrPreload[i].src = altsrc;
			
			arrImages[i].onmouseover = function() {
				strSrcTmp = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('altsrc'));
			}

			arrImages[i].onmouseout = function() {
				if (!strSrcTmp) strSrcTmp = this.getAttribute('src').replace("_on" + imgtype, imgtype);
				this.setAttribute('src', strSrcTmp);
			}

		}
	}
}

function subnavInit() {				// initialize the secondary menu, if present in the page
	if (document.getElementById("subnav")) {
		var arrSpans = document.getElementsByTagName("a");
		
		for (var i=0; i<arrSpans.length; i++) {
			if (arrSpans[i].parentNode.className == "subnav") {
				arrSpans[i].onmouseover = function() {
					this.parentNode.className = "subnavActive";
				}
	
				arrSpans[i].onmouseout = function() {
					this.parentNode.className = "subnav";
				}
			}
		}

		// detect the active leftnav item to determine vertical placement of subnav
		var arrImages = document.getElementsByTagName("img");
		for (var i=0; i<arrImages.length; i++) {
			if (arrImages[i].className == "leftnav") {
				var objSubnav = document.getElementById("subnavBox");
				var offsetTop = arrImages[i].offsetTop;

                if (offsetTop + objSubnav.offsetHeight > 466) {
					offsetTop = 466 - objSubnav.offsetHeight;
				}

				objSubnav.style.top = offsetTop + "px";
				objSubnav.style.visibility = "visible";
			}
		}

	}
}

function jumpInit() {				// initialize drop-down menu navigation
	for (var i=0; i<document.forms.length; i++) {
		var currForm = document.forms[i];
		if (currForm.className == "jump") {
			currForm.elements[0].onchange = function() {
				document.location.href = this.value;
			}
		}
	}
}

function formInit() {
	for (var i=0; i<arrExampleInputs.length; i++) {
		if (document.getElementById(arrExampleInputs[i].id)) {
			var currInput = document.getElementById(arrExampleInputs[i].id);
			if ((currInput.value == "") || (currInput.value == arrExampleInputs[i].value)) {
				currInput.value = arrExampleInputs[i].value;
				currInput.onfocus = function() {
					handleInputFocus(this);
				}
				currInput.onblur = function() {
					if (this.value == "") {
						handleInputBlur(this);
					}
				}
			}
			currInput.form.onsubmit = function() {
				handleFormSubmit();
			}
		}
	}
}

function handleInputFocus(objInput) {
	if (objInput.value == arrExampleInputs.getPropValue("id", objInput.id, "value")) {
		objInput.value = "";
	}
}

function handleInputBlur(objInput) {
	objInput.value = arrExampleInputs.getPropValue("id", objInput.id, "value");
}

function handleFormSubmit(objForm) {
	for (var i=0; i<arrExampleInputs.length; i++) {
		var currInput = document.getElementById(arrExampleInputs[i].id);
		// ccottrell - adding check that element was actually found
		if (currInput != null && currInput.value == arrExampleInputs[i].value) {
			currInput.value = "";
		}
	}
	
	return true;
}

function dnavInit() {				// initialize click events for expanding box elements
	var arrDivs = document.getElementsByTagName('div');
	for (var i=0; i<arrDivs.length; i++) {
		if (arrDivs[i].className == "dnavBox_closed") {
			var currBox = arrDivs[i];
			arrDynamicNav[arrDynamicNav.length] = { Name: currBox.id.replace("_closed",""), Open: false }
			currBox.style.display = "block";

			arrDivs[i].onclick = function() {
				dnavRefresh(this.id.replace("_closed",""));
			}
		}
	}

	var arrSpans = document.getElementsByTagName('span');
	for (var i=0; i<arrSpans.length; i++) {
		if (arrSpans[i].className == "dnavLabel_open") {
			var currBox = arrSpans[i].parentNode;
			arrSpans[i].onclick = function() {
				dnavRefresh(this.parentNode.id.replace("_open",""));
			}
		}
	}

	var arrImages = document.getElementsByTagName('img');
	
	for (var i=0; i<arrImages.length; i++) {
		if (arrImages[i].className == "dnavCloseButton") {
			arrImages[i].onclick = function() {
				dnavRefresh(this.parentNode.id.replace("_open",""));
			}
		}
	}
}

function dnavRefresh(strdnav) {		// toggles the open/closed state of expanding box elements each time one is clicked.
	for (var i=0; i<arrDynamicNav.length; i++) {
		var currId = arrDynamicNav[i].Name + ((arrDynamicNav[i].Open) ? "_open" : "_closed");
		document.getElementById(currId).style.display = "none";
		if (arrDynamicNav[i].Name == strdnav) {
			arrDynamicNav[i].Open = (arrDynamicNav[i].Open) ? false : true;
		}
	}

	for (var i=0; i<arrDynamicNav.length; i++) {
		var currId = arrDynamicNav[i].Name + ((arrDynamicNav[i].Open) ? "_open" : "_closed");
		document.getElementById(currId).style.display = "block";
	}
}

function pnavInit() {				// initialize click events for breakout layer elements
	var arrCells = document.getElementsByTagName('td');
	for (var i=0; i<arrCells.length; i++) {
		if (arrCells[i].className == "pnavTriggerBox") {
			arrCells[i].onclick = function() {
				pnavDisable();
				pnavEnable(this.id.replace("_trigger", ""));
			}
		}
	}

	var arrImages = document.getElementsByTagName('img');
	for (var i=0; i<arrImages.length; i++) {
		if (arrImages[i].className == "pnavTriggerImg") {
			arrImages[i].onclick = function() {
				pnavDisable();
				pnavEnable(this.id.replace("_trigger", ""));
			}
		}

		if (arrImages[i].className == "pnavCloseButton") {
			arrImages[i].onclick = pnavDisable;
		}
	}
}

function pnavDisable() {			// disable the currently active breakout layer
	if (currPopupNav) {
		currPopupNav.style.display = "none";
		currPopupNav = null;
	}
}

function pnavEnable(strName) {		// enable a breakout layer
	var objPnavBox = document.getElementById(strName + "_box");
	if(objPnavBox != null)
	{
	    objPnavBox.style.display = "block";
	    currPopupNav = objPnavBox;
	}
}





/* **** Object Prototypes **** */
Array.prototype.getElement = arr_getElement;
Array.prototype.getPropValue = arr_getPropValue;

/* search an associative array for a property value, return the index of that element */
function arr_getElement(strSearchPropName, strValue) {
	var intFound = -1;
	for (i=0; i<this.length; i++) {
		if (eval("this[i]." + strSearchPropName) == strValue) {
			intFound=i;
			break;
		}
	}
	return intFound;
}

/* search an associative array for a property value, return another property value from the desired element */
function arr_getPropValue(strSearchPropName, strValue, strReturnPropName) {
	var intFound = -1;
	for (i=0; i<this.length; i++) {
		if (eval("this[i]." + strSearchPropName) == strValue) {
			intFound = i;
		}
	}
	if (intFound > -1) {
		return eval("this[intFound]." + strReturnPropName);
	} else {
		return intFound;
	}
}

function ToggleMenuDisplay(id,pageid)
{
	//var menu = document.getElementById("menu" + id);
    
//	if(activeMenuId != -1)
//		document.getElementById("menu" + activeMenuId).style.display = "none";
	if(id == activeMenuId)
	{
	    document.getElementById("ctl00_ctl00_LeftNavigation1_menu" + activeMenuId).style.display = "none";
		activeMenuId = -1;
		return;
	}
	//menu.style.display = (menu.style.display == "block" ? "none" : "block");
	activeMenuId = id;
//	var menuBottom = menu.offsetTop + menu.offsetHeight;
//	var windowScrollBottom = document.documentElement.scrollTop + document.documentElement.clientHeight - 80;
//	if(windowScrollBottom < menuBottom)
//	{	
//	    document.documentElement.scrollTop += menuBottom - windowScrollBottom;
//	}
	window.location = "/Commercial/Dna/View.aspx?i="+pageid;
}

function ExpandCurrentSelection(id,tier1id,tier2id)
{
    var menuid=0;
    var ancSelect;
      
    for(menuid=0; menuid < 10 ; menuid++)
    {
        ancSelect = document.getElementById("ctl00_ctl00_LeftNavigation1__"+ tier1id +"_menu" + menuid);
        if(ancSelect != null)
            break;
    }
	var menu = document.getElementById("ctl00_ctl00_LeftNavigation1_menu" + menuid);
	if(menu != null)
	{
	    activeMenuId = menuid;
		
	    var menuBottom = menu.offsetTop + menu.offsetHeight;
	    var windowScrollBottom = document.documentElement.scrollTop + document.documentElement.clientHeight - 80;
	    if(windowScrollBottom < menuBottom)
	    {		    
		    if(tier1id != 898 || tier1id == id)
		    {
		        document.documentElement.scrollTop += menuBottom - windowScrollBottom;
		    }
		    else if(tier2id == 0 || tier2id == id)
		    {
		        var header = document.getElementById("header");
		        var headerLinks = document.getElementById("logo"); //Since logo and header links are in same row.
		        document.documentElement.scrollTop += menuBottom - (windowScrollBottom + header.offsetHeight) + headerLinks.offsetHeight;
		    }		    
	    }
		//Highlight 2nd tier link in left navigation
		var subMenu = document.getElementById("_"+tier2id);
		
		if(subMenu != null)
		    subMenu.style.backgroundColor = "#E7E2D4";
	}
}
