/************************************
 * XLPortal 2.2
 * Autor: XLTeam
 * Ostania modyfikacja: 18.12.2006
 * Wersja: 2.2.4
 ************************************/


function xlajax() {
    
    this.request = false;
    this.script = '';
    this.dir = '';
    
    this.init();
}

xlajax.prototype.init = function() {
    
    if (window.ActiveXObject) {
        // IE
        try {
            this.request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                this.request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
            }
        }
    }
     else if (window.XMLHttpRequest) {
        // Mozilla, Safari,...
        this.request = new XMLHttpRequest();
        if (this.request.overrideMimeType) {
            this.request.overrideMimeType('text/xml');
        }
    }
    
    if (!this.request) {
        alert('Nie można stworzyć obiektu XMLHTTP');
        return false;
    }
}

xlajax.prototype.get_request = function(url) {
    
    url = this.prepare_url(url);
    this.request.open('GET', url, true);
    this.request.send(null);
}

xlajax.prototype.post_request = function(url, data) {
    
    url = this.prepare_url(url);
    this.request.open('POST', url, true);
    this.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-2');
    this.request.send(this.post_data(data));
}

xlajax.prototype.prepare_url = function (url) {
    if(url.indexOf('?')!=-1) {
        // jest znak zapytania
        return url+'&tmp='+new Date();
    }
    else {
        return url+'?tmp='+new Date();
    }
}

xlajax.prototype.post_data = function(array) {
    var data = '';
    
    try {
        for( var i in array ) {
            data += i + '=' + this.url_encode(array[i]) + '&';
        }
    }
    catch(e) {
    }
    
    return data;
}

xlajax.prototype.url_encode = function (sStr) {
   // return sStr;
     //return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27');
	 return encodeURIComponent(sStr);
}

xlajax.prototype.is_ready = function() {
    if (this.request.readyState == 4 && this.request.status == 200) {
        this.response = this.request.responseText;
        this.responseXML = this.request.responseXML;
        return true;
    }
    else {
        return false;
    }
}
