var use_gebi = (document.getElementById) ? true : false;
var ie4flag = (document.all) ? true : false;
var ns4flag = (document.layers) ? true : false;
var ns6flag = (use_gebi && !document.all) ? true : false;

var subnavShowing = false;
var subnavExit = false;

var preloadFlag = false;

var x = 0;
var y = 0;

var subnavOffsetX = 0;

var conTableWidth = 0;

function WinOpen(myurl){
	VSWin=window.open(myurl, "VSWin", "width=600,height=500,status=no,resizable=yes,scrollbars=no");
	return true;
}

function PopWinOpen(base_name) {
        PopWin=window.open("popup_image.php?base_name="+base_name, "PopWin", "width=800,height=600,status=no,resizable=yes,scrollbars=yes");
        PopWin.focus();
        return true;
}

function setContentTableWidth() {
	conTableWidth = getWidth("contentTable");
	return true;
}

function repositionLayers() {
	setLayerPosition("subnav1");
	setLayerPosition("subnav2");
	setLayerPosition("subnav3");
	return true;
}

function repositionLayersTopNav() {
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			if (isNaN(document.documentElement.scrollLeft)) {
				subnavOffsetX = document.body.scrollLeft;
			} else {
				subnavOffsetX = document.body.scrollLeft + document.documentElement.scrollLeft;
			}
			}
		else {
			subnavOffsetX = window.pageXOffset;
			}
		}
	else if (document.all) {
		subnavOffsetX = document.body.scrollLeft;
		}
	else if (document.layers) {
		subnavOffsetX = window.pageXOffset;
		}
	setLayerPositionTopNav("subnav1");
	//window.status = "subnavOffsetX: " + subnavOffsetX + " / subnav1: " + x;
	setLayerPositionTopNav("subnav2");
	//window.status = window.status + " / subnav2: " + x;
	setLayerPositionTopNav("subnav3");
	//window.status = window.status + " / subnav3: " + x + " / subnavOffsetX: " + subnavOffsetX;
	return true;
}

function setLayerPosition(myobjectName) {
	var mylayerName = myobjectName + "Layer";
	if (getPosition(myobjectName)) {
		x = x + subnavOffsetX;
		// Logic to find position
		if (use_gebi && ns6flag) {
			// now set layer top and left accordingly
			document.getElementById(mylayerName).style.left = (x - 17) + "px";
			document.getElementById(mylayerName).style.top = (y + 23) + "px";
			}
		else if (use_gebi) {
			// now set layer top and left accordingly
			if (navigator.userAgent.indexOf("Mac") > -1) {
				document.all[mylayerName].style.pixelLeft = x - 15;
				document.all[mylayerName].style.pixelTop = y + 114;
			} else {
				document.all[mylayerName].style.pixelLeft = x - 16;
				document.all[mylayerName].style.pixelTop = y + 128;
				}
			}
		else if (ie4flag) {
			// now set layer top and left accordingly
			document[mylayerName].style.pixelLeft = x - 15;
			document[mylayerName].style.pixelTop = y + 24;
			}
		else {
			x=0; y=0; return false;
			}
		return true;
	}
}

function setLayerPositionTopNav(myobjectName) {
	var mylayerName = myobjectName + "Layer";
	if (getPositionTopNav(myobjectName)) {
		x = x + subnavOffsetX;
		// Logic to find position
		if (use_gebi && ns6flag) {
			// now set layer top and left accordingly
			parent.contentFrame.document.getElementById(mylayerName).style.left = (x - 17) + "px";
			parent.contentFrame.document.getElementById(mylayerName).style.top = (y + 23) + "px";
			}
		else if (use_gebi) {
			// now set layer top and left accordingly
			document.all[mylayerName].style.pixelLeft = x - 15;
			if (navigator.userAgent.indexOf("Mac") > -1) {
				document.all[mylayerName].style.pixelTop = y + 24;
			} else {
				document.all[mylayerName].style.pixelTop = y + 24;
				}
			}
		else if (ie4flag) {
			// now set layer top and left accordingly
			document[mylayerName].style.pixelLeft = x - 15;
			document[mylayerName].style.pixelTop = y + 24;
			}
		else {
			x=0; y=0;
			return false;
			}
		return true;
	}
}

function getPositionTopNav(myobjectName) {
	if (parent.topnavFrame) {
		// Logic to find position
		if (use_gebi && ie4flag) {
			x=setLayerPositionPageOffsetLeft(parent.topnavFrame.document.all[myobjectName]);
			}
		else if (use_gebi) {
			var o=parent.topnavFrame.document.getElementById(myobjectName);
			x=setLayerPositionPageOffsetLeft(o);
			}
		else if (ie4flag) {
			x=setLayerPositionPageOffsetLeft(parent.topnavFrame.document.all[myobjectName]);
			}
		else {
			x=0; y=-24; return false;
			}
	}
	y=-24;
	return true;
}

function getPosition(myobjectName) {
	//var x=0,y=0;
	// Logic to find position
 	if (use_gebi && ie4flag) {
		x=setLayerPositionPageOffsetLeft(document.all[myobjectName]);
		y=setLayerPositionPageOffsetTop(document.all[myobjectName]);
		}
	else if (use_gebi) {
		var o=document.getElementById(myobjectName);
		x=setLayerPositionPageOffsetLeft(o);
		y=setLayerPositionPageOffsetTop(o);
		}
 	else if (ie4flag) {
		x=setLayerPositionPageOffsetLeft(document.all[myobjectName]);
		y=setLayerPositionPageOffsetTop(document.all[myobjectName]);
		}
	else {
		x=0; y=0; return false;
		}
	return true;
}

function getWidth(myobjectName) {
	var w=0;
	// Logic to find position
 	if (use_gebi && ie4flag) {
		w=getWidthElementWidth(document.all[myobjectName]);
		}
	else if (use_gebi) {
		var o=document.getElementById(myobjectName);
		w=getWidthElementWidth(o);
		}
 	else if (ie4flag) {
		w=getWidthElementWidth(document.all[myobjectName]);
		}
	else {
		w=0; return 0;
		}
	return w;
}

// Functions for IE to get position of an object
function setLayerPositionPageOffsetLeft (el) {
	if (el != "" && el != null) {
		if (ie4flag) {
			if (el.offsetLeft) {
				var ol=el.offsetLeft;
				while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
			} else {
				var ol=0;
			}
		} else {
			var ol=el.offsetLeft;
			while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
		}
	} else {
		var ol=0;
	}
	return ol;
}
function setLayerPositionPageOffsetTop (el) {
	if (el != "" && el != null) {
		if (ie4flag) {
			if (el.offsetTop) {
				var ot=el.offsetTop;
				while((el=el.offsetParent) != null) { ot += el.offsetTop; }
			} else {
				var ot=0;
			}
		} else {
			var ot=el.offsetTop;
			while((el=el.offsetParent) != null) { ot += el.offsetTop; }
		}
	} else {
		var ot=0;
	}
	return ot;
}
function getWidthElementWidth (el) {
	var ot=el.width-screen.width;
	return ot;
	}

// layer hiding and showing
function showLayer(lay) {
	if (ie4flag) {document.all[lay].style.visibility = "visible";}
	if (ns4flag) {document.layers[lay].visibility = "show";}
	if (ns6flag) {document.getElementById(lay).style.visibility="visible";}
	return true;
}
function hideLayer(lay) {
	if (ie4flag) {document.all[lay].style.visibility = "hidden";}
	if (ns4flag) {document.layers[lay].visibility = "hide";}
	if (ns6flag) {document.getElementById(lay).style.visibility="hidden";}
	return true;
}

function showLayerMain(lay) {
	if (parent.contentFrame) {
		if (ie4flag) {parent.contentFrame.document.all[lay].style.visibility = "visible";}
		if (ns4flag) {parent.contentFrame.document.layers[lay].visibility = "show";}
		if (ns6flag) {parent.contentFrame.document.getElementById(lay).style.visibility="visible";}
	}
	return true;
}
function hideLayerMain(lay) {
	if (parent.contentFrame) {
		if (ie4flag) {parent.contentFrame.document.all[lay].style.visibility = "hidden";}
		if (ns4flag) {parent.contentFrame.document.layers[lay].visibility = "hide";}
		if (ns6flag) {parent.contentFrame.document.getElementById(lay).style.visibility="hidden";}
	}
	return true;
}

//subnav hiding and showing high-level mgmt
function showSubnav(lay) {
	hideLayer("subnav1Layer");
	hideLayer("subnav2Layer");
	hideLayer("subnav3Layer");
	showLayer(lay);
	subnavShowing = true;
	subnavExit = false;
	setTimeout("checkSubnav()",500);
	return true;
}

//periodic check to turn off subnav if user has left menu area
function checkSubnav() {
	if ((subnavShowing) && (subnavExit)) {
		hideLayer("subnav1Layer");
		hideLayer("subnav2Layer");
		hideLayer("subnav3Layer");
		subnavExit = false;
	} else if (subnavShowing) {
		setTimeout("checkSubnav()",500);
	}
	return true;
}

//subnav hiding and showing high-level mgmt
function showSubnavMain(lay) {
	parent.contentFrame.repositionLayersTopNav();
	hideLayerMain("subnav1Layer");
	hideLayerMain("subnav2Layer");
	hideLayerMain("subnav3Layer");
	showLayerMain(lay);
	subnavShowing = true;
	setTimeout("checkSubnavMain()",1500);
	return true;
}

function checkSubnavMain() {
	if ((subnavShowing) && (parent.contentFrame.subnavExit)) {
		hideLayerMain("subnav1Layer");
		hideLayerMain("subnav2Layer");
		hideLayerMain("subnav3Layer");
		parent.contentFrame.subnavExit = false;
	} else {
		setTimeout("checkSubnavMain()",1500);
	}
	//if (parent.contentFrame) {
	//	window.status = subnavShowing + " " + parent.contentFrame.subnavExit;
	//}
	return true;
}

//subnav entry highlight
function highlightSubnav(someObject) {
	subnavExit=false;
	if (ie4flag) {someObject.style.background = "#1a4d80";}
	if (ns4flag) {someObject.background = "#1a4d80";}
	if (ns6flag) {someObject.style.background = "#1a4d80";}
	return true;
}

//subnav entry unlight
function unlightSubnav(someObject) {
	subnavExit=true;
	if (ie4flag) {someObject.style.background = "#003366";}
	if (ns4flag) {someObject.background = "#003366";}
	if (ns6flag) {someObject.style.background = "#003366";}
	return true;
}


//new rollover image function
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

//rollover image function
function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
			if (subnavShowing) {
				hideLayer("subnav1Layer");
				hideLayer("subnav2Layer");
				hideLayer("subnav3Layer");
				subnavShowing = false;
			}
		}
	}
	return true;
}

//rollover image function
function changeImagesMain() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImagesMain.arguments.length; i+=2) {
			document[changeImagesMain.arguments[i]].src = changeImagesMain.arguments[i+1];
			if (subnavShowing) {
				hideLayerMain("subnav1Layer");
				hideLayerMain("subnav2Layer");
				hideLayerMain("subnav3Layer");
				subnavShowing = false;
			}
		}
	}
	return true;
}

//preload images after page done
function preloadImages() {
	if (document.images) {
		nav_overview_over = newImage("images/nav_overview-over.gif");
		nav_ancient_over = newImage("images/nav_ancient-over.gif");
		nav_1940s_over = newImage("images/nav_1940s-over.gif");
		nav_1960s_over = newImage("images/nav_1960s-over.gif");
		nav_1970s_over = newImage("images/nav_1970s-over.gif");
		nav_floorplan_over = newImage("images/nav_floorplan-over.gif");
		preloadFlag = true;
	}
	return true;
}

