﻿var HttpRequest = {
    get: function(url, params) {//, callback) {
        var process = true,
            sid = base.newGuid(),
            cb = 'cb=' + sid,
            script = document.createElement('script');
        script.id = sid;
        script.type = 'text/javascript';
        if(params) {
            var sep = '';
            url += "?";
            for(var name in params) {
                url += sep + name + '=' + params[name];
                sep = '&';
            }
        }
        if(url.indexOf('?') == -1)
            script.src = url + '?' + cb;
        else
            if(url.match(/\?[\w\d]+/))
                script.src = url + '&' + cb;
            else
                script.src = url + cb;

//        HttpRequest.callback[sid] = {
//            data: null,
//            func: function(response) {
//                process = false;
//                callback(response);
//            }
//        };
        
        script.onerror = script.onload = script.onreadystatechange = function() {
            if(!this.loaded && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
                this.loaded = 1;
                this.onerror = this.onload = this.onreadystatechange = null;
                //if (process) { HttpRequest.callback[this.id].func(HttpRequest.callback[this.id].data); } else { /* response cames */ }
                this.parentNode.removeChild(this);
                delete script;
                //delete HttpRequest.callback[sid];
            }
        }

        if (document.getElementsByTagName('head').length) {
            document.getElementsByTagName('head')[0].appendChild(script);
        }
        else {
            document.appendChild(script);
        }
    }
    //,callback: {}
}
