  function do_post_callback(function_name, parameter_name) {
    document.forms[0].__FUNCTION.value = function_name;
    document.forms[0].__PARAMETER.value = parameter_name;
    document.forms[0].submit();
  }
  
  function remember_focus(the_control) {
    document.forms[0].__LASTFOCUS.value = the_control.name;
  }


  //AJAX

  var lastReadyState = 4;
  
  function makeRequest(url, debug) {
      
      if(lastReadyState!=4) {
        alert('Please wait, processing...');
      } else {
        var http_request = false;
    
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 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('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        
        var parameters = getFormValues(document.forms[0]);
        

        http_request.onreadystatechange = function() { alertContents(http_request, debug); };
        
        http_request.open('POST', url, true);
        
        http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
  
        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 alertContents(http_request, debug) {
      lastReadyState = http_request.readyState;
      if (http_request.readyState == 4) {
          if (http_request.status == 200) {
            if(debug) {
              alert(http_request.responseText);
            } else {
              eval(http_request.responseText);
            }
              
          } else {
              alert('There was a problem with the AJAX request.');
          }
      }
  }
  
  function getFormValues(fobj, valFunc) { 
    
       var str = ""; 
    
       var valueArr = null; 
    
       var val = ""; 
    
       var cmd = ""; 
    
       for(var i = 0;i < fobj.elements.length;i++) 
    
       { 
    
           switch(fobj.elements[i].type) 
    
           { 
    
               case "checkbox": 
                    val = "";
                    if(fobj.elements[i].checked) {
                      val = "1";
                    }
                    str += fobj.elements[i].name + 
    
                     "=" + escape(val) + "&"; 
    
                     break; 
               
               case "text": 
    
                    str += fobj.elements[i].name + 
    
                     "=" + escape(fobj.elements[i].value) + "&"; 
    
                     break; 
               case "hidden": 
                    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; 
    
           } 
    
       } 
    
       str = str.substr(0,(str.length - 1)); 
    
       return str; 

  }


