//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.update)

                setTimeout(function(){this.update.innerHTML = this.transport.responseText;}.bind(this), 10);

            if (this.onComplete) 

                setTimeout(function(){this.onComplete(this.transport);}.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;

    }

};