var isDOM = (document.getElementById)?true:false;
var isIE4 = (document.all)?true:false;
var isNS4 = (document.layers)?true:false;

var divLayer = "default";		//currently active layer
var thisLayer = "";				//default layer (set by nav SSI)

///////////////////////
// swapImage()
// - used to swap a named image's src attribute for another
// - arguments - unlimited number of image name/source pairs
// - example - swapImage("foo","/bin/images/foo.gif")
///////////////////////
function swapImage() {
	if (!init) return;
	
	if (document.images) {
		for(var i=0;i<arguments.length;i++) {
			document.images[arguments[i]].src = arguments[i+1];
			++i;
		}
	}
}

///////////////////////
// swapDivImage()
// - used to swap a named image's src attribute for another within a DIV layer
// - arguments - unlimited number of image name/source pairs
// - example - swapImage("foo","/bin/images/foo.gif")
///////////////////////
function swapDivImage() {
	if (!init) return;
	
	if (document.images) {
		for(var i=0;i<arguments.length;i++) {
			if (isNS4) {
				document.layers[divLayer].document.images[arguments[i]].src = arguments[i+1];
			} else {
				document.images[arguments[i]].src = arguments[i+1];
			}
			++i;
		}
	}
}

///////////////////////
// showDiv(id)
// - used to make a hidden DIV layer visible & highlight the correct top-level nav image
// - arguments - ID of DIV layer
// - example - showDiv("about")
///////////////////////
function showDiv(id) {
	if (!init) return;
	
	// hide the previous layer
	if ((divLayer!="default")&&(divLayer!=thisLayer)) {
		swapImage("btn_"+divLayer,"/bin/images/btn_"+divLayer+".gif");
		hideDiv(divLayer);
	}
	
	divLayer = id;
	swapImage("btn_"+divLayer,"/bin/images/btn_"+divLayer+"_hl.gif");
	
	var obj = (isDOM)?document.getElementById(id):(isIE4)?document.all[id]:(isNS4)?document.layers[id]:null;
	if ((obj!=null)&&(divLayer!=thisLayer)) {
		if (isNS4) obj.style = obj;
		obj.style.visibility = (isNS4)?"show":"visible";
	}
}

///////////////////////
// hideDiv(id)
// - used to make a visible DIV layer hidden
// - arguments - ID of DIV layer
// - example - hideDiv("about")
///////////////////////
function hideDiv(id) {
	if (!init) return;
	
	var obj = (isDOM)?document.getElementById(id):(isIE4)?document.all[id]:(isNS4)?document.layers[id]:null;
	if (obj!=null) {
		if (isNS4) obj.style = obj;
		obj.style.visibility = (isNS4)?"hide":"hidden";
	}
}

if (isNS4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = checkNavZone;



// the following four variables define the nav "zone"
var navT = 61;		// top
var navB = 222;		// bottom
var navL = 42;		// left
var navR = 749;		// right
var scrollT = 0;

/////////////////////////
// changeZone()
// - used to adjust nav target "zone" when the user scrolls the browser window
////////////////////////
function changeZone(){
	if (document.body.scrollTop>scrollT) {
		navT -= document.body.scrollTop-scrollT;
		navB -= document.body.scrollTop-scrollT;
		scrollT = document.body.scrollTop
	} else if (document.body.scrollTop<scrollT) {
		navT += scrollT-document.body.scrollTop;
		navB += scrollT-document.body.scrollTop;
		scrollT = document.body.scrollTop
	}
}
window.onscroll = changeZone;
	
///////////////////////
// checkNavZone(arg)
// - used to make a visible DIV layer hidden when outside of the nav "zone"
// - arguments - the onmousemove event object 
///////////////////////
function checkNavZone(arg) {
	if (!init) return;
	
	e = (arg)?arg:event;
	mX = (e.pageX)?e.pageX:e.clientX;
	mY = (e.pageY)?e.pageY:e.clientY;

	if (((mX<navL)||(mX>navR))||((mY<navT)||(mY>navB))) {
		if ((divLayer!="default")&&(divLayer!=thisLayer)) {
			hideDiv(divLayer);
			swapImage("btn_"+divLayer,"/bin/images/btn_"+divLayer+".gif");
			divLayer="default";
		}
	}
}

///////////////////////
// hideNavMenu()
// - used by marketseg events to hide overlapping nav menu object
///////////////////////
function hideNavMenu() {
	if ((divLayer!="default")&&(divLayer!=thisLayer)) {
		hideDiv(divLayer);
		swapImage("btn_"+divLayer,"/bin/images/btn_"+divLayer+".gif");
		divLayer="default";
	}
}


///////////////////////
// preloadImages()
// - used to preload images to the browser's cache
// - arguments - unlimited number of image src attributes
// - example - preloadImages("/bin/images/foo.gif","/bin/images/bar.gif")
///////////////////////
function preloadImages() {
	var imgArray = new Array;
	for(var i=0;i<arguments.length;i++) {
		imgArray[i] = new Image;
		imgArray[i].src = arguments[i];
	}
	return imgArray;
}

var init = false;
///////////////////////
// initialize()
// - function called by browser when all of the page elements have loaded
// - prevents image or layer swapping until then
///////////////////////
function initialize() {
	var tempArray = preloadImages(
	);
	
	init = true;
}
window.onload = initialize;

// fixes a resize/DHTML issue with Netscape 4.x browsers
if (isNS4) {
	origWinWidth = window.innerWidth;
	origWinHeight = window.innerHeight;
	
	window.onresize = function() {
		currWinWidth = window.innerWidth;
		currWinHeight = window.innerHeight;
		if((origWinWidth != currWinWidth) || (origWinHeight != currWinHeight)) location.reload();
	}
}

