


var timeout = null;
var delayedNav = null;
var delayedImage = null;
var nn4 = (navigator.appName == 'Netscape' && document.layers)? true: false;
var nn6 = (navigator.appName == 'Netscape' && document.getElementById)? true: false;
var ie4 = (navigator.appName == 'Microsoft Internet Explorer' && document.all)? true: false;
var ie5 = (navigator.appName == 'Microsoft Internet Explorer' && document.all)? true: false;
var ie6 = (navigator.appName == 'Microsoft Internet Explorer' && document.getElementById)? true: false;

var timeout = null;
var delayedNav = null;
var leftDash = null;
var rightDash = null;
var lockedImageId = null;

/*
Clears the delayed nav, if the delayed nav is not the currently active nav
Clears the delay
Toggles specified nav images on and shows the sub nav
*/
function showNav(objId,positionerId,offsetX,offsetY){
	if(delayedNav != objId){
		clearNav();
	}
	
	clearDelay();
	
	toggleDivVisibility(objId,'visible',positionerId,offsetX,offsetY);
	//if (imageId.length > 0) toggleImageNav(imageId,'on');
	
}

/*
Sets the timeout for a nav to be hidden
*/
function delayHide(objId){
	
	clearDelay();
	timeout = setTimeout("hideNav('"+objId+"');",500);
	delayedNav = objId;
	
}

/*
Toggles specified nav images off and hides the sub nav
*/
function hideNav(objId){
	
	clearDelay();
	
	//toggleImage(objId,objId+'_off');	
	toggleDivVisibility(objId,'hidden',null,null,null);

}

/*
Clears the timeout, if it exists
*/
function clearDelay(){

	if(timeout){ 
		
		clearTimeout(timeout);
		timeout = null;
		delayedNav = null;
	}
	
}

/*
Immediately clears a pending "hide nav"
*/
function clearNav(){
	
	if(delayedNav){
		hideNav(delayedNav);
	}
	
}

/*
Toggles the source of a provided image with the source of a provided image object
Expects the name of the image to be toggled and the name of the image object to swapped in
Checks the name of the image to be swapped against the "locked" image variable before proceeding
*/
function toggleImage(targetObjId,sourceObj){

	if(targetObjId != lockedImageId){
	
		var imgObj = getObject(targetObjId);
		
		if(imgObj && eval("typeof " + sourceObj + "!= 'undefined'")){
			
			eval("imgObj.src = " + sourceObj + ".src");
			//alert(eval(sourceObj + ".src"));
		
		}
	
	}
}

/*
Toggles an image and sets it as "locked" to prevent subsequent mouseover/outs from toggling it's source
*/
function lockImage(targetObjId,sourceObj){
	
	toggleImage(targetObjId,sourceObj);
	lockedImageId = targetObjId;
	
}

/*
The name says it all
*/
function toggleDivVisibility(objId,myVisibility,positionerId,offsetX,offsetY){

	var divObj = getObject(objId);
	
	if(divObj){
	
		var myStyle = divObj.style? "style.": "";
		
		if(positionerId){
		
			var positionerObj = getObject(positionerId);
		
			if(divObj.style)	{
				positionLeft = "offsetLeft";
				positionTop = "offsetTop";
				styleLeft = "left";
				styleTop = "top";
				myPx = "px";
				myStyle = "style.";
			} else {
				positionLeft = "x";
				positionTop = "y";
				styleLeft = "x";
				styleTop = "y";
				myPx = ""
				myStyle = "";
			}
			
			var fullOffsetLeft = eval("positionerObj." + positionLeft); //divPosition.offsetLeft;
			var parentElement = positionerObj.offsetParent;
		
			while(parentElement){
				fullOffsetLeft += eval("parentElement." + positionLeft);
				parentElement = parentElement.offsetParent;
			}
			
			var fullOffsetTop = eval("positionerObj." + positionTop); //divPosition.offsetTop;
			var parentElement = positionerObj.offsetParent;
		
			while(parentElement){
				fullOffsetTop += eval("parentElement." + positionTop);
				parentElement = parentElement.offsetParent;
			}
			
			fullOffsetLeft += offsetX;
			fullOffsetTop += offsetY;
			
			eval("divObj." + myStyle + styleLeft + " = '" + fullOffsetLeft + myPx + "'");
			eval("divObj." + myStyle + styleTop + " = '" + fullOffsetTop + myPx + "'");
		
		}
	
		eval("divObj." + myStyle + "visibility = myVisibility");
		
	}

}

/*
Preloads any image in a document that contains a name and id attribute 
Expects images to be named with a anyname_on.xxx anyname_off.xxx convention
Will produce two image objects for each document image, named imagename_on and imagename_off
*/
function preload() {

	var imgArray = new Array;

	if(document.layers)	{
	
		for(var index=0;index<document.images.length;index++){
			imgArray[imgArray.length] = document.images[index];
		}
		
		for(index=0;index<document.layers.length;index++){
			
			if(eval("document." + document.layers[index].id)){
				var layerImgArray = eval("document." + document.layers[index].id + ".document.images");
			}
			else{
				var layerImgArray = new Array;
			}
						
			for(var index2=0;index2<layerImgArray.length;index2++){
				imgArray[imgArray.length] = layerImgArray[index2];
			}
			
		}
		
	} else {
	
		imgArray = document.images;
		
	}
	
	for(imgIndex=0; imgIndex<imgArray.length; imgIndex++){

		if(validToPreload(imgArray[imgIndex])){

			var thisName = imgArray[imgIndex].name;
			var thisOnSrc = imgArray[imgIndex].src.replace(/off\.([a-z]{3})$/,"on.$1");
			var thisOffSrc = imgArray[imgIndex].src.replace(/on\.([a-z]{3})$/,"off.$1");
			
			createImgObj(thisName + "_on",thisOnSrc);
			createImgObj(thisName + "_off",thisOffSrc);
												
		}
		
	}
}

/*
Creates an image object of a provided name and set it's source to a provided source
*/
function createImgObj(objName,imgSrc){
	
	eval(objName + " = new Image()");
	eval(objName + ".src = imgSrc");
	
}

/*
Locates a document object of the provided id and returns the object
layers, document.all and getElementById compatible
*/
function getObject(objIdentifier){
	
	var myObj = null;
	
	if(document.layers)	{
		
		myObj = eval("document."+ objIdentifier);
		
		if(!myObj){
		
			for(var index=0;index<document.layers.length;index++){
				
				if(eval("document." + document.layers[index].id) && eval("document." + document.layers[index].id + ".document."+ objIdentifier)){
				
					myObj = eval("document." + document.layers[index].id + ".document."+ objIdentifier);
				
				}
			}
		
		}
	}
	else if (document.getElementById) {
		myObj = eval("document.getElementById('" + objIdentifier + "')");
	}
	else{
		myObj = eval("document.all['" + objIdentifier + "']");
	}
	
	return myObj;
}

/*
Checks an image object for name and id (if getElementById applies)
*/
function validToPreload(imgObj){

	var valid = false;
	var nameExcludeRe = /_noPreload$/;

	if(imgObj.name && imgObj.name.length && !nameExcludeRe.test(imgObj.name)){
		valid = true;
	}
	
	if(document.getElementById && (!imgObj.id || !imgObj.id.length || nameExcludeRe.test(imgObj.id))){
		valid = false;
	}
	
	return valid;

}

// status flags for cleared text fields
var zipCleared = false;
var emailCleared = false;
var styleCleared = false;

/* THIS IS TEST SCRIPT FOR DHTML ROLLOVERS 

function document_onmouseover()
{
	if (event) {
		var srcElement = event.srcElement;
		
		if (srcElement.tagName == "TD" && typeof(srcElement.RollOver) != "undefined")
		{
		srcElement.style.backgroundColor = "#C2D4E3";
		srcElement.style.color = "#6694B9";
		}
	}
}

function document_onmouseout()
{
	if (event) {
		var srcElement = event.srcElement;
		
		if (srcElement.tagName == "TD" && typeof(srcElement.RollOver) != "undefined")
		{
		srcElement.style.backgroundColor = "#6694B9";
		srcElement.style.color = "#FFFFFF";
		}
	}
}
document.onmouseover = document_onmouseover;
document.onmouseout = document_onmouseout;
*/

function goPage(src)
{
window.location.href = src;
}

/* ********** popup ********** */
	


function openPop(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/* ********** end popup ********** */