var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain=""
var bustcacheparameter=""
var loadingHtml="<center><img src='http:/.zooqnet.com/image/loading.gif' width='100' border='0'></center>" ;

function setAndExecute (elementId, html)
{
	var e = document.getElementById(elementId) ;
	e.innerHTML = html ;
	var x = e.getElementsByTagName("script") ;
	for(var i=0;i<x.length;i++)
	{
//		alert(x[i].text) ;
		eval(x[i].text) ;
	}
}

function setElement (elementId, html)
{
	var e = document.getElementById(elementId) ;
	e.innerHTML = html ;
}

function setParentElement (elementId, html)
{
	var e = parent.document.getElementById(elementId) ;
	e.innerHTML = html ;
}

function setParentAndExecute (elementId, html)
{
	var e = parent.document.getElementById(elementId) ;
	e.innerHTML = html ;
	var x = e.getElementsByTagName("script") ;
	for(var i=0;i<x.length;i++)
	{
		eval(x[i].text) ;
	}
}

function executeElement (elementId)
{
	var e = document.getElementById(elementId) ;
	var x = e.getElementsByTagName("script") ;
	for(var i=0;i<x.length;i++)
	{
		eval(x[i].text) ;
	}
}

function showWaiting (elementId)
{
	var e = document.getElementById(elementId) ;
	e.innerHTML = loadingHtml ;
	return true ;
}

function ajaxPage (url, elementId)
{
	document.getElementById(elementId).innerHTML=loadingHtml;
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject)
	{ // if IE
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e)
			{}
		}
	}
	else
		return false
	page_request.onreadystatechange=function()
	{
		loadpage(page_request, elementId)
	}
	if (bustcachevar) //if bust caching of external page
		bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
	page_request.open('GET', url+bustcacheparameter, true)
	page_request.send(null)
}

function loadpage (page_request, containerid)
{
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
		setAndExecute(containerid,page_request.responseText) ;
}

function loadobjs ()
{
	if (!document.getElementById)
		return
	for (i=0; i<arguments.length; i++)
	{
		var file=arguments[i]
		var fileref=""
		if (loadedobjects.indexOf(file)==-1)
		{ //Check to see if this object has not already been added to page before proceeding
			if (file.indexOf(".js")!=-1)
			{ //If object is a js file
				fileref=document.createElement('script')
				fileref.setAttribute("type","text/javascript");
				fileref.setAttribute("src", file);
			}
			else if (file.indexOf(".css")!=-1)
			{ //If object is a css file
				fileref=document.createElement("link")
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		if (fileref!="")
		{
			document.getElementsByTagName("head").item(0).appendChild(fileref)
			loadedobjects+=file+" " //Remember this object as being already added to page
		}
	}
}




function sendRequest (url, callback, postData)
{
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function ()
	{
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304)
			return;
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject ()
{
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function getRequest (url)
{
	var request = createXMLHTTPObject() ;
	if (!request)
		return null ;
	var now = "upid=" + new Date().getTime() ;
	url += (url.indexOf("?")+1) ? "&" : "?" ;
	url += now ;
	request.open("get",url,false) ;
	request.send(null) ;
	return request.responseText ;
}

function postRequest (url, parameters)
{
	var request = createXMLHTTPObject() ;
	if (!request)
		return null ;
	var now = "upid=" + new Date().getTime() ;
	parameters += (parameters.indexOf("?")+1) ? "&" : "?" ;
	parameters += now ;
	request.open("post",url,false) ;
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded") ;
	request.setRequestHeader("Content-length",parameters.length) ;
	request.setRequestHeader("Connection","close") ;
	request.send(parameters) ;
	return request.responseText ;
}

function postXmlRequest (url, xml, f)
{
	var request = createXMLHTTPObject() ;
	if (!request)
		return null ;
	var now = "time=" + new Date().getTime() ;
	url += (url.indexOf("?")+1) ? "&" : "?" ;
	url += now ;
	if (f!=null)
		request.onreadystatechange = function(){if(request.readyState==4){f(request);}} ;
	request.open("post",url,f!=null) ;
	request.send(xml) ;
	return f!=null?null:request.responseText ;
}

function evalRequest (url)
{
	return eval(getRequest(url)) ;
}

function requestElement (url, elementId)
{
	setAndExecute(elementId,getRequest(url)) ;
}
