// set DHTML variables

var isDHTML = 0;
var isID = 0;
var isAll = 0;
var isLayers = 0;

if (document.getElementById) {isID = 1; isDHTML = 1;}
else {
if (document.all) {isAll = 1; isDHTML = 1;}
else {
	browserVersion = parseInt(navigator.appVersion);
	if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {
		isLayers = 1; isDHTML = 1;
	}
}}


// setup Netscape resize function 
if (document.layers) {
	origWidth = innerWidth;
	origHeight = innerHeight;
}

if (document.layers) onresize = reloadPage;

function reloadPage() {
	if (innerWidth != origWidth || innerHeight != origHeight) location.reload();
}


// findDOM
function findDOM(objectID,withStyle) {
	if (withStyle == 1) {
		if (isID) { return (document.getElementById(objectID).style) ; }
		else { 
			if (isAll) { return (document.all[objectID].style); }
		else {
			if (isLayers) { return (document.layers[objectID]); }
		};}
	}
	else {
		if (isID) { return (document.getElementById(objectID)) ; }
		else { 
			if (isAll) { return (document.all[objectID]); }
		else {
			if (isLayers) { return (document.layers[objectID]); }
		};}
	}
}

// shows or hides a layer
function setVisibility(objectID,state) {
	var dom = findDOM(objectID,1);
	dom.visibility = state;
}

// toggles visibility of a layer
function toggleVisibility(objectID) {
	var dom = findDOM(objectID,1);
	state = dom.visibility;
	if (state == 'hidden' || state == 'hide' )
		dom.visibility = 'visible';
	else {
		if (state == 'visible' || state=='show')
			dom.visibility = 'hidden'; 
	else dom.visibility = 'visible';
	}
}


// setup popup variables

var popupLastButtonID = '';
var popupLastButtonURL = '';
var popupLastMenuID = '';
var popupHideDelay = 1000; // default, in milliseconds
var popupOkToHide = false;
var popupTimeoutID = null;

function popupShow(buttonid, popbuttonurl, popid) {

	// set variables
	var btn = findDOM(buttonid,0);
	
	// hide the last popup menu
	popupHideLast();
	// rollover button
	popupLastButtonURL = btn.src; // get it before we change it!
	btn.src = popbuttonurl;
	// show the popup
	setVisibility(popid, 'visible');
	
	// set here so they aren't used when we call popupHideLast()
	popupLastButtonID = buttonid;
	popupLastMenuID = popid;
	
	
}



function popupSetHideDelay(msecs) {
	popupHideDelay = msecs;
}


function popupDelayHide() {
	if (popupOkToHide) {
		popupHideLast();
	}
	else {
		popupOkToHide = true;
		popupTimeoutID = setTimeout('popupDelayHide();', popupHideDelay);
	}
}



function popupCancelHide() {
	if (popupOkToHide) {
		if (popupTimeoutID != null) clearTimeout(popupTimeoutID);
		popupOkToHide = false;
	}
}



function popupHideLast() {

	if (popupLastButtonID != '' && popupLastButtonURL != '') {
		var btn = findDOM(popupLastButtonID,0);
		btn.src = popupLastButtonURL;
		popupLastButtonID = '';
		popupLastButtonURL = '';
	}
	
	if (popupLastMenuID != '') {
		setVisibility(popupLastMenuID, 'hidden');
		popupLastMenuID = '';
	}
	
	popupCancelHide();

}


// get absolute left position (by adding all parent's offsets as well)
function findAbsLeft(objectID) { var elt = findDOM(objectID,0); return (elt.x) ? elt.x : findAbsPos(elt,"Left"); }

// get absolute top position (by adding all parent's offsets as well)
function findAbsTop(objectID) { var elt = findDOM(objectID,0); return (elt.y) ? elt.y : findAbsPos(elt,"Top"); }

// get absolute position (by adding all parent's offsets as well)
function findAbsPos(objectID,which) {
	var elt = findDOM(objectID,0);
	iPos = 0;
	while (elt != null) {
		iPos += elt["offset" + which];
		// elt = elt.offsetParent;
		elt = elt.parentElement;
	}
	return iPos;
}



// find right position of an object (relative to any parent options)
function findRight(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (dom.left)
		return (domStyle.left + domStyle.clip.width);
	if (domStyle.pixelLeft)
		return (domStyle.pixelLeft + dom.offsetWidth);
	if (dom.offsetLeft)
		return (dom.offsetLeft + dom.offsetWidth);
	return (null);
}

// find bottom position of an object (relative to any parent options)
function findBottom(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.top)
		return (domStyle.top + domStyle.clip.height);
	if (domStyle.pixelTop)
		return (domStyle.pixelTop + dom.offsetHeight);
	if (dom.offsetTop)
		return (dom.offsetTop + dom.offsetHeight);	
	return (null);
}

// find left position of an object
function findLeft(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.left)
		return domStyle.left;
	if (domStyle.pixelLeft)
		return domStyle.pixelLeft;
	if (dom.offsetLeft)
		return dom.offsetLeft;
	return (null);
}

// find top position of an object
function findTop(objectID) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.top)
		return domStyle.top;
	if (domStyle.pixelTop)
		return domStyle.pixelTop;
	if (dom.offsetTop)
		return dom.offsetTop;
	return (null);
}

// find width of an object
function findWidth(objectID) {
	var dom = findDOM(objectID,0);
	if (dom.offsetWidth) 
		return dom.offsetWidth;
	if (dom.clip.width)
		return dom.clip.width;
	return (null);
}

// find height of an object
function findHeight(objectID) {
	var dom = findDOM(objectID,0);
	if (dom.offsetHeight) 
		return dom.offsetHeight;
	if (dom.clip.height)
		return dom.clip.height;
	return (null);
}

// change window size to a new width and height
function changeWindowSize(windowWidth,windowHeight) {
	if (window.outerWidth) {
		resizeTo(windowWidth,windowHeight);
	}
}

// resize window by width and height offsets
function magnifyWindow(dWindowWidth,dWindowHeight) {
	if (window.outerWidth) {
		resizeBy(dWindowWidth,dWindowHeight);
	}
}

// resize window to full screen
function fillScreen() {
	if (window.outerWidth) {
		windowWidth = screen.width;
		windowHeight = screen.height;
		moveTo(0,0);
		resizeTo(windowWidth,windowHeight);
	}
}

// move object to an x,y position
function moveObjectTo(objectID,x,y) {
	var domStyle = findDOM(objectID,1);
	domStyle.left = x;
	domStyle.top = y;
}

// move object by a certain amount
function moveObjectBy(objectID,deltaX,deltaY) {
	var domStyle = findDOM(objectID,1);
	var dom = findDOM(objectID,0);
	if (domStyle.pixelLeft) {
		domStyle.pixelLeft += deltaX;
		domStyle.pixelTop += deltaY;
	}
	else {
		if (dom.offsetLeft != null) {
			var plusLeft = dom.offsetLeft;
			var plusTop = dom.offsetTop;
			domStyle.left = deltaX + plusLeft;
			domStyle.top = deltaY + plusTop;
		}
	else dom.moveBy(deltaX,deltaY);
	}
}
