function isAlphaNumeric(txt)
{
    return (/^[a-zA-Z0-9]*$/.test(txt));
}

var strNonCCTLDs = 'aero|biz|com|coop|edu|info|int|mil|museum|name|net|org|pro';
var emailReg = '^[a-z0-9\_][[a-z0-9\.\+\_\-]*[@](([a-z0-9]([a-z0-9]|[-])*)[.])+([a-z]{2}|' + strNonCCTLDs + ')$';
var regex = new RegExp(emailReg, "i");

var Register = {

    deleteRegistration: function()
    {
        var agree = confirm('Are you sure you want to delete your account?');
        if (agree)
            return true;
        else
            return false;
    },

    forgotPasswordTextBox: function()
    {
        var emailBox = $(":text[name='email']", $('#forgot_password'));
        if (emailBox.val() == 'Enter your email address here')
        {
            emailBox.val('');
        }
    },

    forgotPassword: function()
    {
        var emailValue = $(":text[name='email']", $('#forgot_password')).val();
        if (emailValue == '')
        {
            alert('Email is required');
            return false;
        }

        if (!regex.test(emailValue))
        {
            alert(emailValue + ": email address is not valid");
            return false;
        }
    },

    validatePasswordChange: function()
    {
        var cpForm = $('#change_password_form');
        var pwdValue = $(":password[name='pw']", cpForm).val();
        if (pwdValue == '')
        {
            alert('Password is required');
            return false;
        }

        var rppwValue = $(":password[name='rppw']", cpForm).val();
        if (rppwValue == '')
        {
            alert('Repeat password is required');
            return false;
        }

        if (rppwValue != pwdValue)
        {
            alert('Password and repeat password are not identical');
            return false;
        }

        if (pwdValue.length < 6)
        {
            alert('Password has a minimum of 6 characters');
            return false;
        }

        var alphaPassword = isAlphaNumeric(pwdValue);
        if (alphaPassword == false)
        {
            alert('Password may not contain special characters or spaces');
            return false;
        }
    },

    validateEditRegistration: function()
    {
        var editForm = $('#edit_register_form');
        var firstNameValue = $(":text[name='first_name']", editForm).val();
        if (firstNameValue == '')
        {
            alert('First name is required');
            return false;
        }

        if (firstNameValue.length < 2)
        {
            alert('First name must be at least 2 characters');
            return false;
        }

        var lastNameValue = $(":text[name='last_name']", editForm).val();
        if (lastNameValue == '')
        {
            alert('Surname is required');
            return false;
        }

        if (lastNameValue.length < 2)
        {
            alert('Surname must be at least 2 characters');
            return false;
        }

        var emailValue = $(":text[name='email']", editForm).val();
        if (emailValue == '')
        {
            alert('Email address is required');
            return false;
        }

        if (!regex.test(emailValue))
        {
            alert(emailValue + ": email address is not valid");
            return false;
        }
    },

    validateRegistration: function()
    {
        var registerForm = $('#register_form');
        var firstValue = $(":text[name='first_name']", registerForm).val();
        if (firstValue == '')
        {
            alert('First name is required');
            return false;
        }

        if (firstValue.length < 2)
        {
            alert('First name must be at least 2 characters');
            return false;
        }

        var lastNameValue = $(":text[name='last_name']", registerForm).val();
        if (lastNameValue == '')
        {
            alert('Surname is required');
            return false;
        }

        if (lastNameValue.length < 2)
        {
            alert('Surname must be at least 2 characters');
            return false;
        }

        var emailValue = $(":text[name='email']", registerForm).val();
        if (emailValue == '')
        {
            alert('Email address is required');
            return false;
        }

        var pwdValue = $(":password[name='pw']", registerForm).val();
        if (pwdValue == '')
        {
            alert('Password is required');
            return false;
        }

        var rppwValue = $(":password[name='rppw']", registerForm).val();
        if (rppwValue == '')
        {
            alert('Repeat password is required');
            return false;
        }

        if (rppwValue != pwdValue)
        {
            alert('Password and repeat password are not identical');
            return false;
        }

        if (pwdValue.length < 6)
        {
            alert('Password has a minimum of 6 characters');
            return false;
        }
    }
}
