var specOffSearchForm = new WebForm();

var searchType;
(f.searchType[0].checked) ? 
	searchType_onClick(f.searchType[0].value,'regionContainer','cityStateCountryContainer') :
	searchType_onClick(f.searchType[1].value,'cityStateCountryContainer','regionContainer');

function searchType_onClick(toSearchType, hideDiv, showDiv) {
	hideShowDiv(showDiv,'show');
	hideShowDiv(hideDiv,'hide');
	searchType = toSearchType;
}

function specOffSearchForm_Reset () {
	for (i = 0; i < f.regions.length; i++) {
		f.regions[i].checked = false;
	}
	f.city.value = "";
	zeroOutState(f.stateProvince);
	zeroOutCountry(f.country);
	f.ciDate.value = dateFormatString;
	f.coDate.value = dateFormatString;
	f.brand.selectedIndex = 0;
	for (i = 0; i < f.amenities.length; i++) {
		f.amenities[i].checked = false;
	}
}

function specOffSearchForm_onSubmit(frm) {
	city_onBlur(frm.city,frm.stateProvince,frm.country);
	searchType = (frm.searchType[0].checked) ? "city" : "region";
	specOffSearchForm.resetErrors();

	if (searchType == "city") {
		for (i = 0; i < frm.regions.length; i++) {
			frm.regions[i].checked = false;
		}
	} else if (searchType == "region") {
		frm.city.value = "";
		zeroOutState(frm.stateProvince);
		zeroOutCountry(frm.country);
	}

	checkDates(frm);

	if (specOffSearchForm.hasErrors()) {
		specOffSearchForm.showErrors();
		return false;
	} else {
		return true;
	}
}

function checkDates(frm) {
	if ((frm.ciDate.value == dateFormatString) && (frm.coDate.value == dateFormatString)) {
		return "datesNotSet";
	}

	var checkIn = new validDate(frm.ciDate);	
	var checkOut = new validDate(frm.coDate);	
	
	if (!(checkIn.valid) && (!checkOut.valid) ) {
		specOffSearchForm.addError("ciAnddepartureDatesInvalidError", "checkInFormLabel","checkOutFormLabel")
	} else if (!checkIn.valid) {
		specOffSearchForm.addError("arrivalDateInvalidError","checkInFormLabel")
	} else if (!checkOut.valid) {
		specOffSearchForm.addError("departureDateInvalidError","checkOutFormLabel")
	} else 	if ( (checkIn.valid) & (checkOut.valid)  ) {
		var datesDelta = checkIn.diffDate(checkOut.d);
		var nowDelta = checkIn.diffDate(new Date());
		if (nowDelta > 0) {
			specOffSearchForm.addError("checkInEarlierThanTodayError","checkInFormLabel");
		} else if (nowDelta < -561) {
			specOffSearchForm.addError("bookToFarInFutureError","checkInFormLabel");
			specOffSearchForm.addError()
		} else if (datesDelta < 0) {
			specOffSearchForm.addError("departureBeforeArrivalError","checkOutFormLabel");
		} else if (datesDelta > 90) {
			specOffSearchForm.addError("maximumLengthStayExceededError", "checkInFormLabel","checkOutFormLabel");
		} else if (datesDelta < 1) {
			specOffSearchForm.addError("arrivalEqualsDepartureError", "checkInFormLabel","checkOutFormLabel");
		} else { }
	}
}

