// Code obtained from http://WillMaster.com/
//
// Each required form field can be checked with JavaScript. Here are 
//    the function names for the different kinds of checks:
//
//       1. WithoutContent() -- check if the text, textarea, password, 
//              or file fields has no content.
//       2. NoneWithContent() -- check if none of the set of text, 
//              textarea, password, or file fields have content. 
//              (Set: More than one with the same field name.)
//
//       3. NoneWithCheck() -- check if none of the set of radio buttons 
//              or checkboxes are checked. (Set: More than one with the 
//              same field name.)
//       4. WithoutCheck() -- check if the single radio button or checkbox 
//              is unchecked.
//
//       5. WithoutSelectionValue() -- check if selected drop-down list or 
//              select box entries have no value.
//
//
// The format for using the above functions is
//             if(       WithoutContent([FORMFIELDVALUE])) [ERRORMESSAGE]
//             if(      NoneWithContent([FORMFIELD])     ) [ERRORMESSAGE]
//             if(        NoneWithCheck([FORMFIELD])     ) [ERRORMESSAGE]
//             if(         WithoutCheck([FORMFIELD])     ) [ERRORMESSAGE]
//             if(WithoutSelectionValue([FORMFIELD])     ) [ERRORMESSAGE]
//
// The if(...) part and the error message part may be on separate lines, like
//             if(WithoutContent([FORMFIELDVALUE]))
//                [ERRORMESSAGE]
//             if(NoneWithContent([FORMFIELD]))
//                [ERRORMESSAGE]
//             if(NoneWithCheck([FORMFIELD]))
//                [ERRORMESSAGE]
//             if(WithoutCheck([FORMFIELD]))
//                [ERRORMESSAGE]
//             if(WithoutSelectionValue([FORMFIELD]))
//                [ERRORMESSAGE]
//
//
//      FORMFIELD -- The format for specifying a "form field" is 
//                         document.[FORMNAME].[FIELDNAME]
// FORMFIELDVALUE -- The format for specifying a "form field value" is 
//                         document.[FORMNAME].[FIELDNAME].value
//   ERRORMESSAGE -- The format for specifying an "error message" is
//                         { errormessage += "\n\n[MESSAGE]"; }
//                   If the message itself contains quotation marks, 
//                      they must be preceded with a back slash. 
//                      Example: \"
//
//
//      FORMNAME -- The name assigned to the form in the <FORM... tag. 
//     FIELDNAME -- The field name being checked.
// 
//
// For use with this JavaScript, the only non-alphanumeric character a 
//    fieldname may have is the underscore. Replace any hyphens, colons, 
//    spaces, or other non-alphanumeric characters in your field names 
//    with an underscore character.
//
//
// Put field checks into the function CheckRequiredFields(), in the order 
//    you want the fields checked.
//


function CheckRequiredFields() {
	
	var errormessage = new String();
	var numberofpeople = document.getElementById('GroupSizeSelected').value;
	var triptype = document.getElementById('TripTypeIn').value;
	var countryfield = document.getElementById('CountryIn').value;
	
	// check ages

for (i=0;i<numberofpeople;i++) {
	fieldname = 'AgesIn['+i+']';
	//alert(fieldname);
	fieldvalue = document.getElementById(fieldname).value;
	//alert(fieldvalue);
	if(WithoutContent(fieldvalue))
	{ 
			if (errormessage == "") {
			errormessage = "\nYou have left 1 or more ages fields empty."; 
			}
	}else if(fieldvalue > 99){
		errormessage = "\nAge fields must be less than 100."; 
	}
}

// check country
	//alert(triptype);
if(triptype == 1) {
	if(countryfield == '')
	  { errormessage += "\nPlease select a country from the dropdown list."; }
}


// check dates
var TodayDate = new Date();
var StartDate = new Date();
if(triptype == 3){
	var StartDateField = document.getElementById('StartDateAnnual').value;
}else{
	var StartDateField = document.getElementById('StartDateSingletrip').value;
}
var StartDateSplit = StartDateField.split('/');
StartDate.setFullYear(StartDateSplit[2],(StartDateSplit[1]-1),StartDateSplit[0]);

//Check Start Date is not in the past
if(StartDate < TodayDate){
	errormessage += "\nStart Date is in the past.";
}

//if not an annual check end date is not in the past.
if(triptype != 3){
	var EndDateField = document.getElementById('EndDateSingletrip').value;
	var EndDate = new Date();	
	var EndDateSplit = EndDateField.split('/');
	EndDate.setFullYear(EndDateSplit[2],(EndDateSplit[1]-1),EndDateSplit[0]);
	
	if(EndDate < StartDate){
		errormessage += "\nEnd Date is before the Start Date.";
	}
}

// Put field checks above this point.
if(errormessage.length > 2) {
	alert(errormessage + '\n\nPlease check the form and try again.');
	return false;
	}
return true;
} // end of function CheckRequiredFields()


function WithoutContent(ss) {
if(ss.length > 0) { return false; }
return true;
}

function NoneWithContent(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].value.length > 0) { return false; }
	}
return true;
}

function NoneWithCheck(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].checked) { return false; }
	}
return true;
}

function WithoutCheck(ss) {
if(ss.checked) { return false; }
return true;
}

function WithoutSelectionValue(ss) {
for(var i = 0; i < ss.length; i++) {
	if(ss[i].selected) {
		if(ss[i].value.length) { return false; }
		}
	}
return true;
}
