var origHeight, origWidth;
var collStart = "";
var collEnd = "";
var styleObj = "";
var isMac, isPC;
var leftOffset = 0;
var topOffset = 0;

if (navigator.platform.indexOf('Mac') != -1) {
	isMac = true;
} else {
	isPC = true;
	if (document.getElementById) leftOffset = 1;
}
//resize in netscape 4
/*if (document.layers) {
	window.captureEvents(Event.RESIZE)
	window.onresize = NetscapeFix();
}

function NetscapeFix() {
      if (innerWidth != origWidth || innerHeight != origHeight) {
		origWidth = innerWidth;
		origHeight = innerHeight;
		location.reload()
		return false;
	}
}*/

//layer api
if (document.layers) {
	origWidth = innerWidth;
    origHeight = innerHeight;
} else if (document.getElementById) {
	collStart = "getElementById('";
	collEnd = "')";
	styleObj = ".style";
} else if (document.all) {
	collStart = "all.";
	collEnd = "";
	styleObj = ".style";
}

function fixElementStyle(lname) {
	if (typeof(lname) == "object") {
		theStyle = eval("lname" + styleObj);
	} else {
		theStyle = eval("document." + collStart + lname + collEnd + styleObj);
	}
	return theStyle;
}
function fixParentElementStyle(lname) {
	if (typeof(lname) == "object") {
		theStyle = eval("parent.lname" + styleObj);
	} else {
		theStyle = eval("parent.document." + collStart + lname + collEnd + styleObj);
	}
	return theStyle;
}
function fixElement(lname) {
	return eval("document." + collStart + lname + collEnd);
}
function fixParentElement(lname) {
	return eval("parent.document." + collStart + lname + collEnd);
}
function fixIframeElement(lname,fname) {
	var theIframe = fixElement(fname);
	if (theIframe) {
		var theDocument = (theIframe.contentWindow) ? theIframe.contentWindow.document : theIframe.contentDocument;
		var elt = eval("theDocument." + collStart + lname + collEnd);
	}
	return elt;
}

//positioning
function getAbsPos(elt,which) {
	var iPos = 0;
	while (elt != null) {
		iPos += elt["offset" + which];
		elt = elt.offsetParent;
	}
	return parseInt(iPos);
}
function getAbsX(elt) {
	return (elt.x) ? elt.x : getAbsPos(elt,"Left");
}
function getAbsY(elt) {
	return (elt.y) ? elt.y : getAbsPos(elt,"Top");
}
function setAbsX(elt,pos) {
	if (document.getElementById) elt.style.left = pos + leftOffset + "px";
	else if (document.all) elt.style.pixelLeft = pos;
	else if (document.layers) elt.left = pos;
}
function setAbsY(elt,pos) {
	if (document.getElementById) elt.style.top = pos + "px";
	else if (document.all) elt.style.pixelTop = pos;
	else if (document.layers) elt.top = pos;
}
//height & width
function getAbsHeight(elt) {
	var hgt;
	if (document.getElementById) hgt = elt.offsetHeight;
	else if (document.all) hgt = elt.clientHeight;
	else if (document.layers) hgt = elt.clip.bottom;
	return hgt;
}
function getAbsWidth(elt) {
	var wdt;
	if (document.getElementById) wdt = elt.offsetWidth;
	else if (document.all) wdt = elt.clientWidth;
	else if (document.layers) wdt = elt.clip.right;
	return wdt;
}
function setHeight(elt,pos) {
	if (document.getElementById) elt.style.height = pos+"px";
	else if (document.all) elt.style.pixelHeight = pos;
	else if (document.layers) elt.height = pos;
}
function setWidth(elt,pos) {
	if (document.getElementById) elt.style.width = pos;
	else if (document.all) elt.style.pixelWidth = pos;
	else if (document.layers) elt.width = pos;
}
//visibility
function getVisibility(elt) {
	var vis;
	if (document.getElementById) vis = elt.style.visibility;
	else if (document.all) vis = elt.style.visibility;
	else if (document.layers) vis = elt.visibility;
	return vis;
}
function setVisibility(elt,vis) {
	if (document.getElementById) elt.style.visibility = vis;
	else if (document.all) elt.style.visibility = vis;
	else if (document.layers) elt.visibility = vis;
}
function getDisplay(elt) {
	if (document.getElementById) vis = elt.style.display;
	else if (document.all) vis = elt.style.display;
	else if (document.layers) vis = false;
	return vis;
}
function setDisplay(elt,disp) {
	if (document.getElementById) elt.style.display = disp;
	else if (document.all) elt.style.display = disp;
	else if (document.layers) return;
}
function getInnerHTML(elt) {
	if (document.getElementById) cont = elt.innerHTML;
	else if (document.all) cont = elt.innerHTML;
	else if (document.layers) cont = false;
	return cont;
}
function setInnerHTML(elt,cont) {
	if (document.getElementById) elt.innerHTML = cont;
	else if (document.all) elt.innerHTML = cont;
	else if (document.layers) return;
}
function getOuterHTML(elt) {
	if (document.getElementById) cont = elt.outerHTML;
	else if (document.all) cont = elt.outerHTML;
	else if (document.layers) cont = false;
	return cont;
}
function setOuterHTML(elt,cont) {
	if (document.getElementById) elt.outerHTML = cont;
	else if (document.all) elt.outerHTML = cont;
	else if (document.layers) return;
}
function getBgColor(elt) {
	if (document.getElementById) color = (elt.bgColor) ? elt.bgColor : elt.style.backgroundColor;
	else if (document.all) color = (elt.bgColor) ? elt.bgColor : elt.style.backgroundColor;
	else if (document.layers) color = false;
	return color;
}
function setBgColor(elt,color) {
	if (document.getElementById) {
		elt.bgColor = color;
		elt.style.backgroundColor = color;
	} else if (document.all) {
		elt.bgColor = color;
		elt.style.backgroundColor = color;
	} else if (document.layers) return;
}
//special properties

function getUsableWidth() {
	var wid;
	if (document.getElementById) wid = window.innerWidth;
	else if (document.all) wid = window.document.body.clientWidth;
	else if (document.layers) wid = window.innerWidth;
	return wid;
}
function getUsableHeight() {
	var hgt;
	if (document.getElementById) hgt = window.innerHeight;
	else if (document.all) hgt = window.document.body.clientHeight;
	else if (document.layers) hgt = window.innerHeight;
	return hgt;
}
function addCssClass(elt, cls) {
	if (typeof(elt.className) != 'undefined') {
		removeCssClass(elt, cls);
		var newClasses = elt.className.split(" ");
		newClasses.push(cls);
		elt.className = newClasses.join(" ");
	}
}
function removeCssClass(elt, cls) {
	if (typeof(elt.className) != 'undefined') {
		var newClasses = new Array();
		var classes = elt.className.split(" ");
		for (var i = 0; i < classes.length; i++) {
			if (classes[i] != cls)
				newClasses.push(classes[i]);
		}
		elt.className = newClasses.join(" ");
	}
}
function hasCssClass(elt, cls) {
	var hasClass = false;
	if (typeof(elt.className) != 'undefined') {
		var classes = elt.className.split(" ");
		for (var i = 0; i < classes.length; i++) {
			if (classes[i] == cls)
				hasClass = true;
		}
	}
	return hasClass;
}
function toggleCssClass(elt, cls) {
	if (hasCssClass(elt, cls))
		removeCssClass(elt, cls);
	else
		addCssClass(elt, cls);
}
