/******************************************
*           AjaxCore
*   vertion 0.1
*   developed by anTonio(antonvovchenko@wdg.com.ua)
******************************************/

var widgets = Array();

var iter = 1;
var selected_link = -1;
var res_length = 0;
var tmp_key;


function setWrongData(name, value){
    return eval(name + ' = "' + value + '";');
}

function createWidget(wid, tag_id, widget_type){
    if(widgets[wid] != undefined){alert('Please change wid. Now it ' + widgets[wid]);return false;}
    widgets[wid] = Array();
    widgets[wid]['wid'] = wid;
    widgets[wid]['name'] = name;
    widgets[wid]['tag_id'] = tag_id;
    widgets[wid]['type'] = widget_type;
    return widgets[wid];
}

function setWidget(wid, tag_id, widget_type, url, post_params) {
    var widget = createWidget(wid, tag_id, widget_type);
    return requestXML(widget['wid'], url, post_params);
}

function requestXML(wid, url, post_params) {
    var xml_req;
    
    if (window.XMLHttpRequest) {
        xml_req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xml_req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(xml_req){
        xml_req.open("POST",url,true);
        xml_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");//"text/plain");
        xml_req.send(post_params);
        xml_req.onreadystatechange = function (){onStateChange(wid)};
        widgets[wid]['xml_req'] = xml_req;
		return wid;
    } else return false;
}

function onStateChange(wid){
    var widget = widgets[wid];
    var xml_req = widget['xml_req'];

    if (xml_req.readyState==4 && xml_req.status==200){
        switch(widgets[wid]['type']){
            case '1' :
                window.document.getElementById(widgets[wid]['tag_id']).innerHTML = xml_req.responseText;
                break;
            case '2' :
                eval(widgets[wid]['tag_id'] + '("' + xml_req.responseText + '")'); // some parsing function
                break;
            default:
                break;
        }
    } else if (xml_req.readyState==4) {
        alert("Problem retrieving XML data:" + xml_req.status);
    }
}