function CheckForm() {

	// Make quick references to our fields
	var firstname = document.getElementById('txtFName');
	var surname   = document.getElementById('txtSName');
	var idno      = document.getElementById('txtIDNo');
	var email     = document.getElementById('txtEmail');
	var bdate     = document.getElementById('txtDoB');
	var cell      = document.getElementById('txtCell');
	var hometel   = document.getElementById('txtHomeTel');
	var addr      = document.getElementById('txtPhys1');
	var addr2     = document.getElementById('txtPhys2');
	var pcode     = document.getElementById('txtPCode');
//	var worktel   = document.getElementById('txtWorkTel'); 	//not a compusory field
//	var gender    = document.getElementById('gender');		//Male selected by default
//	var passwd1   = document.getElementById('txtPwd1');
//	var passwd2   = document.getElementById('txtPwd2');
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your name")){
		if(isAlphabet(surname, "Please enter only letters for your surname")){
			if(isAlphanumeric(idno, "Numbers and Letters Only for ID Number")){
				if(emailValidator(email, "Please enter a valid email address")){
					if(checkDate(bdate)){
						if(isNumeric(cell, "Please enter a valid cell number")){
							if(isNumeric(hometel, "Please enter a valid home telephone number")){
								if(notEmpty(addr, "Numbers and Letters Only for Address")){
									if(notEmpty(addr2, "Numbers and Letters Only for Address")){
										if(isNumeric(pcode, "Please enter a valid postal code")){
											return true;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	
	return false;
	
}

// If the length of the element's string is 0 then display helper message
function notEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

// If the element's string matches the regular expression it is all numbers
function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

// If the element's string matches the regular expression it is all letters
function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

// If the element's string matches the regular expression it is numbers and letters
function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function checkPwd(helperMsg){
	var pwd1 = frmReg.txtPwd1;
	var pwd2 = frmReg.txtPwd2;
	if(pwd1.value !== pwd2.value){
		pwd1.value = '';
		pwd2.value = '';
		alert(helperMsg);
		pwd1.focus();
		return false;
	}
	return true;
}

function checkDate(elem){
	var chkVal  = elem.value;
	//alert(chkVal);
	dtYr    = chkVal.substr(0, 4);
	dtChar1 = chkVal.substr(4, 1);
	dtChar2 = chkVal.substr(7, 1);
	dtMonth = chkVal.substr(5, 2);
	dtDay   = chkVal.substr(8, 2);
	//alert('Year: '+dtYr+'\nMonth: '+dtMonth+'\nDay: '+dtDay);
	if ((dtChar1=='-') && (dtChar2=='-')){
		//alert('Char OK: '+dtChar1);
		if ((dtYr>'1930') && (dtYr<'2001')){
			//alert('Year OK: '+dtYr);
			if ((dtMonth>'0') && (dtMonth<'13')){
				//alert('Month OK: '+dtMonth);
				if (((dtMonth==4) || (dtMonth==6) || (dtMonth==9) || (dtMonth==11)) && (dtDay<31)){
					//alert('Month has 30 days - '+dtMonth);
					return true;
				}
				else if (((dtMonth==1) || (dtMonth==3) || (dtMonth==5) || (dtMonth==7) || (dtMonth==8) || (dtMonth==10) || (dtMonth==12)) && (dtDay<31)){
					//alert('Month has 31 days - '+dtMonth);
					return true;
				}
				else if ((dtMonth==2) && (dtDay<=daysInFebruary(dtYr))){
					//alert('Month has '+daysInFebruary(dtYr)+' days');
					return true;
				}else{
					alert('Your birthdate has an invalid number of days for the selected Month.');
					elem.focus();
					return false;
				}
			}else{
				alert('Your birthdate has an invalid Month.');
				elem.focus();
				return false;
			}
		}else{
			alert('Your birthdate has an invalid Year.');
			elem.focus();
			return false;
		}
	}else{
		alert('You have an invalid Birthdate format.');
		elem.focus;
	//	return false;
	}
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

//	frmReg.Submit.disabled=!this.checked;
//}

function clearForm() {
	document.getElementById('txtFName').value='';
	document.getElementById('txtSName').value='';
	document.getElementById('txtNickName').value='';
	document.getElementById('txtIDNo').value='';
	document.getElementById('txtEmail').value='';
	document.getElementById('txtDoB').value='';
	document.getElementById('txtCell').value='';
	document.getElementById('txtWkTel').value='';
	document.getElementById('txtHomeTel').value='';
	document.getElementById('txtPhys1').value='';
	document.getElementById('txtPhys2').value='';
	document.getElementById('txtPhys3').value='';
	document.getElementById('txtPhys4').value='';
	document.getElementById('txtPCode').value='';
	document.getElementById('txtClub').value='';
}

function ShowReg() {
	document.getElementById('divRegistered').style.display='block';
	document.getElementById('txtTSA').value = '';
	document.getElementById('divUnregistered').style.display='none';
}

function ShowUnreg() {
	document.getElementById('divUnregistered').style.display='block';
	document.getElementById('divRegistered').style.display='none';
	clearForm();
	document.getElementById('divAthInfo').innerHTML='';
}