// Post reservation data, and check if information is somewhat complete


function submitInfo() {
	// For some odd reason the access options to form fields
	// do not work like described in the "JavaScript - Bible"
	// document.forms[0]._F_EMail.value
	
	// array used to indicate which fields need to be filled
	
	cleanDefaults();
	
	if (!mandatoryCheck())
		{
			// Restore the values previously removed with "cleanDefaults();"
			restoreDefaults();
			return; // bail out if incomplete
		}
	else
		{
			document.forms[0]._F_Submit.value="submit";
			document.forms[0].submit();
		}
		
}

// Clear the contents of a field when clicked
function clearText(theFormField)
{
	
	switch (theFormField.name)
		{
			case "_F_FirstName":
				{
					//alert (theFormField);
					if (theFormField.value == "Voer hier uw voorletters in") 
						theFormField.value = "";
					break;
				}
			case "_F_LastName":
				{
					//alert (theFormField);
					if (theFormField.value == "Voer hier uw achternaam in")
						theFormField.value = "";
					break;
				}
			case "_F_Adres":
				{
					if (theFormField.value == "Voer hier uw adres in")
						theFormField.value = "";
					break;
				}
			case "_F_Postcode":
				{
					if (theFormField.value == "Voer hier uw postcode in")
						theFormField.value = "";
					break;
				}
			case "_F_Plaats":
				{
					if (theFormField.value == "Voer hier uw woonplaats in")
						theFormField.value = "";
					break;
				}
			case "_F_Telefoon":
				{
					if (theFormField.value == "Voer hier uw telefoon nummer in")
						theFormField.value = "";
					break;
				}
			case "_F_EMail":
				{
					if (theFormField.value == "Voer hier uw e-mail adres in")
						theFormField.value = "";
					break;
				}
			case "_F_Personen":
				{
					if (theFormField.value == "Voer hier het aantal personen in")
						theFormField.value = "";
					break;
				}
			case "_F_Datum":
				{
					if (theFormField.value == "Voer hier de reserverings datum in")
						theFormField.value = "";
					break;
				}
			case "_F_Opmerkingen":
				{
					if (theFormField.value == "Voer hier eventuele opmerkingen en wensen in")
						theFormField.value = "";
					break;
				}
		}
}

// Restore the help text if nothing is entered
function restoreText(theFormField)
{
	switch (theFormField.name)
		{
			case "_F_FirstName":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw voorletters in";
					break;
				}
			case "_F_LastName":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw achternaam in";
					break;
				}
			case "_F_Adres":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw adres in";
					break;
				}
			case "_F_Postcode":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw postcode in";
					break;
				}
			case "_F_Plaats":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw woonplaats in";
					break;
				}
			case "_F_Telefoon":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw telefoon nummer in";
					break;
				}
			case "_F_EMail":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier uw e-mail adres in";
					break;
				}
			case "_F_Personen":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier het aantal personen in";
					break;
				}
			case "_F_Datum":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier de reserverings datum in";
					break;
				}
			case "_F_Opmerkingen":
				{
					if (theFormField.value == "")
						theFormField.value = "Voer hier eventuele opmerkingen en wensen in";
					break;
				}
		}
}

// Before sending the data to the server clean out the default
// values
function cleanDefaults()
{
	if (document.forms[0]._F_FirstName.value == "Voer hier uw voorletters in") 
		document.forms[0]._F_FirstName.value = "";
		
	if (document.forms[0]._F_LastName.value == "Voer hier uw achternaam in")
		document.forms[0]._F_LastName.value = "";

	if (document.forms[0]._F_Adres.value == "Voer hier uw adres in")
		document.forms[0]._F_Adres.value = "";

	if (document.forms[0]._F_Postcode.value == "Voer hier uw postcode in")
		document.forms[0]._F_Postcode.value = "";

	if (document.forms[0]._F_Plaats.value == "Voer hier uw woonplaats in")
		document.forms[0]._F_Plaats.value = "";

	if (document.forms[0]._F_Telefoon.value == "Voer hier uw telefoon nummer in")
		document.forms[0]._F_Telefoon.value = "";

	if (document.forms[0]._F_EMail.value == "Voer hier uw e-mail adres in")
		document.forms[0]._F_EMail.value = "";

	if (document.forms[0]._F_Personen.value == "Voer hier het aantal personen in")
		document.forms[0]._F_Personen.value = "";

	if (document.forms[0]._F_Datum.value == "Voer hier de reserverings datum in")
		document.forms[0]._F_Datum.value = "";

	if (document.forms[0]._F_Opmerkingen.value == "Voer hier eventuele opmerkingen en wensen in")
		document.forms[0]._F_Opmerkingen.value = "";
}

// Restore default values in empty fields
function restoreDefaults()
{
	if (document.forms[0]._F_FirstName.value == "") 
		document.forms[0]._F_FirstName.value = "Voer hier uw voorletters in";
		
	if (document.forms[0]._F_LastName.value == "")
		document.forms[0]._F_LastName.value = "Voer hier uw achternaam in";

	if (document.forms[0]._F_Adres.value == "")
		document.forms[0]._F_Adres.value = "Voer hier uw adres in";

	if (document.forms[0]._F_Postcode.value == "")
		document.forms[0]._F_Postcode.value = "Voer hier uw postcode in";

	if (document.forms[0]._F_Plaats.value == "")
		document.forms[0]._F_Plaats.value = "Voer hier uw woonplaats in";

	if (document.forms[0]._F_Telefoon.value == "")
		document.forms[0]._F_Telefoon.value = "Voer hier uw telefoon nummer in";

	if (document.forms[0]._F_EMail.value == "")
		document.forms[0]._F_EMail.value = "Voer hier uw e-mail adres in";

	if (document.forms[0]._F_Personen.value == "")
		document.forms[0]._F_Personen.value = "Voer hier het aantal personen in";

	if (document.forms[0]._F_Datum.value == "")
		document.forms[0]._F_Datum.value = "Voer hier de reserverings datum in";

	if (document.forms[0]._F_Opmerkingen.value == "")
		document.forms[0]._F_Opmerkingen.value = "Voer hier eventuele opmerkingen en wensen in";
}


// Catch the enter / return key
function noenter() {
	return !(window.event && (window.event.keyCode == 13 || window.event.keyCode == 3));
}

// Check the e-Mail address
function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		alert("The username doesn't seem to be valid.")
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!")
			return false
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.")
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
	   alert("The address must end in a three-letter domain, or two letter country.")
	   return false
	}
	if (len<2) {
	   var errStr="This address is missing a hostname!"
	   alert(errStr)
	   return false
	}
	return true;
}

function mandatoryCheck()
{
	allFieldsFilled = true;
	
	if (IsEmpty(document.forms[0]._F_FirstName))
		{
			allFieldsFilled = false;
			document.images._I_FirstName.src = "images/l_on.png";
		}
	else
		{
			document.images._I_FirstName.src = "images/l_off.png";
		}
		
	if (IsEmpty(document.forms[0]._F_LastName))
		{
			allFieldsFilled = false;
			document.images._I_LastName.src = "images/l_on.png";
		}
	else
		{
			document.images._I_LastName.src = "images/l_off.png";
		}
		
	if (IsEmpty(document.forms[0]._F_Telefoon))
		{
			allFieldsFilled = false;
			document.images._I_Telefoon.src = "images/l_on.png";
		}
	else
		{
			document.images._I_Telefoon.src = "images/l_off.png";
		}
	
	if(emailCheck(document.forms[0]._F_EMail.value) == false)
		{
			allFieldsFilled = false;
			document.images._I_EMail.src = "images/l_on.png";
		}
	else
		{
			document.images._I_EMail.src = "images/l_off.png";
		}
		
	if (IsEmpty(document.forms[0]._F_Personen))
		{
			allFieldsFilled = false;
			document.images._I_Personen.src = "images/l_on.png";
		}
	else
		{
			document.images._I_Personen.src = "images/l_off.png";
		}
		
	if (IsEmpty(document.forms[0]._F_Datum))
		{
			allFieldsFilled = false;
			document.images._I_Datum.src = "images/l_on.png";
		}
	else
		{
			document.images._I_Datum.src = "images/l_off.png";
		}
		
	if (allFieldsFilled)
		{
			return true;
		}
	else
		{
			alert("Niet all verplichte velden zijn ingevoerd.");
			return false;
		}
}


// Check if a field is empty
function IsEmpty(aTextField) {
	if ((aTextField.value.length==0) ||
	(aTextField.value==null)) {
		return true;
	}
	else { return false; }
}
