//the functions handle login and registration tasks


function checkEmail(email) {
	
	var filter = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	if (!filter.test(email)) {
		return false;		
	}else{
		return true;
	}
}

function checkPassword(password) {
	var re = /(?=.*\d)(?=.*[a-z]).{6,}/; 
	var validPassword = re.test(password);
	return validPassword;
}
					
function checkRegister(param){
	//clear the error blocks
	$('registerUsername').setStyle('display','none');
	$('registerUsername').update("");
	$('registerEmail').setStyle('display','none');
	$('registerEmail').update("");
	$('registerPassword').setStyle('display','none');
	$('registerPassword').update("");
	
	//resize
	mbResize();
	
	
	var isValid = true;
	
	
	//verify . ..  
	//username:	
	var username = $('registerForm').username.value;	
	
	if(username.length < 6){
		isValid = false;
		//toggle the message
		$('registerUsername').setStyle('display','block');
		$('registerUsername').update('Username is too short');
	}
	
	if(username.length > 12){
		isValid = false;
		//toggle the message
		$('registerUsername').setStyle('display','block');
		$('registerUsername').update('Username is too long');
	}
	
	
	
	
	//email
	var email = $('registerForm').email.value;
	var ePass = (checkEmail(email));
	if(ePass == false){
		isValid = false;
		$('registerEmail').setStyle('display','display');
		$('registerEmail').update('Please enter a valid email address');
	}
	
	//password
	//first check that they match
		var password1 = $('registerForm').password1.value;
		var password2 = $('registerForm').password2.value;
		if(password1 == password2){
				//then for correct format		
				var pswdok = checkPassword(password1);
				if(pswdok == false){
					isValid = false;
					$('registerPassword').setStyle('display','display');
					$('registerPassword').update('Wrong format or length');	
				}
		}else{
			isValid = false;
			$('registerPassword').setStyle('display','display');
			$('registerPassword').update('Passwords do not match');
		}
	
	//finally rezise
	mbResize();
	
	if(isValid == true){
			//check for a duplicate username
			var url = "../php/checkDupUsername.php"
			// notice the use of a proxy to circumvent the Same Origin Policy.
			new Ajax.Request(url, {
			method: 'post',
			parameters: {
				newUsername: username
			},
			onSuccess: function(transport) {
				if (transport.responseText == 1){
					//save off
					saveNewUser(username,email,password1);					
					var html = "<p>Registration was successful.<br/>You can now log in.</p><button onclick=Modalbox.hide()>Ok</button>";
					$('registerForm').update(html);
					mbResize();
					
					
				}else{
					$('registerUsername').setStyle('display','block');
					$('registerUsername').update('That username is unavailable');
					mbResize();
				
				}
			},
			onFailure: function(transport){
				return false;
			}
			});
			
			return false;
		}else{
			return false;
		}	
}		


function mbRegisterSuccess(){
	var html = '<div class= "MB_alert"<p>Thank you for registering.<br/>You can now log in.</p><input type="button" onclick="Modalbox.hide()" value="OK" /></div>';
	Modalbox.show(html, {title: "Registration was successful", width: 250});
	
}
		
	

function mbResize(){
	Modalbox.resizeToContent();
}
function mbHide(){
	Modalbox.hide();
}
	

function saveNewUser(username,email,password){
	var url = "../php/submitRegistration.php"
	// notice the use of a proxy to circumvent the Same Origin Policy.
	new Ajax.Request(url, {
	method: 'post',
	parameters: {
		newUsername: username,
		newPassword: password,
		newEmail: email
	},
	onSuccess: function(transport) {
		
	},
	onFailure: function(transport){
		alert("unable to process reqest");
	}
	});

}