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 fixElement(lname) {
	return eval("document." + collStart + lname + collEnd);
}

//positioning
function getAbsPos(elt,which) {
	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) {
	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) {
	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;
	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) {
	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) {
	if (typeof(elt.className) != 'undefined') {
		var hasClass = false;
		var classes = elt.className.split(" ");
		for (var i = 0; i < classes.length; i++) {
			if (classes[i] == cls)
				hasClass = true;
		}
		return hasClass;
	}
	else
		return false;
}
function toggleCssClass(elt, cls) {
	if (hasCssClass(elt, cls))
		removeCssClass(elt, cls);
	else
		addCssClass(elt, cls);
}

	// -----------------------------------------------------
	// AJAX FUNCTIONS
	// -----------------------------------------------------
	function GetXmlHttpObject() {
		
		var xmlHttp = null;
	
		// Firefox, Opera 8.0+, Safari
		try {
			xmlHttp = new XMLHttpRequest();
		}
		
		catch (e) {    
	
			// Internet Explorer 6.0+ 	  
			try {
				xmlHttp = new ActiveXObject("MSXML2.ServerXMLHTTP");
			}
			
			catch (e) {
			
				// Internet Explorer 5.5+ 
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				
				catch (e) { 
					// Do nothing
				}
			}
		}
		
		return xmlHttp;
		
	}	// End of GetXmlHttpObject()
	
	