NewsletterSubscription = function() {
    
    var ye = YAHOO.util.Event;
    var yd = YAHOO.util.Dom;
	var yc = YAHOO.util.Connect;
    
    var curPageId = "start";
    
    ye.addListener("nl-subscr-btn-next", "click", onNextPage);
    ye.addListener("nl-subscr-btn-subscribe", "click", onSubscribe, "subscribe");
    ye.addListener("nl-subscr-btn-unsubscribe", "click", onSubscribe, "unsubscribe");
	
    
    function onNextPage()
    {
        // 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, type)
    {
        // Checking form
        var form = yd.get("newsletter-subscription-form");
		
        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", "/index.php?ajax=1&ext=newsletter&action=" + type);
        
        setPage(type);
        
    }
    
    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");
		
		redrawIe6();
    }
	
	function redrawIe6()
    {
        if(YAHOO.env.ua.ie == 6)
        {
            setTimeout(function() {
                var div = document.createElement("div");
                div.style.height = "500px";
                document.body.appendChild(div);             
                document.body.removeChild(div);             
            }, 100);
        }
    }


    return {
        checkBox : function() {
            var ea = this.checkBox.caller.arguments[1];
			
            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";
			}
			
			redrawIe6();
        }
    };

}();
