function setupLogin() {
	var username = document.getElementById('user_name');
	//var	password = document.getElementById('user_new_pw');
	//var	vpassword = document.getElementById('user_new_pw2');
	var	email = document.getElementById('user_email');
	var fn = document.getElementById('user_first_name');
	var ln = document.getElementById('user_last_name');
	
	if(username != null && username.type != 'hidden') {
		addEvent(username, 'blur', checkUserName);
	}
	if(email != null && email.type != 'hidden') {
		addEvent(email, 'blur', checkUserName);
	}
	if(fn != null && fn.type != 'hidden') {
		addEvent(fn, 'blur', checkNameCase);
	}
	if(ln != null && ln.type != 'hidden') {
		addEvent(ln, 'blur', checkNameCase);
	}
	//addEvent(username, 'blur', checkUserName);
	//addEvent(email, 'blur', checkEmail);
	//addEvent(fn, 'blur', checkNameCase);
	//addEvent(ln, 'blur', checkNameCase);
	
	//addEvent(email, 'focus', focusField);
}

// function to add events to the page in a cross-browser manner
function addEvent(objObject, strEventName, fnHandler) { 
	// DOM-compliant way to add an event listener 
 	if (objObject.addEventListener) {
		objObject.addEventListener(strEventName, fnHandler, false); 
	}
	// IE/windows way to add an event listener 
	else if (objObject.attachEvent) {
		objObject.attachEvent('on' + strEventName, fnHandler); 
	}
}

// focusField method: called when username and password gain focus
function focusField() {
	try {
		this.select()
	}
	catch (e)
		{ } // do nothing... hides an apparent firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=236791
}

// blurField method: called when username and password are blurred
function blurField()
{
	try {
		//validateLogin();
	}
	catch (e)
	{ } // hide bug https://bugzilla.mozilla.org/show_bug.cgi?id=236791
}

function checkEmail(){
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	str = document.getElementById('user_email').value;
	var errSpan = document.getElementById('emailMessage');
	if(str.match(emailRegEx) || str == ''){
		errSpan.innerHTML = '';
		return true;
	}else{
		errSpan.innerHTML = "Please enter a valid email address";
		var emailField = document.getElementById('user_email');
		document.user_form.user_email.focus();
		return false;
	}
}

function checkUserName() {
	var username = document.getElementById('user_name').value;
	var errSpan = document.getElementById('usernameMessage');
	var params = 'task=usernamecheck&username='+username;
	new Ajax.Request('../registrationWorker.php', {
					parameters: encodeURI(params),
					asynchronous:true,
					onSuccess: function(transport) {
						errSpan.innerHTML = transport.responseText;
					}
				});
	
}

function toProperCase(s) {
  return s.toLowerCase().replace(/^(.)|\s(.)/g, 
          function($1) { return $1.toUpperCase(); });
}

function checkNameCase() {
	var errorSpan = this.nextSibling;
	if(errorSpan!=null){
		if(this.value!=null && this.value.length>0) {
			errorSpan.innerHTML = '';
		}else{
			errorSpan.innerHTML = "<img src='images/errorIcon2.png' height='16px' width='16px' alt='Cannot be blank.'>";
		}
	}
	this.value = toProperCase(this.value);
}

function check_submit(processSubmit){
	var uname = document.getElementById('user_name').value;
	var ufname = document.getElementById('user_first_name').value;
	var ulname = document.getElementById('user_last_name').value;
	var uemail = document.getElementById('user_email').value;

	var errSpan = document.getElementById('submitErrorMessage');
	var usernameError = document.getElementById('usernameMessage');
	var fnError = document.getElementById('firstnameMessage');
	var lnError = document.getElementById('lastnameMessage');
	var emailError = document.getElementById('emailMessage');
	var termsError = document.getElementById('acceptMessage');

	
	var check = true;
				
	if(uname==null || uname==''){
		usernameError.innerHTML = 'You must enter a valid username.';
		check = false;
	}
	if(ufname==null || ufname==''){
		fnError.innerHTML = "<img src='images/errorIcon2.png' height='16px' width='16px' alt='You must enter a first name.'>";
		check = false;
	}
	if(ulname==null || ulname==''){
		lnError.innerHTML = "<img src='images/errorIcon2.png' height='16px' width='16px' alt='You must enter a last name.'>";
		check = false;
	}
	if(uemail==null || uemail==''){
		emailError.innerHTML = "You must enter a valid email address.";
		check = false;
	}
	if(!check_disclaimer()) {
		termsError.innerHTML = 'You must accept the terms of use agreement.';
		check = false;
	}

	if(check) {
		check = true;
		if(processSubmit) {
			document.getElementById('user_form').submit();
		}
	}
	return check;
}

function check_disclaimer(){
	var terms_accept_obj = document.getElementById('terms_of_use_accept');
	var errSpan = document.getElementById('acceptMessage');

	if(terms_accept_obj!=null){
			if(!terms_accept_obj.checked){
				errSpan.innerHTML = 'You must accept the terms of use agreement.';
			}else{
				errSpan.innerHTML = '';				
			}
		return terms_accept_obj.checked;
	}
	return true;
}
	


addEvent(window,'load',setupLogin);
var emailChecked = false;
