function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}	
function arrayIndexOf(arr, value) {
	if (arr.indexOf) {
		return arr.indexOf(value);
	}
	var i;
	for (i=0; i<arr.length; i++) {
		if (arr[i]==value) return i;
	}
	return -1;
}
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on" + evType, fn); 
		return r; 
	} 
	return false; 
}
function removeEvent(obj, evType, fn) {
	if (obj.removeEventListener) {
		obj.removeEventLIstener(evType, fn);
		return true;
	} else if (obj.detachEvent) {
		obj.detachEvent("on" + evType, fn);
		return true;
	}
	return false;
}
function stopBubbling(e) {
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}
function getFirstParent(item, tagName) {
	while (item && (item.tagName!=tagName))
		item = item.parentNode;
	return item;
}