function GetObjectRef (ObjId) {
	if (document.getElementById) {
		return document.getElementById (ObjId);
	}
	else if (document.all) {
		return document.all[ObjId];
	}
	else {
		return null;
	}
}
function GetParentObjectRef (ObjId) {
	return GetObjectRef (ObjId.substring (3, ObjId.length));
}

	function toggle(theDiv) {
     var elem = document.getElementById(theDiv);
     elem.style.display = (elem.style.display == "block")?"none":"block";
}




function ValidateQuickSearchForm (thisForm) {
	if (thisForm.keywords.value == "") { 
		alert("Please enter one or more keyword."); 
		return false; 
	} else {
	thisForm.action="/searchResults.jsp?search=" + thisForm.keywords.value;
	}
}


function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
	document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);



/* Start: Patch Button's StyleSheet for Mac IE */
	if (document.all && navigator.userAgent.indexOf("Mac") != -1) {
		var ThisStyleSheetRules = document.styleSheets[1].rules
		for (var i=0; i<ThisStyleSheetRules.length; i++) {
			if (ThisStyleSheetRules[i].selectorText.replace (/\*/g, "") == "#TopOverlaidLayer .button") {
				ThisStyleSheetRules[i].style.height = "15px";
			}
		}
	}
/* End: Patch Button's StyleSheet for Mac IE */




/* START: Do not change these scripts */
	function GetObjRef (objId) {
		var returnObj = null;
		if (document.getElementById) {
			returnObj = document.getElementById(objId);
		}
		else if (document.all) {
			returnObj = document.all[objId];
		}
		return returnObj;
	}
	
	function ShowObj (objId) {
		var returnObj = GetObjRef (objId);
		if (returnObj && returnObj.style) {
			returnObj.style.display = "block";
		}
	}
	function HideObj (objId) {
		var returnObj = GetObjRef (objId);
		if (returnObj && returnObj.style) {
			returnObj.style.display = "none";
		}
	}
	function ToggleObj (objId) {
		var returnObj = GetObjRef (objId);
		if (returnObj && returnObj.style) {
			if (returnObj.style.display == "block") {
				returnObj.style.display = "none";
			}
			else {
				returnObj.style.display = "block";
			}
		}
	}

	function GetTarget (e) {
		if (!e) {e = window.event;}
		if (!e) {return null;}
		var target;
		if (e.target) {
			target = e.target;
		}
		else if (e.srcElement) {
			target = e.srcElement;
		}
		return target;
	}
	function ReturnTarget (e, returnValue) {
		if (!e) {e = window.event;}
		if (!e) {return null;}
		var target;
		if (e.preventDefault && returnValue == false) {
			e.preventDefault ();
		}
		else if (e.returnValue) {
			e.returnValue = returnValue;
		}
		else {
			return returnValue;
		}
	}
/* END: Do not change these scripts */

var isSelectorMenuShown = false;
function ToggleOrderTitleServices (e) {
	if (!e) {
		e = window.event;
	}
	e.cancelBubble = true;
	var thisImage = GetObjRef ("LeftOrderServicesHere");
	if (isSelectorMenuShown == false) {
		var img = new Image ();
		img.src = thisImage.src.replace ("-Inactive.gif", "-Active.gif");
		thisImage.src = img.src;
		ShowObj('OrderOptions');
		isSelectorMenuShown = true;
	}
	else {
		var img = new Image ();
		img.src = thisImage.src.replace ("-Active.gif", "-Inactive.gif");
		thisImage.src = img.src;
		HideObj('OrderOptions');
		isSelectorMenuShown = false;
	}
}

function GlobalInit () {
	var objQuickFindSelect = document.forms["QuickSearchForm"].QuickFind;
	if (objQuickFindSelect) {
			objQuickFindSelect.onchange = QuickFind_OnChange;
	}
}

function QuickFind_OnChange (e) {
	var target = GetTarget (e);
	if (target && target.value && target.value != "#") {
		location.href = target.value;
	}
}


function PrintThisPage (Id) {
	var url = "/printwindow.cms?";
	if (location.pathname.indexOf ("article.cms") > -1) {
		url = url + "articleId=" + Id + "&pageType=article";
	}
	else if (location.pathname.indexOf ("news.cms") > -1) {
		url = url + "newsId=" + Id + "&pageType=news";
	}
	else if (location.pathname.indexOf ("department.cms") > -1) {
		url = url + "articleId=" + Id + "&pageType=article";
	}
	var printWin = window.open (url,'printWin','status=yes,scrollbars=yes,resizable=yes,width=520,height=400');
	printWin.focus ();
	return false;
}
function PrintWindow () {
	if (window.print) {
		window.print ();
	}
	return false;
}

function EmailToAFriend () {
   if (document.forms["EmailFriendForm"]) {
      document.forms["EmailFriendForm"].submit ();
      return false;
   }
}

function mailToObfuscate(acc, domain) {
location.href = "mailto:" + acc + "@" + domain;
}
 /* Begin TopNav */

var CSSBuffer, doc = window.document;

function parseStylesheets() {
	var rules, sheet, sheets = doc.styleSheets;
	var bufferIndex = sheets.length;	
	var head = doc.getElementsByTagName('head')[0];
	var buffer = doc.createElement('style');

	buffer.setAttribute('media', 'screen');
	buffer.setAttribute('type', 'text/css');
	head.appendChild(buffer);
	CSSBuffer = sheets[bufferIndex];

	for(var i=0; i<sheets.length -1; i++) {
		sheet = sheets[i];
		if(!sheet.media || sheet.media == 'screen') {
			rules = sheet.rules;
			for(var j=0; j<rules.length; j++) {
				parseCSSRule(rules[j]);
			}
		}
	}
}
	function parseCSSRule(rule) {
		var select = rule.selectorText, style = rule.style.cssText;
		if(!select || !style || select.indexOf(':hover') < 0) return;
		var newSelect = select.replace(/\:hover/g, '.onHover');
		CSSBuffer.addRule(newSelect, style);
		
		var affected = select.replace(/\:hover.*$/g, '');
		var elements = getElementsBySelect(affected);
		for(var i=0; i<elements.length; i++) {
			if(elements[i].nodeName == 'A') continue;
			new HoverElement(elements[i]);
		}
	}

/**
 *	HoverElement
 *	-------------------------
 *	applies the hover
 */

function HoverElement(element) {
	if(element.isHoverElement) return;
	element.isHoverElement = true;
	element.attachEvent('onmouseover', 
		function() { element.className += ' onHover'; });

	element.attachEvent('onmouseout', 
		function() { element.className = element.className.replace(/onHover/g, ''); });
}

/**
 *	domFinder
 *	-----------------------------------
 *	returns list of elements based on css selector
 */

function getElementsBySelect(rule) {
	var nodeList = [doc], sets = rule.split(' ');
	for(var i=0; i<sets.length; i++) {
		nodeList = domFinder.filterNodes(sets[i], nodeList);
	}	return nodeList;
}

var domFinder = {
	findNodes:function(tag, docs) {
		var res, nodes = [];
		for(var i=0; i<docs.length; i++) {
			res = docs[i].getElementsByTagName(tag);
			for(var j=0; j<res.length; j++) nodes[nodes.length] = res[j];
		}	return nodes;
	},

	filterNodes:function(select, docs) {
		var filtered = [], nodes,rule,atr,s = (/#|\./).exec(select);
		if(!s) return this.findNodes(select, docs);
		nodes = this.findNodes((rule = select.split(s))[0], docs);
		atr = (s == '#')? 'id':'className';
		for(var i=0; i<nodes.length; i++) {
			if(new RegExp('(^|\\s)' +  rule[1] + '(\\s|$)').exec(nodes[i][atr]))
				filtered[filtered.length] = nodes[i];
		}	return filtered;
	}
}
/* End Top Nav */

function setCookie(name, value) {
    var today = new Date();
    var expiry = new Date(today.getTime() + 24 * 60 * 60 * 1000);
    if (value != null) {
        document.cookie=name + '=' + escape(value) + '; expires=' + expiry.toGMTString() + ';path=/';
    }   
    return document.cookie;
}   
function getCookie(name) {
    var theCookie = document.cookie;
    var index = theCookie.indexOf(name + '=');
    if (index == -1) return ''; 
    index = theCookie.indexOf('=', index) + 1; // first character
    var endstr = theCookie.indexOf(';', index);
    if (endstr == -1) endstr = theCookie.length; // last character
    return unescape(theCookie.substring(index, endstr));
}   
function setNav(id) {
    setCookie('navid',id);
}
function showNav(ele) {
    if (ele) {
     ele.innerHTML = '&rarr;';
    } else {
    var id =getCookie('navid');
    if (document.getElementById(id)) {
        var nav = document.getElementById(id);
        nav.innerHTML = '&rarr;';
    }
    }
}
var done = new Array();
function loadsubnav(id) {
    if (!id) {
        var tds = document.getElementsByTagName('td');
        for (var i=tds.length-1;i>=0;i--) {
            if(tds[i] && document.getElementById('divsubnav'+tds[i].id) && document.getElementById('divsubnav'+tds[i].id) != 'inline') {
                //alert('td '+tds[i].id);
                loadsubnav(tds[i].id);
            }
        }
        return;
    }
    if (done[id] > 0) { return }
    if (document.getElementById('divsubnav'+id) && document.getElementById('subnavcell'+id)) {
        //alert(id+'\n'+document.getElementById('divsubnav'+id) +'\n'+ document.getElementById('subnavcell'+id));
        var ele = document.getElementById('divsubnav'+id).cloneNode(true);

        document.getElementById('subnavcell'+id).appendChild(ele);
        //document.getElementById('divsubnav'+id).parentNode.removeChild(document.getElementById('divsubnav'+id));
        ele.style.display='inline';
        done[id] = 1;
        var tds = ele.getElementsByTagName('td');
        for (var i=tds.length-1;i>=0;i--) {
            if(tds[i] && document.getElementById('divsubnav'+tds[i].id) && document.getElementById('divsubnav'+tds[i].id) != 'inline') {
                //alert('td '+tds[i].id);
                loadsubnav(tds[i].id);
            }
        }
    }    
    if (document.getElementById('subnavcell'+id)) {
        var thisid = document.getElementById('subnavcell'+id).parentNode.parentNode.parentNode.parentNode.parentNode.id.substr(9);
        var previd = 0;
        var level = 0;
        //alert(previd+' : '+thisid);
        while (previd != thisid && document.getElementById('subnavcell'+thisid)) {
            previd = thisid;
            thisid = document.getElementById('subnavcell'+thisid).parentNode.parentNode.parentNode.parentNode.parentNode.id.substr(9);
            level++;//alert('level '+level+'\n'+thisid+' : '+previd);
            //if (level > 1) {
                //document.getElementById('subnavcell'+id).parentNode.removeChild(document.getElementById('subnavcell'+id));
            //}
        }
        //alert('final level '+level);
    }

}



function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}