var $id = function(id){
	return document.getElementById(id);
}

var Util = {
	findElemX: function(obj)
	{
		var curleft = 0;
		if (obj.offsetParent) {
			while (1) {
			curleft += obj.offsetLeft;
			if (!obj.offsetParent)
			break;
			obj = obj.offsetParent;
			}
		} else if (obj.x) {
			curleft += obj.x;
		}
		
		return curleft;
	}, 
	
	findElemY: function(obj)
	{
		var curtop = 0;
		if (obj.offsetParent) {
		while (1) {
			curtop += obj.offsetTop;
			if (!obj.offsetParent)
			break;
			obj = obj.offsetParent;
			}
		} else if (obj.y) {
			curtop += obj.y;
		}
		
		return curtop;
	},
	
	mouseX: function(evt) {
		if (evt.pageX) return evt.pageX;
		else if (evt.clientX)
		   return evt.clientX + (document.documentElement.scrollLeft ?
		   document.documentElement.scrollLeft :
		   document.body.scrollLeft);
		else return null;
	}, 

	mouseY: function(evt) {
		if (evt.pageY) return evt.pageY;
		else if (evt.clientY)
		   return evt.clientY + (document.documentElement.scrollTop ?
		   document.documentElement.scrollTop :
		   document.body.scrollTop);
		else return null;
	},	
	
	isChildOf: function(childEl, parentId) {
		if(childEl != null) {			
			while(childEl.parentNode != null) {
				if(childEl.parentNode.id == parentId) {
					return true;
				}
			}
		}
		
		return false;
	}, 
	
	stripTags: function(str) {
		return str.replace(/<\/?[^>]+>/gi, '');
	}, 
	
	nl2br: function(str) {
		return str.replace(/\n/g, "<br/>")
	},
	
	isEmail: function(email) {
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
		return emailPattern.test(email);		
	}
}
