function createRequest() { var req = false; 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 reqGET(processorfile,qry,req) {
	myRand = parseInt(Math.random()*999999999999999);
	req.open("GET", processorfile+"?"+qry+"&rand="+myRand, true);
	req.send(null);
}

function getFormValues(fobjj,valFunc) {
   var fobj = document.getElementById(fobjj);
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";
   for(var i = 0;i < fobj.elements.length;i++)
   {
       switch(fobj.elements[i].type)
       {
           case "text":
                str += fobj.elements[i].name +
                 "=" + escape(fobj.elements[i].value) + "&";
                 break;
           case "select-one":
                str += fobj.elements[i].name +
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                break;
           case "textarea":
                str += fobj.elements[i].name +
                 "=" + escape(fobj.elements[i].value) + "&";
                 break;
           case "hidden":
                str += fobj.elements[i].name +
                 "=" + escape(fobj.elements[i].value) + "&";
                 break;
       }
   }
   str = str.substr(0,(str.length - 1));
   return str;
}

function reqPOST(processorfile,qry,req) {
	req.open("POST", processorfile, true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(qry);
}

function doCallback(callback,item) {
	eval(callback + '(item)');
}

function showLoader(lp) {
	document. getElementById(lp).innerHTML = "One moment please...";
}

function doAjax(processor,qry,callback,reqtype,getxml,position) {
	// create the XMLHTTPRequest instance
	var myreq = createRequest();

	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 {
			showLoader(position);
		}
	}
	if(reqtype=='POST') {
		reqPOST(processor,qry,myreq);
	} else {
		reqGET(processor,qry,myreq);
	}
}
