var idTaken = false;
var emailFilter = /^[a-zA-Z0-9]+[.|_|-]?[a-zA-Z0-9]+\@[a-zA-Z0-9]+[.|_|-]?[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$/;
var usernameFilter = /^[A-Za-z]+[0-9A-Za-z_.-]*$/;

function submitSignup(myfield,e)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13) {
	   signup();
	   return false;
	}
	return true;
}

function signup() {
	var objUserName = document.signup_form.username;
	var objEmail = document.signup_form.email;
	var objPassword = document.signup_form.password;
	var objConfirmPassword = document.signup_form.confirm_password;
	var objName = document.signup_form.name;
	var objCompanyName = document.signup_form.company;
	if (trim(objName.value).length == 0) {
		alert("Plase enter your Name");
		objName.value = trim(objName.value);
		objName.focus();
		return;
	}
	if (trim(objEmail.value).length == 0) {
		alert("Plase enter E-mail");
		objEmail.value = trim(objEmail.value);
		objEmail.focus();
		return;
	}
	if (!emailFilter.test(objEmail.value)) {
		alert("Please enter valid E-mail");
		objEmail.focus();
		return;
	}
	if (emailTaken) {
		alert("E-mail is already taken. Please try a different E-mail.");
		objUserName.focus();
		return;
	}
	if (trim(objUserName.value).length == 0) {
		alert("Plase enter Username");
		objUserName.value = trim(objUserName.value);
		objUserName.focus();
		return;
	}
	if (trim(objUserName.value).length < 4) {
		alert("Username should be atleast 4 characters in length");
		objUserName.value = trim(objUserName.value);
		objUserName.focus();
		return;
	}
	if (!usernameFilter.test(objUserName.value)) {
		alert("Username may contain a-z, A-Z, 0-9, _ . or - only");
		objUserName.focus();
		return;
	}
	if (idTaken) {
		alert("Username is already taken. Please try a different username.");
		objUserName.focus();
		return;
	}
	if (trim(objPassword.value).length == 0) {
		alert("Plase enter Password");
		objPassword.value = trim(objPassword.value);
		objPassword.focus();
		return;
	}
	if (trim(objConfirmPassword.value).length == 0) {
		alert("Plase enter Confirm Password");
		objConfirmPassword.value = trim(objConfirmPassword.value);
		objConfirmPassword.focus();
		return;
	}
	if (objPassword.value != objConfirmPassword.value) {
		alert("Please enter the same value for both password fields");
		objConfirmPassword.focus();
		return;
	}
	
	document.signup_form.submit();
}

function signup2() {
	var objName = document.signup2_form.name;
	var objAddress1 = document.signup2_form.address1;
	var objCity = document.signup2_form.city;
	var objState = document.signup2_form.state;
	var objZipCode = document.signup2_form.zipcode;
	if (trim(objName.value).length == 0) {
		alert("Plase Enter Name");
		objName.value = trim(objName.value);
		objName.focus();
		return;
	}
	if (trim(objAddress1.value).length == 0) {
		alert("Plase Enter Address Line 1");
		objAddress1.value = trim(objAddress1.value);
		objAddress1.focus();
		return;
	}
	if (trim(objCity.value).length == 0) {
		alert("Plase Enter City");
		objCity.value = trim(objCity.value);
		objCity.focus();
		return;
	}
	if (trim(objState.value).length == 0) {
		alert("Plase Enter State");
		objState.value = trim(objState.value);
		objState.focus();
		return;
	}
	if (trim(objZipCode.value).length == 0) {
		alert("Plase Enter Zip Code");
		objZipCode.value = trim(objZipCode.value);
		objZipCode.focus();
		return;
	}
	document.signup2_form.submit();
}

function login() {
	var objUserName = document.login_form.login_username;
	var objPassword = document.login_form.login_password;
	if (trim(objUserName.value).length == 0) {
		alert("Please enter User Name");
		objUserName.value = trim(objUserName.value);
		objUserName.focus();
		return;
	}
	if (trim(objPassword.value).length == 0) {
		alert("Please enter Password");
		//objPassword.value = trim(objPassword.value);
		objPassword.focus();
		return;
	}
	document.login_form.submit();
}

function forgotpwd() {
	var objEmail = $('forgotpwd_form').email;
	if (trim(objEmail.value).length == 0) {
		alert("Plase enter E-mail");
		objEmail.value = trim(objEmail.value);
		objEmail.focus();
		return;
	}
	$('modal').setStyle({display:'block'});
	new Ajax.Request('ajax-forgotpwd.php?action=forgot', 
					 {
						 method:'post',
						 parameters: $('forgotpwd_form').serialize(true),
						 onSuccess: function(response) {
							if (response.responseText == 0) {
								$('forgotpwd').update('<br /><h4><font color="red">Email address entered is not registered with SpankLab. <br />Please <a href="registration.php">click here</a> to register.</font></h4><br /><br />');
							} else {
								$('forgotpwd').update('<br /><h4><font color="green">SpankLab Username and New Password has been sent to your Email Address. <br />Please <a href="index.php">click here</a> to login.</font></h4><br /><br />');
							}
							$('modal').setStyle({display:'none'});
						 },
						 onFailure: function(response) {
							$('forgotpwd').update('<br /><h4><font color="red">The last operation failed for some reason. Please try again after some time.</font></h4><br /><br />');
							$('modal').setStyle({display:'none'});
						 }
					});
}

function validateUser(username) {
	if (trim(username).length == 0) {
		$('username_message').update('<span class="error">Username is required.</span>');
		return;
	}
	if (trim(username).length < 4) {
		$('username_message').update('<span class="error">Username should be atleast 4 characters in length.</span>');
		return;
	}
	if (!usernameFilter.test(username)) {
		$('username_message').update('<span class="error">Username may contain a-z, A-Z, 0-9, _ . or - only.</span>');
		return;
	}
	new Ajax.Request('validate_user.php?u='+username, 
					 {
						 method:'get',
						 onSuccess: function(response)
						 {
							if(response.responseText == 1)
							{
								//$('username_message').setStyle({class:"success"});
								$('username_message').update('<span class="success">Username is available</span>');
								idTaken = false;
							}
							else
							{
								//$('username_message').setStyle({class:"error"});
								$('username_message').update('<span class="error">Username is not available</span>');
								idTaken = true;
							}
						}
								
					});
}

function validateEmailAddress(email) {
	if (trim(email).length == 0) {
		$('email_message').update('<span class="error">E-mail is required.</span>');
		return;
	}
	new Ajax.Request('validate_email.php?email='+email, 
					 {
						 method:'get',
						 onSuccess: function(response)
						 {
							if(response.responseText == 1)
							{
								//$('username_message').setStyle({class:"success"});
								$('email_message').update('<span class="success">E-mail is available</span>');
								emailTaken = false;
							}
							else
							{
								//$('username_message').setStyle({class:"error"});
								$('email_message').update('<span class="error">E-mail is not available</span>');
								emailTaken = true;
							}
						}
								
					});
}