//based on prototype's ajax class
//to be used with prototype.lite, moofx.mad4milk.net.

ajax = Class.create();
ajax.prototype = {
  initialize: function(url, options){
    this.transport = this.getTransport();
    this.postBody = options.postBody || '';
    this.method = options.method || 'post';
    this.onComplete = options.onComplete || null;
    this.update = $(options.update) || null;
    this.request(url);
  },

  request: function(url){
    this.transport.open(this.method, url, true);
    this.transport.onreadystatechange = this.onStateChange.bind(this);
    if (this.method == 'post') {
      this.transport.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      if (this.transport.overrideMimeType) this.transport.setRequestHeader('Connection', 'close');
    }
    this.transport.send(this.postBody);
  },

  onStateChange: function(){
    if (this.transport.readyState == 4 && this.transport.status == 200) {
      if (this.onComplete)
        setTimeout(function(){this.onComplete(this.transport);}.bind(this), 10);
      if (this.update)
        setTimeout(function(){this.update.innerHTML = this.transport.responseText;}.bind(this), 10);
      this.transport.onreadystatechange = function(){};
    }
  },

  getTransport: function() {
    if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
    else if (window.XMLHttpRequest) return new XMLHttpRequest();
    else return false;
  }
};