var poctySluzebPodleDruhu = function(krajSelectElement, okresSelectElement, vcetneOkolnichOkresuElement) { var requestUri = "/socreg/sluzby_podle_druhu.do"; var requestParams = new Object(); requestParams["SUBSESSION_ID"] = SUBSESSION_ID; requestParams["zak"] = krajSelectElement.options[krajSelectElement.selectedIndex].value; requestParams["zaok"] = okresSelectElement.options[okresSelectElement.selectedIndex].value; requestParams["ook"] = vcetneOkolnichOkresuElement.checked?"ON":"OFF"; var url = AjaxRequest.composeUrl(requestUri, requestParams); var ajaxRequest = AjaxRequest.create(); ajaxRequest.open("GET", url, true); ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajaxRequest.setRequestHeader("pragma", "no-cache"); ajaxRequest.setRequestHeader("cache-control", "no-cache,no-store,max-age=0"); ajaxRequest.setRequestHeader("expires", "0"); ajaxRequest.onreadystatechange = function(){ if (ajaxRequest.readyState == AjaxRequest.SET_UP){ var formElement = document.getElementById("hledani-sluzby"); var inputElements = formElement.getElementsByTagName("input"); for(var i = 0; i < inputElements.length; i++){ if(inputElements[i].type == "submit" && inputElements[i].name == "sd"){ var pocetSpan = null; if(inputElements[i].nextSibling && inputElements[i].nextSibling.className == "sdp"){ pocetSpan = inputElements[i].nextSibling; } else { pocetSpan = document.createElement("span"); pocetSpan.className = "sdp"; pocetSpan.setAttribute("title", "Celkový počet registrovaných sociálních služeb vybraného druhu v zadané lokalitě."); if(inputElements[i].nextSibling){ inputElements[i].parentNode.insertBefore(pocetSpan, inputElements[i].nextSibling); } else { inputElements[i].parentNode.appendChild(pocetSpan); } } pocetSpan.innerHTML = "(-)"; inputElements[i].disabled = false; inputElements[i].parentNode.className = inputElements[i].parentNode.className.replace(/\s?disabled\b/i, ""); } } } if (ajaxRequest.readyState == AjaxRequest.COMPLETE){ if(ajaxRequest.status == 200){ var xmlResponseDocument = ajaxRequest.responseXML.documentElement; if(ajaxRequest.responseText && !xmlResponseDocument){ try { xmlResponseDocument = new ActiveXObject("Microsoft.XMLDOM"); xmlResponseDocument.async="false"; xmlResponseDocument.loadXML(ajaxRequest.responseText); } catch(e){ return null; } } var krajSelectValue = krajSelectElement.options[krajSelectElement.selectedIndex].value; var krajTestPattern = new RegExp("^" + krajSelectValue + "$", "i"); var krajResponseElement = xmlResponseDocument.getElementsByTagName(krajSelectElement.id)[0]; var krajResponseValue = ""; if (krajResponseElement.textContent){ krajResponseValue = krajResponseElement.textContent; } else if (krajResponseElement.text){ krajResponseValue = krajResponseElement.text; } var okresSelectValue = okresSelectElement.options[okresSelectElement.selectedIndex].value; var okresTestPattern = new RegExp("^" + okresSelectValue + "$", "i"); var okresResponseElement = xmlResponseDocument.getElementsByTagName(okresSelectElement.id)[0]; var okresResponseValue = ""; if (okresResponseElement.textContent){ okresResponseValue = okresResponseElement.textContent; } else if (okresResponseElement.text){ okresResponseValue = okresResponseElement.text; } // kontrola jestli dosly vysledek hledani odpovida aktualnimu stavu checkboxu, // tj. jestli jsou dosla data aktualni var vcetneOkolnichOkresuValue = vcetneOkolnichOkresuElement.checked?"ON":"OFF"; var vcetneOkolnichOkresuTestPattern = new RegExp("^" + vcetneOkolnichOkresuValue + "$", "i"); var vcetneOkolnichOkresuResponseElement = xmlResponseDocument.getElementsByTagName(vcetneOkolnichOkresuElement.id)[0]; var vcetneOkolnichOkresuResponseValue = ""; if (vcetneOkolnichOkresuResponseElement.textContent){ vcetneOkolnichOkresuResponseValue = vcetneOkolnichOkresuResponseElement.textContent; } else if (vcetneOkolnichOkresuResponseElement.text){ vcetneOkolnichOkresuResponseValue = vcetneOkolnichOkresuResponseElement.text; } if(krajTestPattern.test(krajResponseValue) && okresTestPattern.test(okresResponseValue) && vcetneOkolnichOkresuTestPattern.test(vcetneOkolnichOkresuResponseValue)){ var lineElements = xmlResponseDocument.getElementsByTagName("line"); var responseLines = new Object(); for(var i = 0; i < lineElements.length; i++){ responseLines[lineElements[i].getAttribute("druh-sluzby")] = lineElements[i].getAttribute("pocet"); } var formElement = document.getElementById("hledani-sluzby"); var inputElements = formElement.getElementsByTagName("input"); for(var i = 0; i < inputElements.length; i++){ if(inputElements[i].type == "submit" && inputElements[i].name == "sd"){ var pocetSpan = null; if(inputElements[i].nextSibling && inputElements[i].nextSibling.className == "sdp"){ pocetSpan = inputElements[i].nextSibling; } else { pocetSpan = document.createElement("span"); pocetSpan.className = "sdp"; if(inputElements[i].nextSibling){ inputElements[i].parentNode.insertBefore(pocetSpan, inputElements[i].nextSibling); } else { inputElements[i].parentNode.appendChild(pocetSpan); } } pocetSpan.innerHTML = "(" + responseLines[inputElements[i].value] + ")"; if(responseLines[inputElements[i].value] == "0"){ inputElements[i].disabled = true; if(inputElements[i].parentNode.className.indexOf("disabled") == -1){ var cnames = inputElements[i].parentNode.className.split(" "); cnames[cnames.length] = "disabled"; inputElements[i].parentNode.className = cnames.join(" "); } } else { inputElements[i].disabled = false; inputElements[i].parentNode.className = inputElements[i].parentNode.className.replace(/\s?disabled\b/i, ""); } } } } } } }; ajaxRequest.send(null); } var manageVcetneOkolnichOkresuAccessibility = function(vcetneOkolnichOkresuElement, okresSelectElement){ var vybranyOkres = okresSelectElement.options[okresSelectElement.selectedIndex].value; vcetneOkolnichOkresuElement.disabled = (vybranyOkres && (vybranyOkres.length > 0))?false:true; if(vcetneOkolnichOkresuElement.disabled) { vcetneOkolnichOkresuElement.checked = false; } } EventController.registerEvent(window, EventController.LOAD, function(e) { var krajSelectElement = document.getElementById("zak"); var okresSelectElement = document.getElementById("zaok"); var vcetneOkolnichOkresuElement = document.getElementById("ook"); manageVcetneOkolnichOkresuAccessibility(vcetneOkolnichOkresuElement, okresSelectElement); poctySluzebPodleDruhu(krajSelectElement, okresSelectElement, vcetneOkolnichOkresuElement); }, false);