﻿cirrus = {};
cirrus.response = null;
cirrus.asyncRequest=function(reqPkg) {
try{
    var oReq,type,method,m,p,responseXML;
   
    type = reqPkg.type && typeof(reqPkg.type)=="string"?reqPkg.type.toLowerCase():"xml";
    method = reqPkg.method && typeof(reqPkg.method)=="string"?reqPkg.method.toLowerCase():"post";
   
    p = (type=="xml"?"ajaxtype=xml":type=="html"?"ajaxtype=html":"ajaxtype=plaintext") + "&ajaxreq="+encodeURIComponent(reqPkg.requestParameters)+reqPkg.requestAddParameters;
    
    if (reqPkg.target && reqPkg.target !="")
        p += "&ajaxtarget=" + encodeURIComponent(reqPkg.target); 
    
    if (reqPkg.targetProperty && reqPkg.targetProperty !="")
        p += "&ajaxtargetproperty=" + encodeURIComponent(reqPkg.targetProperty); 
           
    if (window.XMLHttpRequest) {			
		oReq = new XMLHttpRequest();
		if (oReq.overrideMimeType) {
		    if (type=="text")
        	    oReq.overrideMimeType('text/plain; charset=UTF-8');
        	else if (type=="html")
        	    oReq.overrideMimeType('text/html');
        	else
        	    oReq.overrideMimeType('text/xml');
        	    
        }
        responseXML = "responseXML";
	}
	else if (window.ActiveXObject) {
	    try {
             oReq = new ActiveXObject("MSXML2.XMLHTTP.4.0");
        }
        catch (e) {
            try {
                oReq = new ActiveXObject("MSXML2.XMLHTTP");
            }
            catch (e) {
                oReq = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        responseXML = "responseXml";
	}
	
	//if (!oReq)return;
	
	oReq.onreadystatechange = function() {
	try{ 
	    
	    if(oReq.readyState == 4 && oReq.status == 200) {   
	        cirrus.response = null; 
	        if (type=="xml") {
	            cirrus.response = eval("oReq."+responseXML);
	        }
	        else {
                cirrus.response = oReq.responseText;
            } 
            //alert("responseText:\n"+oReq.responseText);
            eval(reqPkg.handlerFunction+"();");
            
        }
        //else
             //alert("There was a problem with the request.");
    }catch(e){/*alert(e.description+"\n-- onreadystatechange");*/}
	}
	//alert(p);
	if (method=="post" && !nt6 && !nt7) { 
	    oReq.open("POST", reqPkg.url, true);
	    oReq.setRequestHeader("Content-Type", "application/x-www-form-URLencoded");
	    oReq.setRequestHeader("Content-Length", p.length);
	    oReq.setRequestHeader("Connection", "close");
	    oReq.send(p);
	    
	}
	else {
	    oReq.open("GET",reqPkg.url+"?"+p+"&upid="+(new Date()).getTime(),true);
	    oReq.send(null);
	}
}catch(e){/*alert(e.description+"\n-- asyncRequest");*/}	
}

cirrus.processRequest=function(handler,parameters,addtn) {
try{
    var pkg = {handlerFunction:handler,
                target:parameters[0],
                targetProperty:parameters[1],
                requestParameters:parameters[2],
                requestAddParameters:addtn!=undefined?addtn:"",
                url:"http://"+dmn+"/rajqaxmfis/clmanajax.aspx",
                method:"post",
                type:"xml"};
    cirrus.asyncRequest(pkg);
    
}catch(e){/*alert(e.description+"\n-- processRequest");*/}
}





