ajax = new Object();
ajax.requestHandler = null;
ajax.callHandler = function(result) {
    if (result.errorCode == -1) {
        alert(result.errorMsg);
    } else {
        if (this.requestHandler) {
            var tempHandler = this.requestHandler;
            this.requestHandler = null;
            tempHandler(result);
        }
    }
}

ajax.createNVArray = function(name, value) {
    var data = new Array();
    data['name'] = name;
    data['value'] = value;
    return data;
}

ajax.call = function(action, data, requestHandler) {
    var params;
    params = '__action__=' + action;
    for(var i = 0; i < data.length; i++) {
        params += '&' + data[i].name + '=' + encodeURIComponent(data[i].value);
    }

    var result = new Array();

    var xmlHttp = XmlHttp.create();
    xmlHttp.open('POST', url+'/xml-action-handler.php', true);
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
//           alert(xmlHttp.responseText);
          eval(xmlHttp.responseText);
          if (!result) result = new Array();
          ajax.callHandler(result);
        }
    }
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-2');
    xmlHttp.send(params);
    this.requestHandler = requestHandler;
}

