	var hReq = new Array();     // ARRAY OF XML-HTTP REQUESTS
	var xIDX = new Array(0);    // ARRAY OF XML-HTTP REQUEST INDEXES
	xIDX[0] = 1;                // FIRST INDEX SET TO 1 MAKING IT AVAILABLE
	var rIDX;
	
	if(typeof $ != "function"){
    function $(elem){return document.getElementById(elem);}
  }

	function newRequestObj() {
		// find the correct xmlHTTP, works with IE, FF and Opera
		var xmlhttp;
	
		try {
			xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
		  try {
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  catch(e) {
			xmlhttp=null;
		  }
		}
		
		if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
			xmlhttp=new XMLHttpRequest();
		}
		
		return  xmlhttp;
	}
	  
	function getAvailableIDX() {
		var rIDX = xIDX.length;
		
		//go through available xi values
		for (var i=0; i<xIDX.length; i++) {
			//if it's 1 (available), allocate it for use and break
			if (xIDX[i] == 1) {
				xIDX[i] = 0;
				rIDX = i;
				break;
			}
		}
		
		return rIDX;
	}		
	

	function clear(objID) {
		document.getElementById(objID).innerHTML = '';
	}

	function showDiv(div_id) {
		document.getElementById(div_id).style.display = 'block';
	}

	function hideDiv(div_id) {
		document.getElementById(div_id).style.display = 'none';
	}
  
  function getParams(objFrm){
      var str = "";
      for(var v=0;v<objFrm.elements.length;v++){
          var _obj = objFrm.elements[v];
          if(_obj.getAttribute("name") != ""){
              var _type = _obj.getAttribute("type");
              if(_type != "checkbox" || _obj.checked){
                  if(str!="") str += "&";
                  str += objFrm.elements[v].name;      
                  str += "=";
                  str += escape(_obj.value);
              }
          }
      }
      return str;
  }		
  
  function request(url,params,output) {
		rIDX = getAvailableIDX();
		
		xIDX[rIDX] = 0;
		hReq[rIDX] = newRequestObj();		         
        	
		hReq[rIDX].onreadystatechange = function() {
		
			if (hReq[rIDX].readyState == 4) {
				if (hReq[rIDX].status == 200) {				  
					output(hReq[rIDX].responseText);			  
				} 
								
			}
		};
				
		hReq[rIDX].open('POST', url, true);
		hReq[rIDX].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		hReq[rIDX].setRequestHeader("Content-length", params.length);
		hReq[rIDX].setRequestHeader("Connection", "close");
		hReq[rIDX].send(params);
	}
