//JavaScript document
//A custom API for positionable elements
var	isCSS;
var	isIE4;
var isNN;
var	isIE6CSS;
var isW3C;

function defineBrowser(){
	if(document.images){ //Sets all global variables needed for crossbrowser functioning
		isCSS = (document.body && document.body.style)? true : false;
		isW3C = (isCSS && document.getElementById)? true : false;
		isIE4 = (isCSS && document.all)? true : false;
		isNN = (window.getComputedStyle && document.getElementById)? true : false;
		isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0)? true : false;
	}
	if(!isW3C && !isIE4){ //Redirect user to default page for browsers that doesn't support DHTML
		top.location.href = "#";
	}	
//Generate the array of animatiing menus
   	menuList = new Array(new AnimateMenu(getRawObject("MenuItem1"), 0), new AnimateMenu(getRawObject("MenuItem2"), 1), new AnimateMenu(getRawObject("MenuItem3"), 2), new AnimateMenu(getRawObject("MenuItem4"), 3), new AnimateMenu(getRawObject("MenuItem5"), 4));

}

function seekLayer(doc, name){
	var theObj;
	for(var i=0; i<doc.layers.length; i++){
		if(doc.layers[i].name == name){
			theObj = doc.layers[i];
			break;
		}
		if(doc.layers[i].document.layers.length > 0){
			theObj = seekLayer(doc.layers[i].document, name)
		}
	}
	return theObj;
}
function getRawObject(obj){
	var theObj;
	if(typeof obj == "string"){
		if(isW3C){
			theObj = document.getElementById(obj);
		} else if(isIE4){
		 	theObj = document.all(obj);
		} else if(isNN){
		 	theObj = seekLayer(document, obj);
		} 
	} else {
		theObj = obj;
	}
	return theObj;
}
// Returns style property as object
function getObject(obj){
	var theObj =  getRawObject(obj);
	if(theObj && isCSS){
		theObj = theObj.style;
	}
	return theObj;
}
// Position an object at a specific pixel coordinate
function shiftTo(obj, x, y){
	var theObj =  getObject(obj);
	if(theObj){
		if(isCSS){
		// Equalize incorrect numeric value type
			var units = (typeof theObj.left == "string")? "px" : 0;
			theObj.left = x + units;
			theObj.top = y + units;
		} else if(isNN){
		 	theObj.moveTo(x, y);
		} 
	}
}
// Move an object by x and/or y pixels
function shiftBy(obj, deltaX, deltaY){
	var theObj =  getObject(obj);
	if(theObj){
		if(isCSS){
		// Equalize incorrect numeric value type
			var units = (typeof theObj.left == "string")? "px" : 0;
			theObj.left = getObjectLeft(obj) + deltaX + units;
			theObj.top = getObjectTop(obj) + deltaY + units;
		} else if(isNN){
		 	theObj.moveBy(deltaX, deltaY);
		} 
	}
}
function setZIndex(obj, zOrder){
	var theObj =  getObject(obj);
	if(theObj){
		if(isCSS){
		 	theObj.zIndex = zOrder;
		} 
	}
}
function setBGColor(obj, color){
	var theObj =  getObject(obj);
	if(theObj){
		if(isNN){
			theObj.bgColor = color;
		} else if(isCSS){
		 	theObj.backgroundColor = color;
		} 
	}
}
function show(obj){
	var theObj =  getObject(obj);
	if(theObj){
	 	theObj.visibility = "visible";
	}
}
function hide(obj){
	var theObj =  getObject(obj);
	if(theObj){
	 	theObj.visibility = "hidden";
	}
}
function getObjectLeft(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(document.defaultView){
		var style = document.defaultView;
		var cssDecl = style.getComputedStyle(elem, "");
		result = cssDecl.getPropertyValue("left");
	} else if(elem.currentStyle){
	 	result = elem.currentStyle.left; 
	} else if(elem.style){
	 	result = elem.style.left; 
	} else if(isNN) {
		result = elem.left;
	}
	return parseInt(result);
}
function getObjectTop(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(document.defaultView){
		var style = document.defaultView;
		var cssDecl = style.getComputedStyle(elem, "");
		result = cssDecl.getPropertyValue("top");
	} else if(elem.currentStyle){
	 	result = elem.currentStyle.top; 
	} else if(elem.style){
	 	result = elem.style.top; 
	} else if(isNN) {
		result = elem.top;
	}
	return parseInt(result);
}
function getObjectWidth(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(elem.offsetWidth){
		if(elem.scrollWidth && (elem.offsetWidth != elem.scrollWidth)){
			result = elem.scrollWidth;
		} else {
			result = elem.offsetWidth;
		}
	} else if(elem.clip && elem.clip.width){
	 	result = elem.clip.width; 
	} else if(elem.style && elem.style.pixelWidth){
	 	result = elem.style.pixelWidth; 
	}
	return parseInt(result);
}
/*
function setObjectWidth(obj, objWidth){
	var elem = getRawObject(obj);
	if(elem.offsetWidth){
		if(elem.scrollWidth && (elem.offsetWidth != elem.scrollWidth)){
			elem.scrollWidth = objWidthl;
		} else {
			elem.offsetWidth = objWidth;
		}
	} else if(elem.clip && elem.clip.width){
	 	elem.clip.width = objWidth;
	} else if(elem.style && elem.style.pixelWidth){
	 	elem.style.pixelWidth = objWidth;
	}
}
*/
function getObjectHeight(obj){
	var elem = getRawObject(obj);
	var result = 0;
	if(elem.offsetHeight){
		result = elem.offsetHeight;
	} else if(elem.clip && elem.clip.height){
	 	result = elem.clip.height; 
	} else if(elem.style && elem.style.pixelHeight){
	 	result = elem.style.pixelHeight; 
	}
	return parseInt(result);
}
/*
function setObjectHeight(obj, objHeight){
	var elem = getRawObject(obj);
	if(elem.offsetHeight){
		elem.offsetHeight = objHeight;
	} else if(elem.clip && elem.clip.height){
	 	elem.clip.height = objHeight; 
	} else if(elem.style && elem.style.pixelHeight){
	 	elem.style.pixelHeight = objHeight; 
	}
}
*/
function getInsideWindowWidth(){
	if(window.innerWidth){
		return window.innerWidth;
	} else if(isIE6CSS){
	 	return document.body.parentElement.clientWidth; 
	} else if(document.body && document.body.clientWidth){
	 	return document.body.clientWidth;
	}
	return 0;
}

function getInsideWindowHeight(){
	if(window.innerHeight){
		return window.innerHeight;
	} else if(isIE6CSS){
	 	return document.body.parentElement.clientHeight; 
	} else if(document.body && document.body.clientHeight){
	 	return document.body.clientHeight;
	}
	return 0;
}
