// Performs the validation of the suggest an event form.
// Must be included after the communfunctions.js file.
//
// Returns:
// false: If any validation fails.
// true: If validation passes.
function validateSuggestAnEventForm()
{
 var form = document.SuggestAnEventForm;
 var eventRegion = form.eventRegion;
 var eventType = form.eventType;
 var startDate = form.startDate;
 var endDate = form.endDate;
 var eventDescription = form.eventDescription;
 var eventOperator = form.eventOperator;
 var contactName = form.contactName;
 var contactEmail = form.contactEmail;
 var contactWebAddress = form.contactWebAddress;
 var contactPhone = form.contactPhone;
 var submitterName = form.submitterName;
 var submitterEmail = form.submitterEmail;
 var submitterPhone = form.submitterPhone;
 var sErrorMessage = "";
 var bReturn = true;
 var bEmpty = false;
 var bIsNav = true;
	
bIsNav = isNav4();
if (bIsNav) {
	return true;
}
 // Determine if Event Region list has selection
 bEmpty = checkSelectListNoMsg(eventRegion);

 if(!bEmpty)
 {
  bReturn = false;
  alert("I'm sorry, in order to sumbit your event suggestion you need " + 
    	"to provide more information. Please select an event region."); 
 } 
  
 
 // Determine if Event Type list has selection
 bEmpty = checkSelectListNoMsg(eventType);

	if(bReturn)
	{
		 if(!bEmpty)
		 {
		  bReturn = false;
		  alert("I'm sorry, in order to sumbit your event suggestion you need " + 
			"to provide more information. Please select an event type.");
		 } 
	}
  
 // Determine if value is entered for start date
 if(bReturn)
 {
	 bEmpty = isEmptyNoSpace(startDate);

	 if(bEmpty)
	 {
	  bReturn = false;
	  alert("I'm sorry, you cannot complete this form unless all mandatory information"
		+ "(marked with a red asterix) is complete. Please enter an event start date.");
	  chgFocus(startDate);
	 }
  }


// Determine if value entered for start date is valid
  if(bReturn)
  {
  	bReturn = isValidDate(startDate.value);
  	
  	if(!bReturn)
  	{
  		alert("The start date entered: " + startDate.value + " is not a valid date. "
		+ "The format dd/mm/yyyy is required. For example 24/09/2004 for the 23rd of September 2004.");
  	}
  }
  
  if(bReturn)
  {
  	bReturn = dhaIsValidDateAfterToday(startDate);
  	
  	if(!bReturn)
  	{
  		alert("I'm sorry," + startDate.value + " is not valid. The start date of your event suggestion "
		+ "is required to be equal to or after today's date");
  	}
  }
  
 // Determine if value entered for end date id valid
  if(bReturn)
  {
  	bEmpty = isEmptyNoSpace(endDate);
  	
  	if(!bEmpty)
  	{
		bReturn = isValidDate(endDate.value);

		if(!bReturn)
		{
			alert("The end date entered: " + endDate.value + " is not a valid date. "
			+ "The format dd/mm/yyyy is required. For example 24/09/2004 fir the 23rd of September 2004.");
		}
	}
  }
 
 //Determine if end date is greater then or equal to startdate
  if(bReturn)
  {
  		bEmpty = isEmptyNoSpace(endDate);
    	
    	if(!bEmpty)
  		{
  			bReturn = dateCompare(startDate.value, endDate.value);
  	
  			if(!bReturn)
  			{
  				alert("I'm sorry," + endDate.value + " is not valid. The end date of your event suggestion "
				+ "is required to be after the start date");
			}
  		}  		
  }
 
 
 
 // Determine if value is entered for Event Description
 if(bReturn)
 {
	 bEmpty = isEmptyNoSpace(eventDescription);

	 if(bEmpty)
	 {
	  bReturn = false;
	  alert("I'm sorry, you cannot complete this form unless all mandatory information"
		+ "(marked with a red asterix) is complete. Please provide an event description.");
	  chgFocus(eventDescription);
	 }
  }
  
 // Determine if text area field contains enough characters
 if(bReturn)
 {
  if(!isValidLength(eventDescription, 24))
  {
   bReturn = false;
   alert("I'm sorry, you have not supplied enough letters or numerals for this form. "
    + "Please enter at least twenty five characters for the description of your event.");
   chgFocus(eventDescription);
  } 
 } 
  
 // Determine if text area field contains valid characters
 if(bReturn)
 {
  sErrorMessage = validateTextBox(eventDescription);
  bReturn = (sErrorMessage=="");
  if(!bReturn)
  {
   alert(sErrorMessage);
   chgFocus(eventDescription);
  } 
 } 
  
 // Determine if value is entered for Event Operator
 bEmpty = isEmptyNoSpace(eventOperator);

 if(bReturn)
 {
 	if(bEmpty)
 	{
 	 bReturn = false;
 	 alert("I'm sorry, you cannot complete this form unless all mandatory information"
		+ "(marked with a red asterix) is complete. Please provide an event operator.");
 	 chgFocus(eventOperator);
 	} 
 }
  
 // Determine if text area field contains enough characters
 if(bReturn)
 {
  if(!isValidLength(eventOperator, 3))
  {
   bReturn = false;
   alert("I'm sorry, you have not supplied enough letters or numerals for this form. "
    + "Please enter at least four characters for the operator of your event.");
   chgFocus(eventOperator);
  } 
 }
  
 // Determine if text area field contains valid characters
 if(bReturn)
 {
  sErrorMessage = validateName(eventOperator);
  bReturn = (sErrorMessage=="");

  if(!bReturn)
  {
   alert(sErrorMessage);
   chgFocus(eventOperator);
  } 
 } 

 // Determine if value is entered for event Contact Name
 if(bReturn)
 {
	 bEmpty = isEmptyNoSpace(contactName);

	 if(bEmpty)
	 {
	  bReturn = false;
	  alert("I'm sorry, you cannot complete this form unless all mandatory information"
		+ "(marked with a red asterix) is complete. Please provide a contact name.");
	  chgFocus(contactName);
	 } 
  }

 // Determine if text area field contains enough characters
 if(bReturn)
 {
  if(!isValidLength(contactName, 3))
  {
   bReturn = false;
   alert("I'm sorry, you have not supplied enough letters or numerals for this form. "
    + "Plaese enter at least four characters for the contact name.");
   chgFocus(contactName);
  } 
 } 
  
 // Determine if text area field contains valid characters
 if(bReturn)
 {
  sErrorMessage = validateName(contactName);
  bReturn = (sErrorMessage=="");

  
  if(!bReturn)
  {
   alert(sErrorMessage);
   chgFocus(contactName);
  } 
 } 
  	
//validate contact email field
if(bReturn) {
    var msg = validateEmail(contactEmail);
	if (msg != "")
	{
	    alert (msg);
		chgFocus(contactEmail);
		bReturn = false;
	}
} 
  
 // Determine if text area WebAddress field contains valid characters
 if(bReturn)
  {
  	bEmpty = isEmptyNoSpace(contactWebAddress);
	
	if(!bEmpty)
 	{
  		var webmsg = isValidWebAddress(contactWebAddress);
  		if (webmsg != "") {
			alert(webmsg);
			bReturn = false;
	   		chgFocus(contactWebAddress);
		}
 	} 
  }

 
 // Determine if text area Contact Phone field contains valid numbers
 if(bReturn)
 {
  	bEmpty = isEmptyNoSpace(contactPhone);
  	
  	if(!bEmpty)	
	{
  		var phonemsg = isPhone(contactPhone);
    		if (phonemsg != "") {
			alert(phonemsg);
			bReturn = false;
	   		chgFocus(contactPhone);
		}
	}	 
 } 
  
 // Determine if text area Submitter Name field contains valid characters
 if(bReturn)
 {
  sErrorMessage = validateName(submitterName);
  bReturn = (sErrorMessage=="");
  
  if(!bReturn)
  {
   alert(sErrorMessage);
   chgFocus(submitterName);
  } 
 }  
 
 
 
 //determines whether EITHER phone number or email address has been supplied
 //true is EITHER has been entered
 //false if NONE has been entered
 if(bReturn)
 {
 	if((isEmptyNoSpace(submitterEmail)) && (isEmptyNoSpace(submitterPhone)))
 		{
		bReturn = false;
		alert("In order for you to submit you event suggestion you will be required to "
		+ "enter either your phone number or email address");
		}
 }
	
//validate email field
if(bReturn) {
    var msg = validateEmail(submitterEmail);
	if (msg != "")
	{
	    alert (msg);
		chgFocus(submitterEmail);
		bReturn = false;
	}
} 
 
// Determine if text area Contact Phone field contains valid numbers
 if(bReturn)
 {
  	bEmpty = isEmptyNoSpace(submitterPhone);
  	
  	if(!bEmpty)	
	{

    		var phonemsg = isPhone(submitterPhone);
    		if (phonemsg != "") {
			alert(phonemsg);
			bReturn = false;
	   		chgFocus(submitterPhone);
		}
	}	 
 } 
 
 
 //alert ("bReturn = " + bReturn);
 return bReturn; 
   
} // End validateSuggestAnEvent

