﻿var ajax = function()
{
    this.load = function(url, func_success, func_failure, params) {
        var xhr = null;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            alert("Ajax functionality not supported!!!");
            return;
        }
        xhr.open("post", url, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.setRequestHeader("Content-length", params.length);
        xhr.setRequestHeader("Connection", "close"); xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    if (xhr.responseText != null) {
                        func_success(xhr.responseText);
                    }
                    else {
                        if (func_failure) func_failure("Failed to find the file");
                    }
                }
                else {
                    if (func_failure) func_failure("Error code " + xhr.status + " received: " + xhr.statusText);
                }
            }
        }
        xhr.send(params);
    };
    
    this.postdata = function(url, func_success, func_failure, params) {
        
        var xhr = null;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            alert("Ajax functionality not supported!!!");
            return;
        }
        xhr.open("post", url, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.setRequestHeader("Content-length", params.length);
        xhr.setRequestHeader("Connection", "close"); xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    if (xhr.responseText != null) {
                        func_success(xhr.responseText);
                    }
                    else {
                        if (func_failure) func_failure("Failed to find the file");
                    }
                }
                else {
                    if (func_failure) func_failure("Error code " + xhr.status + " received: " + xhr.statusText);
                }
            }
        }
        
        var body = this.hash_to_text(params);
        xhr.send(body);
        
    };
    
    this.hash_to_text = function ( hash ){
         var array = [];
            for( var key in hash ) {
                array[array.length] = key+"="+encodeURIComponent(hash[key]);
            }
            
            return array.join("&");
    }
    
};