

/** Forms **/


function validate()
	{
		
        var data = document.enqForm;
        var txtReturn = "";
        
        var MainInfoFlag = true;
		
        if (data.Name.value == "")
		{
			txtReturn = txtReturn + "\t - Please enter your Name. \n";  
		}
        
        if (data.Surname.value == "")
		{
			txtReturn = txtReturn + "\t - Please enter your Surname. \n";  
		}
          
        // Contact details start  
              
        if ((data.TelW.value == "") && (data.Mobile.value == "") && (data.TelH.value == ""))
		{
			txtReturn = txtReturn + "\t - Please enter your Work Tel No. OR Home Tel No. OR Mobile No. \n";  
		    MainInfoFlag = false;
        }       
        
        	if (data.Email.value == "")
		{
			txtReturn = txtReturn + "\t - Please enter your Email Address. \n";  
		} 

var EmailCheckFlag = true;
    
	if( (data.Email.value != "") )
	{
	if(data.Email.value.indexOf ("@", 0) == -1 || data.Email.value.indexOf ("." , 0) == -1)
	{
        txtReturn = txtReturn + "\t - Please enter a valid Email Address. \n";
        EmailCheckFlag = false;
	}
    }
    
            if (data.Country.value == "")
		{
			txtReturn = txtReturn + "\t - Please enter your Country. \n";  
		}
            
         //Contact Details end   
              
                
        
        
           //Period of stay                  
              
        var PeriodFlag1 = true;         
        if (data.Day1.value == "unselected" || data.Month1.value == "unselected" || data.Year1.value == "unselected")
		{
			txtReturn = txtReturn + "\t - Please complete your Arrival Date. \n";  
            PeriodFlag1 = false;  
		}  
        
        
        var PeriodFlag2 = true;  
        if (data.Day2.value == "unselected" || data.Month2.value == "unselected" || data.Year2.value == "unselected")
		{
			txtReturn = txtReturn + "\t - Please complete your Departure Date. \n";  
            PeriodFlag2 = false;  
		}  
        
        
        if (PeriodFlag1 == true && PeriodFlag2 == true)
		{
			
            Day1 = data.Day1.value
            Month1 = data.Month1.value
            Year1 = data.Year1.value
            myString1 = Day1 + " " + Month1 + " " + Year1;
            
            Day2 = data.Day2.value
            Month2 = data.Month2.value
            Year2 = data.Year2.value
            myString2 = Day2 + " " + Month2 + " " + Year2;
            
            Date1 = new Date(myString1);
            Date2 = new Date(myString2);
            
            DatePastFlag = true;
            diffYear = Date2.getFullYear() - Date1.getFullYear();
            diffMonth = Date2.getMonth() - Date1.getMonth();
            diffDay = Date2.getDate() - Date1.getDate();
            if (diffYear < 0)
            {
            DatePastFlag = false;
            }
            else if (diffYear == 0 && diffMonth < 0)
            {
            DatePastFlag = false;
            }
            else if (diffYear >= 0 && diffMonth == 0 && diffDay < 0)
            {
            DatePastFlag = false;
            }
            if (DatePastFlag == false)
            {txtReturn = txtReturn + "\t - Your Departure Date is before your Arrival Date, please correct. \n"; }
            }
  
        
        
        //Request
        
                if (data.Request.value == "unselected")
		{
			txtReturn = txtReturn + "\t - Please select the Accommodation you require. \n";  
		}  
         
		//START - Stop abuse with incorrect characters
       		/*
		var elementCounter;
        var elementString;
        
        for (elementCounter = 0; elementCounter < data.elements.length; elementCounter++)
        {
            elementString = elementString + data.elements[elementCounter].value
        }
        
        var isValid = true;  
        var validChars = "abcdefghijklmnopqrstuvwxyz1234567890-_@.,>< :/"
        var charIndex;
        
        for (charIndex = 0; charIndex < elementString.length; charIndex++)
        {
        if ( validChars.indexOf(elementString.charAt(charIndex).toLowerCase()) == -1)
        {
            isValid = false;
            txtReturn = txtReturn + "\t - Invalid Character \'" + elementString.charAt(charIndex) + "\' used, please only use Alphanumeric Characters!! \n";
        }
        }
        */
        //END - Stop abuse with incorrect characters
        
        //Focus or Submission
		
		if (txtReturn == "")
		{
			data.submit();
		}
		else
        {
        alert ("The information could not be submitted: \r\n\n" + txtReturn);
			
        if (data.Name.value == "" || data.Name.value == "Your name!")
		{
			data.Name.focus(); 
            data.Name.select(); 
            return;
		}

        if (data.Surname.value == "" || data.Surname.value == "Your name!")
		{
			data.Surname.focus(); 
            data.Surname.select(); 
            return;
		}
        else if (data.Email.value == "" || EmailCheckFlag == false)
		{
			data.Email.focus(); 
            data.Email.select(); 
            return;
		}
        else if (data.TelW.value == "" && MainInfoFlag == false)
		{
			data.TelW.focus(); 
            data.TelW.select(); 
            return;
		}
        else if (data.TelH.value == "" && MainInfoFlag == false)
		{
			data.TelH.focus(); 
            data.TelH.select(); 
            return;
		}
        else if (data.Mobile.value == "" && MainInfoFlag == false)
		{
			data.Mobile.focus(); 
            data.Mobile.select();
            return; 
		}
        else if (data.Country.value == "")
		{
			data.Country.focus(); 
            data.Country.select();
            return; 
		}

        else if (PeriodFlag1 == false)
		{
			data.Day1.focus(); 
            return;
		}
        
        else if (PeriodFlag2 == false)
		{
			data.Day2.focus(); 
            return;
		}
        
        else if (DatePastFlag == false)
        {
			data.Day2.focus(); 
            return;
		}
          
        else if (data.Request.value == "unselected")
		{
			data.Request.focus(); 
            return;
		}
        
}
		}
    
