function ajaxMyForm(aForm) {
	// TODO : AJAX out to database, and get all the event dates for this month/year
  var xmlhttp = null;
	
	document.registrationAttempts = 0;
    
  if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
     xmlhttp=new XMLHttpRequest();
  else // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		
	params = (aForm.coursetype[0].checked ? 'CFSC='+aForm.coursetype[0].value+'&' : '') + 
					 (aForm.coursetype[1].checked ? 'CRFSC='+aForm.coursetype[1].value+'&' : '') + 
					 (aForm.coursetype[2].checked ? 'OHEP='+aForm.coursetype[2].value+'&' : '') + 
					 (aForm.coursetype[3].checked ? 'other='+aForm.coursetype[3].value+'&' : '') + 					 
					 (aForm.paymenttype[0].checked ? 'dropoff='+aForm.paymenttype[0].value+'&' : '') + 
					 (aForm.paymenttype[1].checked ? 'emailmoneytransfer='+aForm.paymenttype[1].value+'&' : '') + 
					 (aForm.paymenttype[2].checked ? 'cheque='+aForm.paymenttype[2].value+'&' : '') + 
					 (aForm.paymenttype[3].checked ? 'paypal='+aForm.paymenttype[3].value+'&' : '') +
					 'firstname='+aForm.firstname.value+'&'+
					 'middlename='+aForm.middlename.value+'&'+
					 'lastname='+aForm.lastname.value+'&'+
					 'startday='+aForm.startday.value+'&'+
					 'startmonth='+aForm.startmonth.value+'&'+
					 'startyear='+aForm.startyear.value+'&'+
					 'birthday='+aForm.birthday.value+'&'+
					 'birthmonth='+aForm.birthmonth.value+'&'+
					 'birthyear='+aForm.birthyear.value+'&'+
					 'address='+aForm.address.value+'&'+
					 'city='+aForm.city.value+'&'+
					 'province='+aForm.province.value+'&'+
					 'postalcode='+aForm.postalcode.value+'&'+
					 'homephone='+aForm.homephone.value+'&'+
					 'workphone='+aForm.workphone.value+'&'+
					 'mobilephone='+aForm.mobilephone.value+'&'+
					 'email='+aForm.email.value+'&'+
					 'licence='+aForm.licence.value+'&'+
					 'health='+aForm.health.value+'&'+
					 'sin='+aForm.sin.value+'&'+
					 'passport='+aForm.passport.value+'&'+
					 'birthcert='+aForm.birthcert.value+'&'+
					 'eye='+aForm.eyecolour.value+'&'+
					 'height='+aForm.height.value;
	
	alert(params);
  
	xmlhttp.open("POST",document.homelocation+"/register.php?dance=runaway",true);
	
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	
	xmlhttp.attemptCount = 0;
		
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState==4 && xmlhttp.status==200) {
			alert('Application Sent. Additional Information has been sent to your email.');
			this.attemptCount = 0;
		} else {
			alert('waiting for server...');			
			this.attemptedcount++;
		}
		
		if(this.attemptCount > 2)
			alert('Your application failed to submit.');			
	}	
	
  xmlhttp.send(params);
	
	xmlhttp.setRequestHeader("Connection", "close");	
}


function validateForm(aForm) {
	if(typeof aForm == 'undefined')
		return false;
	
	var isValid = true;
	function validate(obj, validCondition) {
		if(validCondition) {
			obj.style.border = 'none';
		} else { 
			if(isValid)
				obj.focus();
		
			isValid = false;
			obj.style.border = '2px solid #FF9999';
		}
	}

	function isEmail(obj) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(obj.value);
	}
	
	// At least 1 course needs to be selected.
	var aCourseIsSelected = (aForm.coursetype[0].checked || aForm.coursetype[1].checked || aForm.coursetype[2].checked || aForm.coursetype[3].checked);
	
	/* console.log(aForm.coursetype[0].checked, aForm.coursetype[0].value);
		console.log(aForm.coursetype[1].checked, aForm.coursetype[1].value);
			console.log(aForm.coursetype[2].checked, aForm.coursetype[2].value);
				console.log(aForm.coursetype[3].checked, aForm.coursetype[3].value); */
	
	validate(document.getElementById('coursesselection'), aCourseIsSelected);
	
	validate(aForm.startday, 		aForm.startday.value > 0 && aForm.startday.value < 32);
	validate(aForm.startmonth, 	aForm.startmonth.value > 0 && aForm.startmonth.value < 13);
	validate(aForm.startyear, 	aForm.startyear.value > 2010 && aForm.startyear.value < 2099);
	
	validate(aForm.firstname, 	aForm.firstname.value.length > 0);
	// validate(aForm.middlename, 	aForm.middlename.value.length > 0);
	validate(aForm.lastname, 		aForm.lastname.value.length > 0);
	
	validate(aForm.birthday, 		aForm.birthday.value > 0 && aForm.birthday.value < 32);
	validate(aForm.birthmonth, 	aForm.birthmonth.value > 0 && aForm.birthmonth.value < 13);
	validate(aForm.birthyear, 	aForm.birthyear.value > 1900 && aForm.birthyear.value < 2099);
	
	validate(aForm.eyecolour, 	aForm.eyecolour.value.length > 0);
	validate(aForm.height, 			aForm.height.value.length > 0);
	
	validate(aForm.address, 		aForm.address.value.length > 0);
	validate(aForm.city, 				aForm.city.value.length > 0);
	validate(aForm.province, 		aForm.province.value.length > 0);
	validate(aForm.postalcode, 	aForm.postalcode.value.length > 0);
	
	// At least 1 phone number
	var validPhoneCount 				= aForm.homephone.value || aForm.workphone.value || aForm.mobilephone.value;
	validate(aForm.homephone, 	validPhoneCount);
	validate(aForm.workphone, 	validPhoneCount);
	validate(aForm.mobilephone, validPhoneCount);
	
	validate(aForm.email, isEmail(aForm.email));
	
	// Two peices of ID is required.
	var identification = 0;
	if(aForm.birthcert.value.length > 0)
		identification++;
	if(aForm.licence.value.length > 0)
		identification++;
	if(aForm.health.value.length > 0)
		identification++;
	if(aForm.passport.value.length > 0)
		identification++;
	if(aForm.sin.value.length > 0)
		identification++;
	identification = identification > 1;
	
	validate(aForm.birthcert, 	identification);
	validate(aForm.licence, 		identification);
	validate(aForm.health, 			identification);
	validate(aForm.passport, 		identification);
	validate(aForm.sin,					identification);
	
	validate(document.getElementById('paymentmethod'), aForm.paymenttype[0].checked || aForm.paymenttype[1].checked || aForm.paymenttype[2].checked || aForm.paymenttype[3].checked);
	
	//console.log(document.getElementById('paymentmethod'), aForm.paymenttype[0].checked || aForm.paymenttype[1].checked || aForm.paymenttype[2].checked || aForm.paymenttype[3].checked);
		
	/*
		
	if(aForm.paymenttype[3].checked)
		aForm.action = "https://www.paypal.com/cgi-bin/webscr";
	
	if(isValid) 
		ajaxMyForm(aForm);
		
	*/
	
	return isValid;
}
