var holding = new Array();

function request(var_url, item_id, func){
	if (holding[item_id] != null && holding[item_id].readyState() != 4)
		holding[item_id].dispose()
	holding[item_id] = new item_request(var_url, item_id, func)
}

function item_request(var_url, i_id, func){
	this.item_id = i_id
	this.url = var_url
	this.dispose = dispose
	this.readyState = readyState
	if (func != null)
		var function_name = func
	if (i_id != null)
		var change_item = document.getElementById(i_id)
	var XMLHttp = GetXmlHttpObject()
	XMLHttp.onreadystatechange = stateChanged
	if (this.url.indexOf('?') == -1)
		XMLHttp.open("GET", this.url + "?sid=" + Math.random(), true)
	else
		XMLHttp.open("GET", this.url + "&sid=" + Math.random(), true)
	XMLHttp.send(null)

	function stateChanged(){
		if (i_id  == null){
			if(XMLHttp.readyState == 4){
				function_name(XMLHttp.responseText)
			}
		} else {
			if (XMLHttp.readyState == 0){ 
				change_item.innerHTML = " Loading. "
			}else if(XMLHttp.readyState == 1){
				change_item.innerHTML = " Loading. "
			}else if(XMLHttp.readyState == 2){
				change_item.innerHTML = " Loading... "
			}else if(XMLHttp.readyState == 3){
				change_item.innerHTML = " Loading... "
			}else if(XMLHttp.readyState == 4){
				change_item.innerHTML = XMLHttp.responseText
			}else{
				change_item.innerHTML = XMLHttp.readyState
			}
		}
	}
	
	function readyState(){
		return XMLHttp.readyState
	}
	
	function dispose(){
		XMLHttp.abort()
	}
}

function GetXmlHttpObject(){ 
	var objXMLHttp=null
	if (window.XMLHttpRequest){
		objXMLHttp=new XMLHttpRequest()
	}else if (window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}