﻿
$(document).ready(function()
{
    //    $('div#newsletter-widget input[type=text]').defaultValue('Email');
    $('div.newsletter-widget input[name*=txtEmail]').defaultValue('Email');
});

var NewsLetter =
{
    _isValidEmail: false

    , _isLargeWidget: false

    , Views: { DefaultView: 0, EmptyEmail: 1, InvalidEmail: 2, Submitted: 3, AlreadySubmitted: 4, Failure: 5, NotActivated: 6 }

    , _validateEmail: function () {
        NewsLetter._isValidEmail = false;
        //        var email = $("div#newsletter-widget input[type=text]").val();
        var email = $("div.newsletter-widget input[name*=txtEmail]").val();
        if (NewsLetter._isLargeWidget) {
            email = $("div.newsletter-widget-large input[name*=txtEmail]").val();
        }

        if (!__Validators.is_email(email)) {
            NewsLetter.setCurrentView(NewsLetter.Views.EmptyEmail);
        }
        else {
            NewsLetter._isValidEmail = true;
        }
    }

    , _S4: function () {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    }
    , _guid: function () {
        return (NewsLetter._S4() + NewsLetter._S4() + "-" + NewsLetter._S4() + "-" + NewsLetter._S4() + "-" + NewsLetter._S4() + "-" + NewsLetter._S4() + NewsLetter._S4() + NewsLetter._S4());
    }

    , _addSubscriber: function (isLargeWidget) {
        NewsLetter._isLargeWidget = isLargeWidget;
        NewsLetter._validateEmail();

        if (NewsLetter._isValidEmail) {
            var emailValue = $("div.newsletter-widget input[name*=txtEmail]").val();
            if (NewsLetter._isLargeWidget) {
                emailValue = $("div.newsletter-widget-large input[name*=txtEmail]").val();
            }
            doAddSubscriber(emailValue, 0, NewsLetter._guid(), NewsLetter.onSuccess, NewsLetter.onFailure);
        }
    }

    , onSuccess: function (response) {
        if (response.toString() == "1") {
            //alert('Το email σας καταχωρήθηκε και θα λαμβάνετε το newsletter μας.');
            NewsLetter.setCurrentView(NewsLetter.Views.Submitted);
        }
        else if (response.toString() == "2") {
            //alert('Έχει ήδη σταλεί αίτηση για εγγραφή αυτής της διεύθυνσης e-mail, αλλά δεν έχει ενεργοποιηθεί ακόμα. Για δική σας ευκολία σας έχουμε ξαναστείλει e-mail με το link ενεργοποίησης.');
            NewsLetter.setCurrentView(NewsLetter.Views.NotActivated);
        }
        else if (response.toString() == "0") {
            //alert('Το συγκεκριμένο email είναι ήδη εγγεγραμμένο.');
            NewsLetter.setCurrentView(NewsLetter.Views.AlreadySubmitted);
        }
        if (NewsLetter._isLargeWidget) {
            $('div.newsletter-widget-large input[name*=txtEmail]').defaultValue('Email');
        }
        else {
            $('div.newsletter-widget input[name*=txtEmail]').defaultValue('Email');
        }
    }

    , onFailure: function (xht, status, err) {
        //alert('Παρουσιάστηκε κάποιο πρόβλημα, παρακαλώ προσπαθήστε ξανά.');
        NewsLetter.setCurrentView(NewsLetter.Views.Failure);
    }

    , reset: function () {
        NewsLetter.setCurrentView(NewsLetter.Views.DefaultView);
    }

    , setCurrentView: function (view) {
        if (NewsLetter._isLargeWidget) {
            $('div.newsletter-widget-large #newsletter-form').hide();
            $('div.newsletter-widget-large #newsletter-form p').each(function () { $(this).hide(); });
            $('div.newsletter-widget-large #newsletter-success').hide();

            view != 3 ? $('div.newsletter-widget-large #newsletter-form').show() : $('div.newsletter-widget-large #newsletter-success').show();
            if (view == 0) $('div.newsletter-widget-large #default').show();
            if (view == 4) $('div.newsletter-widget-large #subscribed').show();
            if (view == 1) $('div.newsletter-widget-large #empty').show();
            if (view == 2) $('div.newsletter-widget-large #invalid').show();
            if (view == 5) $('div.newsletter-widget-large #failure').show();
            if (view == 6) $('div.newsletter-widget-large #notactivated').show();

            $('div.newsletter-widget-large input[type=text]').val('').focus().blur();
            //$('div.newsletter-widget-large input[type=text]').defaultValue('Email');
        }
        else {
            $('div.newsletter-widget #newsletter-form').hide();
            $('div.newsletter-widget #newsletter-form p').each(function () { $(this).hide(); });
            $('div.newsletter-widget #newsletter-success').hide();

            view != 3 ? $('div.newsletter-widget #newsletter-form').show() : $('div.newsletter-widget #newsletter-success').show();
            if (view == 0) $('div.newsletter-widget #default').show();
            if (view == 4) $('div.newsletter-widget #subscribed').show();
            if (view == 1) $('div.newsletter-widget #empty').show();
            if (view == 2) $('div.newsletter-widget #invalid').show();
            if (view == 5) $('div.newsletter-widget #failure').show();
            if (view == 6) $('div.newsletter-widget #notactivated').show();

            $('div.newsletter-widget input[type=text]').val('').focus().blur();
            //$('div.newsletter-widget input[type=text]').defaultValue('Email');
        }
    }
}
