$(document).ready(function() 
{
	$("#message").hide();
	
	//On key change
	$("#fname").blur(function(){validateFirstName();});
	$("#lname").blur(function(){validateLastName();});
	$("#company").blur(function(){validateCompany();});
	$("#address1").blur(function(){validateAddress();});
	$("#city").blur(function(){validateCity();});
	$("#state").click(function(){validateState();});
	$("#zip").blur(function(){validateZip();});
	$("#email").blur(function(){validateEmail();});
	$("#confirmEmail").blur(function(){validateConfirmEmail();});
	$("#password").blur(function(){validatePassword();});
	$("#confirmPassword").blur(function(){validateConfirmPassword();});
});

var errMsgBody;

// Validate the password request.  Check for errors then submit the values to the method in the controller.
function reqPasswordRequest()
{
	//$("#message").hide();
	errMsgBody = '';
		
	if(validateEmail())
	{
		$.post('sendEmailPasswordReset',{'email':$("#email").val()}, function(data)
			{
				$("#message").html(data);
				if($("#message").html().indexOf('Error') >= 0)
				{
					$("#message").removeClass("Valid");
					$("#message").slideToggle("slow");
				} else {
					$saveMsg = data;
					$("#divKey").html(data);
					
					$("#message").html('<strong>Creating Email Message...</strong><ul><li>Please be patient while our servers generate your email message.</li></ul>');
					$("#message").addClass("Valid");
					$("#message").slideToggle("slow");
					
					$.post('/index.php/sendEmail/sendPasswordReq',{'email':$("#email").val(), 'key':$("#key").val()}, function(data)
					{
						$("#message").slideToggle("slow", function()
						{ 
							$("#message").html($saveMsg);
							$("#message").addClass("Valid");
							$("#message").slideToggle("slow");
						});
					});
				}
				
			});
	}
}


// Function used when the user has successfully requested an password reset
// The only way people should get to this form is when they click on thier link in the email
//  It will error out if they go there directly
function resetPassword()
{
	$("#message").hide();
	errMsgBody = '';
		
	if(validatePassword() & validateConfirmPassword() & validatePasswords())
	{
		$.post('/index.php/customer/changePassword',
			{'password':$("#password").val(),
			 'key':$("#key").val()},
			 function(data)
			 {
				 $("#message").html('<strong>Password Changed</strong><BR /><ul>Redirecting you to the homepage in 5 seconds</ul>');
				 $("#message").addClass("Valid");
				 $("#message").slideToggle("slow", function()
				 	{
						setTimeout('window.location = \"http://agent.siterite.net/index.php/home\"', 5000);				
					}
				 );
			 });
	} else {
		if(errMsgBody.length > 5) 
		{
			$("#message").html("<strong>Errors were found</strong><ul>" + errMsgBody + "</ul>");
			$("#message").slideToggle("slow");
		}
			return false;
	}
}



function submitUser()
{	
		//Hide any previous messages
		$("#message").hide();
		errMsgBody = '';

		//validate fields
		if(validateFirstName() & validateLastName() & validateCompany() & validateAddress() & validateCity() & validateState() & validateZip() & validateEmail() & validateConfirmEmail() & validatePassword() & validateConfirmPassword() )
		{
			var body = "";
			var items = "";
			//show message that request was sent	   				   
			//$("#message").html("<strong>Sending Request...</strong>");
			
			$.post('submitUser',
		   		{'fname':$("#fname").val(),
				 'lname':$("#lname").val(),
				 'company':$("#company").val(),
				 'address1':$("#address1").val(),
				 'address2':$("#address2").val(),
				 'city':$("#city").val(),
				 'state':$("#state :selected").val(),
				 'zip':$("#zip").val(),
				 'email':$("#email").val(),
				 'password':$("#password").val()},
					function(data)
						{
							$("#message").html(data);
							if($("#message").html().indexOf('Error') >= 0)
							{
								$("#message").removeClass("Valid");
								$("#message").slideToggle("slow");;
							} else {
								$("#message").html('<strong>Status -- 1 of 2</strong><BR /><ul><li>Our servers are currently creating your account please wait</li></ul>');
								$("#message").addClass("Valid");
				 				$("#message").slideToggle("slow");
				 
								$.post('/index.php/sendEmail/sendAcctReq', 
								   {'fname':$("#fname").val(),
									 'lname':$("#lname").val(),
									 'company':$("#company").val(),
									 'address1':$("#address1").val(),
									 'address2':$("#address2").val(),
									 'city':$("#city").val(),
									 'state':$("#state :selected").val(),
									 'zip':$("#zip").val(),
									 'email':$("#email").val()},
										function(data)
											{
												$("#message").slideToggle("slow", function()
												{ 
													$("#message").html('<strong>Status -- 2 of 2</strong><BR /><ul><li>Your account has been created.</li><li>Please wait for an approval email by a member of our Sales team.</li></ul>');
													$("#message").addClass("Valid");
													$("#message").slideToggle("slow");
												});
											}
									);
							}
						}
				);	
		}
		else{
			if(errMsgBody.length > 5) 
			{
				$("#message").html("<strong>Errors were found</strong><ul>" + errMsgBody + "</ul>");
				$("#message").slideToggle("slow");
			}
				return false;
			}
}








 
function confirmEmails()
{
	var valid = false;
	if($("email").val() != "")
	{		
		if($("#email").val() == $("#emailConfirm").val())
			{
				valid = true;
			}else{
				errMsgBody += '<li>Passwords do not match.</li>';
			}
	 }else{
		 errMsgBody += '<li>Passwords cannot be blank.</li>';		 
	 }
	 
	 return valid;
}


function validateFirstName(){
	//if it's NOT valid
	if($("#fname").val().length < 1){
		$("#fname").addClass("TextBoxError");
		errMsgBody = '<li>First name is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#fname").removeClass("TextBoxError");
		return true;
	}
}
	
function validateLastName(){
	//if it's NOT valid
	if($("#lname").val().length < 1){
		$("#lname").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Last name is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#lname").removeClass("TextBoxError");
		return true;
	}
}
	
function validateCompany(){
	//if it's NOT valid
	if($("#company").val().length < 1){
		$("#company").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Company name is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#company").removeClass("TextBoxError");
		return true;
	}
}
	
function validateEmail(){
	//testing regular expression
	var a = $("#email").val();
	var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
	//if it's valid email
	if(filter.test(a)){
		$("#email").removeClass("TextBoxError");
		return true;
	}
	//if it's NOT valid
	else{
		$("#email").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Email address is a requirement.</li>';
		return false;
	}
}

function validateConfirmEmail(){
	//testing regular expression
	var a = $("#confirmEmail").val();
	var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
	//if it's valid email
	if(filter.test(a)){
		$("#confirmEmail").removeClass("TextBoxError");
		return true;
	}
	//if it's NOT valid
	else{
		$("#confirmEmail").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Email address is a requirement.</li>';
		return false;
	}
}


function validateAddress(){
	//if it's NOT valid
	if($("#address1").val().length < 1){
		$("#address1").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Address 1 is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#address1").removeClass("TextBoxError");
		return true;
	}
}
	
function validateCity(){
	//if it's NOT valid
	if($("#city").val().length < 1){
		$("#city").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>City is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#city").removeClass("TextBoxError");
		return true;
	}
}

function validateState(){
	//if it's NOT valid
	if($("#state").val() == 0){
		$("#state").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>State is a requirement.</li>';
		return false;
	}
	//if it's valid
	else{
		$("#state").removeClass("TextBoxError");
		return true;
	}
}

function validateZip(){
	//if it's NOT valid
	if($("#zip").val().length < 1){
		$("#zip").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Zipcode is a requirement.</li>';
		return false;
	}
	else{
		$("#zip").removeClass("TextBoxError");
		return true;
	}
}

function validatePassword(){
	//if it's NOT valid
	if($("#password").val().length < 1){
		$("#password").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>Password is a requirement.</li>';
		return false;
	}
	else{
		$("#password").removeClass("TextBoxError");
		return true;
	}
}

function validateConfirmPassword(){
	//if it's NOT valid
	if($("#confirmPassword").val().length < 1){
		$("#confirmPassword").addClass("TextBoxError");
		errMsgBody = errMsgBody + '<li>The confirmation password is a requirement.</li>';
		return false;
	}
	else{
		$("#confirmPassword").removeClass("TextBoxError");
		return true;
	}
}

function validatePasswords(){
	var valid = false;
 if($("#password").val() != ""){
	if($("#password").val() == $("#confirmPassword").val()){
		valid = true;
		}else{
			errMsgBody += '<li>password - ' + $("#password").val() + '</li><li>confirm pwd - ' + $("#confirmPassword").val() + '</li><li>Passwords do not match.</li>';
		}
 }else{
	 errMsgBody += '<li>Passwords cannot be blank.</li>';		 
	}
 return valid;
}