function addSearchFilter() {
    document.getElementById("country").onchange = function() {
        // send AJAX request on country select change
        showLoader(document.getElementById("city"));
        showLoader(document.getElementById("type"));
        showLoader(document.getElementById("course"));
        send_xmlhttprequest(filterOptions, "get", "/skola/?list_cities=1&zeme="+encodeURI(this.value)+"&mesto="+encodeURI(document.getElementById("city").value)+"&typ="+encodeURI(document.getElementById("type").value));
        return false;
    };
    document.getElementById("city").onchange = function() {
        // send AJAX request on city select change
        showLoader(document.getElementById("type"));
        showLoader(document.getElementById("course"));
        send_xmlhttprequest(filterOptions, "get", "/skola/?list_types=1&zeme="+encodeURI(document.getElementById("country").value)+"&mesto="+encodeURI(this.value)+"&typ="+encodeURI(document.getElementById("type").value));
        return false;
    };
    document.getElementById("type").onchange = function() {
        // send AJAX request on course type select change
        showLoader(document.getElementById("course"));
        send_xmlhttprequest(filterOptions, "get", "/skola/?list_courses=1&zeme="+encodeURI(document.getElementById("country").value)+"&mesto="+encodeURI(document.getElementById("city").value)+"&typ="+encodeURI(this.value));
        return false;
    };
}

function showLoader(obj) {
    if (obj.nextSibling && obj.nextSibling.className == "ajaxLoader") {
        obj.parentNode.removeChild(obj.nextSibling);
    }
  
    var loaderDiv = document.createElement("div");
    loaderDiv.style.width = obj.offsetWidth+"px";
    loaderDiv.style.height = loaderDiv.style.lineHeight = obj.offsetHeight+"px";
    loaderDiv.style.marginTop = "-"+obj.offsetHeight+"px";
    loaderDiv.style.textAlign = "center";
    loaderDiv.style.verticalAlign = "middle";
    loaderDiv.className = "ajaxLoader";
    var loaderImg = document.createElement("img");
    loaderImg.src = "/images/ajax-loader.gif";
    loaderImg.border = 0;
    loaderImg.width = 16;
    loaderImg.height = 16;
    loaderImg.alt = "";
    loaderImg.title = "";
    loaderImg.style.verticalAlign = "middle";
    loaderDiv.appendChild(loaderImg);
  
    obj.style.visibility = "hidden";
    obj.parentNode.insertBefore(loaderDiv, obj.nextSibling);
}

function filterOptions(xmlhttp) {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var items = xmlhttp.responseText.split("\n\n");
            var selectNames = ["city", "type", "course"];
            for (var i = items.length-2, j = 2; i >= 0 && j >= 0; i--, j--) {
                setNewOptions(document.getElementById(selectNames[j]), items[i]);
            }
        }
    }
}

function setNewOptions(select, items) {
    // split items lines into array
    items = items.split("\n");
  
    selectedItem = select.options[select.selectedIndex].value;
  
    // remove all options but the first one
    while (select.length > 1) {
        select.remove(1);
    }
  
    // add all new options
    for (var i in items) {
        if (items[i] != '') {
            var newOption = document.createElement("option");
            newOption.value = newOption.innerHTML = items[i];
            newOption.selected = items[i] == selectedItem;
            select.appendChild(newOption);
        }
    }
  
    select.style.visibility = "";
    select.parentNode.removeChild(select.nextSibling);
}

function makeClickableResults() {
    var middleCol = document.getElementById("middleCol");
    var divs = middleCol.getElementsByTagName("div");
    for (var i=0; i<divs.length; i++) {
        if (divs[i].className.search(/(^| )schoolBlockBorder( |$)/) >= 0) {
            var divs2 = divs[i].getElementsByTagName("div");
            for (var j=0; j<divs2.length; j++) {
                if (divs2[j].className.search(/(^| )schoolHeader( |$)/) >= 0) {
                    var header = divs2[j];
                    var h3a = header.getElementsByTagName("h3")[0].firstChild;
                    var link = h3a.href;
                    var title = h3a.innerHTML;
          
                    var as = header.getElementsByTagName("a");
                    for (var k=0; k<as.length; k++) {
                        as[k].title = as[k].href;
                        as[k].onclick = function(e) {
                            if (e == null) {
                                window.event.cancelBubble = true;
                            } else {
                                e.stopPropagation();
                            }
                        };
                            
                        if (as[k].target == "_blank") {
                            as[k].onmouseover = function(h) {
                                return function(e) {
                                    h.style.backgroundColor = "";
                                    if (e == null) {
                                        window.event.cancelBubble = true;
                                    } else {
                                        e.stopPropagation();
                                    }
                                };
                            }(header);
                            break;
                        }
                    }
          
                    header.style.cursor = "pointer";
                    header.style.cursor = "hand";
                    header.title = title;
                    header.onclick = function(l) {
                        return function() {
                            this.style.backgroundColor = "";
                            window.location.href = l;
                        };
                    }(link);
                    header.onmouseover = function() {
                        this.style.backgroundColor = "#fde7ca";
                    };
                    header.onmouseout = function() {
                        this.style.backgroundColor = "";
                    };

                    break;
                }
            }
        }
    }
}
