var xmlreqs = new Array();

function CXMLReq(freed) 
{
        this.freed = freed;
        this.xmlhttp = false;
        if (window.XMLHttpRequest) {
                this.xmlhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
                this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
}

function xmlreqGET(url) 
{

        url = url + "&sid=" + Math.random();
        
        var pos = -1;
        for (var i=0; i<xmlreqs.length; i++) {
                if (xmlreqs[i].freed == 1) { pos = i; break; }
        }
        if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
        
        if (xmlreqs[pos].xmlhttp) {
                xmlreqs[pos].freed = 0;
                xmlreqs[pos].xmlhttp.open("GET",url,true);
                xmlreqs[pos].xmlhttp.onreadystatechange = function() {
                        if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos); }
                }
                if (window.XMLHttpRequest) {
                        xmlreqs[pos].xmlhttp.send(null);
                } else if (window.ActiveXObject) {
                        xmlreqs[pos].xmlhttp.send();
                }
        }
}

function xmlreqPOST(url,data) 
{
        //alert(data);
        var pos = -1;
        for (var i=0; i<xmlreqs.length; i++) {
                if (xmlreqs[i].freed == 1) { pos = i; break; }
        }
        if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
        if (xmlreqs[pos].xmlhttp) {
                xmlreqs[pos].freed = 0;
                xmlreqs[pos].xmlhttp.open("POST",url,true);
                xmlreqs[pos].xmlhttp.onreadystatechange = function() {
                        if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos); }
                }
                xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlreqs[pos].xmlhttp.send(data);
        }
}

function xmlhttpChange(pos) 
{
        if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) 
        {
                var script_response = xmlreqs[pos].xmlhttp.responseText;
                if (script_response)
                {
                        var script_response_array = script_response.split('[ARRAY_BREAK]');
                        //alert(script_response_array);
                        //if (script_response_array.length > 1) { alert(script_response_array[1]); }
                        if (script_response_array.length > 1)
                        {
                                //alert(script_response_array[1]);
                                if (script_response_array[1].length) { eval(script_response_array[1]); }
                        }
                }
                
                xmlreqs[pos].freed = 1;
        }
}

