function checkPassword() {	
	var strength = document.getElementById('strength');
	var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{6,}).*", "g");
	var pwd = document.getElementById("password");
	
	if (pwd.value.length==0) {
		strength.innerHTML = '';
	} 
	else if (false == enoughRegex.test(pwd.value)) {
		strength.innerHTML = 'Password is too short.';
	} 
	else if (strongRegex.test(pwd.value)) {
		strength.innerHTML = '<span style="color:green">Password strength is strong.</span>';
	} 
	else if (mediumRegex.test(pwd.value)) {
		strength.innerHTML = '<span style="color:orange">Password strength is medium.</span>';
	} 
	else {
		strength.innerHTML = '<span style="color:red">Password strength is weak.</span>';
	}
}

function matchPassword() {
	var match = document.getElementById("match");
	var password = document.getElementById("password");
	var confirmPassword = document.getElementById("confirmpassword");		

	if (confirmPassword.value.length==0) {		
		match.innerHTML = '';
	}
	else if (password.value==confirmPassword.value) {		
		match.innerHTML = '<span style="color:green">Passwords match.</span>';
	}
	else {
		match.innerHTML = '<span style="color:red">Passwords do not match.</span>';
	}
}

var userAjaxHandler = {
	
	handleSuccess:function(o) {
		var result = YAHOO.lang.JSON.parse(o.responseText);
		var resultDestination = document.getElementById("userresult");
		if (result.status=='OK') {
			resultDestination.innerHTML = '<span style="color:green">This user name is available.</span>';
		}
		else if (result.status=='Duplicate'){
			resultDestination.innerHTML = '<span style="color:red">This user name is being used by someone else.  Please choose a different name.</span>';
		}
	}, 
	
	handleFailure:function(o) {
		//we are going to ignore the failure and handle it on the server side
	},
	
	startRequest:function(username) {
		YAHOO.util.Connect.asyncRequest('GET', "CheckUserName?username=" + username, callback, null);
	}
};

var callback = {
		success:userAjaxHandler.handleSuccess,
		failure:userAjaxHandler.handleFailure,
		scope:userAjaxHandler
};

function checkUser() {
	var name = document.getElementById("username");
	if (name.value.length>0) {
		userAjaxHandler.startRequest(name.value);
	}	
};

function clearUserCheck() {
	var result = document.getElementById("userresult");
	result.innerHTML = '';
}

function checkHip(answer) {
	var input = document.getElementById("hipanswer");
	var result = document.getElementById("hipresult");
	
	if (input.value.length==0) {
		result.innerHTML = '';
	}
	else if (answer==input.value) {
		result.innerHTML = '<span style="color:green">Your answer is correct!</span>';
	}
	else {
		result.innerHTML = '<span style="color:red">Your answer is incorrect.</span>';
	}	
}

function submitRegistration() {
	var frm = document.getElementById("frmregister");
	frm.submit();
}

function submitReset() {
	var frm = document.getElementById("frmreset");
	frm.submit();
}