
	function Validate()
		{
			var valMsg = "";
			var triptype = "";
			var valError = 0;
			
			if (quota.Date_to_travel.value == "")
				{
				valError=1;
				valMsg += "Travel Date is required\n";
				}
			
			if (quota.Time_of_the_day.value == "")
				{
				valError=1;
				valMsg += "Time of the day is required\n";
				}
			if (quota.Charter_from.value == "")
				{
				valError=1;
				valMsg += "Charter From is required\n";
				}
			if (quota.Charter_to.value == "")
				{
				valError=1;
				valMsg += "Charter To is required\n";
				}
			
			for (i = 0; i<2; i++)
				{
				if (document.quota.Oneway_or_Return[i].checked)
					{
					triptype = document.quota.Oneway_or_Return[i].value;
					}
				}
			
			if (triptype == "")
				{
				valError=1;
				valMsg += "Oneway or Return is required\n";
				}
			if (quota.Number_of_passengers_Type_of_Cargo.value == "")
				{
				valError=1;
				valMsg += "Number of passengers/ Type of Cargo is required\n";
				}
			if (quota.Contact_Name.value == "")
				{
				valError=1;
				valMsg += "Full Name is required\n";
				}
			if (quota.Phone_number.value == "")
				{
				valError=1;
				valMsg += "Contact number is required\n";
				}
			if (quota.Email.value != "")
				{
			        if (noAtSign(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value + "\" does not contain an '@' character\n";
			        } else if (nothingBeforeAt(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value;
			            message += "\" must contain at least one character before the '@' character\n";
			        } else if (noLeftBracket(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value;
					    valMsg += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['\n";
			        } else if (noRightBracket(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value;
					    valMsg += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'\n";
			        } else if (noValidPeriod(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value + "\" must contain a period ('.') character\n";
			        } else if (noValidSuffix(quota.Email.value)) {
					    valError=1;
					    valMsg += "Error! The email address \"" + quota.Email.value;
					    valMsg += "\" must contain a two, three or four character suffix\n";
			        }
				}
			
			if (valError == 1)
				{
				alert(valMsg);
				}
				else
				{
				
				// Process request here
			
				var	querystring = "charter_quote.aspx?";
				
				querystring += "Date_to_travel=" + quota.Date_to_travel.value;
				querystring += "&Time_of_the_day=" + quota.Time_of_the_day.value;
				querystring += "&Charter_from=" + quota.Charter_from.value;
				querystring += "&Charter_to="  + quota.Charter_to.value;
				querystring += "&Oneway_or_Return=" + triptype;
				querystring += "&Number_of_passengers_Type_of_Cargo=" + quota.Number_of_passengers_Type_of_Cargo.value;
				querystring += "&Requirements=" + quota.Requirements.value;
				querystring += "&Contact_Name=" + quota.Contact_Name.value;
				querystring += "&Phone_number=" + quota.Phone_number.value;
				querystring += "&Email=" + quota.Email.value;
				querystring += "&Company_Name=" + quota.Company_Name.value;
				querystring += "&Fax_number=" + quota.Fax_number.value;
				querystring += "&Comments=" + quota.Comments.value;
						
	//				alert (querystring);
				    window.location = querystring; 
				}
		}
		
	
	//-------------------------------------------------------------------------
		
	function stringEmpty (formField) {
	    // CHECK THAT THE STRING IS NOT EMPTY
	    if ( formField.length < 1 ) {
	        return ( true );
	    } else {
	        return ( false );
	    }
	}
	
	function noAtSign (formField) {
	    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
	    if (formField.indexOf ('@', 0) == -1) {
	        return ( true )
	    } else {
	        return ( false );
	    }
	}
	
	function nothingBeforeAt (formField) {
	    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
	    if ( formField.indexOf ( '@', 0 ) < 1 ) {
	        return ( true )
	    } else {
	        return ( false );
	    }
	}
	
	function noLeftBracket (formField) {
	    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
	    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
	        return ( true )
	    } else {
	        return ( false );
	    }
	}
	
	function noRightBracket (formField) {
	    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
	    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
	        return ( true );
	    } else {
	        return ( false );
	    }
	}
	
	function noValidPeriod (formField) {
	    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
	    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']')
	        return ( false );
	
	    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
	    if (formField.indexOf ( '.', 0 ) == -1)
	        return ( true );
	
	    return ( false );
	}
	
	function noValidSuffix(formField) {
	    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
	    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
	        return ( false );
	    }
	
	    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
	    var len = formField.length;
	    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
	    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
	        return ( true );
	    } else {
	        return ( false );
	    }
	}
