var http_request = false; var wait_time = false; var wait_on = false; var response; var strict; var func; /* a bongeszot elfedo objektum */ function createRequestObject() { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { return false; } } function escape(response) { if(typeof(response)=='String'){ response = response.replace(/\\/g, '\\\\'); response = response.replace(/"/g, '\\"'); response = response.replace(/\n/g, '\\n'); response = response.replace(/\r/g, '\\r'); response = response.replace(/\t/g, '\\t'); } return response } /** * AJAX lekerdezes inditasa * parameterek: * modul: melyik modulnak menjen a keres * func: melyik funkcionak menjen a keres * url: ha nincs megadva a modul es a func, akkor erre az url-re kuldi az adatokat (csak kulso url-nel ajanlott) * (a modul es a func erosebb nala) * id_params: az atadando id-k /-rel elvalasztva * get_params: atadando get parameterek a szokasos formatumban * http_method: a http keres metodusa: get vagy post (default: get) * response_format: milyen formatumban kapjuk vissza a valaszt: XML objektum, HTML * vagy Text (escapelve vannak bizonyos dolgok) (default: Text) * callback: a valasszal, mint parameterrel meghivando JS fuggveny * target_id: annak a HTML elemnek az id-je, ahova a valasz kerul * target_overwrite: felulirja, vagy hozzafuzze a valaszt a target_id tartalmahoz (default: false) * no_header_check: ha ez nincs megadva, es nem egy ajax=1-es system*.ini-beli funkcio adta a valaszt, akkor reloadolja * az oldalt a fuggveny. pl ha lejart a session es ezert nem a megadott funkcio hajtodik vegre, akkor hasznos. * ha meg van adva a parameter, akkor ez az ellenorzes ki van kapcsolva * debug_url: ha igaz, kiirja a meghivando url-t * debug_response: ha igaz, kiirja a valaszt * post_params: a postolando parameterek a get_params-nal hasznalt formatumaban * form_id: a postolando form. Ha nincs megadva a post_params, akkor innen veszi, * ha nincs megadva a http_method, akkor innen veszi * * pl: getData({modul: 'fwtest', func: 'ajax_proc', target_id: 'response', get_params: 'debug_modul=0', response_format: 'Text' * }); */ function getData(params) { if (params.modul || params.func) { params.url = get_url(params.modul, params.func)+(params.id_params ? params.id_params : '')+(params.get_params ? '?'+params.get_params : ''); } if (params.debug_url) { e(params.url); } params.post_params = params.form_id && !params.post_params ? form2data(params.form_id) : params.post_params; params.http_method = params.form_id && !params.http_method ? document.getElementById(params.form_id).method : params.http_method; if (show_wait) { show_wait(); } if (createRequestObject()==false) { return false; } if (!params.http_method) { params.http_method = 'GET'; } http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { if (params.response_format == "XML") { response = http_request.responseXML; } else if (params.response_format == "HTML") { response = http_request.responseText; } else { response = escape(http_request.responseText); } if (params.debug_response || http_request.getResponseHeader("X-XMLHTTP-DEBUG")) { alert(http_request.responseText); } strict=false; try { strict = http_request.getResponseHeader("X-XMLHTTP-RESPONSE") || params.no_header_check ? true : false; } catch (evt) {} if (hide_wait) { hide_wait(); } if (strict) { if (params.target_id) { document.getElementById(params.target_id).innerHTML = (params.target_overwrite ? '' : document.getElementById(params.target_id).innerHTML) + response; } if (params.callback) { eval(params.callback + '(response);'); } } else { document.location.reload(); return; } } else { return false; } } }; http_request.open(params.http_method, params.url, true); if (params.post_params) { http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); http_request.send(params.post_params); } else { http_request.send(null); } } function getXML(func, url, no_header_check, httpmethod) { getData({callback: func, url: url, response_format: "XML", no_header_check: no_header_check}); } function postXML(func, url, data, no_header_check) { getData({callback: func, url: url, response_format: "XML", no_header_check: no_header_check, http_method: "POST", post_params: data}); } function getText(func, url, no_header_check) { getData({callback: func, url: url, response_format: "Text", no_header_check: no_header_check}); } function getHTML(func, url, no_header_check) { getData({callback: func, url: url, response_format: "HTML", no_header_check: no_header_check}); } function postForm(func, url, form_id, no_header_check) { getData({callback: func, url: url, response_format: "XML", no_header_check: no_header_check, form_id: form_id, http_method: "POST"}); } function postFormHTML(func, url, form_id, no_header_check) { getData({callback: func, url: url, response_format: "HTML", no_header_check: no_header_check, form_id: form_id, http_method: "POST"}); } /** * adott id-ju form adatait kigyujti, es string alakban adja vissza */ function form2data(form_id) { form = document.getElementById(form_id); ret = ''; tagnames = new Array('input', 'select', 'textarea'); for(j=0; j