var email_format = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
var alphanumeric = /^[a-zA-Z0-9_\55]*$/
var alphanumeric2 = /^[a-zA-Z0-9\s\55]*$/

$(document).ready(function(){
	$('#login_frm').ajaxForm({
			dataType:  'json', 
			success:   processLogin 
	});
	
	$('#frm_register').ajaxForm({
			dataType:  'json', 
			success:   processUserRegistration
	});
	
	$('#forgot_password_frm').ajaxForm({
			dataType:  'json', 
			success:   processForgotPassword
	});
	
	$("#forgot_password_div").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		show: 'slide',
		resizable: false
	});
	
	$("#message_div").dialog({
		bgiframe: true,
		autoOpen: false,
		modal: true,
		resizable: false,
		height: 90
	});
});

function processLogin(data)
{
    if(data.status == 'error')
	{
		$('#errorDiv').html(data.message);
		$('#errorDiv').addClass('error');
	}
	else
	{
		window.location = siteURL + '/publicsite/wish_list/';
	}
}

function processForgotPassword(data)
{
    if(data.status == 'error')
	{
		$('#forgot_password_submit').attr("disabled", true);
		$('#forgot_password_msg').html(data.message);
		$('#forgot_password_msg').addClass('error');
	}
	else
	{
		closeDialog('forgot_password_div');
		resetForm('forgot_password_frm', 'forgot_password_msg');
		$('#message_div').html(data.message);
		$('#message_div').dialog('open');
		$('#forgot_password_submit').removeAttr("disabled");
	}
}

function forgotPassword()
{
	$('#forgot_password_div').dialog('open');
}

function sendPassword()
{
	$('#forgot_password_submit').attr("disabled", true);
	
	var forgot_username = $('#forgot_username').val();
	var forgot_email = $('#forgot_email').val();
	var valid = true;

	if(forgot_username == '' || forgot_email == '')
	{
		msg = 'Please fill up all required field(s).';
		valid = false;
	}
	else
	{
		if(!email_format.test(forgot_email))
		{
			msg = 'Invalid Email Address';
			valid = false;
		}
	}
	
	if(!valid)
	{
		$('#forgot_password_submit').removeAttr("disabled");
		$('#forgot_password_msg').html(msg);
		$('#forgot_password_msg').addClass('error');
	}
	else
	{
		$('#forgot_password_submit').attr("disabled", true);
		$('#forgot_password_frm').submit();
	}
}

function validateUserForm()
{
	$('#msg').removeClass('error');
	$('#msg').removeClass('success');
	$('#submit_button').attr("disabled", true);
	
	var username = $('#register_username').val();
	var password = $('#register_password').val();
	var confirm_password = $('#register_confirm_password').val();
	var email = $('#register_email').val();
	var first_name = $('#register_first_name').val();
	var last_name = $('#register_last_name').val();
	var address = $('#register_address').val();
	var gender = $('#register_gender').val();
	var age = $('#register_age').val();

	var username_count = username.length;
	var password_count = password.length;
	var confirm_password_count = confirm_password.length;
	
	var msg = '';
	var valid = true;

	if(username == '' || password == '' || confirm_password == '' || email == '' || first_name == '' || last_name == '' || gender == '' || age == '')
	{
		msg = 'All field(s) required except Address.';
		valid = false;
	}
	else
	{
		if(username_count < min_username_length)
		{
			msg = 'Username: minimum of 3 characters.';
			valid = false;
		}
		else
		{
			if(!alphanumeric.test(username))
			{
				msg = 'Special characters are not allowed for Username field.<br>Allowed characters: a-z, A-Z, 0-9, dash(-) and underscore(_).<br>';
				valid = false;
			}
			else
			{
				if(password_count < min_password_length || confirm_password_count < min_password_length)
				{
					msg = 'Password and Confirm Password: minimum of 3 characters.';
					valid = false;
				}
				else
				{
					if(password != confirm_password)
					{
						msg = 'Password and Confirm Password should be the same.';
						valid = false;
					}
					else
					{
						if(!email_format.test(email))
						{
							msg = 'Invalid Email Address.';
							valid = false;
						}
						else
						{
							if(!alphanumeric2.test(last_name))
							{
								msg = 'Special characters are not allowed for Last Name field.<br>Allowed characters: a-z, A-Z, 0-9, dash(-) and space ( ).<br>';
								valid = false;
							}
							else
							{
								if(!alphanumeric2.test(first_name))
								{
									msg = 'Special characters are not allowed for First Name field.<br>Allowed characters: a-z, A-Z, 0-9, dash(-) and space ( ).<br>';
									valid = false;
								}
								else
								{
									if(!isNumeric(age))
									{
										msg = 'Age field should be numeric.<br>Allowed characters: 0-9<br>';
										valid = false;
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	if(!valid)
	{
		$('#submit_button').removeAttr("disabled");
		$('#msg').html(msg);
		$('#msg').addClass('error');
	}
	else
	{
		$('#submit_button').attr("disabled", true);
		$('#frm_register').submit();
	}
}

function processUserRegistration(data)
{
	$('#submit_button').attr("disabled", true);
	$('#msg').html(data.message);
	
    if(data.status == 'error')
	{
		$('#submit_button').removeAttr("disabled");
		$('#msg').addClass('error');
	}
	else
	{
		$('#msg').addClass('success');
		$('#frm_register').clearForm();
		$('#register_gender_male').attr('checked', true);
		$('#submit_button').removeAttr("disabled");
	}
}

