	function createREQ() {
	try {
	     req = new XMLHttpRequest(); /* e.g. Firefox */
	     } catch(err1) {
	       try {
	       req = new ActiveXObject('Msxml2.XMLHTTP'); /* some versions IE */
	       } catch (err2) {
	         try {
	         req = new ActiveXObject("Microsoft.XMLHTTP"); /* some versions IE */
	         } catch (err3) {
	          req = false;
	         }
	       }
	     }
	     return req;
	}
	function requestGET(url, query, req, async) {		
		
		var asy = true;
		if(async == 1){ asy = false; }
		
		req.open("GET",url+'?'+query,asy);
		req.send(null);
	}
	function requestPOST(url, query, req, async) {
	
		var asy = true;
		if(async == 1){ asy = false ; }
		
		req.open("POST", url, asy);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.send(query);
	}
	
	function doCallback(callback,item) {
		eval(callback + '(item)');
	}
	
	function doAjax(url,query,callback,reqtype, getxml, async) {
		// create the XMLHTTPRequest object instance
		var myreq = createREQ();
		
		myreq.onreadystatechange = function() {
			if(myreq.readyState == 4) {
			   if(myreq.status == 200) {
			      var item = myreq.responseText;
			      if(getxml==1) {
			         item = myreq.responseXML;
			      }			      
			      doCallback(callback, item);
			    }
			  }else{
			  
			  }
		}
		
		
		//alert('doAjax called !! ' + url + query);
			if(reqtype=='post') {
				requestPOST(url,query,myreq,async);
			} else {
				requestGET(url,query,myreq, async);
			}
	}
	
