// JavaScript Document
function valid(thisform){
	
	//validate Gender
	myOption = -1;
	for (i=thisform.gender.length-1; i > -1; i--) {
		if (thisform.gender[i].checked) {
			myOption = i; i = -1;
		}
	}
	if (myOption == -1) {
		alert("You must select a Gender");
		return false;
	}
	//first name
	if(thisform.firstName.value == ""){
		alert("You must input First Name");
		thisform.firstName.focus();
		return false;
	}
	//last name
	if(thisform.lastName.value == ""){
		alert("You must input Last Name");
		thisform.lastName.focus();
		return false;
	}
	//birth date
	var birthDate = thisform.b_mm.value+'/'+thisform.b_dd.value+'/'+thisform.b_yyyy.value;
	if (isDate(birthDate)==false){
		thisform.b_mm.focus();
		return false;
	}
	if (isDate(birthDate) == true){
		var born = new Date(birthDate);
		var birthYear = born.getFullYear();
		var d = new Date();
		var dYear = d.getFullYear();
		var diff = dYear - birthYear;
		if(diff < 18){
			alert("You must older than 18 years of age.");
			thisform.b_mm.focus();
			return false;
		}
	}
	
	//Home Address 1
	if(thisform.homeAddress1.value == ""){
		alert("You must input Home Address 1");
		thisform.homeAddress1.focus();
		return false;
	}
	//City
	if(thisform.city.value == ""){
		alert("You must input City");
		thisform.city.focus();
		return false;
	}
	//Province State
	if(thisform.provinceState.value == ""){
		alert("You must input Province State");
		thisform.provinceState.focus();
		return false;
	}
	//Country
	if(thisform.country.value == "" || thisform.country.value == "Select a country"){
		alert("You must input Country");
		thisform.country.focus();
		return false;
	}
	//Postal Code
	if(thisform.postalCode.value == ""){
		alert("You must input Postal Code");
		thisform.postalCode.focus();
		return false;
	}
	//Telephone
	if(thisform.telephone.value == ""){
		alert("You must input Telephone");
		thisform.telephone.focus();
		return false;
	}
	//Email
	if(thisform.email.value == ""){
		alert("You must input Email");
		thisform.email.focus();
		return false;
	}else{
		if(echeck(thisform.email.value)==false){
			thisform.email.focus();
			return false;
		}
	}
	//Nationality
	if(thisform.nationality.value == "" || thisform.nationality.value == "Select a country"){
		alert("You must input Nationality");
		thisform.nationality.focus();
		return false;
	}
	//First Language
	if(thisform.fLanguage.value == ""){
		alert("You must input First Language");
		thisform.fLanguage.focus();
		return false;
	}
	//Emergency Contact First Name
	if(thisform.contactFname.value == ""){
		alert("You must input Emergency Contact First Name");
		thisform.contactFname.focus();
		return false;
	}
	//Emergency Contact Last Name
	if(thisform.contactLname.value == ""){
		alert("You must input Emergency Contact Last Name");
		thisform.contactLname.focus();
		return false;
	}
	//Emergency Contact Telephone
	if(thisform.contactTelephone.value == ""){
		alert("You must input Emergency Contact Telephone");
		thisform.contactTelephone.focus();
		return false;
	}
	
	//English Program
	/*
	if(thisform.lanProgram.value == "" || thisform.lanProgram.value == "Select a program"){
		alert("You must input English Program");
		thisform.lanProgram.focus();
		return false;
	}
	*/
	
	
	
	var boxes = thisform["lanProgram[]"].length;
	var checkedCourses = 0;
	for (i = 0; i < boxes; i++) {
		if (thisform["lanProgram[]"][i].checked) {
			checkedCourses ++;
		}
	}
	if(checkedCourses == 0){
		alert("You must input English Program");
		return false;
	}else if(checkedCourses > 3){
		alert("You can select up to 3 English Programs.");
		return false;
	}
	
	
	//Program Weeks
	if(thisform.programWeeks.value == ""){
		alert("You must input Program Number of Weeks");
		thisform.programWeeks.focus();
		return false;
	}
	//Program Start Date
	var programDate = thisform.p_mm.value+'/'+thisform.p_dd.value+'/'+thisform.p_yyyy.value;
	if (isDate(programDate)==false){
		thisform.p_mm.focus();
		return false;
	}
	//validate Language Level
	langLevel = -1;
	for (i=thisform.languageLevel.length-1; i > -1; i--) {
		if (thisform.languageLevel[i].checked) {
			langLevel = i; i = -1;
		}
	}
	if (langLevel == -1) {
		alert("You must select Language Level");
		return false;
	}
	//validate Medical Insurance
	medicalIns = -1;
	for (i=thisform.medicalInsurance.length-1; i > -1; i--) {
		if (thisform.medicalInsurance[i].checked) {
			medicalIns = i; i = -1;
		}
	}
	if (medicalIns == -1) {
		alert("You must select Medical Insurance");
		return false;
	}
	
	//if medical insurance is selected validate number of days
	var isMedical = false;
	for (var i=0; i < thisform.medicalInsurance.length; i++){
		if (thisform.medicalInsurance[i].checked){
			if(thisform.medicalInsurance[i].value == 'Yes'){
				isMedical = true;
			}
		}
	}
	if(isMedical){
		if(thisform.medInsuranceDays.value == ""){
			alert("You must input Medical Insurance number of days");
			thisform.medInsuranceDays.focus();
			return false;
		}
	}
	//Airport Pickup
	airportPick = -1;
	for (i=thisform.airportPickup.length-1; i > -1; i--) {
		if (thisform.airportPickup[i].checked) {
			airportPick = i; i = -1;
		}
	}
	if (airportPick == -1) {
		alert("You must select Airport Pickup");
		return false;
	}
	var isPickup = false;
	for (var i=0; i < thisform.airportPickup.length; i++){
		if (thisform.airportPickup[i].checked){
			if(thisform.airportPickup[i].value == 'Yes'){
				isPickup = true;
			}
		}
	}
	if(isPickup){
		//arrival date 
		var arrivalDate = thisform.ar_mm.value+'/'+thisform.ar_dd.value+'/'+thisform.ar_yyyy.value;
		if (isDate(arrivalDate)==false){
			thisform.ar_mm.focus();
			return false;
		}
		//arrival time
		if(thisform.arr_am.value == "" && thisform.arr_pm.value == ""){
			alert("You must input Arrival Time");
			thisform.arr_am.focus();
			return false;
		}
		//airline
		if(thisform.airline.value == ""){
			alert("You must input Airline");
			thisform.airline.focus();
			return false;
		}
	}
	//accomodation
	if(thisform.accomodation.value == "" || thisform.accomodation.value == "Select accommodation option"){
		alert("You must input Accomodation");
		thisform.accomodation.focus();
		return false;
	}
	//if accomodation is required validate rest of the fields
	if(thisform.accomodation.value != "Select accommodation option" && thisform.accomodation.value != "Not required"){
		var accStartDate = thisform.accStart_mm.value+'/'+thisform.accStart_dd.value+'/'+thisform.accStart_yyyy.value;
		if (isDate(accStartDate)==false){
			thisform.accStart_mm.focus();
			return false;
		}
		//number of weeks
		if(thisform.accomodationWeeks.value == ""){
			alert("You must input Accomodation number of weeks");
			thisform.accomodationWeeks.focus();
			return false;
		}
		
		/*
		var accEndDate = thisform.accEnd_mm.value+'/'+thisform.accEnd_dd.value+'/'+thisform.accEnd_yyyy.value;
		if (isDate(accEndDate)==false){
			thisform.accEnd_mm.focus();
			return false;
		}
		if(isDateNoAlert(startAccDate) && isDateNoAlert(endAccDate)){
			date1 = new Date();
			date2 = new Date();
			diff = new Date();
			date1temp = new Date(startAccDate);
			date1.setTime(date1temp.getTime());
			date2temp = new Date(endAccDate);
			date2.setTime(date2temp.getTime());
			diff.setTime(Math.abs(date1.getTime() - date2.getTime()));
			timediff = diff.getTime();
			weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
			//must be at least 4 weeks accomodation
			if(weeks <=3){
				alert('Accomodation must be selected for at least 4 weeks.');	
			}
		}
		*/
		
		
	}

	//thisform.submit();
}
