
if(!Array.indexOf) 
{
  Array.prototype.indexOf=function(obj) 
  {
    for(var i=0; i<this.length; i++) 
      if(this[i]==obj) return i;

    return -1;
  }
}

var ajatcallback;

function ajatinit( callback ) 
{
  ajatcallback = callback;
  return true;
}

function ajatsetorsc( req, tout )
{
  req.onreadystatechange = 
  function() 
  {
    if (req.readyState == 4)
    {
      clearTimeout(tout);
      if(req.status == 200) 
        ajatcallback(req.responseText,true); 
      else 
        ajatcallback(req.status,false);
    }
    else return;
  }
}


function ajatpost( url, parameters ) 
{
  var req;
  if (window.XMLHttpRequest) 
  { // Mozilla, Safari, ...
    req = new XMLHttpRequest();
    if(req.overrideMimeType)
      req.overrideMimeType('text/xml');
  } 
  else if (window.ActiveXObject) 
  { // IE
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (e) 
    {
      try { req = new ActiveXObject("Microsoft.XMLHTTP"); } 
      catch (e) {}
    }
  }
  if (!req) return false;
  
  var tout = setTimeout( function() {req.abort(); ajatcallback('*Error: The request to the server failed. Please try again. If the problem persists, please contact the site administrator.', 0);}, 5000 );
  ajatsetorsc(req, tout);
  req.open('POST', url, true);
  req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  req.setRequestHeader("Content-length", parameters.length);
  req.setRequestHeader("Connection", "close");
  ajatsetorsc(req, tout);
  
  req.send(parameters);
}