//show nav lists in IE
function startList(){
	makeNavMenu();
	//dropdown list styles
	if(document.all && document.getElementById){
		navRoot = document.getElementById("nav");
		for(i=0; i < navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if(node.nodeName=="LI"){
				node.onmouseover=function(){
					this.className+=" over";
					if(this.childNodes[2]){
						hideShowSelectBox(findGlobalPosX(this),findGlobalPosY(this), 145, this.childNodes[2].offsetHeight+30);
					}
				}
				node.onmouseout=function(){
					this.className=this.className.replace(" over", "");
					showAllSelectBoxes();
				}
			}
		}
	}
	//on pages with disabled form sections, set height of phone overlay div on page load
	if(document.getElementById("phonedisable") && document.getElementById("phonefield")){
		document.getElementById("phonedisable").style.height = document.getElementById("phonefield").offsetHeight-2;	
	}
}

//declare arrays for homepage banner header, image, and paragraph text
//these are all pulled dynamically from bannerdata.xml
var headAry = new Array();
var bodyAry = new Array();
var imageAry = new Array();
function opentab(){
	if(document.images){
		document.getElementById('tabopen').style.display='block';
		document.getElementById('tabshut').style.display='none';
	}
}
	
function closetab(){
	if(document.images){
		document.getElementById('tabopen').style.display='none';
		document.getElementById('tabshut').style.display='block';
	}
}
	
//load XML cross-browser
function loadXML(){
	xmlDoc=null
	// code for Mozilla, etc.
	if (window.XMLHttpRequest) {
		xmlDoc=new XMLHttpRequest()
  	} else if (window.ActiveXObject) {   
		// code for IE
		xmlDoc=new ActiveXObject("Microsoft.xmlHttp")
	}
	if (xmlDoc!=null) {
		xmlDoc.onreadystatechange=state_Change
		xmlDoc.open("GET","bannerdata.xml",true)
		xmlDoc.send(null)
  	} else {
  		//no XML support
  	}
	startList();
}

//set response variable equal to XML document object, if loaded correctly
function state_Change() {
	// if xmlDoc shows "loaded"
	if (xmlDoc.readyState==4) {
		// if "OK"
		if (xmlDoc.status==200) {
			response = xmlDoc.responseXML.documentElement;
		} else {
			//trouble loading
  		}
  	}
}

function switchBanner(num){
	for(i=1;i<6;i++){
		if(i == num){
			document.getElementById('link0'+i+'').className="selectednum";
		}else{
			document.getElementById('link0'+i+'').className = "number";
		}
	}
	document.getElementById("banner").style.background="url("+response.getElementsByTagName("image")[num-1].childNodes[0].nodeValue+")";
	document.getElementById("tabbody").innerHTML = response.getElementsByTagName("body")[num-1].childNodes[0].nodeValue;
	document.getElementById("turnText").innerHTML = response.getElementsByTagName("heading")[num-1].childNodes[0].nodeValue;
}

//product navigation menu list
function makeNavMenu() {
    if (!document.createElement) return;
    uls = document.getElementsByTagName("ul");
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.className == "navigatorlist") {
            processULELC(ul);
        }
    }
}

function processULELC(ul) {
    if (!ul.childNodes || ul.childNodes.length == 0) return;
    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
        var item = ul.childNodes[itemi];
        if (item.nodeName == "LI") {
            var a;
            var subul;
			subul = "";
            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
                var sitem = item.childNodes[sitemi];
                switch (sitem.nodeName) {
                    case "A": a = sitem; 
						break;
                    case "UL": subul = sitem;
						processULELC(subul);
						break;
                }
            }
            if (subul) {
                associateELC(a,subul);
            } else {
                a.parentNode.className = "page";
            }
        }
    }
}

function associateELC(a,ul) {
    if (a.parentNode.className.indexOf('open') == -1)
      a.parentNode.className = 'closed';
      a.onclick = function () {
        this.parentNode.className = (this.parentNode.className=='closed') ? "open" : "closed";
        return false;
    }
}


/*code to disable phone/address form elements*/
function formDisable(){
	if(document.getElementById("stype").checked){
		document.getElementById("saddress").disabled=false;
		document.getElementById("scity").disabled=false;
		document.getElementById("sstate").disabled=false;
		document.getElementById("szip").disabled=false;
		document.getElementById("sarea").disabled=true;
		document.getElementById("phonedisable").style.height = document.getElementById("phonefield").offsetHeight-2;
		document.getElementById("phonedisable").style.display = "block";
		document.getElementById("adddisable").style.display = "none";
	} else {
		document.getElementById("saddress").disabled=true;
		document.getElementById("scity").disabled=true;
		document.getElementById("sstate").disabled=true;
		document.getElementById("szip").disabled=true;
		document.getElementById("sarea").disabled=false;
		document.getElementById("phonedisable").style.display = "none";
		document.getElementById("adddisable").style.height = document.getElementById("addfield").offsetHeight-2;
		document.getElementById("adddisable").style.display = "block";
	}
}

/*code to fix ie6 and lower select menus overlaying divs*/
function hideShowSelectBox(menuLeftPos,menuTopPos,menuWidth,menuHeight){	
	for(slectLoop1=0;slectLoop1<document.forms.length;slectLoop1++){		
		for(slectLoop2=0;slectLoop2<document.forms[slectLoop1].elements.length;slectLoop2++){			
			if(document.forms[slectLoop1].elements[slectLoop2].type.indexOf("select") > -1){
				var tempSelectY = findGlobalPosY(document.forms[slectLoop1].elements[slectLoop2]);
				var tempSelectX = findGlobalPosX(document.forms[slectLoop1].elements[slectLoop2]);
				var tempSelectWidth = document.forms[slectLoop1].elements[slectLoop2].offsetWidth;
				var tempSelectHeight = document.forms[slectLoop1].elements[slectLoop2].offsetHeight;
				if((tempSelectY <= menuTopPos + menuHeight && tempSelectY + tempSelectHeight >= menuTopPos ) && ((tempSelectX <= menuLeftPos && menuLeftPos <= (tempSelectWidth + tempSelectX)) || ((menuLeftPos <= tempSelectX) && (menuLeftPos + menuWidth > tempSelectX)))){
					document.forms[slectLoop1].elements[slectLoop2].style.visibility = 'hidden';
				}else{
					document.forms[slectLoop1].elements[slectLoop2].style.visibility = 'visible';
				}
			}
		}
	}
}

function findGlobalPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function findGlobalPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
		curtop += 1;
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

function showAllSelectBoxes(){
	for(i=0;i<document.forms.length;i++){		
		for(j=0;j<document.forms[i].elements.length;j++){			
			if(document.forms[i].elements[j].type.indexOf("select") > -1){					
				document.forms[i].elements[j].style.visibility = 'visible';					
			}
		}
	}
}