//Javascript functions to validate user entries in various feedback forms

	function validSubscribeFormEntry() {
		//validate SubscribeForm user data input, returns false if validation failed
		var errMsg = "";
		var bValid = true;

		var elmEmail = document.getElementById("email");
		if (!emailValid(elmEmail.value))
			errMsg += "  Email address does not appear to be valid.\n";

		if (errMsg != "") {
			alert("Please correct the following in the form:\n\n" + errMsg);
			bValid = false;
		}
		else {
			bValid = true;
		}
		
		return bValid;
	}
		
	function validFooterSubscribeEntry() {
		//validate SubscribeForm user data input, returns false if validation failed
		var errMsg = "";
		var bValid = true;

		var elmEmail = document.footerSubscribe.email;
		if (!emailValid(elmEmail.value))
			errMsg += "  Email address does not appear to be valid.\n";

		if (errMsg != "") {
			alert("Please correct the following in the form:\n\n" + errMsg);
			bValid = false;
		}
		else {
			bValid = true;
		}
		
		return bValid;
	}

	function checkifexists(thefield, theprompt, minlen) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (theobj.value.length < minlen) {
				return "  '" + theprompt + "' is mandatory.\n";
			} else {
				return "";
			}
		} else {
			return "";
		}
	}

	function checkifexists_ph_num(thefield, theprompt, minlen) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (theobj.value.length < minlen) {
				return "  '" + theprompt + "' is mandatory.\n";
			} else {							
				var s = theobj.value;
				for (i = 0; i < s.length; i++)
				{   
					var c = s.charAt(i);
					if ((c < "0") || (c > "9")) {
						if ((c == "+") || (c == " ") || (c == "-") || (c == "(") || (c == ")")) {
							//character is ok
						} else {
							return "  '" + theprompt + "' has an invalid character.\n";						
						}
					}
				}
				return "";
			}
		} else {
			return "";
		}
	}

	function checkifexists_pc_num(thefield, theprompt, minlen) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			//if (theobj.value.length == 0) {
			//	return "";
			//} else {
				if (theobj.value.length < minlen) {
					return "  '" + theprompt + "' must have 4 characters.\n";
				} else {									
					s = theobj.value;
					for (i = 0; i < s.length; i++)
					{   
						c = s.charAt(i);
						if ((c < "0") || (c > "9")) {
							if (c == " ") {
								//character is ok								
							} else {
								return "  '" + theprompt + "' has an invalid character.\n";					
							}
						}
					}
					return "";
				}
			//}
		} else {
			return "";
		}
	}

	function checkifexists_dd(thefield, theprompt) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (theobj[0].selected) {
				return "  '" + theprompt + "' is mandatory.\n";
			} else {
				return "";
			}
		} else {
			return "";
		}
	}


	function checkifexists_yn(thefield1, thefield2, theprompt) {
		var theobj = document.getElementById(thefield1);		
		var theobj2 = document.getElementById(thefield2);
		if (theobj != null) {
			if (theobj.checked) {
				return "";
			} else {
				if (theobj2.checked) {
					return "";
				} else {
					return "  '" + theprompt + "' is mandatory.\n";
				}
			}
		} else {
			return "";
		}
	}

	function checkifexists_5f(thefield1, thefield2, thefield3, thefield4, thefield5, theprompt) {
		var theobj = document.getElementById(thefield1);		
		var theobj2 = document.getElementById(thefield2);
		var theobj3 = document.getElementById(thefield3);
		var theobj4 = document.getElementById(thefield4);
		var theobj5 = document.getElementById(thefield5);

		if (theobj != null) {
			if (theobj.checked) {
				return "";
			} else {
				if (theobj2.checked) {
					return "";
				} else {
					if (theobj3.checked) {
						return "";
					} else {
						if (theobj4.checked) {
							return "";
						} else {
							if (theobj5.checked) {
								return "";
							} else {
								return "  '" + theprompt + "' is mandatory.\n";
							}
						}
					}
				}
			}
		} else {
			return "";
		}
	}


	function checkifexists_email(thefield) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (!emailValid(theobj.value)) {
				return "  Email address does not appear to be valid.\n";
			} else {
				return "";
			}
		} else {
			return "";
		}
	}

	function checkifexists_name(thefield) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (!nameValid(theobj.value)) {
				return "  A valid name is required.\n";
			} else {
				return "";
			}
		} else {
			return "";
		}
	}

	function checkifexists_fname(thefield) {
		var theobj = document.getElementById(thefield);		
		if (theobj != null) {
			if (!nameValid(theobj.value)) {
				return "  A valid first name is required.\n";
			} else {
				return "";
			}
		} else {
			return "";
		}
	}


	function validEmailFormEntry() {
		//validate EmailForm user data input, returns false if validation failed
		var errMsg = "";
		var bValid = true;

		//var elmName = document.getElementById("name");
		//if (!nameValid(elmName.value)) 
		//	errMsg += "  A valid name is required.\n";
		errMsg += checkifexists_name("name");
		errMsg += checkifexists_fname("cm-name");
		errMsg += checkifexists_fname("mb-name");
		errMsg += checkifexists("cm-f-tupl", "Surname", 2);
		errMsg += checkifexists("cm-f-djlht", "Surname", 2);
		errMsg += checkifexists("cm-f-djlih", "Surname", 2);
		errMsg += checkifexists("lastname", "Surname", 2);
	
		//var elmEmail = document.getElementById("email");		
		//if (!emailValid(elmEmail.value))
		//	errMsg += "  Email address does not appear to be valid.\n";
		errMsg += checkifexists_email("email");
						
		errMsg += checkifexists_email("mb-nykn-nykn");

		
		errMsg += checkifexists_email("cm-xurud-xurud");
		errMsg += checkifexists_email("cm-nykn-nykn");
				
		errMsg += checkifexists("Street", "Street", 2);
		errMsg += checkifexists("Suburb", "Suburb", 2);
		//errMsg += checkifexists("State", "State", 2);

		errMsg += checkifexists_pc_num("Postcode", "Postcode", 4);
		//errMsg += checkifexists_pc_num("cm-f-tunl", "Postcode", 4);
		errMsg += checkifexists_pc_num("cm-f-djlhd", "Postcode", 4);

		errMsg += checkifexists_ph_num("PrePhone", "Phone Prefix", 2);
		errMsg += checkifexists_ph_num("Phone", "Phone", 8);
		errMsg += checkifexists_ph_num("cm-f-djlhh", "Contact phone number", 8);
		errMsg += checkifexists_ph_num("cm-f-djliu", "Contact phone number", 8);
		errMsg += checkifexists_ph_num("mb.f-tuny", "Mobile Phone Number", 10);
		//errMsg += checkifexists_ph_num("cm-f-tuny", "Mobile Phone Number", 10);

		errMsg += checkifexists_ph_num("Fax", "Fax Prefix", 2);
		errMsg += checkifexists_ph_num("Fax", "Fax", 8);
		errMsg += checkifexists("mailMessage", "Message", 2);
		errMsg += checkifexists("organisation", "Company/Org", 2);
		errMsg += checkifexists("cm-f-djlik", "Company", 2);
		errMsg += checkifexists("school", "School", 2);	
		errMsg += checkifexists("cm-f-djlhi", "School", 2);

		errMsg += checkifexists("velsLevel", "VELS level", 1);

		//errMsg += checkifexists_dd("tempday", "Date Of Birth: Day");
		//errMsg += checkifexists_dd("tempmonth", "Date Of Birth: Month");
		//errMsg += checkifexists_dd("tempyear", "Date Of Birth: Year");

		errMsg += checkifexists("year", "Year Level", 1);
		errMsg += checkifexists("Subject", "Subject", 2);
		errMsg += checkifexists("date", "Excursion Date", 2);
		errMsg += checkifexists("numberOfStudents", "Number of Students", 1);
		errMsg += checkifexists("numberOfTeachers", "Number of Teachers", 1);
		errMsg += checkifexists("extraAdults", "Extra Adults", 1);


		errMsg += checkifexists_5f("cm21436", "cm21437", "cm21438", "cm21439", "cm25066", "IMAX films I'm interested in");
		
		errMsg += checkifexists_yn("cm21440", "cm21441", "Are you a Museum Victoria Member");

		errMsg += checkifexists_dd("Time1", "Session Details Time");		
		if (errMsg != "") {
			alert("Please correct the following in the form:\n\n" + errMsg);
			bValid = false;
		}
		else {
			bValid = true;
		}
		
		return bValid;
	}

	function nameValid(str) {
		//returns true if name is not empty and have alpha characters
		var bValid = false;
		
		if (str) {
			// check for invalid characters in a person's name:
			var reJunk = /\;|\[|\]|\:|\,|\^|\?|\{|\}|\\|\!|\@|\#|\$|\%|\&|\*|\(|\)|\+|\-$/;
	
			var re = /\b[a-zA-Z]{1,}[a-zA-Z \'\.]+$/;
			bValid = re.test(str) && !(reJunk.test(str));
		}
		else {
			bValid = false;
		}
		
		return bValid;
	}

	function emailValid(str) {
		//returns true if email is valid
		var bValid = false;
		
		if (str) {
			//var re = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
			//var re = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
			var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
			bValid = re.test(str);
		}
		else {
			bValid = false;
		}

		return bValid;
	}