/// <reference path="jquery-vsdoc.js" />
/**
* Konfigurace délky a pružnosti hole
*
* Copyright (c) 2010 Web Revolution s. r. o.
*/

HoleConfig = {
    init: function() {
        $("#genderM").change(HoleConfig.changeGender).click(HoleConfig.changeGender);
        $("#genderF").change(HoleConfig.changeGender).click(HoleConfig.changeGender);
        $("#step2").change(HoleConfig.setStep3);
        $("#step3").change(HoleConfig.step3Change);

        $("#handicapM").change(HoleConfig.changeHandicap).click(HoleConfig.changeHandicap);
        $("#handicapF").change(HoleConfig.changeHandicap).click(HoleConfig.changeHandicap);
        $("#step4").change(HoleConfig.step456Change);
        $("#step5").change(HoleConfig.step456Change);
        $("#step6").change(HoleConfig.step456Change);

        HoleConfig.changeGender();
    },

    changeGender: function(elem) {
        HoleConfig.setStep2();
        HoleConfig.setStep5();
        HoleConfig.setStep6();
    },
    changeHandicap: function(elem) {
        HoleConfig.sstep456Change();
    },

    getGender: function() {
        return $("[name=gender]:checked").length == 1 ? $("[name=gender]:checked").val() : "";
    },

    getHandicap: function() {
        return $("[name=handicap]:checked").length == 1 ? $("[name=handicap]:checked").val() : "";
    },

    // Naplnění výše postavy
    setStep2: function() {
        var gender = HoleConfig.getGender();
        var step2dd = $("#step2");
        step2dd.html("");

        if (gender != "") {
            step2Set = HoleConfig.length[gender];

            // Naplnění step2
            //step2dd.append("<option value=\"\">(Vyberte výšku postavy)</option>");
            $(step2Set).each(function(i, elem) {
                step2dd.append("<option value=\"" + elem.name + "\">" + elem.name + "</option>");
            });
        }
        HoleConfig.setStep3();
    },

    // Naplnění step3
    setStep3: function() {
        var gender = HoleConfig.getGender();
        var step2Val = $("#step2").val();
        var step3dd = $("#step3");
        step3dd.html("");

        if (gender != "" && step2Val != "") {
            $(HoleConfig.length[gender]).each(function(i, elem) {
                if (step2Val == elem.name) {
                    //step3dd.append("<option value=\"\">(Vyberte vzdálenost od Vašeho zápěstí k podlaze)</option>");
                    $(elem.items).each(function(i, elem) {
                        step3dd.append("<option value=\"" + elem.result + "\">" + elem.name + "</option>");
                    });
                }
            });
        }

        HoleConfig.step3Change();
    },

    // Vybrán step3
    step3Change: function() {
        $("#length").html($("#step3").val());
    },

    // Naplnění step5
    setStep5: function() {
        var gender = HoleConfig.getGender();
        var handicap = HoleConfig.getHandicap();
        var step5dd = $("#step5");
        step5dd.html("");

        if (gender != "") {
            step5Set = HoleConfig.speedRange[gender];

            // Naplnění step2
            //step5dd.append("<option value=\"\">(Vyberte rychlost)</option>");
            $(step5Set).each(function(i, elem) {
                step5dd.append("<option value=\"" + elem.key + "\">" + elem.value + "</option>");
            });
        }
        HoleConfig.setStep6();
    },

    // Naplnění step6
    setStep6: function() {
        var gender = HoleConfig.getGender();
        var handicap = HoleConfig.getHandicap();
        var step6dd = $("#step6");
        step6dd.html("");

        if (gender != "") {
            step6Set = HoleConfig.holes[gender];

            // Naplnění step2
            //step6dd.append("<option value=\"\">(Vyberte železo)</option>");
            $(step6Set).each(function(i, elem) {
                step6dd.append("<option value=\"" + elem.key + "\">" + elem.value + "</option>");
            });
        }

        HoleConfig.step456Change();
    },

    // Určení výsledku pružnosti
    step456Change: function() {
        var gender = HoleConfig.getGender();
        var handicap = HoleConfig.getHandicap();
        var step4 = $("#step4").val();
        var step5 = $("#step5").val();
        var step6 = $("#step6").val();

        $("#flexibility").html("");

        if (step4 != "" && step5 != "" && step6 != "" && gender != "" && handicap != "") {
            if (gender == "F") {
                var flex = "Žena: standardní pružnost";
                if (handicap == "H") {
                    if (step4 == "15" && step5 == "135") {
                        flex = step6 == "3" ? HoleConfig.flexibility["10"].value : HoleConfig.flexibility["110"].value;
                    }
                    else if (step4 == "45" && step5 == "135" && step6 == "4") {
                        flex = HoleConfig.flexibility["10"].value;
                    }
                }
                $("#flexibility").html(flex);
            } else {
                obj = HoleConfig.flexibility[step5];
                var flex = "undef";

                if (obj.same == 1) {
                    flex = obj.value;
                } else {
                    var idx = ((step4 == "15" || step4 == "45") && handicap == "L" && step6 == "4") ? "175" : "110";
                    
                    flex = HoleConfig.flexibility[idx].value;
                }
                
                if (handicap == "L" && (step4 == "15" || step4 == "45") && step5 == "175") {
                    flex = HoleConfig.flexibility["185"].value;
                }
                else if (handicap == "L" && step4 == "55" && step5 == "135" && step6 == "7") {
                    flex = HoleConfig.flexibility["175"].value;
                }
                else if (handicap == "H" && step5 == "135" && step6 == "7") {
                    flex = HoleConfig.flexibility["175"].value;
                }
                else if (handicap == "L" && (step4 == "15" || step4 == "45") && step5 == "135") {
                    flex = HoleConfig.flexibility["175"].value;
                }
                
                $("#flexibility").html(flex);
            }
        }
    },

    length: { "M": Array(
            { name: "195 až 210 cm", items: Array(
                { name: "100 až 101,5 cm", result: "Muž: o 1,5&quot; delší" },
                { name: "96,5 až 100 cm", result: "Muž: o 1&quot; delší" },
                { name: "94 až 96,5 cm", result: "Muž: o 0,5&quot; delší" },
                { name: "86 až 94 cm", result: "Muž: standardní délka" })
            },
            { name: "185 až 195 cm", items: Array(
                { name: "96,5 až 100 cm", result: "Muž: o 1&quot; delší" },
                { name: "94 až 96,5 cm", result: "Muž: o 0,5&quot; delší" },
                { name: "86 až 94 cm", result: "Muž: standardní délka" },
                { name: "78 až 86 cm", result: "Muž: o 0,5&quot; kratší" })
            },
            { name: "179 až 185 cm", items: Array(
                { name: "92,5 až 95 cm", result: "Muž: o 0,5&quot; delší" },
                { name: "85 až 92,5 cm", result: "Muž: standardní délka" },
                { name: "80 až 85 cm", result: "Muž: o 0,5&quot; kratší" },
                { name: "75 až 80 cm", result: "Muž: o 1&quot; kratší" })
            },
            { name: "161 až 179 cm", items: Array(
                { name: "91,5 až 94 cm", result: "Muž: o 0,5&quot; delší" },
                { name: "84 až 91,5 cm", result: "Muž: standardní délka" },
                { name: "80 až 84 cm", result: "Muž: o 0,5&quot; kratší" },
                { name: "73,5 až 80 cm", result: "Muž: o 1&quot; kratší" })
            },
            { name: "152 až 161 cm", items: Array(
                { name: "82,5 až 89 cm", result: "Muž: standardní délka" },
                { name: "78 až 82,5 cm", result: "Muž: o 0,5&quot; kratší" },
                { name: "73,5 až 78 cm", result: "Muž: o 1&quot; kratší" })
            }
    ),
        "F": Array(
            { name: "185 až 195 cm", items: Array(
                { name: "92,5 až 96,5 cm", result: "Žena: o 1,5&quot; delší" },
                { name: "85 až 92,5 cm", result: "Žena: o 1&quot; delší" },
                { name: "81 až 85 cm", result: "Žena: o 0,5&quot; delší" },
                { name: "75 až 81 cm", result: "Žena: standardní délka" })
            },
            { name: "179 až 185 cm", items: Array(
                { name: "92,5 až 95 cm", result: "Žena: o 1,5&quot; delší" },
                { name: "85 až 92,5 cm", result: "Žena: o 1&quot; delší" },
                { name: "80 až 85 cm", result: "Žena: o 0,5&quot; delší" },
                { name: "75 až 80 cm", result: "Žena: standardní délka" })
            },
            { name: "161 až 179 cm", items: Array(
                { name: "85 až 90 cm", result: "Žena: o 1&quot; delší" },
                { name: "80 až 85 cm", result: "Žena: o 0,5&quot; delší" },
                { name: "73,5 až 80 cm", result: "Žena: standardní délka" })
            },
            { name: "152 až 161 cm", items: Array(
                { name: "82,5 až 89 cm", result: "Žena: o 1&quot; delší" },
                { name: "78 až 82,5 cm", result: "Žena: o 0,5&quot; delší" },
                { name: "73,5 až 78 cm", result: "Žena: standardní délka" })
            }
    )
    },

    speedRange: { "M": Array(
        { key: "10", value: "Menší než 110 km/h (pomalá)" },
        { key: "110", value: "110 až 135 km/h (normální)" },
        { key: "135", value: "135 až 175 km/h (velký ranař)" },
        { key: "175", value: "Větší než 175 km/h (extrémní)" }),
        "F": Array(
        { key: "10", value: "Menší než 105 km/h (pomalá)" },
        { key: "105", value: "105 až 135 km/h (normální)" },
        { key: "135", value: "135 až 160 km/h (velká ranařka)" })
    },

    holes: { "M": Array(
        { key: "4", value: "Železo č. 4 až 6" },
        { key: "7", value: "Železo č. 7 nebo 8" }),
        "F": Array(
        { key: "3", value: "Dřevo nebo železo č. 3" },
        { key: "4", value: "Železo č. 4 nebo 5" })
    },

    flexibility: {
        "10": { same: 1, value: "Pro seniory" },
        "110": { same: 1, value: "Muž: standardní pružnost" },
        "135": { same: 1, value: "Muž: standardní pružnost" },
        "175": { same: 1, value: "Firm (grafit) / Stiff (ocel)" },
        "185": { same: 1, value: "Strong (grafit) / Extra Stiff (ocel)" }
    }

};

$(document).ready(function() {
    HoleConfig.init();
});