﻿var KatzenMilch = function() {
    var curPage = "km-start";
    
    // Initializing
    activateCheckboxGroups();
    
    
    var images = ["bg.jpg", "products/antihairball.gif", "products/katzinis.gif", "question-bg.gif", "radio.gif", "p2-milch.png", "p3-cat.png", "p4-preise.png", "p5-thankyou.png"];
    var q4radios = ["knuspertaschen", "antihairball", "dentabits", "katzinis", "kitbits", "crunch"];
    
    
    if(isFinished)
    {
        yd.setStyle("km-loader", "display", "none");
        yd.setStyle("km-thanks", "display", "block");
    }
    else
    {
        
        var preloader = new NB.ImagePreloader();
        preloader.onProgressChange = function(progress) {
            yd.get("km-loader").firstChild.innerHTML = "Laden..." + progress + "%";
        }
        preloader.onComplete = function() {
            yd.setStyle("km-loader", "display", "none");
            yd.setStyle("km-start", "visibility", "visible");            
        };
        
        preloader.preload(images, "/Images/Content/page122/");
    
    }
    
    activateProductInfos();
    
    
    
    
    
    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 activateProductInfos()
    {
        var images = yd.getElementsByClassName("product-info-overlay");
        for(var i = 0; i < images.length; i++)
        {
            ye.addListener(images[i], "mouseover", onProductOver);
            ye.addListener(images[i], "mouseout", onProductOut);
        }
    }
    
    function checkPage(page)
    {
        switch(page)
        {
            case "km-q13":
                var formCheck = new FormCheck(startFormCfg);
                var formVars = formCheck.GetFormVars(document.forms[0], true);
                formVars["date"] = formVars["Year"] + "-" + formVars["Month"] + "-" + formVars["Day"];
                formCheck.Check(formVars);
                if(formCheck.HasErrors())
                {
                    alert(formCheck.GetErrorTexts()[0]);
                    return false;
                }
                break;
                
            case "km-q4":
                var answerCount = 0;
                for(var i = 0; i < q4radios.length; i++)
                {
                    var val = yd.getElementsByClassName("radio-" + q4radios[i])[0].value;
                    if(val == 1 || val == 2 || val == 3)
                    {
                        answerCount++;                        
                    }
                }
                if(answerCount != 6)
                {
                    alert("Bitte geben Sie zu jedem Produkt eine Antwort an.");
                    return false;
                }
                
                break;
                
            case "km-q5":
                var formCheck = new FormCheck(q5FormJson);
                var formVars = formCheck.GetFormVars(document.forms[0], true);
                formCheck.Check(formVars);
                if(formCheck.HasErrors())
                {
                    alert(formCheck.GetErrorTexts()[0]);
                    return false;
                }
                break;
                
            case "km-form":
                var formCheck = new FormCheck(formCfg);
                formVars = formCheck.GetFormVars(document.forms[0], true);
                formCheck.Check(formVars);
                if(formCheck.HasErrors())
                {
                    alert(formCheck.GetErrorTexts()[0]);
                    return false;
                }
                break;
        }
        return true;
    }
    
    function getTrackingName(pageId)
    {
        var name = 'Katzenmilch.aspx';
        switch(pageId)
        {
            case 'km-q13':
                name = 'Frage 1-3.aspx';
                break;
                
            case 'km-q4':
                name = 'Frage 4.aspx';
                break;
            
            case 'km-q5':
                name = 'Frage 5.aspx';
                break;
                
            case 'km-form':
                name = 'Formular.aspx';
                break;
            
            
            case 'km-thanks':
                name = 'Dankeseite.aspx';
                break;
        }
        
        
        return '/content/Gewinnspiel/Katzenmilch/' + name;
    }
    
    function onProductOver(e)
    {
        e = ye.getEvent(e);
        var t = ye.getTarget(e);
        var xy = yd.getXY(t);
        var pInfo = yd.get("km-product-info");
        yd.get("km-pinfo-" + t.name).style.display = "block";
        xy[0] -= (pInfo.offsetWidth - t.offsetWidth) / 2;
        xy[1] -= pInfo.offsetHeight + 5;
        yd.setXY(pInfo, xy);
        yd.setStyle(pInfo, "visibility", "visible");
        
    }
    
    function onProductOut(e)
    {
        yd.setStyle("km-product-info", "visibility", "hidden");
        var children = yd.getChildren("km-product-info");
        for(var i = 0; i < children.length; i++)
        {
            children[i].style.display = "none";
        }
    }
    
    function onStart(e)
    {
        e = ye.getEvent(e);
        ye.stopEvent(e);
        
        yd.setStyle("km-start", "display", "none");
        yd.setStyle("km-q13", "display", "block");
    }
    
    
    
    function preloadImage(path)
    {
        var img = document.createElement("img");
        img.src = path;
        
        yd.get("km-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 {
        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 = "0";
            }
            yd.addClass(obj, "checkbox-on");
        },
        setPage : function(pageId)
        {
            e = ye.getEvent();
            ye.stopEvent(e);
            
            if(!checkPage(curPage))
            {
                return false;
            }
            
            yd.get(curPage).style.display = "none";
            curPage = pageId;
            
            pageTracker._trackPageview(getTrackingName(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
            {
                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, "checkbox-on");
            
            var name = matches[1];
            
            var checkboxes = yd.getElementsByClassName("chk-group-" + name);
            
            yd.removeClass("q4-no-answer", "checkbox-on");
            
            for(var i = 0; i < checkboxes.length; i++)
            {
                if(!isChecked && checkboxes[i] == obj)
                {
                    yd.addClass(checkboxes[i], "checkbox-on");
                }
                else
                {
                    yd.removeClass(checkboxes[i], "checkbox-on");
                }                               
            }
            
            yd.getElementsByClassName("radio-" + name)[0].value = isChecked ? "0" : value;
        },
        setGenderRadio : function(val)
        {
            var e = ye.getEvent(e);
            ye.stopEvent(e);
            var obj = ye.getTarget(e);
            
            yd.getElementsByClassName("radio-gender")[0].value = val;
            var radios = yd.getElementsByClassName("radio");
            for(var i = 0; i < radios.length; i++)
            {
                if(radios[i] == obj)
                {
                    yd.addClass(radios[i], "radio-on");
                }
                else
                {
                    yd.removeClass(radios[i], "radio-on");
                }
            }
            
        }
    
    };
}();
