﻿//it must be a start for all classes which want to be inside of WSN namespace
if (WSN == null || typeof (WSN) != "object") { var WSN = new Object(); }


//definig Ajax CLASS

//Usage
//WSN.Ajax("GccIR_GetTroOperativeInfoByUser", OnComplete_GccIR_GetTroOperativeInfoByUser, postData);

//function OnComplete_GccIR_GetTroOperativeInfoByUser(result) {
    //alert(result.responseText);
    //alert(result.responseXML);
//}

WSN.Ajax = function(url, callback, postData) {

     
    
    
    this.url = url;
    this.callback = callback;
    this.postData = postData;


    this.sendRequest = function(url, callback, postData) {
        var req = createXMLHTTPObject();
        if (!req) return;
        var method = (postData) ? "POST" : "GET";
        req.open(method, url, true);
        req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
        if (postData)
            req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        req.onreadystatechange = function() {
            if (req.readyState != 4) return;
            if (req.status != 200 && req.status != 304) {                
                return;
            }
            
            callback(req);
        }
        if (req.readyState == 4) return;
        req.send(postData);
    }



    var XMLHttpFactories = [
	    function() { return new XMLHttpRequest() },
	    function() { return new ActiveXObject("Msxml2.XMLHTTP") },
//	    function() { return new ActiveXObject("Msxml3.XMLHTTP") },
	    function() { return new ActiveXObject("Microsoft.XMLHTTP") }
    ];

    function createXMLHTTPObject() {
        var xmlhttp = false;
        for (var i = 0; i < XMLHttpFactories.length; i++) {
            try {
                xmlhttp = XMLHttpFactories[i]();
            }
            catch (e) {
                continue;
            }
            break;
        }
        return xmlhttp;
    }


    this.sendRequest(this.url, this.callback, this.postData);
}
