function checkUsername(address) {
	if (address.value == "") {
		alert(unescape('You have left the Username field blank. Please complete this field.'));
		address.focus();
		return false;
	}
	else
		return true;
}

function checkPassword(address) {
	if (address.value == "") {
		alert(unescape('You have left the Password field blank. Please complete this field.'));
		address.focus();
		return false;
	}
	else
		return true;
}

function checkBlankEmail(address) {
	if (address.value == "") {
		alert(unescape('You have left the Email field blank. Please complete this field.'));
		address.focus();
		return false;
	}
	else
		return true;
}

function passwordCheck(address1,address2) {
// Checks that passwords entered match and that they are at least 4 characters in length long.
	if (address1.value != address2.value) {
		alert(unescape('Your password and the confirmation password do not match.\nPlease re-enter them.'));
		address1.value = '';
		address2.value = '';
		address1.focus();
		return false;
		}
	else if (address1.value.length < 4 && address1.value.length != 0 && address2.value.length != 0) {
		alert(unescape('Your password must be 4 characters in length.'));
		address1.value = '';
		address2.value = '';
		address1.focus();
		return false;
		}
	else return true;
	}

function checkEmailAddress(address,address2) {
	if (address.value == "" && address2.value == "") return true;
	if (address.value != address2.value) {
		alert(unescape('Your e-mail and the confirmation e-mail do not match.\nPlease re-enter them.'));
		return false;
	}
	if (address.value != "")  {
		errmsg = checkEmail(address.value);
		if (errmsg != "")  {
			alert(unescape(errmsg));
			address.focus();
			return false;
			}
		else 
			return true;
		}
	else 
		alert(unescape('Please enter a valid email address.'));
		return false;
	}

function checkEmail(address) {
		invalidError = "Please enter a valid Email Address";
		lengthError = "Your Email Address must not exceed 40 characters";
		
	if(address.length>40) return lengthError;
	while(address.charCodeAt(0)==32) {
		address=address.substr(1);
		}
	while(address.charCodeAt(address.length-1)==32) {
		address=address.substring(0,address.length-1);
		}	
	for(i=0;i<address.length;i++) {
		s = address.charCodeAt(i);
		if (!(((s >= 65) && (s <= 90)) || ((s >= 48) && (s <= 57)) || ((s >= 97) && (s <= 122))||(s==64)||(s==45)||(s==46)||(s==95)) ) return invalidError;
	}
  	addressSplit = address.split('@');
  	if(addressSplit.length==2) {
  		name   = addressSplit[0];
  		domain = addressSplit[1];
	  	if((name.substr(name.length-1,1)=='.')||(name.substr(0,1)=='.')||(domain.substr(domain.length-1,1)=='.')||(domain.substr(0,1)=='.')) {  //no improperly placed periods
			return invalidError;
		} else {
		  	domainSplit = domain.split('.');
		  	if(domainSplit.length<2) return invalidError;  // no period in domain
		}
	} else {
		return invalidError;
	}
	return '';
}
