function XHConn()

{

  var xmlhttp, bComplete = false;

  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }

  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }

  catch (e) { try { xmlhttp = new XMLHttpRequest(); }

  catch (e) { xmlhttp = false; }}}

  if (!xmlhttp) return null;

  this.connect = function(sURL, sMethod, sVars, fnDone)

  {

    if (!xmlhttp) return false;

    bComplete = false;

    sMethod = sMethod.toUpperCase();

 

try {

      if (sMethod == "GET")

      {

        xmlhttp.open(sMethod, sURL+"?"+sVars, true);

        sVars = "";

      }

      else

      {

        xmlhttp.open(sMethod, sURL, true);

        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");

        xmlhttp.setRequestHeader("Content-Type",

          "application/x-www-form-urlencoded");

      }

      xmlhttp.onreadystatechange = function(){

        if (xmlhttp.readyState == 4 && !bComplete)

        {

          bComplete = true;

          fnDone(xmlhttp);

        }};

      xmlhttp.send(sVars);

    }

    catch(z) { return false; }

    return true;

  };

  return this;

}