var IE = document.all?true:false;
var mouseX = 0;
var mouseY = 0;

function getMouseXY(e)
{
	if( document.getElementsByTagName('body').length == 0 ) { return; }
	if (!e) e = window.event;
	if (e)
	{
		var scrollLeft = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
		var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
		mouseX = IE ? (e.clientX + scrollLeft) : e.pageX;
		mouseY = IE ? (e.clientY + scrollTop) : e.pageY;
	}
}

document.onmousemove = getMouseXY;

function function_exists(f)
{
	if( window[f] )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function xmlGet(strURL, callback) {
	var xmlHttpReq = false;
	var self = this;
	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('GET', strURL, true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	timeout = setTimeout( function() { xmlHttpReq.abort(); alert('XML Request Timed Out'); }, 5000 );

	self.xmlHttpReq.onreadystatechange = function() {
		clearTimeout(timeout);
		if(self.xmlHttpReq.readyState == 4) {
			if( self.xmlHttpReq.status == 200 ) {
				if( callback )
				{
					callback(self.xmlHttpReq.responseText);
				}
			}
			else {
				alert('Error getting XML Request');
			}
		}
	}


	try {
		self.xmlHttpReq.send(null);
	} catch(e) {
		alert(strURL +': '+ e.message);
	}
}

function createTR(ar)
{
        var tr = document.createElement('tr');

        for( var i=0; i < ar.length; i++ )
        {
                var td = document.createElement('td');
                td.innerHTML = ar[i];
                tr.appendChild(td);
        }

        return tr;
}
