﻿$(document).ready(function () {

    $("#txtFirstName").watermark();

    $("#EmailSignupResult").hide();

    // Set custom default timeout.
    Sys.Net.WebRequestManager.set_defaultTimeout(9000);

});

function hasLastNameField() {

    if ($("#txtLastName").length) {

        return true;
    }

    return false;
}

function getLastName() {

    if (hasLastNameField()) {

        return $("#txtLastName").val();
    }

    return "";

}

function saveEmail() {

    if (isDataValid()) {

        var emailService = new AjaxEmailSignupService();
        emailService.set_timeout(9000);

        emailService.SaveEmail($("#txtFirstName").val(), getLastName(), $("#txtEmail").val(), leadSourceCreative, listId, saveEmailSucceeded, saveEmailFailed);
    }
    else {
        // not valid

        if (hasLastNameField()) {
            alert("Please enter a first name, last name, and a valid email address.");
        }
        else {
            alert("Please enter a first name and a valid email address.");
        }
    }

    // return false is critical!!
    return false;
}

function isDataValid() {

    var name = $("#txtFirstName").val();
    var email = $("#txtEmail").val()

    if (isFirstNameValid(name) && isEmailValid(email)) {

        if (hasLastNameField()) {

            if (isLastNameValid()) {
                return true;
            }
            else {
                return false;
            }
        }
        else {
            return true;
        }
    }

    return false;
}

function isLastNameValid() {

    if (hasLastNameField()) {

        if ($("#txtLastName").val().length > 0) {

            return true;
        }
        else {
            return false;
        }
    }
    else {
        return true;
    }
}

function isFirstNameValid(name) {

    if (name.length > 0 && (name != "Enter first name")) {

        return true;
    }

    return false;
}

function isEmailValid(email) {

    var emailRegex = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/

    if (!email.match(emailRegex)) {

        // Call a service to submit the email for review
        var emailService = new AjaxEmailSignupService();

        emailService.SubmitInvalidEmail(email);

        return false;
    }

    return true;
}

function saveEmailSucceeded(result) {

    $("#divForm").hide();
    $("#EmailSignupResult").show();

}

function saveEmailFailed() {

    //alert("Save Email failed");

}
