function isValidEmail(emailAdd) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(emailAdd) == false) {
		return false;
	}
	return true;
}

$(function(){
	//	Initialize the state / country relationship.
	if($("#fan_country").val() != "USA"){
		$("#fan_state").hide();
		$("label[for=fan_state]").hide();
	}
	else{
		$("#fan_state").show();
		$("label[for=fan_state]").show();
	}
	
	//	Only show State if USA is chosen.
	$("#fan_country").bind('change', function(event){
		if($(this).val() == "USA"){
			$("#fan_state").show();
			$("label[for=fan_state]").show();
		}
		else{
			$("#fan_state").hide();
			$("label[for=fan_state]").hide();
		}
	});	
	
	//	pre-submit callback
	function preSubmit(formData, jqForm, options){
		var fanName = $("#fan_name").val();
		var fanEmail = $("#fan_email").val();
		var fanCity = $("#fan_city").val();
		var fanState = $("#fan_state").val();
		var fanCountry = $("#fan_country").val();
		var	fanPass = $("#fan_password").val();
		var fanPassConfirm = $("#fan_password_confirm").val();
		var errorMsg = '';
		
		//	The user must enter his/her name.
		if(fanName == ''){
			errorMsg = errorMsg + "Please enter your name.<br/>";
		}
		
		//	The user must enter a password at least 8 characters.
		if(fanPass.length < 8){
			errorMsg = errorMsg + "Please enter a password with at least 8 characters.<br/>";
		}
		else if(fanPass != fanPassConfirm){
			//	If the two password input elements do not match, the values are erased and the user is alerted.
			errorMsg = errorMsg + "Passwords do not match.  Please re-enter password.<br/>";
			$("#fan_password").val('');
			$("#fan_password_confirm").val('');
		}
		
		//	The user must enter an email address in the correct format which is not in use.
		if(fanEmail == ''){
			errorMsg = errorMsg + "Please enter an email address.<br/>";
		}
		else{
			//	Test to see if the email address is in the correct form and isn't already in use.
			$.ajax({
				type: "POST",
				url: "/resources/library/processors/proc.email_dup.php",
				data: "fan_email=" + fanEmail,
				success: function(data){
					if(whiteSpace(data) != ''){
						errorMsg = 'The entered email address is already in use.<br/>Please click the "Forgot Password" link to retrieve your password.<br/>';
					}
				},
				cache: false,
				async: false
			});
			if(!isValidEmail(fanEmail)){
				errorMsg = errorMsg + 'Your email address needs to be in the following format:  name@domain.com<br/>';
			}
		}
		
		if(errorMsg != ''){
			$.prompt(errorMsg);
			return false;
		}
		$.blockUI({ css: { 
	           border: 'none', 
	           padding: '15px', 
	           backgroundColor: '#000', 
	           '-webkit-border-radius': '10px', 
	           '-moz-border-radius': '10px', 
	           opacity: '.5', 
	           color: '#fff' 
	       } }); 
		return true;
	}
	//	post-submit callback
	function postSubmit(responseText, statusText){
		$.unblockUI();
		if(whiteSpace(responseText) != ''){
			$.prompt(responseText);
		}
		else{
			$.prompt("Registration complete.<br/>You can now login.", {
				callback: function(v,m,f){
					window.location = '/fan';
				}
			});
		}
	}
	$("#frmFanReg").ajaxForm({beforeSubmit:preSubmit, success:postSubmit, url:"/resources/library/processors/proc.fan_reg.php", type:"post"});
});
