var isCSS, isW3C, isIE4, isNN4, isIE6CSS;
var ff = {top:-1,left:-1};
var icons = new Array();
var navimg = new Array();
var genimg = new Array();

// initiates onload to establish content objects
function initDHTMLAPI(){
	if (document.images){
		isCSS = (document.body && document.body.style) ? true : false;
		isW3C = (isCSS && document.getElementById) ? true : false;
		isIE4 = (isCSS && document.all) ? true : false;
		isNN4 = (document.layers) ? true : false;
		isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
	}
}

// convert object name string or object reference into a valid element ojbect refererence
function getRawObject(obj){
	var theObj;
	if (typeof obj == "string"){
		if (isW3C){
			theObj = document.getElementById(obj);
		} else if (isIE4){
			theObj = document.all(obj);
		} else if (isNN4){
			theObj = seekLayer(document, obj);
		}
	} else {
		theObj = obj;
	}

	return theObj;
}

//convert object name string or object reference into a valid style (or NN4 layer) reference
function getObject(obj){
	var theObj = getRawObject(obj);
	if (theObj && isCSS){
		theObj = theObj.style;
	}
	
	return theObj;
}

// set the text color
function setTextColor(obj, color){
	var theObj = getObject(obj);
	if (theObj){
		theObj.color = color;
	}
}

// set the border style of an object
function setBorder(obj, style){
	var theObj = getObject(obj);
	if (theObj){
		theObj.border = style;
	}
}

// set the visibility of an object to visible
function show(obj){
	var theObj = getObject(obj);
	if (theObj){
		theObj.visibility = "visible";
	}
}

// set the visibility of an object to hidden
function hide(obj){
	var theObj = getObject(obj);
	if (theObj){
		theObj.visibility = "hidden";
	}
}

// retrieve the x coordinate of apositionable object
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 (isNN4){
		result = elem.left;
	}
	
	return parseInt(result);
}

// retrieve the y corradinate of a positionable object
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 (isNN4){
		result = elem.top;
	}
	
	return parseInt(result);
}

// returns the bottom y corradinate of a positionable object
function getObjectBottom(obj){
	return getObjectTop(obj) + getObjectHeight(obj);
}

// return the right x corrdiate of a positionable object
function getObjectRight(obj){
	return getObjectLeft(obj) + getObjectWidth(obj);
}

// retrieve the rendered width of an element
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);
}

//retrieve the rendered height of an element
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);
}

// return the available content width space in a browser window
function getInsideWinWidth(){
	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;
}

// return the available content width space in a browser window
function getInsideWinHeight(){
	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;
}
