﻿/// <reference path="jquery.js" />
/// <reference path="json2.js" />
/// <reference path="servicebase.js" />
/// <reference path="userservice.js" />


var forms = {
    newsletter_signup: {
        init: function() {
            $('#newsletter_email').focus();
            var fillCombo = function(el, start, end) {
                var opt = el.html();
                if (start > end) {
                    for (var i = start; i >= end; i--) {
                        opt += '<option value="' + i + '">' + i + '</option>';
                    }
                } else {
                    for (var i = start; i <= end; i++) {
                        opt += '<option value="' + i + '">' + i + '</option>';
                    }
                }
                el.html(opt);
            }
            fillCombo($('#newsletter_birthdate_month'), 1, 12);
            fillCombo($('#newsletter_birthdate_day'), 1, 31);
            fillCombo($('#newsletter_birthdate_year'), (new Date()).getFullYear(), 1900);
            $('#newsletter_country').val(language.substring(3));
        },
        validation: {
            newsletter_email: util.validations.regextest(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i),
            newsletter_country: util.validations.required,
            newsletter_birthdate_month: function(v) {
                var d = $('#newsletter_birthdate_day').val() - 0;
                var m = $('#newsletter_birthdate_month').val() - 1;
                var y = $('#newsletter_birthdate_year').val() - 0;
                var dt = new Date(y, m, d);
                if (dt.getDate() == d && dt.getMonth() == m && dt.getFullYear() == y) {
                    var cdt = new Date();
                    var cy = cdt.getFullYear();
                    dt.setFullYear(cy);
                    var age = cy - y - (((cdt - dt) < 0) ? 1 : 0);
                    if (age < 2) {
                        return messages.invalid_value;
                    }
                    //$('#newsletter_parent_email_section').toggle(age < 13);
                    return null;
                } else {
                    return messages.invalid_value;
                }
            },
            newsletter_parent_email: util.validations.regextest(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)
        }
    }
};

$(document).ready(function() {

    $('#newsletter_signup_button').click(function() {
        if (!formmgr.isvalid(formmgr.forms.newsletter_signup)) return false;
        formmgr.invalid();
        formmgr.status(messages.processing, true);
        $(this).hide();
        preferenceProxy.newsletterSignup(
            $('#newsletter_email').val(),
            $('#newsletter_country').val(),
            $('#newsletter_birthdate_month').val() + '/' + $('#newsletter_birthdate_day').val() + '/' + $('#newsletter_birthdate_year').val(),
            $('#newsletter_globaloptin').attr('checked'),
            false, //$('#newsletter_thirdpartyoptin').attr('checked'),
            $('#newsletter_parent_email').val(),
            function(res) {
                if (formmgr.responsecheck(res)) {
                    $('div.newsletter-left p').toggle();
                    setTimeout(function() {
                        if (window.name == 'lpso-newsletter-signup') {
                            window.close();
                        } else {
                            window.location.assign('index.aspx');
                        }
                    }, 4000);
                } else {
                    $('#newsletter_signup_button').show();
                }
            });
        return false;
    });

    formmgr.init(forms);

    formmgr.show(formmgr.forms.newsletter_signup);

});
