var Spielwochen = function() {
    var curPage = "sw-teaser";

    // Initializing
    activateCheckboxGroups();

    var images = ["spielwochen-bg.jpg", "spielwochen-danke.png", "spielwochen-form-bg.gif", "spielwochen-form-link.gif", "spielwochen-form-send.gif", "spielwochen-question-bg.gif", "spielwochen-teaser-bg.jpg", "radio.gif", "checkbox.gif"];



    var preloader = new NB.ImagePreloader();
    preloader.onProgressChange = function(progress) {
        yd.get("sw-loader").firstChild.innerHTML = "Laden..." + progress + "%";
    }
    preloader.onComplete = function() {
        yd.setStyle("sw-loader", "display", "none");
        yd.setStyle("sw-teaser", "display", "block");
    };

    preloader.preload(images, "/Images/Content/page74/");

    /**
    RESET RADIO BUTTONS
    **/

    document.getElementById('toy').value = '';
    document.getElementById('gender').value = '';
    document.getElementById('food').value = '';

    function activateCheckboxGroups() {
        var chkBoxGroups = yd.getElementsByClassName("checkbox-group", "", "katzenmilch");
        for (var i = 0; i < chkBoxGroups.length; i++) {
            activateCheckboxGroup(chkBoxGroups[i]);
        }
    }

    function activateCheckboxGroup(chkBoxGroup) {
        var chkBoxes = yd.getElementsByClassName("checkbox", "", chkBoxGroup);
        var output = yd.getElementsByClassName("checkbox-output", "", chkBoxGroup)[0];
        for (var i = 0; i < chkBoxes.length; i++) {
            var obj = {
                group: chkBoxGroup,
                checkbox: chkBoxes[i],
                checkboxes: chkBoxes,
                output: output
            }
            ye.addListener(chkBoxes[i], "click", selectCheckBox, obj);
        }
    }

    function checkPage(page) {
        switch (page) {
            case "sw-start":
                var formCheck = new FormCheck(startFormCfg);
                var formVars = formCheck.GetFormVars(document.forms[0], true);
                formCheck.Check(formVars);
                if (formCheck.HasErrors()) {
                    alert(formCheck.GetErrorTexts()[0]);
                    return false;
                }
                break;
            case "sw-form":
                var formCheck = new FormCheck(registerFormCfg);
                var formVars = formCheck.GetFormVars(document.forms[0], true);
                formVars["catbirth"] = "1970-01-01";
                formCheck.Check(formVars);
                if (formCheck.HasErrors()) {
                    alert(formCheck.GetErrorTexts()[0]);
                    return false;
                } else {
                    var postString = "";
                    for (arrayIndex in formVars) {
                        if (arrayIndex != '__VIEWSTATE') {
                            postString += arrayIndex + "=" + formVars[arrayIndex] + "&";
                        }
                    }

                    postString += "saveData=1";
                    var saveRequest = YAHOO.util.Connect.asyncRequest('POST', '/content/gewinnspiel/spielwochen/spielwochen.aspx', {
                        success: function(o) {
                            eval("var responseJson = " + o.responseText);
                            if (!responseJson.success) {
                                for (errorField in responseJson) {
                                    alert(responseJson[errorField]);
                                    if (errorField == 'toy') {
                                        yd.get('toy').value = '';
                                        yd.removeClass(yd.getElementsByClassName('chk-group-toy'), 'radio-on');
                                        Spielwochen.setPage("sw-start", true);
                                    }
                                    return;
                                }
                            }
                            else {
                                Spielwochen.setPage("sw-thanks", true);
                                return;
                            }
                        }
                    }, postString);
                    return false;
                }
                break;
        }
        return true;
    }

    function preloadImage(path) {
        var img = document.createElement("img");
        img.src = path;

        yd.get("sw-preloader").appendChild(img);

    }

    function selectCheckBox(oEvt, ea) {
        oEvt = ye.getEvent(oEvt);
        ye.stopEvent(oEvt);
        if (yd.hasClass(ea.checkbox, "checkbox-on")) {
            yd.removeClass(ea.checkbox, "checkbox-on");
        }
        else {
            yd.addClass(ea.checkbox, "checkbox-on");
        }

        ea.output.value = "";

        var disableAll = (yd.hasClass(ea.checkbox, "checkbox-alone") && yd.hasClass(ea.checkbox, "checkbox-on"));

        for (var i = 0; i < ea.checkboxes.length; i++) {
            var isAnotherSingle = (yd.hasClass(ea.checkboxes[i], "checkbox-alone") && ea.checkboxes[i] != ea.checkbox);

            if ((disableAll && ea.checkboxes[i] != ea.checkbox) || isAnotherSingle) {
                yd.removeClass(ea.checkboxes[i], "checkbox-on");
            }

            if (yd.hasClass(ea.checkboxes[i], "checkbox-on")) {
                if (ea.output.value != "") {
                    ea.output.value += ", ";
                }

                ea.output.value += ea.checkboxes[i].innerHTML;
            }
        }
    }

    return {
        trackPage: function(pageId) {

            var axel = Math.random() + "";
            var a = axel * 10000000000000;

            switch (pageId) {
                case 'sw-teaser':
                    var urlToTrack = 'http://fls.doubleclick.net/activityi;src=2084134;type=whiskas;cat=spiel530;ord=' + a + '?';
                    var gaUrlToTrack = 'Spielwochen/Startseite';
                    break;
                case 'sw-start':
                    var urlToTrack = 'http://fls.doubleclick.net/activityi;src=2084134;type=whiskas;cat=spiel855;ord=' + a + '?';
                    var gaUrlToTrack = 'Spielwochen/Frage';
                    break;
                case 'sw-form':
                    var urlToTrack = 'http://fls.doubleclick.net/activityi;src=2084134;type=whiskas;cat=spiel270;ord=' + a + '?';
                    var gaUrlToTrack = 'Spielwochen/Formular';
                    break;
                case 'sw-thanks':
                    var urlToTrack = 'http://fls.doubleclick.net/activityi;src=2084134;type=whiskasc;cat=spiel943;qty=1;cost=1.00;ord=' + a + '?';
                    var gaUrlToTrack = 'Spielwochen/Thank_You';
                    break;
            }

            //yd.get('tracking-pixel').src = urlToTrack;
            yd.get('DCLK_FLIframe').src = urlToTrack;
            pageTracker._trackPageview(gaUrlToTrack);
        },


        clearValue: function(element) {
            switch (element.name) {
                case 'cat_day':
                    defaultValue = "TT";
                    break;
                case 'cat_month':
                    defaultValue = "MM";
                    break;
                case 'cat_year':
                    defaultValue = "JJJJ";
                    break;
            }
            if (element.value == defaultValue) {
                element.value = "";
            }
        },

        resetRadio: function(obj) {
            var e = ye.getEvent(e);
            ye.stopEvent(e);


            for (var i = 0; i < q4radios.length; i++) {
                var checkboxes = yd.getElementsByClassName("chk-group-" + q4radios[i]);

                for (var j = 0; j < checkboxes.length; j++) {
                    yd.removeClass(checkboxes[j], "checkbox-on");

                }

                yd.getElementsByClassName("radio-" + q4radios[i])[0].value = "";
            }
            yd.addClass(obj, "checkbox-on");
        },
        setPage: function(pageId, withoutFormcheck) {

            if (withoutFormcheck == true) {
                yd.get(curPage).style.display = "none";
                curPage = pageId;
                yd.get(curPage).style.display = "block";
                Spielwochen.trackPage(curPage);
                return;
            }

            e = ye.getEvent();
            ye.stopEvent(e);

            if (!checkPage(curPage)) {
                return false;
            }

            yd.get(curPage).style.display = "none";
            curPage = pageId;
            if (pageId == "km-thanks") {
                yd.get("km-loader").firstChild.innerHTML = "Bitte warten...";
                yd.get("km-loader").style.display = "block";

                document.forms[0].submit();
            }
            else {
                Spielwochen.trackPage(curPage);
                yd.get(curPage).style.display = "block";
            }
        },
        setRadio: function(obj, value) {
            var e = ye.getEvent();
            ye.stopEvent(e);

            var re = new RegExp("chk-group-([a-z]+)");
            var matches = re.exec(obj.className);

            var isChecked = yd.hasClass(obj, "radio-on");

            var name = matches[1];

            var checkboxes = yd.getElementsByClassName("chk-group-" + name);

            yd.removeClass("q4-no-answer", "radio-on");

            for (var i = 0; i < checkboxes.length; i++) {
                if (!isChecked && checkboxes[i] == obj) {
                    yd.addClass(checkboxes[i], "radio-on");
                }
                else {
                    yd.removeClass(checkboxes[i], "radio-on");
                }
            }
            yd.getElementsByClassName("radio-" + name)[0].value = isChecked ? "" : value;
        }
    };
} ();
