/*
 * Validation call to be made from the booking form.
 * Calls two helper validation methods.
 */
function validateBookingForm()
{
    requiredFields = validateBookingRequiredFields();

    if(requiredFields==true)
    {
    	return validateBookingConfirmation();
    }
    else
    {
        return false;
    }
}


/*
 * Validation call to be made from the questionnaire.
 */
function validateQuestionnaire()
{
    if(document.questionnaireForm.firstName.value.length==0)
        {
            alert( "Please enter your first name." );
    	    document.questionnaireForm.firstName.focus();
            return false;
        }    
        
        if(document.questionnaireForm.lastName.value.length==0)
        {
            alert( "Please enter your last name." );
    	    document.questionnaireForm.lastName.focus();
            return false;   
        }
        
        if(document.questionnaireForm.addressLine1.value.length==0)
        {
            alert( "Please enter your address." );
    	    document.questionnaireForm.addressLine1.focus();
            return false;    
        }
        
        if(document.questionnaireForm.city.value.length==0)
        {
            alert( "Please enter your city." );
    	    document.questionnaireForm.city.focus();
            return false;   
        }
        
        if(document.questionnaireForm.state.value.length==0)
        {
            alert( "Please enter your state." );
    	    document.questionnaireForm.state.focus();
            return false;   
        }
        
        if(document.questionnaireForm.postalCode.value.length==0)
        {
            alert( "Please enter your postal code." );
    	    document.questionnaireForm.postalCode.focus();
            return false;    
        }
        
        if(document.questionnaireForm.country.value=="select")
	{
	    alert( "Please select a country." );
	    document.questionnaireForm.country.focus();
	    return false;    
    	}
        
        if(document.questionnaireForm.email.value.length==0)
        {
            alert( "Please enter your email." );
    	    document.questionnaireForm.email.focus();
            return false;   
        }
        
        if(document.questionnaireForm.emailReenter.value.length==0)
	{
	    alert( "Please enter your email." );
	    document.questionnaireForm.emailReenter.focus();
	    return false;   
        }
        
        if(document.questionnaireForm.emailReenter.value!=document.questionnaireForm.email.value)
	{
	    alert( "Re-entered email does not match email." );
	    document.questionnaireForm.emailReenter.focus();
	    return false;    
    	}
        
        if(document.questionnaireForm.dayPhone.value.length==0)
        {
            alert( "Please enter your day phone details." );
    	    document.questionnaireForm.dayPhone.focus();
            return false;    
        }    
        
    return true;
}


/*
 * Validates required fields in the booking form.
 */
function validateBookingRequiredFields()
{
    if(document.bookingForm.tour.value.length==0)
    {
    	alert( "Please select your tour." );
    	document.bookingForm.tour.focus();
        return false;
    }  
    
    if(document.bookingForm.title.value.length==0)
    {
        alert( "Please enter your title." );
	document.bookingForm.title.focus();
        return false;
    }    
    
    if(document.bookingForm.fullName.value.length==0)
    {
        alert( "Please enter your full name." );
	document.bookingForm.fullName.focus();
        return false;   
    }
    
    if(document.bookingForm.address1Line1.value.length==0)
    {
        alert( "Please enter your address." );
	document.bookingForm.address1Line1.focus();
        return false;    
    }
    
    if(document.bookingForm.city1.value.length==0)
    {
        alert( "Please enter your city." );
	document.bookingForm.city1.focus();
        return false;   
    }
    
    if(document.bookingForm.state1.value.length==0)
    {
        alert( "Please enter your state." );
	document.bookingForm.state1.focus();
        return false;   
    }
    
    if(document.bookingForm.postalCode1.value.length==0)
    {
        alert( "Please enter your postal code." );
	document.bookingForm.postalCode1.focus();
        return false;    
    }
    
    if(document.bookingForm.country1.value=="select")
    {
        alert( "Please select a country." );
    	document.bookingForm.country1.focus();
        return false;    
    }
    
    if(document.bookingForm.homeEmail1.value.length==0)
    {
        alert( "Please enter your home email." );
	document.bookingForm.homeEmail1.focus();
        return false;   
    }
    
    if(document.bookingForm.homeEmailReenter1.value.length==0)
    {
        alert( "Please enter your home email." );
	document.bookingForm.homeEmailReenter1.focus();
        return false;    
    }
    
    if(document.bookingForm.homeEmailReenter1.value!=document.bookingForm.homeEmail1.value)
    {
        alert( "Re-entered home email does not match home email." );
    	document.bookingForm.homeEmailReenter1.focus();
        return false;    
    }
    
    if(document.bookingForm.homePhone1.value.length==0)
    {
        alert( "Please enter your home phone details." );
	document.bookingForm.homePhone1.focus();
        return false;    
    }    
    
    return true;   
}


/*
 * Checks that the disclaimer and confirmation box 
 * have been checked and filled in.
 */
function validateBookingConfirmation() 
{
   if ((document.bookingForm.check1.checked == false) ||
       (document.bookingForm.check2.checked == false) ||
       (document.bookingForm.acknowledge.value.length==0))
   {
       alert("Please read and check the disclaimers and initial the acknowledgment box.");
       return false;
   }
   
   return true;
}