function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;

	if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}

function getTarget(eventObj)
{
	var theTarget = eventObj.target ? eventObj.target : eventObj.srcElement;
	if( theTarget && ( theTarget.nodeType == 3 || theTarget.nodeType == 4 ) ) {
		theTarget = theTarget.parentNode;
	}

	return theTarget;
}

function getHRObj()
{
	var obj;
	if(window.XMLHttpRequest)
	{
		obj = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		obj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return obj;
}
var HRObject = false;
function callScript(script, async, callback, method)
{
	if(window.XMLHttpRequest)
	{
		HRObject = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		HRObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	async == null ? async = false : async = async;
	method == null ? method = "GET" : method = method;
	if(script == null)
	{
		return false;
	}
	HRObject.open(method, script, async);
	
	if(async == true && callback != null)
	{
		HRObject.onreadystatechange=callback;
	}
	HRObject.send();
	if(async)
	{
		return true;
	}
	
	if((HRObject.readyState == 4) && (HRObject.status == 200))
	{
		return HRObject;
	}
	
}
