var request;
var queryString;   //will hold the POSTed data

function sendData(sourcefile, frm, formaction, itemid, toggle){
   
queryString='';
  //alert(formaction);
  //alert(newformnumber);
 //alert("sourcefile:"+sourcefile);
  window.frm=frm;
  
   // to not return a form,make newformnumber=-1
   // if window.newformnumber is not defined, use window.formnumber (defined by registersearch() in body tag)
   //var thisformnumber=typeof(newformnumber) == 'undefined' ? window.formnumber:newformnumber; 
	//document.getElementById('dbug').innerHTML=thisformnumber;
	// neither are defined, formnumber=0
	//var thisformnumber=typeof(thisformnumber) == 'undefined' ? 0:thisformnumber; 
    
   window.formaction=formaction;
	//window.thisformnumber=thisformnumber;
	
	window.sourcefile=sourcefile; 
	
	if(itemid){
	   window.divid=sourcefile+"_"+itemid;
	   window.itemid=itemid;
	}
	else window.divid=sourcefile; 
	 
	  
	if(!toggle ||(toggle &&document.getElementById(window.divid).innerHTML =='')){
     // if(window.thisformnumber>-1) 
     if(frm)
   setQueryString();
   
   if(itemid)
      queryString=queryString +"&ajaxitemid="+itemid;
      
  if(formaction)
    queryString+="&"+formaction;
  queryString+="&isajax=1";
  
      httpRequest("POST","/catalog/"+sourcefile+'.php',true);
   }else document.getElementById(window.divid).innerHTML ='';
      
}

//event handler for XMLHttpRequest
function handleCheck(){
   
   if(request.readyState == 4){
      if(request.status == 200){
        //alert(window.divid);

         document.getElementById(window.divid).innerHTML = request.responseText; 
        } else {
         
         document.getElementById(window.divid).innerHTML = "Network problems:"+request.statusText; 
            //alert("A problem occurred with communicating between the XMLHttpRequest object and the server program."+"-"+request.statusText);
        }
    }//end outer if
}

/* Initialize a Request object that is already constructed */
function initReq(reqType,url,bool){
    /* Specify the function that will handle the HTTP response */
    request.onreadystatechange=handleCheck;
    request.open(reqType,url,bool);
    request.setRequestHeader("Content-Type",
            "application/x-www-form-urlencoded;");
            
    request.send(queryString);
}

/* Wrapper function for constructing a Request object.
 Parameters:
  reqType: The HTTP request type such as GET or POST.
  url: The URL of the server program.
  asynch: Whether to send the request asynchronously or not. */
function httpRequest(reqType,url2,asynch){
  
    //Mozilla-based browsers
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
        request=new ActiveXObject("Msxml2.XMLHTTP");
        if (! request){
            request=new ActiveXObject("Microsoft.XMLHTTP");
        }
     }
    //the request could still be null if neither ActiveXObject
    //initializations succeeded
    if(request){
       initReq(reqType,url2,asynch);
    }  else {
        alert("Your browser does not permit the use of all "+
        "of this application's features!");}
}

function setQueryString(){ 
   queryString="";
   var frm=window.frm;
   var numberElements =  frm.elements.length;
   
   for(var i = 0; i < numberElements; i++)  {
      //alert("name:"+frm.elements[i].name+" -- value:"+frm.elements[i].value)
      var thevalue;
      if(frm.elements[i].type=='radio'){
         //alert(frm.elements[i].name+":"+frm.elements[i].checked+" value:"+frm.elements[i].value)
         if(frm.elements[i].checked)
            thevalue=frm.elements[i].value;
            else continue;
      } else if(frm.elements[i].type=='checkbox'){
         if(frm.elements[i].checked)
         thevalue='checked';
         else thevalue='';
      } else 
      thevalue=frm.elements[i].value;
      queryString+=frm.elements[i].name+"="+encodeURIComponent(thevalue);
      if(i < numberElements-1) queryString+="&";
   }
   
}

