window.onkeyup = pusteniKlavesy;

function pusteniKlavesy() {
    var catchEvent = arguments[0] || window.event;
    if (window.popupOkno && catchEvent.keyCode == 27) {
        zavreniPopupOkna();
    }
}

function zobrazitKalkulacku() {
    var body = document.getElementsByTagName("body")[0];

    var popupOkno = document.createElement("div");
    popupOkno.className = "popupOkno";
    popupOkno.setAttribute("id", "popupOkno");
    body.appendChild(popupOkno);

    var logo = document.createElement("img");
    logo.src = "/logoMale.png";
    popupOkno.appendChild(logo);

    var zavrit = document.createElement("a");
    zavrit.className = "zavrit";
    zavrit.title = "Zav\u0159ít kalkulačku";
    zavrit.onclick = zavreniPopupOkna;
    popupOkno.appendChild(zavrit);

    var opiste = document.createElement("p");
    opiste.innerHTML = "Opi\u0161te prosím z Va\u0161eho posledního vyú\u010dtování,<br/>jak dlouho jste volali minulý m\u011bsíc:";
    popupOkno.appendChild(opiste);

    var formular = document.createElement("form");
    popupOkno.appendChild(formular);

    var tabulka = document.createElement("table");
    tabulka.className = "tabulkaKalkulacky";
    formular.appendChild(tabulka);

    var radek1 = document.createElement("tr");
    tabulka.appendChild(radek1);
    var mobil = document.createElement("th");
    mobil.innerHTML = "Na mobil:";
    radek1.appendChild(mobil);
    var mobilTD = document.createElement("td");
    radek1.appendChild(mobilTD);
    var mobilDIV = createElement(mobilTD, "div", "", "pozadiPolicka", "", "");
    createElement(mobilDIV, "input", "mobilHodiny", "malePolickoKalkulacky", "00", 3);
    createElement(mobilDIV, "div", "", "dvojtecka", ":");
    createElement(mobilDIV, "input", "mobilMinuty", "malePolickoKalkulacky", "00", 2);
    createElement(mobilDIV, "div", "", "dvojtecka", ":");
    createElement(mobilDIV, "input", "mobilSekundy", "malePolickoKalkulacky", "00", 2);
    
    var info = document.createElement("a");
    info.className = "info";
    info.setAttribute("title", "Zadávejte ve formátu hodiny : minuty : sekundy.");
    mobilTD.appendChild(info);

    var radek2 = document.createElement("tr");
    tabulka.appendChild(radek2);
    var spicka = document.createElement("th");
    spicka.innerHTML = "Na pevnou ve \u0161pi\u010dce:";
    radek2.appendChild(spicka);
    var spickaTD = document.createElement("td");
    radek2.appendChild(spickaTD);
    var spickaDIV = createElement(spickaTD, "div", "", "pozadiPolicka", "", "");
    createElement(spickaDIV, "input", "spickaHodiny", "malePolickoKalkulacky", "00", 3);
    createElement(spickaDIV, "div", "", "dvojtecka", ":");
    createElement(spickaDIV, "input", "spickaMinuty", "malePolickoKalkulacky", "00", 2);
    createElement(spickaDIV, "div", "", "dvojtecka", ":");
    createElement(spickaDIV, "input", "spickaSekundy", "malePolickoKalkulacky", "00", 2);
    
    var info2 = document.createElement("a");
    info2.className = "info";
    info2.setAttribute("title", "Zadávejte ve formátu hodiny : minuty : sekundy.");
    spickaTD.appendChild(info2);

    var radek3 = document.createElement("tr");
    tabulka.appendChild(radek3);
    var mimoSpicku =  document.createElement("th");
    mimoSpicku.innerHTML = "Na pevnou mimo \u0161pi\u010dku:";
    radek3.appendChild(mimoSpicku);
    var mimoSpickuTD = document.createElement("td");
    radek3.appendChild(mimoSpickuTD);
    var mimoSpickuDIV = createElement(mimoSpickuTD, "div", "", "pozadiPolicka", "", "");
    createElement(mimoSpickuDIV, "input", "mimoSpickuHodiny", "malePolickoKalkulacky", "00", 3);
    createElement(mimoSpickuDIV, "div", "", "dvojtecka", ":");
    createElement(mimoSpickuDIV, "input", "mimoSpickuMinuty", "malePolickoKalkulacky", "00", 2);
    createElement(mimoSpickuDIV, "div", "", "dvojtecka", ":");
    createElement(mimoSpickuDIV, "input", "mimoSpickuSekundy", "malePolickoKalkulacky", "00", 2);

    var info3 = document.createElement("a");
    info3.className = "info";
    info3.setAttribute("title", "Zadávejte ve formátu hodiny : minuty : sekundy.");
    mimoSpickuTD.appendChild(info3);
    
    var radek4 = document.createElement("tr");
    tabulka.appendChild(radek4);
    var castka =  document.createElement("th");
    castka.innerHTML = "Celková \u010dástka v\u010detn\u011b DPH a pau\u0161álu:";
    castka.className = "dvaRadky";
    radek4.appendChild(castka);
    var castkaTD = document.createElement("td");
    radek4.appendChild(castkaTD);
    var castkaInput = document.createElement("input");
    castkaInput.className = "polickoKalkulacky";
    castkaInput.setAttribute("id", "pausal");
    castkaInput.setAttribute("value", " K\u010d");
    if (!castkaInput.addEventListener) {
        castkaInput.attachEvent("onfocus", zaktivneniPolicka);
        castkaInput.attachEvent("onblur", zneaktivneniPolicka);
    } else {
        castkaInput.addEventListener("focus", zaktivneniPolicka, false);
        castkaInput.addEventListener("blur", zneaktivneniPolicka, false);
    }
    castkaTD.appendChild(castkaInput);

    var radek5 = document.createElement("tr");
    tabulka.appendChild(radek5);
    var spocitat =  document.createElement("th");
    spocitat.setAttribute("colspan", "2");
    radek5.appendChild(spocitat);
    var spocitatInput = vytvoritTlacitko("id", "Spo\u010dítat, kolik u\u0161et\u0159ím");
    spocitat.appendChild(spocitatInput);
    
    spocitatInput.onclick = function() {
        var provolanoNaMobil = ziskejMinuty("mobil");
        var provolanoVeSpicce = ziskejMinuty("spicka");
        var provolanoMimoSpicku = ziskejMinuty("mimoSpicku");
        var pausal = parseFloat(document.getElementById("pausal").value);
        
        if (provolanoNaMobil < 0 || provolanoVeSpicce < 0 || provolanoMimoSpicku < 0) {
            alert("Provolanou dobu zadávejte ve formátu 00:00:00 (hodiny:minuty:sekundy).");
        } else if (isNaN(pausal)) {
            alert("Vypl\u0148te celkovou \u010dástku v\u010detn\u011b DPH a pau\u0161álu.");
        } else {
            var cena = provolanoNaMobil * 3.49 + provolanoVeSpicce * 0.9 + provolanoMimoSpicku * 0.65;
            
            var usetrimPredchozi = document.getElementById("usetrim");
            if (usetrimPredchozi) {
                usetrimPredchozi.parentNode.removeChild(usetrimPredchozi);
                usetrimPredchozi = null;
            }

            var u =  document.createElement("div");
            u.setAttribute("id", "usetrim");
            popupOkno.appendChild(u);

            var us =  document.createElement("div");
            us.className = "usetrim";
            u.appendChild(us);

            var usetri = Math.round(pausal - cena);
            if (usetri > 0) {
                var usetrim = document.createElement("div");
                usetrim.innerHTML = "S námi u\u0161et\u0159íte a\u017e ";
                us.appendChild(usetrim);
                var usetrimCastka = document.createElement("div");
                usetrimCastka.innerHTML = usetri + " K\u010d";
                usetrimCastka.className = "usetrimCastka";
                us.appendChild(usetrimCastka);
                var usetrimMesicne= document.createElement("div");
                usetrimMesicne.innerHTML = " m\u011bsí\u010dn\u011b.";
                us.appendChild(usetrimMesicne);
            } else {
                var usetrim2 = document.createElement("div");
                usetrim2.innerHTML = "S námi bohu\u017eel neu\u0161et\u0159íte :-(";
                us.appendChild(usetrim2);
            }

            var oddelovac =  document.createElement("div");
            oddelovac.className = "oddelovac";
            u.appendChild(oddelovac);

            popupOkno.style.height = "500px";

            var operator =  document.createElement("p");
            operator.innerHTML = "Pokud si p\u0159ejete být kontaktování na\u0161ím operátorem s p\u0159esn\u011bj\u0161í cenovou nabídkou, uved\u0165e sv\u016fj e-mail:"
            u.appendChild(operator);

            var email = document.createElement("input");
            email.className = "emailKalkulacky";
            u.appendChild(email);

            var odeslat = vytvoritTlacitko("kontaktovat", "Odeslat");
            odeslat.setAttribute("id", "odeslat");
            u.appendChild(odeslat);

            odeslat.onclick = function () {
                if (email.value != null && email.value.length > 3 && email.value.match(/.+@.+[.].+/)) {
                    var xmlhttp = new XMLHttpRequest();
                    xmlhttp.onreadystatechange = function () {
                        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    }
                    };
                    xmlhttp.open("GET", "/zpracovani-kalkulacky?mobilHodiny=" + mobilHodiny.value + "&mobilMinuty=" + mobilMinuty.value + "&mobilSekundy=" + mobilSekundy.value + "&spickaHodiny=" + spickaHodiny.value + "&spickaMinuty=" + spickaMinuty.value + "&spickaSekundy=" + spickaSekundy.value + "&mimoSpickuHodiny=" + mimoSpickuHodiny.value + "&mimoSpickuMinuty=" + mimoSpickuMinuty.value + "&mimoSpickuSekundy=" + mimoSpickuSekundy.value + "&pausal=" + castkaInput.value + "&usetri=" + usetri + "&email=" + email.value, true);
                    xmlhttp.send("");
                    
                    var palec = document.createElement("img");
                    palec.src = "/palec.png";
                    palec.className = "palec";
                    popupOkno.appendChild(palec);
    
                    var dekujeme = document.createElement("p");
                    dekujeme.innerHTML = "D\u011bkujeme za uvedení e-mailové adresy. Operátor se vám ozve v nejbli\u017e\u0161ím mo\u017eném termínu.";
                    popupOkno.appendChild(dekujeme);

                    popupOkno.style.height = "550px";
                } else {
                    alert("Uve\u010fte svou e-mailovou adresu.");
                }
            }

            odeslat.focus();
        }
    }

    var pozadi = vytvoreniPozadi();
    body.appendChild(pozadi);

    umisteniPopupOkna(popupOkno);

    mobilHodiny.focus();
}

function ziskejMinuty(pole) {
    return parseFloat(document.getElementById(pole + "Hodiny").value) * 60 + parseFloat(document.getElementById(pole + "Minuty").value) + parseFloat(document.getElementById(pole + "Sekundy").value) / 60;
}

function vytvoreniPozadi() {
    var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
    var pozadiNapovedy = document.createElement('div');
    pozadiNapovedy.className = "pozadiNapovedy";
    pozadiNapovedy.style.height = (iebody.scrollHeight > iebody.offsetHeight ? iebody.scrollHeight : iebody.offsetHeight) + "px";
    if (!pozadiNapovedy.addEventListener) {
        pozadiNapovedy.attachEvent("onclick", zavreniPopupOkna);
    } else {
        pozadiNapovedy.addEventListener("click", zavreniPopupOkna, false);
    }
    pozadiNapovedy.setAttribute("id", "pozadiNapovedy");
    return pozadiNapovedy;
}

function umisteniPopupOkna(popupOkno) {
    var scrollTop = document.body.scrollTop + document.documentElement.scrollTop;
    var scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
    var topMargin = (document.documentElement.clientHeight - 620) / 2 + scrollTop;
    if (topMargin < scrollTop) {
        topMargin = scrollTop;
    }
    var leftMargin = (document.documentElement.clientWidth - 420) / 2 + scrollLeft;
    if (leftMargin < scrollLeft) {
        leftMargin = scrollLeft;
    }
    popupOkno.style.top = topMargin + "px";
    popupOkno.style.left = leftMargin + "px";
}

function zavreniPopupOkna() {
    var popupOkno =  document.getElementById("popupOkno");
    if (popupOkno) {
        popupOkno.parentNode.removeChild(popupOkno);
    }

    var pozadiNapovedy =  document.getElementById("pozadiNapovedy");
    if (pozadiNapovedy) {
        pozadiNapovedy.parentNode.removeChild(pozadiNapovedy);
    }
}

function vytvoritTlacitko(id, textNaTlacitku) {
    var tlacitko =  document.createElement("a");
    tlacitko.className = "tlacitkoKalkulacky";
    tlacitko.setAttribute("id", id);

    var levyOkraj =  document.createElement("div");
    levyOkraj.className = "levyOkraj";
    tlacitko.appendChild(levyOkraj);

    var textTlacitka =  document.createElement("div");
    textTlacitka.className = "textTlacitka";
    textTlacitka.innerHTML = textNaTlacitku;
    tlacitko.appendChild(textTlacitka);

    var pravyOkraj =  document.createElement("div");
    pravyOkraj.className = "pravyOkraj";
    tlacitko.appendChild(pravyOkraj);

    return tlacitko;
}

function zaktivneniPolicka() {
    var catchEvent = arguments[0] || window.event;
    var element = catchEvent.target || catchEvent.srcElement;
    element.style.color = "#000000";
    if (element.value == "00") {
        element.value = "";
    }
}

function zneaktivneniPolicka() {
    var catchEvent = arguments[0] || window.event;
    var element = catchEvent.target || catchEvent.srcElement;
    element.style.color = "#9f9f9f";
    if (element.value == "") {
        element.value = "00";
    }
}

function createElement(parent, tag, id, className, value, maxlength) {
    var input = document.createElement(tag);
    if (value != "") {
        if (tag == "input") {
            input.setAttribute("value", value);
        } else if (tag == "div") {
            input.innerHTML = value;
        }
    }
    input.className = className;
    input.setAttribute("id", id);
    if (tag == "input" && maxlength != "") {
        input.setAttribute("maxlength", maxlength);
    }
    if (tag == "input") {
        if (!input.addEventListener) {
            input.attachEvent("onfocus", zaktivneniPolicka);
            input.attachEvent("onblur", zneaktivneniPolicka);
        } else {
            input.addEventListener("focus", zaktivneniPolicka, false);
            input.addEventListener("blur", zneaktivneniPolicka, false);
        }
    }
    parent.appendChild(input);
    return input;
}
