            function showLayer(lay)
            {
                var layer = document.getElementById(lay);
                layer.style.visibility = 'visible';
            }
            function hideLayer(lay)
            {
                var layer = document.getElementById(lay);
                layer.style.visibility = 'hidden';
            }

function requestobject(url,method,recvhandler)
{
	var req;
	// this should work for all browsers except IE6 and older
	try {
	// try to create XMLHttpRequest object
		req = new XMLHttpRequest();
	}
	catch(e)
	{
		// assume IE6 or older
		var v = new Array("MSXML2.XMLHTTP.6.0",
			"MSXML2.XMLHTTP.5.0",
			"MSXML2.XMLHTTP.4.0",
			"MSXML2.XMLHTTP.3.0",
			"MSXML2.XMLHTTP",
			"Microsoft.XMLHTTP");
		// try every prog id until one works
		for (var i=0; i< v.length && !req; i++) {
			try	{ // try to create XMLHttpRequest object
				req = new ActiveXObject(XmlHttpVersions[i]);
			}
		catch (e) {}
		}
	}
	// return the created object or display an error message
	if (!req)
		return(false);
	else {
		var ret = new Object();
		ret.xmlhttp = req;
		ret.cache = new Array();
		ret.url = url;
		ret.method = method;
		ret.recvhandler  = recvhandler;
		ret.id = Math.floor(Math.random()*10000000000)
		
		ret.request = function(params) {
			ret.params=params;//this.cache.push(params);
		};
		
		//this.procmessage = };
		
		
		ret.process = function() {
			//alert('id'+this.id + " process " + this.url);
			if(this.xmlhttp.readyState==0||this.xmlhttp.readystate==4){
				var params='';
				if(1){//this.cache.length>0){
					params = this.params;//
					this.xmlhttp.open(this.method,this.url,true);
					this.xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
					this.xmlhttp.onreadystatechange = function() {
						//alert('id'+ret.id + " onreadhstate " + ret.url);
						//alert(ret.xmlhttp.readyState);
						if(ret.xmlhttp.readyState==4){	
							if(ret.xmlhttp.status == 200){
								//alert('dojson');
								var resp = ret.xmlhttp.responseText;
								
								ret.recvhandler(resp);
								ret.xmlhttp.abort();
								return(true);
							}
						}
						
						
						return(true);
					};
					
					this.xmlhttp.send(params);
				} else {
					
				}
			} else {
//				setTimeout("this.process()",1000);
			}
			
			return;
		};
	
		ret.setinterval = function(val) {
			this.interval = val;
			//setTimeout("ret.process()",val);
		};
		
		//alert(this.xmlhttp);
		return ret;
		//return ret;
	}
}

