// workaround for NS_ERROR_NOT_AVAILABLE (Mozilla bug)
function PF_GetResponseStatusCode(xmlHttpRequest)
{
  var status;
  try {
    status = xmlHttpRequest.status;
  }
  catch(e) { 
    status = 0; // no access to status right now
  }
  return status;
}

function PF_Ajax(url, args, callback)
{
  var req;
  if (window.XMLHttpRequest)
    req = new XMLHttpRequest();
  else if (window.ActiveXObject)
    req = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    return;
  req.open("POST", url, true /* async */);
  if (callback != null && typeof(callback) != 'undefined')
    req.onreadystatechange = function() 
       { if (req.readyState == 4 && PF_GetResponseStatusCode(req) == 200) 
         { callback(req); req.onreadystatechange = PF_NullFunction; req = null; } 
       };
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
  req.send(args);
  return;        
}

function PF_NullFunction()
{
}

