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)
{
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
      if(req.status == 200) {
        ajatcallback(req.responseText,true);
      } else {
        ajatcallback(req.status,false);
      }
    }
  }
}

function ajatget( url ) {
  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;
  }
  ajatsetorsc(req);
  req.open('GET', url, true);
  ajatsetorsc(req);
  req.send('');
}

function urlencode(str) {
  str = escape(str);
  str = str.replace('+', '%2B');
  str = str.replace('%20', '+');
  str = str.replace('*', '%2A');
  str = str.replace('/', '%2F');
  str = str.replace('@', '%40');
  return str;
}

function urldecode(str) {
  str = str.replace('+', ' ');
  str = unescape(str);
  return str;
}
