function mypush(valore) {
	this[this.length]=valore
	showAsync(this.length)
}

function mypop() {
	if (this.length>0) {
		var ret=this[0]
		var vTmp=new Array()
		for (var i=1;i<this.length;i++) {
			vTmp.mypush(this[i])
		}
		this.length--
		for (var i=0;i<vTmp.length;i++) {this[i]=vTmp[i]}
		showAsync(this.length)
		return ret
	} else {
		return null
	} 
}

function showAsync(n) {
	var o=document.getElementById("myasync")
	if (o) {
		var s=""
		for(i=0;i<n;i++) {s+="."}
		o.innerHTML=s	
	}
}
Array.prototype.mypush=mypush
Array.prototype.mypop=mypop



/*post XML*/
var vpAsync=new Array()
function msg_async(callback, url,data,info) {	
	var indata=(data=="")?"":"&"
	indata=data+indata+("signature="+(new Date()).getTime() + '' + Math.floor(1000 * Math.random()))
	//alert(padrs)
	//indata+=("&rpag="+escape(padrs))
	var isXML=false
	var isIE=false
	
	isXML=(window.XMLHttpRequest?true:false)
	isIE=(window.ActiveXObject?true:false)
	if (isIE) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP")
			isIE=(req?true:false)
		} catch (e) {
       		isIE = false;
		}
	}
	if (isIE) {isXML=true}
	if (isXML) {
		if (vpAsync.length==0) {
			if (isIE) {
				var Req = new ActiveXObject("Microsoft.XMLHTTP");
			} else {
			    var Req = new XMLHttpRequest();
			}
    
			Req.onreadystatechange = mycallback;
		    Req.open("POST", url, true);
			Req.setRequestHeader('Accept','jsxfalcosoft')
			Req.setRequestHeader('Content-Type','charset=iso-8859-1')
			Req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			
    		Req.send(data);
		} else {
			vpAsync.mypush(new Array(callback,url,data,info))
		}
	} else {
		document.location=url+"?"+indata
	}
    
	function mycallback() {
        if (Req.readyState != 4) return;
        if (Req.status == 200) {
//alert(Req.responseText)
			callback(true, Req.responseXML,url,info)
        } else {
			callback(false, Req.status + ": " + Req.statusText,url,info)
		}
		if(vpAsync.length!=0) {
			var vCall=vpAsync.mypop()
			msg_async(vCall[0],vCall[1],vCall[2],vCall[3])
		}
    }
}

/*get XML*/
var vgAsync=new Array()
function msg_gasync(callback, url,data,info) {
	var isXML=false
	var isIE=false
	
	isXML=(window.XMLHttpRequest?true:false)
	isIE=(window.ActiveXObject?true:false)
	if (isIE) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP")
			isIE=(req?true:false)
		} catch (e) {
       		isIE = false;
		}
	}
	if (isIE) {isXML=true}
	if (isXML) {
		if (vgAsync.length==0) {
			if (isIE) {
				var Req = new ActiveXObject("Microsoft.XMLHTTP");
			} else {
			    var Req = new XMLHttpRequest();
			}
    
			Req.onreadystatechange = mycallback;
		    Req.open("GET", url+"?"+data, true);
			Req.setRequestHeader('Accept','jsxfalcosoft')
			Req.setRequestHeader('Content-Type','charset=iso-8859-1')
			Req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		Req.send(null);
		} else {
			vgAsync.mypush(new Array(callback,url,data,info))
		}
	} else {
		document.location=url+"?"+data
	}
    
	function mycallback() {
        if (Req.readyState != 4) return;
        if (Req.status == 200) {
			//alert(Req.responseText)
			callback(true, Req.responseXML,url,info)
        } else {
			callback(false, Req.status + ": " + Req.statusText,url,info)
		}
		if(vgAsync.length!=0) {
			var vCall=vgAsync.mypop()
			msg_gasync(vCall[0],vCall[1],vCall[2],vCall[3])
		}
    }
}


