NewsletterSubscription = function() {
    
    var ye = YAHOO.util.Event;
    var yd = YAHOO.util.Dom;
	var yc = YAHOO.util.Connect;
    
    var curPageId = "start";
    var curSubscribeAction = "test";
    
    ye.addListener("nl-subscr-btn-send", "click", onSubscribe);
    ye.addListener("nl-subscr-btn-subscribe-next", "click", onNextPage, "subscribe");
    ye.addListener("nl-subscr-btn-unsubscribe-next", "click", onNextPage, "unsubscribe");
	
    
    function onNextPage(e, type)
    {
    	if(type)
    	{
    		curSubscribeAction = type;
    		if(type == "unsubscribe")
    		{
    			var nlWhiskas = yd.get("newsletter-type-whiskas");
    			var nlJunior = yd.get("newsletter-type-kitten");
    			if(!nlWhiskas.checked && !nlJunior.checked)
    			{
    				alert(nlFormCfg.errorTexts.newsletter.empty);
    				return;
    			}
    			setPage("form");    		
    			return true;
    		}
    	}
        // Cat birthdate
        var catBirthdateDay = yd.get("cat-whiskas-birthdate-day");
        var catBirthdateMonth = yd.get("cat-whiskas-birthdate-month");
        var catBirthdateYear  = yd.get("cat-whiskas-birthdate-year");
        var catBirthdate = catBirthdateYear.value + "-" + catBirthdateMonth.value;
		if(catBirthdateDay.value.match(/[0-9]+/))
		{
			catBirthdate += "-" + catBirthdateDay.value;
		}
		else
		{
			catBirthdate += "-" + "01"
		}
		
		// Kitten birthdate
		var kittenBirthdateDay = yd.get("cat-kitten-birthdate-day");
		var kittenBirthdateMonth = yd.get("cat-kitten-birthdate-month");
		var kittenBirthdateYear  = yd.get("cat-kitten-birthdate-year");
		var kittenBirthdate = kittenBirthdateYear.value + "-" + kittenBirthdateMonth.value;
		
		if(kittenBirthdateDay.value.match(/[0-9]+/))
        {
            kittenBirthdate += "-" + kittenBirthdateDay.value;
        }
        else
        {
            kittenBirthdate += "-" + "01"
        }
		
        var formCheck = new FormCheck(nlFormCfg);
		
		if(!yd.get("newsletter-type-whiskas").checked && !yd.get("newsletter-type-kitten").checked)
        {
            alert(nlFormCfg.errorTexts.newsletter.empty);
            return;
        }
        
		
		if(yd.get("newsletter-type-whiskas").checked && !formCheck.IsDate(catBirthdate))
        {
            alert(nlFormCfg.errorTexts.catAge.empty);
            return;
        }
		
		if(yd.get("newsletter-type-kitten").checked && !formCheck.IsDate(kittenBirthdate))
        {
            alert(nlFormCfg.errorTexts.kittenAge.empty);
            return;
        }
        
        setPage("form");
    }
    
    function onSubscribe(e)
    {
        // Checking form
        var form = document.forms[0];
		
        formCheck = new FormCheck(nlFormCfg);
        var formVars = formCheck.GetFormVars(form);
        
        formCheck.Check(formVars);
        if(formCheck.HasErrors())
        {
            alert(formCheck.GetErrorTexts().join("\n"));
            return;
        }
        
        // Sending request
        yc.setForm(document.forms[0]);
		
        yc.asyncRequest("post", "/Content/Newsletter.aspx?action=" + curSubscribeAction);
        
        setPage(curSubscribeAction);
        
    }
    
    function setPage(page)
    {
        yd.setStyle("nl-subscr-hd-p-" + curPageId, "display", "none");
        yd.setStyle("nl-subscr-bd-p-" + curPageId, "display", "none");
        yd.setStyle("nl-subscr-btns-p-" + curPageId, "display", "none");
        
        curPageId = page;

        yd.setStyle("nl-subscr-hd-p-" + curPageId, "display", "block");
        yd.setStyle("nl-subscr-bd-p-" + curPageId, "display", "block");
        yd.setStyle("nl-subscr-btns-p-" + curPageId, "display", "block");
    }


    return {
        checkBox : function() {
    		var ea = this.checkBox.caller.arguments[1];
			if(ea)
			{
				if(ea.inputEl.id == "newsletter-type-kitten")
				{
					yd.get("newsletter-kitten-extra").style.display = (ea.inputEl.checked) ? "block" : "none";
				}
				
				if(ea.inputEl.id == "newsletter-type-whiskas")
				{
					yd.get("newsletter-whiskas-extra").style.display = (ea.inputEl.checked) ? "block" : "none";
				}
			}
        }
    };

}();
