var logInReq = getXmlHttpRequestObject();

function logIn()
{
	var user_name = document.getElementById("user_name").value;
	var user_password = document.getElementById("user_password").value;
	var err_msg = "";
	var err_flag = 0;
	
	if (user_name == "")
	{
		err_msg = "Please enter your user name.";
		err_flag = 1;
	}
	else
	{
		if (user_password == "")
		{
			err_msg = "Please enter your password.";
			err_flag = 1;
		}
	}
	
	if (err_flag == 1)
	{
		openPrompt(err_msg);
	}
	else
	{
		if (logInReq.readyState == 4 || logInReq.readyState == 0) 
		{
			logInReq.open("POST", 'ajax/log-in.asp', true);		
			logInReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");			
			logInReq.onreadystatechange = function() {logInResponse()};
			
			var param = 'user_name=' + user_name;
			param = param + '&user_password=' + user_password;
			logInReq.send(param);		
		}
	}
}

function logInResponse()
{
	if (logInReq.readyState==4)
	{
		var return_text = logInReq.responseText;
		
		openPrompt(return_text);
		if (return_text == "Log-in successful")
		{
			window.location = "user-details.asp";
		}
	}
}

var saveDetailsReq = getXmlHttpRequestObject();

function validateUser(form_name)
{
	var user_name = document.getElementById("user_name").value;
	var user_password = document.getElementById("user_password").value;
	var user_confirm = document.getElementById("user_confirm").value;
	var user_first_name = document.getElementById("user_first_name").value;
	var user_surname = document.getElementById("user_surname").value;
	var user_add_1 = document.getElementById("user_add_1").value;
	var user_add_2 = document.getElementById("user_add_2").value;
	var user_add_3 = document.getElementById("user_add_3").value;
	var user_town = document.getElementById("user_town").value;
	var user_post_code = document.getElementById("user_post_code").value;
	var user_email = document.getElementById("user_email").value;
	var user_contact = document.getElementById("user_contact").value;
	
	
	var err_msg = "No changes were saved because the following fields were left blank or are invalid:<br/><br/>";
	var err_flag = 0;
	var num_lines = 2;
	var email_reg = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]{1,10})(\]?)$/;
	
	
	
	if (form_name == "register")
	{
		if (user_name == "")
		{
			err_msg = err_msg + "Username.<br/>"
			num_lines = num_lines + 1;
			err_flag = 1;
		}
		
		if (user_password == "")
		{
			err_msg = err_msg + "Password.<br/>"
			num_lines = num_lines + 1;
			err_flag = 1;
		}
		
		if (user_confirm == "")
		{
			err_msg = err_msg + "Please confirm your password.<br/>"
			num_lines = num_lines + 1;
			err_flag = 1;
		}
		else
		{
			if (user_confirm != user_password)
			{
				err_msg = err_msg + "The passwords you entered do not match.<br/>"
				num_lines = num_lines + 1;
				err_flag = 1;
			}
		}
	}
	else
	{
		if (user_password != "")
		{
			if (user_confirm == "")
			{
				err_msg = err_msg + "Please confirm your new password.<br/>"
				num_lines = num_lines + 1;
				err_flag = 1;
			}
			else
			{
				if (user_confirm != user_password)
				{
					err_msg = err_msg + "The passwords you entered do not match.<br/>"
					num_lines = num_lines + 1;
					err_flag = 1;
				}
			}
		}
	}
	
	if (user_first_name == "")
	{
		err_msg = err_msg + "First Name.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (user_surname == "")
	{
		err_msg = err_msg + "Surname.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (user_add_1 == "")
	{
		err_msg = err_msg + "Address line 1.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (user_town == "")
	{
		err_msg = err_msg + "Address Town/City.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (user_post_code == "")
	{
		err_msg = err_msg + "Address Post Code.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (user_email == "")
	{
		err_msg = err_msg + "Email Address.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	else
	{
		if (!email_reg.test(user_email)) 
		 { 
			err_flag = 1;
			err_msg = err_msg + "A Valid Email Address.<br/>";
			num_lines = num_lines + 1;
	  	 }
	}
	
	if (user_contact == "")
	{
		err_msg = err_msg + "Contact Telephone Number.<br/>"
		num_lines = num_lines + 1;
		err_flag = 1;
	}
	
	if (err_flag == 1)
	{
		openPrompt(err_msg, num_lines);
	}
	else
	{
		if (form_name == "register")
		{
			checkUserName(user_name, form_name);
		}
		else
		{
			if (saveDetailsReq.readyState == 4 || saveDetailsReq.readyState == 0) 
			{
				saveDetailsReq.open("POST", 'ajax/save-user-details.asp', true);		
				saveDetailsReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");			
				saveDetailsReq.onreadystatechange = function() {saveDetailsResponse()};
				
				user_password = spaceReplace(user_password);
				user_first_name = spaceReplace(user_first_name);
				user_surname = spaceReplace(user_surname);
				user_add_1 = spaceReplace(user_add_1);
				user_add_2 = spaceReplace(user_add_2);
				user_add_3 = spaceReplace(user_add_3);
				user_town = spaceReplace(user_town);
				
				user_post_code = spaceReplace(user_post_code);
				user_contact = spaceReplace(user_contact);
				
				var param = 'user_password=' + user_password;
				param = param + '&user_first_name=' + user_first_name;
				param = param + '&user_surname=' + user_surname;
				param = param + '&user_add_1=' + user_add_1;
				param = param + '&user_add_2=' + user_add_2;
				param = param + '&user_add_3=' + user_add_3;
				param = param + '&user_town=' + user_town;
				param = param + '&user_post_code=' + user_post_code;
				param = param + '&user_email=' + user_email;
				param = param + '&user_contact=' + user_contact;
				saveDetailsReq.send(param);		
			}
		}
	}
}

function saveDetailsResponse()
{
	if (saveDetailsReq.readyState==4)
	{
		var return_text = saveDetailsReq.responseText;
		
		openPrompt(return_text);
	}
}

var checkUserNameReq = getXmlHttpRequestObject();
function checkUserName(user_name, form_name)
{
	if (checkUserNameReq.readyState == 4 || checkUserNameReq.readyState == 0) 
	{
		checkUserNameReq.open("POST", 'ajax/check-user-name.asp', true);		
		checkUserNameReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");			
		checkUserNameReq.onreadystatechange = function() {checkUserNameResponse(form_name)};
		var param = 'user_name=' + user_name;
		checkUserNameReq.send(param);	
	}
}

function checkUserNameResponse(form_name)
{
	if (checkUserNameReq.readyState==4)
	{
		if (checkUserNameReq.responseText == "False")
		{
			document.getElementById(form_name).submit();
		}
		else
		{
			openPrompt("The username you have chosen already exists, please choose a new username.");
		}
	}
}
