var req = createXMLHttpRequest();  

function createXMLHttpRequest() {  
  var ua;  
  if(window.XMLHttpRequest) {  
    try {  
      ua = new XMLHttpRequest();  
    } catch(e) {  
      ua = false;  
    }  
  } else if(window.ActiveXObject) {  
    try {  
      ua = new ActiveXObject('Microsoft.XMLHTTP');  
    } catch(e) {  
      ua = false;  
    }  
  }  
  return ua;  
}  

function sendRequest(frm, file) {  
  var rnd982g = Math.random();  
  var str = '';  
  if(str = getForm(frm)) {  
    req.open('GET', file+'?'+str+'&rnd982g='+rnd982g);  
    req.onreadystatechange = handleResponse;  
    req.send(null);  
  }  
  return false;  
}  

function handleResponse() {  
  if(req.readyState == 4){  
    var response = req.responseText;  
    document.getElementById('results').innerHTML = response;  
  }  
}  

function getForm(fobj) {  
  var str = '';  
  var ft = '';  
  var fv = '';  
  var fn = '';  
  var els = '';  
  
  for(var i = 0;i < fobj.elements.length;i++) {  
    els = fobj.elements[i];  
    ft = els.title;  
    fv = els.value;  
    fn = els.name;  
    switch(els.type) {  
      case 'text':  
      case 'hidden':  
      case 'password':  
      case 'textarea':    
        str += fn + '=' + encodeURI(fv) + '&';  
        break;   
  
      case 'checkbox':  
      case 'radio':  
        if(els.checked) str += fn + '=' + encodeURI(fv) + '&';  
        break;      
  
      case 'select-one':  
        str += fn + '=' + els.options[els.selectedIndex].value + '&';  
        break; 
      
      case 'select-multiple':  
        for(var j = 0; j < els.options.length; j++) 
          if(els.options[j].selected) 
            str += fn + '=' + els.options[j].value + '&';  
        break;
        
    } // switch  
  } // for  
  
  str = str.substr(0,(str.length - 1));  
  return str;  
}  