
function getXPos(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function getYPos(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}
function getHeight(obj) {
	return obj.offsetHeight;
}
function getWidth(obj) {
	return obj.offsetWidth;
}

function hasIndexOf(theString, theIndex) {
	if(theString.indexOf(theIndex) == -1) {
		return false;
	}
	return true;
} 
function addClass(item, classToAdd) {
	if(!hasClass(item, classToAdd)) {
		item.className += (" " + classToAdd);
	}
}

function removeClass(item, classToRemove) {
	if(hasIndexOf(item.className, classToRemove)) {
		var theClass = item.className;
		var classes = theClass.split(" ");
		for(var i = 0; i < classes.length; i++) {
			if(classes[i] == classToRemove || classes[i] == " ") {
				classes.splice(i, 1);
			}
		}
		item.className = classes.join(" ");
	}
}
function hasClass(item, classToSearch) {
	if(hasIndexOf(item.className, classToSearch)) {
		var theClass = item.className;
		var classes = theClass.split(" ");
		for(var i = 0; i < classes.length; i++) {
			if(classes[i] == classToSearch) {
				return true;
			}
		}
	}
	return false;
}
function grabElement(ele) {
	if(typeof ele == "string") {
		return document.getElementById(ele);
	}else {
		return ele;
	}
}
function gE(ele) {
	return grabElement(ele);
}
function grabElesByTag(eleType) {
	if(arguments.length < 2) {
		return document.getElementsByTagName(eleType);
	}else {
		return arguments[1].getElementsByTagName(eleType);
	}
}
function gET(eleType) {
	if(arguments.length < 2) {
		return document.getElementsByTagName(eleType);
	}else {
		return arguments[1].getElementsByTagName(eleType);
	}
}
function grabEleByNameAndClass(name, className, element) {
	var collectionWithClass = new Array();
	var searchElement = grabElement(element);
	var collection = grabElesByTag(name, searchElement);
	for(var i=0;i<collection.length;i++) {
		if(hasClass(collection[i], className)) {
			collectionWithClass.push(collection[i]);
		}
	}
	return collectionWithClass;
}
function grabElesByNameAndClass(name, className, element) {
	return grabEleByNameAndClass(name, className, element);
}
function grabElesByTagAndClass(name, className, element) {
	return grabEleByNameAndClass(name, className, element);
}
function gETAC(name, className, element) {
	return grabEleByNameAndClass(name, className, element);
}

function getHeight(obj) {
	return obj.offsetHeight;
}
function getWidth(obj) {
	return obj.offsetWidth;
}
function getOpacity(obj) {
	if(document.all) {
		return obj.filters[0].opacity;
	}else {
		if(obj.style.opacity != "") {
			return obj.style.opacity * 100;
		} else if(obj.style.MozOpacity != "") {
			return obj.style.MozOpacity * 100;
		}else {
			return 100;
		}
	}
	//return "100";
}
/*
The following is a function originally created by:
Dean Edwards - http://dean.edwards.name/weblog/2006/06/again/
updated by others
Rob Cherny - http://www.cherny.com/webdev/27/domloaded-updated-again
They assist in loading/rendering the dynamic elements of the page as quickly as possible.
Chris Robinson - adapted to take multiple function handles 
*/

var DomLoaded = {
	onload: [],
	loaded: function()
	{
		if (arguments.callee.done) return;
		arguments.callee.done = true;
		for (i = 0;i < DomLoaded.onload.length;i++) DomLoaded.onload[i]();
	},
	load: function(fireThis)
	{
		for(var index = 0; index < arguments.length; index++) {
			this.onload.push(arguments[index]);
		}
		if (document.addEventListener) 
			document.addEventListener("DOMContentLoaded", DomLoaded.loaded, null);
		if (/KHTML|WebKit/i.test(navigator.userAgent))
		{ 
			var _timer = setInterval(function()
			{
				if (/loaded|complete/.test(document.readyState))
				{
					clearInterval(_timer);
					delete _timer;
					DomLoaded.loaded();
				}
			}, 10);
		}
		/*@cc_on @*/
		/*@if (@_win32)
		var proto = "src='javascript:void(0)'";
		if (location.protocol == "https:") proto = "src=//0";
		document.write("<scr"+"ipt id=__ie_onload defer " + proto + "><\/scr"+"ipt>");
		var script = document.getElementById("__ie_onload");
		script.onreadystatechange = function() {
		    if (this.readyState == "complete") {
		        DomLoaded.loaded();
		    }
		};
		/*@end @*/
	   window.onload = DomLoaded.loaded;
	}
};