function IsAlpha(value) {
	return /^[a-zA-Z\d]+$/.test(value);
}

function IsInteger(n){
	return (Math.floor(n) == n);
}

function IsBlank(value) {
	if ((value == null) || (value == "")) {
		return true;
	} else {
		return false;
	}
}

function val_email(value) {
	var email = value;
	var r = new RegExp("^[\\w\\.\\-]+@\\w+[\\w\\.\\-]*?\\.\\w{1,4}$");
	
	if(r.exec(email)) {
		return true;
	} else {
		return false;
	}
}

function CheckAll(type, self) {
 	var checkbox;
	var status;
 
 	switch (type) {
		case 'consumer' :
			checkbox = document.form["consumer_events[]"];
			break;
			
		case 'trade' :
			checkbox = document.form["trade_events[]"];
			break;
	}	
	
	for (i=0; i<checkbox.length; i++) {
		checkbox[i].checked = self.checked;
	}
}

function check_date(form, field_name, caption) {
 	var dd = field_name + "_dd";
 	var mm = field_name + "_mm";
 	var yy = field_name + "_yy";
 	
 	var today = new Date();
 	var msg = "";
 
	if (form[dd].value == "") {		
		msg += "\n- " + caption + " (Day)";
	}
	
	if (form[mm].value == "") {		
		msg += "\n- " + caption + " (Month)";
	}
	
	if (IsBlank(form[yy].value)) {		
		msg += "\n- " + caption + " (Year)";
	} else if (isNaN(form[yy].value) || (form[yy].value.length != 4)) {
	 	msg += "\n- " + caption + " (Invalid Year)";
	} else if (form[yy].value < today.getFullYear()) {
		msg += "\n- " + caption + " (Year values must be current or future only)";
	}
	
	return msg;
}

function CheckForm(form) {
 	var msg = "The following fields are either empty or invalid:\n";
  	var success = true;
  
  	if (form.title.value == "") {
  	 	//alert("Name is empty");
		//form.name.focus();
		//return false;
		msg += "\n- Title";
		success = false;
	}
  
  	
	if (IsBlank(form.first_name.value)) {		
		msg += "\n- First Name";
		success = false;
	}
	
	if (IsBlank(form.last_name.value)) {		
		msg += "\n- Last Name";
		success = false;
	}
	
	if (IsBlank(form.nationality.value)) {		
		msg += "\n- Nationality";
		success = false;
	}
	
	if (IsBlank(form.address1.value)) {
		msg += "\n- Address";
		success = false;
	}
	
	if (IsBlank(form.postal.value)) {
		msg += "\n- Postal";
		success = false;
	} 
	
	if (IsBlank(form.home.value) && IsBlank(form.office.value) && IsBlank(form.mobile.value)) {
		msg += "\n- At least one contact number";
		success = false;
	}
	
	if (!IsBlank(form.home.value)) {
		if (!IsInteger(form.home.value)) {
			msg += "\n- Home contact (invalid)";
			success = false;		
		}
	}
	
	if (!IsBlank(form.office.value)) {
		if (!IsInteger(form.office.value)) {
			msg += "\n- Office contact (invalid)";
			success = false;		
		}
	}
	
	if (!IsBlank(form.mobile.value)) {
		if (!IsInteger(form.mobile.value)) {
			msg += "\n- Mobile contact (invalid)";
			success = false;		
		}
	}
	
	if (IsBlank(form.email.value)) {
		msg += "\n- Email";
		success = false;
	} else {
		if (!val_email(form.email.value)) {
			msg += "\n- Email (Invalid)";
			success = false;
		}
	}
	
	if ((IsBlank(form.dob_day.value)) || (IsBlank(form.dob_month.value)) || (IsBlank(form.dob_year.value))){
		msg += "\n- Date of Birth";
		success = false;		
	} else if ((!IsInteger(form.dob_day.value)) 
			|| (!IsInteger(form.dob_month.value)) 
			|| (!IsInteger(form.dob_year.value))) {
		
		msg += "\n- Date of Birth (Invalid)";
		success = false;
	} else if ((form.dob_day.value > 31) || (form.dob_day.value < 1) || (form.dob_day.value.length != 2)) {
		msg += "\n- Date of Birth (Invalid Day)";
		success = false;
	} else if ((form.dob_month.value > 12) || (form.dob_month.value < 1) || (form.dob_month.value.length != 2)) {
		msg += "\n- Date of Birth (Invalid Month)";
		success = false;
	} else if (form.dob_year.value.length != 4) {
		msg += "\n- Date of Birth (Invalid Year)";
		success = false;
	}
	
	if (form.gender.value == "") {
		msg += "\n- Gender";
		success = false;
	}
	
	if (form.age.value == "") {
		msg += "\n- Age";
		success = false;
	}
	
	if (form.marital.value == "") {
		msg += "\n- Marital";
		success = false;
	}
	
	if (form.occupation.value == "") {
		msg += "\n- Occupation";
		success = false;
	}
		
	if (!success) {
		alert(msg);
		return success;
	} else {
		return success;
	}
	//return true;
}

function check_hall_1(form) {
	var msg = "The following fields are either empty or invalid:\n";
  	var success = true;
	var today = new Date();
	
	if (form.title.value == "") {		
		msg += "\n- Title";
		success = false;
	}
	
	if (IsBlank(form.first_name.value)) {
		msg += "\n- First Name";
		success = false;
	}
	
	if (IsBlank(form.last_name.value)) {
		msg += "\n- Last Name";
		success = false;
	}
	
	if ((IsBlank(form.office.value)) && (IsBlank(form.mobile.value)) && (IsBlank(form.office.value))) {
		msg += "\n- Contact Number (Please enter one)";
		success = false;	
	} else {
	 	// Office
		if (!IsBlank(form.office_cc.value) && isNaN(form.office_cc.value)) {
			msg += "\n- Office Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.office_ac.value) && isNaN(form.office_ac.value)) {
			msg += "\n- Office Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.office.value) && isNaN(form.office.value)) {
			msg += "\n- Office (Invalid)";
			success = false;	
		}
		
		// Mobile
		if (!IsBlank(form.mobile_cc.value) && isNaN(form.mobile_cc.value)) {
			msg += "\n- Mobile Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.mobile_ac.value) && isNaN(form.mobile_ac.value)) {
			msg += "\n- Mobile Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.mobile.value) && isNaN(form.mobile.value)) {
			msg += "\n- Mobile (Invalid)";
			success = false;	
		}
		
		// Fax
		if (!IsBlank(form.fax_cc.value) && isNaN(form.fax_cc.value)) {
			msg += "\n- Fax Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.fax_ac.value) && isNaN(form.fax_ac.value)) {
			msg += "\n- Fax Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.fax.value) && isNaN(form.fax.value)) {
			msg += "\n- Fax (Invalid)";
			success = false;	
		}
	}
	
	if (IsBlank(form.email.value)) {
		msg += "\n- Email";
		success = false;
	} else {
		if (!val_email(form.email.value)) {
			msg += "\n- Email (Invalid)";
			success = false;
		}
	}
	
	if (IsBlank(form.designation.value)) {
		msg += "\n- Designation";
		success = false;
	}
	
	if (IsBlank(form.coy_address1.value)) {
		msg += "\n- Address";
		success = false;
	}
	
	if (IsBlank(form.postal.value)) {
		msg += "\n- Postal";
		success = false;
	}
	
	if (form.country.value == "") {		
		msg += "\n- Country";
		success = false;
	}
	
	if (form.event_for.value == "") {		
		msg += "\n- What is your event for?";
		success = false;
	}
	
	if (!form.space[0].checked && !form.space[1].checked) {		
		msg += "\n- How much space do you require?";
		success = false;
	} else {
		if (form.space[0].checked) {
		 	if (IsBlank(form.space_metres.value)) {
				msg += "\n- Sq Metres";
				success = false;
			} else if (isNaN(form.space_metres.value)) {
				msg += "\n- Sq Metres (Invalid)";
				success = false;
			}		
		}
		
		if (form.space[1].checked) {
		 	if (IsBlank(form.space_feet.value)) {
				msg += "\n- Sq Feet";
				success = false;
			} else if (isNaN(form.space_feet.value)) {
				msg += "\n- Sq Feet (Invalid)";
				success = false;
			}		
		}
	}
	
	//--------------------------------------------------------------------------
	//	Date Fields
	//--------------------------------------------------------------------------
	
	var temp;
	
	temp = check_date(form, "move_in_start", "Move-in from");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "move_in_end", "Move-in to");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "move_out_start", "Move-out from");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "move_out_end", "Move-out to");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "event_start", "Event from");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "event_end", "Event to");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	if ((form.alt_event_start_dd.value != "") || 
			(form.alt_event_start_mm.value != "") || 
			(form.alt_event_start_yy.value != "YYYY") ||
			(form.alt_event_end_dd.value != "") || 
			(form.alt_event_end_mm.value != "") || 
			(form.alt_event_end_yy.value != "YYYY")) {
		
		temp = check_date(form, "alt_event_start", "Alternate Event from");
	
		if (temp != "") {
			msg += temp;
			success = false;
		}
		
		temp = check_date(form, "alt_event_end", "Alternate Event to");
	
		if (temp != "") {
			msg += temp;
			success = false;
		}
	}

	//--------------------------------------------------------------------------
	//	End of Date Fields
	//--------------------------------------------------------------------------
	
	if (!form.conf[0].checked && !form.conf[1].checked) {		
		msg += "\n- Any accompanying conference?";
		success = false;
	}
	
	if (IsBlank(form.event_profile.value)) {
		msg += "\n- Event Profile";
		success = false;
	}
	
	if (!success) {
		alert(msg);
		return success;
	} else {
		return success;
	}
}

function check_hall_2(form) {
	var msg = "The following fields are either empty or invalid:\n";
  	var success = true;
	var today = new Date();
	
	if (form.title.value == "") {		
		msg += "\n- Title";
		success = false;
	}
	
	if (IsBlank(form.first_name.value)) {
		msg += "\n- First Name";
		success = false;
	}
	
	if (IsBlank(form.last_name.value)) {
		msg += "\n- Last Name";
		success = false;
	}
	
	if ((IsBlank(form.office.value)) && (IsBlank(form.mobile.value)) && (IsBlank(form.office.value))) {
		msg += "\n- Contact Number (Please enter one)";
		success = false;	
	} else {
	 	// Office
		if (!IsBlank(form.office_cc.value) && isNaN(form.office_cc.value)) {
			msg += "\n- Office Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.office_ac.value) && isNaN(form.office_ac.value)) {
			msg += "\n- Office Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.office.value) && isNaN(form.office.value)) {
			msg += "\n- Office (Invalid)";
			success = false;	
		}
		
		// Mobile
		if (!IsBlank(form.mobile_cc.value) && isNaN(form.mobile_cc.value)) {
			msg += "\n- Mobile Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.mobile_ac.value) && isNaN(form.mobile_ac.value)) {
			msg += "\n- Mobile Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.mobile.value) && isNaN(form.mobile.value)) {
			msg += "\n- Mobile (Invalid)";
			success = false;	
		}
		
		// Fax
		if (!IsBlank(form.fax_cc.value) && isNaN(form.fax_cc.value)) {
			msg += "\n- Fax Country Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.fax_ac.value) && isNaN(form.fax_ac.value)) {
			msg += "\n- Fax Area Code (Invalid)";
			success = false;	
		}
		
		if (!IsBlank(form.fax.value) && isNaN(form.fax.value)) {
			msg += "\n- Fax (Invalid)";
			success = false;	
		}
	}
	
	if (IsBlank(form.email.value)) {
		msg += "\n- Email";
		success = false;
	} else {
		if (!val_email(form.email.value)) {
			msg += "\n- Email (Invalid)";
			success = false;
		}
	}
	
	if (IsBlank(form.designation.value)) {
		msg += "\n- Designation";
		success = false;
	}
	
	if (IsBlank(form.coy_address1.value)) {
		msg += "\n- Address";
		success = false;
	}
	
	if (IsBlank(form.postal.value)) {
		msg += "\n- Postal";
		success = false;
	}
	
	if (form.country.value == "") {		
		msg += "\n- Country";
		success = false;
	}
	
	/*
	if (form.event_for.value == "") {		
		msg += "\n- What is your event for?";
		success = false;
	}
	*/
	
	if (IsBlank(form.attendees.value)) {		
		msg += "\n- Attendees";
		success = false;
	} else if (isNaN(form.attendees.value)) {
		msg += "\n- Attendees (Invalid)";
		success = false;
	}
	
	//--------------------------------------------------------------------------
	//	Date Fields
	//--------------------------------------------------------------------------
	
	var temp;
	
	temp = check_date(form, "event_start", "Event from");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	temp = check_date(form, "event_end", "Event to");
	
	if (temp != "") {
		msg += temp;
		success = false;
	}
	
	if ((form.alt_event_start_dd.value != "") || 
			(form.alt_event_start_mm.value != "") || 
			(form.alt_event_start_yy.value != "YYYY") ||
			(form.alt_event_end_dd.value != "") || 
			(form.alt_event_end_mm.value != "") || 
			(form.alt_event_end_yy.value != "YYYY")) {
		
		temp = check_date(form, "alt_event_start", "Alternate Event from");
	
		if (temp != "") {
			msg += temp;
			success = false;
		}
		
		temp = check_date(form, "alt_event_end", "Alternate Event to");
	
		if (temp != "") {
			msg += temp;
			success = false;
		}
	}

	//--------------------------------------------------------------------------
	//	End of Date Fields
	//--------------------------------------------------------------------------
	
	if (!form.exhibition[0].checked && !form.exhibition[1].checked) {		
		msg += "\n- Any accompanying exhibition?";
		success = false;
	}
	
	if (IsBlank(form.event_profile.value)) {
		msg += "\n- Event Profile";
		success = false;
	}
	
	if (!success) {
		alert(msg);
		return success;
	} else {
		return success;
	}
}