﻿String.prototype.trim = function () 
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function ValidateSignupForm()
{
    $('#btnSignup').attr('disabled', 'disabled');

    var firstName = document.getElementById("firstname").value.trim();
    var lastName  = document.getElementById("lastname").value.trim();
    var email = document.getElementById("email").value.trim();

    var isFirstNameValid = firstName.length > 0;
    if (!isFirstNameValid)
    {
        SetErrorField("firstname","lblFirstName");
    }

    var isLastNameValid = lastName.length > 0;
    if (!isLastNameValid)
    {
        SetErrorField("lastname","lblLastName");
    }

    var isEmailValid = ValidateRegEx("^[-_a-zA-Z0-9][-_.a-zA-Z0-9]*@[-.a-zA-Z0-9]+(\.[-.a-zA-Z0-9]+)*\.(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$", email);
    if (!isEmailValid)
    {
        SetErrorField("email","lblEmail");
    }

    if (isFirstNameValid && isLastNameValid && isEmailValid)
    {
        signup();
    }
    else
    {
            $('#btnSignup').attr('disabled', '');
    }
}

function ValidateRegEx(expression, value) 
{
    var objRegExp = new RegExp(expression);
    return objRegExp.test(value);
}

function onFormKeyDown(e)
{
    var keynum;
    var keychar;
    var numcheck;

    if(window.event) // IE
    {
      keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
      keynum = e.which;
    }
    if (keynum == 13)
    {
        ValidateSignupForm();
    }
}

function signup()
{
 $.ajax
 (
    {
        type: "POST",
        url: "SignupProcessor.aspx",
        data: 
            {
                "firstname":document.getElementById("firstname").value.trim(),
                "lastname":document.getElementById("lastname").value.trim(),
                "email":document.getElementById("email").value.trim()
            },
        dataType: "json",
        success: function(data) 
        {
             $('#btnSignup').attr('disabled', '');
            if(data == "0")
            {
                    document.location.href = "signup-successful.aspx";
            } 
            else 
            {
                switch(data)
                {
                    case -1:
                        document.location.href = "signup-failure.html";
                         break;
                    case 1:
                        document.location.href = "signup-failure.html?verifyEmail=true";
                         break;
                }
            }
        },
        error: function(xhr, ajaxOptions, thrownError)
        {
             alert(xhr.status);
             alert(thrownError);
            $('#btnSignup').attr('disabled', '');
            alert("An error has occurred. Please try again.");
        }
     }
  );

}
