var lokalityKontakt = function () { this.cache = []; this.xmlHttp = vytvorXmlHttpRequestObjekt (); this.odesli = function (obsluha, id) { //pridej do cache if (obsluha) { var query = "obsluha=" + encodeURIComponent (obsluha); query += "&id=" + encodeURIComponent (id); query += "&jazyk=" + encodeURIComponent (jazyk); for (var i = 2; i < arguments.length; i++) query += "&hodnota" + (i - 1) + "=" + encodeURIComponent (arguments[i]); this.cache.push (query); } if ((this.xmlHttp.readyState == 4 || this.xmlHttp.readyState == 0) && this.cache.length > 0) { var cachePolozka = this.cache.shift (); this.xmlHttp.open ("POST", ajaxCesta, true); this.xmlHttp.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded"); this.xmlHttp.setRequestHeader ("Content-length", cachePolozka.length); this.xmlHttp.setRequestHeader ("Connection", "close"); var objekt = this; this.xmlHttp.onreadystatechange = function () {objekt.zpracuj()}; this.xmlHttp.send (cachePolozka); } } this.zpracuj = function () { if (this.xmlHttp.readyState == 1) zaneprazdneno.zobraz (); else if (this.xmlHttp.readyState == 4) { zaneprazdneno.skryj (); if (this.xmlHttp.status == 200) { this.vypis (); } else { //dokonceno s chybou prenosu, napr. server neodpovedel, server je spadly apod... moznost zkusit znovu //this.xmlHttp.statusText } //zpracuj dalsi polozky v cache this.odesli (); } } this.vypis = function () { var xmlDokument = this.xmlHttp.responseXML.documentElement; var id = xmlDokument.getElementsByTagName ("id")[0].childNodes[0].nodeValue; var polozky = xmlDokument.getElementsByTagName ("vysledekXml")[0].childNodes; for (var i = 0; i < polozky.length; i++) { //nacteni psc, pokud je if (polozky.item (i).nodeName == 'psc') { var minPsc = polozky.item (i).getElementsByTagName ("min")[0].childNodes[0].nodeValue; var maxPsc = polozky.item (i).getElementsByTagName ("max")[0].childNodes[0].nodeValue; if (maxPsc == '!neexistuje') document.getElementById ('kontaktPsc').value = ''; else if (maxPsc != '!nemenit') document.getElementById ('kontaktPsc').value = maxPsc; document.getElementById ("kontaktPscChyba").innerHTML = ""; } if (polozky.item (i).nodeName == 'posta') { var posta = polozky.item (i).childNodes[0].nodeValue; if (posta == '!neexistuje') document.getElementById ('kontaktPosta').value = ''; else if (posta != '!nemenit') document.getElementById ('kontaktPosta').value = posta; document.getElementById ("kontaktPostaChyba").innerHTML = ""; } if (polozky.item (i).nodeName == 'vyber') { var vyber = document.getElementById (id); vyber.length = 0; vyber.disabled = false; var novyVyber = polozky.item (i).childNodes; for (var j = 0; j < novyVyber.length; j++) { var hodnota = novyVyber.item (j).getElementsByTagName ("value")[0].childNodes[0].nodeValue; var text = novyVyber.item (j).getElementsByTagName ("text")[0].childNodes[0].nodeValue; var polozka = document.createElement('option'); polozka.value = hodnota; polozka.title = text; polozka.text = text; if (text == '!neexistuji') { vyber.disabled = true; polozka.title = ''; polozka.text = ''; try { //standartni postup vyber.add (polozka, null); } catch (ex) { //kvuli exploreru vyber.add (polozka); } break; } try { //standartni postup vyber.add (polozka, null); } catch (ex) { //kvuli exploreru vyber.add (polozka); } } var hodnota = vyber.options[vyber.selectedIndex].value; switch (id) { case 'kontaktOkresyId': this.odesli ('nazvyLokalit', 'kontaktObceId', hodnota); document.getElementById (id + "Chyba").innerHTML = ""; document.getElementById ("konatktLatChyba").innerHTML = ""; document.getElementById ("kontaktLngChyba").innerHTML = ""; break; case 'kontaktObceId': this.odesli ('nazvyLokalit', 'kontaktCastiId', hodnota); document.getElementById (id + "Chyba").innerHTML = ""; document.getElementById ("konatktLatChyba").innerHTML = ""; document.getElementById ("kontaktLngChyba").innerHTML = ""; break; case 'kontaktCastiId': this.odesli ('nazvyLokalit', 'kontaktUliceId', hodnota); document.getElementById (id + "Chyba").innerHTML = ""; document.getElementById ("konatktLatChyba").innerHTML = ""; document.getElementById ("kontaktLngChyba").innerHTML = ""; break; case 'kontaktUliceId': mapaKontakt.nactiAdresu (); document.getElementById (id + "Chyba").innerHTML = ""; document.getElementById ("konatktLatChyba").innerHTML = ""; document.getElementById ("kontaktLngChyba").innerHTML = ""; break; } } } } };