var xmlreqs = new Array()
var bidtimerId=null;

 
function CXMLReq(freed) {
    this.freed = freed;
    this.xmlhttp = false;
    if (window.XMLHttpRequest) {
        this.xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

function handleSingleUpdate(pos,leadId,errDiv){
    if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
        if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) {
        
        $("progress."+leadId).style.display='none';
         xmlreqs[pos].freed = 1;
        }else
            handleError(errDiv);
    }
        
}

function xmlreqGET(url,leadId,msgDiv) {
    
    var pos = -1;
    for (var i=0; i<xmlreqs.length; i++) {
        if (xmlreqs[i].freed == 1) { pos = i; break; }
    }
    if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
    if (xmlreqs[pos].xmlhttp) {
        xmlreqs[pos].freed = 0;
        xmlreqs[pos].xmlhttp.open("GET",url,true);
        xmlreqs[pos].xmlhttp.onreadystatechange = function(){
         if (typeof(xmlhttpChange) != 'undefined'){ 
            handleSingleUpdate(pos,leadId,msgDiv);
         }   
        }
        if (window.XMLHttpRequest) {
            xmlreqs[pos].xmlhttp.send(null);
        } else if (window.ActiveXObject) {
            xmlreqs[pos].xmlhttp.send();
        }
    }
}

function xmlreqPOST(url,data,msgDiv,handler) {
 
    var pos = -1;
    for (var i=0; i<xmlreqs.length; i++) {
        if (xmlreqs[i].freed == 1) { pos = i; break; }
    }
    if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
    if (xmlreqs[pos].xmlhttp) {
        xmlreqs[pos].freed = 0;
        xmlreqs[pos].xmlhttp.open("POST",url,true);
        xmlreqs[pos].xmlhttp.onreadystatechange = function(){
            if(xmlreqs[pos].xmlhttp.readyState == 4){
                if(xmlreqs[pos].xmlhttp.status==200){
                    xmlreqs[pos].freed=1;
                    handler(xmlreqs[pos].xmlhttp.responseText,xmlreqs[pos].xmlhttp.status);
                }    
            }
        }
        xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlreqs[pos].xmlhttp.send(data);
       // setTimeout("process_error(\""+pos+",'"+msgDiv+"'\")",5000);
       setTimeout("checkAjaxRequestStatus(\""+pos+",'"+msgDiv+"'\")",5000);
    }
}

function checkAjaxRequestStatus(pos,msgDiv){
    
    if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 ) {
        if (xmlreqs[pos].xmlhttp.readyState!=4 || xmlreqs[pos].xmlhttp.status!=200) {
	        xmlreqs[pos].xmlhttp.abort();
	        xmlreqs[pos].freed = 1;
	        this.xmlhttp = true;
	        $(msgDiv).innerHTML='Your request is aborted! Sorry ';
	    }
    }
}    

function process_error(pos,msgDiv){
    try{
        $(msgDiv).innerHTML="Error processing request";
        xmlreqs[pos].xmlhttp=false;
        xmlreqs[pos].freed = 1;
        xmlreqs[pos].xmlhttp.abort();
        
    }catch(e){
    }
}
function handleResponse(responseText,responseStatus){
        if (responseStatus == 200 || responseStatus== 304) {
	        var msgToShow="Successfully Updated selected Leads";
	        var leads = eval('(' + xmlreqs[0].xmlhttp.responseText + ')');
	        $("msgDiv").style.display='';
	        if (leads.leadIds!=null){
	           
	           errMsg="";
	           for(i=0;i<leads.leadIds.length;i++){
	              var leadStatus=leads.leadIds[i].split('~');     
	              if(leadStatus[1]==1){
	                   $("status."+leadStatus[0]).value=$("f.1").value;
	                   $("progress."+leadStatus[0]).style.display='none';
	              }else{
	                  errMsg +=leadStatus[0] +","; 
	                  errMsg = errMsg.substring(0,errMsg.length -1); 
	              }
	          }
	          if(errMsg!="")
	               errMsg+=" have problems in updation!";   
            }
	        $("msgDiv").innerHTML=msgToShow+ " "+errMsg;
	        $("progress").style.display='none';
	         
        }else {
            handle_error(msgDiv);
        }
        
}
   
    

function handle_error(msgDiv){
    
     $(msgDiv).style.display='';
     $(msgDiv).innerHTML='The server is temporarily unavailable. Try again later!';
}

/*this function is for showing the fields related to product in create campaign page tab 2 */
function showFieldList(responseText,responseStatus){
    var strResponse;
    var scriptTag;
    var strScript;
    var response;
    var headID = document.getElementsByTagName("head")[0]; 
        if (responseStatus == 200 || responseStatus == 304){
            scriptTag=document.createElement('SCRIPT');
            scriptTag.type="text/javascript";
            scriptTag.defer="true";
            response=responseText;
            strResponse=response.split('</script>'); 
            $("divProductFieldList").innerHTML='';
            $("divProductFieldList").innerHTML=strResponse[1];
            strScript=strResponse[0].split('<script>');
            var strJScript=strScript[1];
                try{
                scriptTag.text=strJScript;
               headID.appendChild(scriptTag);
                }catch(errv){
                    alert('error:'+errv);
                }
        }else{
            $("productFieldError").innerHTML="Error in getting fields";
        }
        $("pageLoadWait").style.display="none";
    }


 function getFieldOptions(responseText,responseStatus){
    var strResponse;
    var scriptTag;
    var strScript;
    var response;
    var headID = document.getElementsByTagName("head")[0]; 
    
        if (responseStatus == 200 || responseStatus == 304){
            scriptTag=document.createElement('SCRIPT');
            scriptTag.type="text/javascript";
            scriptTag.defer="true";
            response=responseText;
            strResponse=response.split('<script>'); 
            
            $("divFieldOptions").innerHTML=strResponse[0];
          
           strScript=strResponse[1].split('</script>');
          
           var strJScript=strScript[0];
                try{
                    scriptTag.text=strJScript;
                    headID.appendChild(scriptTag);
                
                }catch(errv){
                    alert('error:'+errv);
                }
			$("fields").style.display='none';
            $("pageLoadWait").style.display="none";  
            $("divFieldOptions").style.display="";
            $("pageLoadWait").style.display="none";
            if(responseStatus==200){
                if ($("divFieldOptions").innerHTML!='' || $("divFieldOptions")!='Error in getting Data'){
                     setTimeout("getBidPrice()",1000);
                    
                }    
            }
        }else{
            $("divFieldOptions").innerHTML="Error in getting Data ";
        }
      
        
}

 
function showBidPrice(responseText,responseStatus){
    var strResponse;
    var scriptTag;
    var strScript;
    var response;
    if (responseStatus == 200 || responseStatus == 304){
    
    	   response=responseText;
           $("divBidPrice").style.display='';
             strResponse=response.split('#'); 
    
             var sharedPrice=strResponse[0].substring(1,strResponse[0].length);
             var exclusivePrice=strResponse[1].substring(0,strResponse[1].length-1);
           $("divBidPrice").innerHTML=sharedPrice;
           $("bidValue").value=sharedPrice;
          // $("tdBidPrice").innerHTML="Bid Price (Rs.):"+strResponse[0];
           $("spanBidEx").innerHTML=exclusivePrice;
           $("spanBid1").innerHTML=sharedPrice;
           $("spanBid2").innerHTML=sharedPrice;
           $("spanBid4").innerHTML=sharedPrice;
           if (!campExists) $("bidPrice").value=sharedPrice;
           $("spanBid3").innerHTML=exclusivePrice;
           $("divFieldOptions").style.display='';
           $("pageLoadWait").style.display="none";
           $("btnBidPrice").disabled="";
           clearInterval(bidtimerId);
        }
}

function ldetailsUpdate(responseText,responseStatus){
    var response;
        if (responseStatus == 200 || responseStatus == 304){
           response=responseText;
           $("msgDiv").innerHTML="Updated!";
           $("progress").style.display='none';
        }
}


function updateBidHandler(responseText,responseStatus){
    var response;
        if (responseStatus == 200 || responseStatus == 304){
           response=responseText;
           $("msgDiv").style.display='';
           $("msgDiv").innerHTML="Updated!";
           $("bidProgress").style.display='none';
        }
}

function editHandler(responseText,responseStatus){
     var response;
     if (responseStatus == 200 || responseStatus == 304){
           response=responseText;
           $("statusProgress").style.display='none';
        }
}

function excelHandler(responseText,responseStatus){
  var response;
        if (responseStatus == 200 || responseStatus == 304){
           response=responseText;
        }
}



function handleInvoiceResult(responseText,responseStatus){
  var response;
        if (responseStatus == 200 || responseStatus == 304){

           response=responseText;
        }
    }

