﻿function ChangePersonsInSearcher(prefixID, searcherID, showPersonsInfo) {
    var modal = $get(prefixID + 'DivModalPersonsSelector');
    var div = document.body;
    $get('DivPersosnInfoMessage').style.display = showPersonsInfo ? "" : "none";
    ShowObjectAndInactiveBackground(div, div, modal, "Inactive", "shadowDiv12sd21x24d21ss", 50);
}

function PersonsButtonOK_Click(prefixID, searcherID) {
    var type = $get(prefixID + 'HiddenFieldPersonType').value;
    var adultAge = $get(prefixID + 'HiddenFieldAdultAge').value;
    var modal = $get(prefixID + 'DivModalPersonsSelector');
    var targetDiv = $get(prefixID + 'DivSelectedPersons');

    var selectedAges = GetSelectedAges(modal);
    if (adultAge != "") {
        adultAge = parseInt(adultAge);
    }

    if (HasAdultPerson(selectedAges, adultAge) || type == "1") {
        targetDiv.innerHTML = "";
        var i = 0;
        if (type == "1") {
            var children = document.createElement("span");
            var adults = document.createElement("span");
            var adultsCount = selectedAges[0];
            var childrenCount = selectedAges.length - 1;
            //targetDiv.appendChild(CreateAdultsCountSpan(adultsCount));
            for (i = 0; i < adultsCount; i++) {
                adults.appendChild(CreatePersonSpan(true, "", prefixID, searcherID));
            }
            targetDiv.appendChild(adults);
            if (childrenCount > 0) {
                var childrenAgesText = "";
                for (i = 1; i < selectedAges.length; i++) {
                    childrenAgesText += selectedAges[i] + ',';
                    children.appendChild(CreatePersonSpan(false, GetPersonAgeTextFromCombo(selectedAges[i], modal), prefixID, searcherID));
                }
                childrenAgesText = " " + childrenAgesText.substring(0, childrenAgesText.length - 1) + " let";
                targetDiv.appendChild(children);
                targetDiv.appendChild(CreateSpan(childrenAgesText, "", ""));
            }
        }
        else {
            for (i = 0; i < selectedAges.length; i++) {
                targetDiv.appendChild(CreatePersonSpan(selectedAges[i] >= adultAge, GetPersonAgeTextFromCombo(selectedAges[i], modal), prefixID, searcherID));
            }
        }
        SetSelectedAgesToHidden(selectedAges, prefixID, type, adultAge);
        HideObjectAndActiveAllBackground(modal, "shadowDiv12sd21x24d21ss");
    }
    else {
        alert("Musíte vybrat alespoň jednu dospělou osobu.");
    }
}

function PersonsButtonClose_Click(prefixID) {
    var modal = $get(prefixID + 'DivModalPersonsSelector');
    HideObjectAndActiveAllBackground(modal, "shadowDiv12sd21x24d21ss");
}

function CreatePersonSpan(adult, text, prefixID, searcherID) {
    var parentSpan = CreateSpan("", "span_selectedPersonOne", "");
    var img = CreatePersonIMG("", adult ? "Dospělá osoba" : "Dítě", adult ? "Dospělá osoba" : "Dítě", "img_selectedPersonIMG", adult, prefixID, searcherID);
    parentSpan.appendChild(img);

    return parentSpan;
}

function CreateAdultsCountSpan(count, prefixID, searcherID) {
    var parentSpan = CreateSpan("", "span_selectedPersonOne", "");
    var span = CreateSpan(count.toString() + ' x ', "span_seletedPersonAgeText", "");
    var img = CreatePersonIMG("", "Dospělá osoba", "Dospělá osoba", "img_selectedPersonIMG", true, prefixID, searcherID);

    parentSpan.appendChild(span);
    parentSpan.appendChild(img);

    return parentSpan;
}

function CreateSpan(text, cssClass, id) {
    var span = document.createElement("span");
    span.className = cssClass;
    span.innerHTML = text;
    span.id = id;

    return span;
}

function CreatePersonIMG(id, alt, tooltip, cssClass, adult, prefixID, searcherID) {
    var img = document.createElement("img");
    img.alt = alt;
    img.title = tooltip;
    img.className = cssClass;
    img.id = id;
    img.src = adult ? "app/img/adult.png" : "app/img/child.png";

    if (img.attachEvent) {
        img.onclick = function () { ChangePersonsInSearcher(prefixID, searcherID) };
    }
    else {
        img.setAttribute("onclick", "ChangePersonsInSearcher('" + prefixID + "', '" + searcherID + "');");
    }

    return img;
}

function CreateClearDiv() {
    var div = document.createElement("div");
    div.className = "clear";

    return div;
}

function GetSelectedAges(div) {
    var inputs = div.getElementsByTagName("input");
    var i = 0;
    var ages = new Array();

    for (i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        if (input.type == "hidden" && input.id.indexOf("HiddenFieldSelectedValue") != -1 && input.value != "") {
            ages[ages.length] = parseInt(input.value);
        }
    }

    return ages;
}

function HasAdultPerson(ages, adultAge) {
    if (ages != undefined && ages != null && ages.length > 0) {
        var i = 0;
        for (i = 0; i < ages.length; i++) {
            if (ages[i] >= adultAge) {
                return true;
            }
        }
    }

    return false;
}

function SetSelectedAgesToHidden(selectedAges, prefixID, type, adultAge) {
    var i = 0;
    var start = 0;
    var selectedPersons = $get(prefixID + 'HiddenFieldSelectedPersons');
    selectedPersons.value = "";
    if (type == "1") {
        var adultsCount = parseInt(selectedAges[0]);
        var j = 0;
        for (j = 0; j < adultsCount; j++) {
            selectedPersons.value += adultAge.toString() + ",";
        }
        start = 1;
    }
    for (i = start; i < selectedAges.length; i++) {
        selectedPersons.value += selectedAges[i] + ",";
    }

    selectedPersons.value = selectedPersons.value.substring(0, selectedPersons.value.length - 1);
}

function GetPersonAgeTextFromCombo(age, div) {
    var uls = div.getElementsByTagName("ul");
    var liElemets = uls[uls.length - 1].getElementsByTagName("li");
    var i = 0;
    for (i = 0; i < liElemets.length; i++) {
        var liElement = liElemets[i];
        if (liElement.attributes["itemvalue"] != undefined && liElement.attributes["itemvalue"] != null) {
            if (age.toString() == liElement.attributes["itemvalue"].value) {
                var ageText = Trim(liElement.innerHTML);
                var j = 0;
                for (j = ageText.length; j >= 0; j--) {
                    if (CharIsNumber(ageText[j])) {
                        ageText = ageText.substring(0, j + 1);
                        break;
                    }
                }
                break;
            }
        }
    }

    return '(' + ageText + ')';
}
