

var http_request = false;

function makeAjaxRequest(url, callbackfunction, parameters) {

	if ( (! http_request) || (http_request.readyState != 4) ) { // Added by EDC, re-use the same http_request, but don't interrupt existing requests (could be sending data ...)
			http_request = false;
		
	   		if (window.XMLHttpRequest) { // Mozilla, Safari,...
         		http_request = new XMLHttpRequest();
         		if (http_request.overrideMimeType) {
         			// set type accordingly to anticipated content type
            		//http_request.overrideMimeType('text/xml');
            		http_request.overrideMimeType('text/html');
         		}
      		} else if (window.ActiveXObject) { // IE
         		try {
            		http_request = new ActiveXObject("Msxml2.XMLHTTP");
         		} catch (e) {
            		try {
               			http_request = new ActiveXObject("Microsoft.XMLHTTP");
            		} catch (e) {}
         		}
      		}
      		if (!http_request) {
         		//	alert('Cannot create XMLHTTP instance');
         		return false;
      		}
	} else {
		// just to make sure :)
		http_request.abort();	
	}

    http_request.onreadystatechange = function () {		  
		if (http_request.readyState == 4) {
     		 if (http_request.status == 200) {
	            	result = http_request.responseText;
					
					eval(callbackfunction + "(result)");
  		        	//document.getElementById(updatediv).innerHTML = result;    
			  		//ajaxactions(); // this script should exist in the script to do some fancy stuff			  
					
	         } else {
	            // alert('There was a problem with the request.' + http_request.status + http_request.responseText);
	         }
	     }
		  
	 }


     http_request.open('POST', url, true);
     http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2005 00:00:00 GMT"); //EDC to stop caching of XMLHTTPrequests by internet explorer....
	 	// for post
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", parameters.length);
		http_request.setRequestHeader("Connection", "close");
     http_request.send(parameters);

}

   
   function SubmitAjaxForm(url, callbackfunction, obj) {


      var getstr ="&"; // "?" removed for POST
	  inputTags=obj.getElementsByTagName("input");
      for (i=0; i < inputTags.length; i++) {
         
            if (inputTags[i].type == "text") {
               getstr += inputTags[i].name + "=" + inputTags[i].value + "&";
            }
			if (inputTags[i].type == "hidden") {
               getstr += inputTags[i].name + "=" + inputTags[i].value + "&";
            }
		
            if (inputTags[i].type == "checkbox") {
               if (inputTags[i].checked) {
                  getstr += inputTags[i].name + "=" + inputTags[i].value + "&";
               } else {
                  getstr += inputTags[i].name + "=&";
               }
            }
            if (inputTags[i].type == "radio") {
               if (inputTags[i].checked) {
                  getstr += inputTags[i].name + "=" + inputTags[i].value + "&";
               }
            }			        	
	  }
		 
	  selectTags=obj.getElementsByTagName("select");
      for (i=0; i < selectTags.length; i++) {  	           
            var sel = selectTags[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
      }

	  textareaTags=obj.getElementsByTagName("textarea");
      for (i=0; i < textareaTags.length; i++) {  	           
            getstr += textareaTags[i].name + "=" + textareaTags[i].value + "&";
	  }

 //alert("loop: "+i+" -> "+getstr);



      makeAjaxRequest(url, callbackfunction, getstr);
   }