
var eNewsletter = {
    mainLink: null,
    cookieName: 'eNewsletterShow',

    init: function(link, windowType, formValidateCallback)
    {
        if (windowType == 'iframe'){
            windowType = 'class="iframe"';
        } else {
            windowType = '';
        }        
        $('body').append('<a href="'+link+'" '+windowType+' id="fancybox-eNewsletters"></a>');
        this.mainLink = $('#fancybox-eNewsletters');        
        var obj = this;
        this.mainLink.fancybox({
            hideOnContentClick: false,
            padding: 7,
            scrolling: false,
            onComplete: function(){
                if (formValidateCallback){
                    formValidateCallback();
                } else {
                    obj.validateForm();
                }
            },
            onClosed: function(){
                $('#fancybox-eNewsletters').remove();
            }
        });
    },

    setCookieName: function(name)
    {
        this.cookieName = name;
    },

    initShow: function(timeout)
    {        
        if (!getCookie(this.cookieName)){
            var exdate=new Date();
            exdate.setDate(exdate.getDate() + 1000);
            document.cookie = this.cookieName + '=1; path=/; expires=' + exdate.toUTCString();
            var obj = this;
            setTimeout(function(){
                obj.mainLink.click();
            }, (!timeout?2000:timeout));
        }
    },

    validateForm: function()
    {        
        var obj = this;
        $('form[name=ccoptin]').submit(function(){
            if (!obj.validateEmail($(this).find('input[name=ea]'))){
                return false;
            }            
            $.fancybox.close();
        })
    },

    validateEmail: function(field)
    {
        this.clearDialogError(field);
        var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
        var mail = field.val();
        var error = false;
        if (!mail){
            error = "Value is required";
        }
        if (!error && !emailPattern.test(mail)) {
            error = "'" + mail + "' is no valid email address";
        }        
        if (error){
            this.showDialogError(error, field);
            return false;
        }
        return true;
    },

    showDialogError: function(errorMessage, field)
    {
        field.parent().find('.submit').after('<div class="dialogError" style="color: red;">' + errorMessage + '</div>');
    },

    clearDialogError: function(field)
    {
        field.parent().find('.dialogError').remove();
    }
}

function getCookie(name)
{
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    return(setStr);
}

