//***********************************************************************************************************************
//***********************************************************************************************************************
//	Title			: Online Form Validation
//	Date Created	: 01 - Oct - 2008
//  Last Updated	: 01 - Oct - 2008
//	Programmer		: Damian Duarte
//***********************************************************************************************************************
//***********************************************************************************************************************


//---------------------------------------
// - Process Secure Booking Function - ||
//---------------------------------------
function processSecureBooking()
{
	// Calls 'validateSecureBooking' amd of True then all is good so submit form ...
	// Else do nothing (function 'validateSecureBooking' has alaert for any errors) ...
	if(validateSecureBooking())
	{
	  // Submit Form ...
	  document.Membership.submit();
	}
}

//----------------------------------------
// - Validate Secure Booking Function - ||
//----------------------------------------
function validateSecureBooking()
{
	var errorString = "The following information is required:\n\n";   // String value to contain errors ...
	var errorFlag = 0;   // variable used to flag if any errors arise and if so focus on the first one ...
	
	// Check each form entry field to see if it's blank ... if so set errorFlag to > 0 and append field to errorString ... 
	if(document.getElementById('FamilyName').value == "")
	{
		errorString += "    - Family Name.\n";
		if(errorFlag == 0)
			errorFlag = 1;
	}
	if(document.getElementById('FirstName').value == "")
	{
		errorString += "    - First Name.\n";
		if(errorFlag == 0)
			errorFlag = 2;
	}
	if(document.getElementById('FathersName').value == "")
	{
		errorString += "    - Fathers Name.\n";
		if(errorFlag == 0)
			errorFlag = 3;
	}
	if(document.getElementById('MothersName').value == "")
	{
		errorString += "    - Mothers Name.\n";
		if(errorFlag == 0)
			errorFlag = 4;
	}
	if(document.getElementById('Nationality').value == "")
	{
		errorString += "    - Nationality.\n";
		if(errorFlag == 0)
			errorFlag = 5;
	}
	
	var mySelect = document.getElementById('DOBDay');
	var theIndx = mySelect.selectedIndex;
	if(mySelect.options[theIndx].value == 'none')
	{
		errorString += "    - Date of birth -day.\n";
		if(errorFlag == 0)
			errorFlag = 6;
	}
	
	mySelect = document.getElementById('DOBMonth');
	theIndx = mySelect.selectedIndex;
	if(mySelect.options[theIndx].value == 'none')
	{
		errorString += "    - Date of birth -month.\n";
		if(errorFlag == 0)
			errorFlag = 14;
	}
	
	mySelect = document.getElementById('DOBYear');
	theIndx = mySelect.selectedIndex;
	if(mySelect.options[theIndx].value == 'none')
	{
		errorString += "    - Date of birth -year.\n";
		if(errorFlag == 0)
			errorFlag = 15;
	}
	
	var hasChecked = -1;
	group = document.getElementsByName('Gender');
	for (i=0; i < group.length; i++ )
	{
		if (group[i].checked)
		{
				hasChecked = i; 
				i = group.length
		}
		
	}
	
	if(hasChecked == -1)
	{
		errorString += "    - Gender.\n";
		if(errorFlag == 0)
			errorFlag = 7;
	}
	
	if(document.getElementById('School').value == "")
	{
		errorString += "    - School.\n";
		if(errorFlag == 0)
			errorFlag = 8;
	}
	if(document.getElementById('ResidentialAddress').value == "")
	{
		errorString += "    - Residential address.\n";
		if(errorFlag == 0)
			errorFlag = 9;
	}
	if(document.getElementById('HomePhone').value == "")
	{
		errorString += "    - Home telephone number.\n";
		if(errorFlag == 0)
			errorFlag = 10;
	}
	if(document.getElementById('Email').value == "")
	{
		errorString += "    - E-mail Address.\n";
		if(errorFlag == 0)
			errorFlag = 11;
	}
	else if(!emailAddressValidation(document.getElementById('Email').value))
	{
		// If the Email is not blank ... parse it through my Email Address Validator ...
		// This will return true if it's acceptable or false if it's invalid ...
		errorString += "    - Incorrect E-mail Address.\n";
		if(errorFlag == 0)
			errorFlag = 11;
	}
	if(document.getElementById('MobilePhoneFather').value == "")
	{
		errorString += "    - Mobile telephone number - Father.\n";
		if(errorFlag == 0)
			errorFlag = 12;
	}
	if(document.getElementById('MobilePhoneMother').value == "")
	{
		errorString += "    - Mobile telephone number - Mother.\n";
		if(errorFlag == 0)
			errorFlag = 13;
	}

	if(document.getElementById('ProposerName').value == "")
	{
		errorString += "    - Proposer name.\n";
		if(errorFlag == 0)
			errorFlag = 16;
	}
	
	hasChecked = -1;
	group = document.getElementsByName('ParentGuardian');
	for (i=0; i < group.length; i++ )
	{
		if (group[i].checked)
		{
				hasChecked = i; 
				i = group.length
		}
		
	}
	
	if(hasChecked == -1)
	{
		errorString += "    - Parent / Guardian.\n";
		if(errorFlag == 0)
			errorFlag = 17;
	}
	if(document.getElementById('JuniorMemberName').value == "")
	{
		errorString += "    - Junior Member name.\n";
		if(errorFlag == 0)
			errorFlag = 18;
	}
	if(!(document.getElementById('TandC').checked))
	{
		errorString += "    - Terms and conditions.\n";
		if(errorFlag == 0)
			errorFlag = 19;
	}
	
	
	errorString += "\n";
	
	// If the errorFlag has been raised ... select which field to set focus on ...
	if(errorFlag > 0)
	{
		switch(errorFlag)
		{
			case 1:
				document.getElementById('FamilyName').focus();
			break;
			case 2:
				document.getElementById('FirstName').focus();
			break;
			case 3:
				document.getElementById('FathersName').focus();
			break;
			case 4:
				document.getElementById('MothersName').focus();
			break;
			case 5:
				document.getElementById('Nationality').focus();
			break;
			case 6:
				document.getElementById('DOBDay').focus();
			break;
			case 7:
				document.getElementById('Gender').focus();
			break;
			case 8:
				document.getElementById('School').focus();
			break;
			case 9:
				document.getElementById('ResidentialAddress').focus();
			break;
			case 10:
				document.getElementById('HomePhone').focus();
			break;
			case 11:
				document.getElementById('Email').focus();
			break;
			case 12:
				document.getElementById('MobilePhoneFather').focus();
			break;
			case 13:
				document.getElementById('MobilePhoneMother').focus();
			break;
			case 14:
				document.getElementById('DOBMonth').focus();
			break;
			case 15:
				document.getElementById('DOBYear').focus();
			break;
			case 16:
				document.getElementById('ProposerName').focus();
			break;
			case 17:
				document.getElementById('ParentGuardian').focus();
			break;
			case 18:
				document.getElementById('JuniorMemberName').focus();
			break;
			case 19:
				document.getElementById('TandC').focus();
			break;
		}

		alert(errorString);
		return false;
	}
	else
	{
		return true;
	}
}