// JavaScript Document
function checkSailID(funcType, lastDayCount)
{
		
	// Validate fields
	if (funcType == 1 && !checkInputs()) {
		return false;
	}
	
	var sailID = "";
	switch (funcType) {
		case 2:
			sailID = obj("searchSailID");
			break;
		
		default:
			sailID = obj("sailID");
			break;
	}
	if (sailID.value == "") {
		alert("Please select a valid sail date.");
		return false;
	}

	if (funcType == 2)
		return true;

	var partynumber = obj("partynumber");
	if (partynumber.value == "") {
		alert("Please fill in your party number including yourself.");
		return false;
	}

	if (!isNumeric(partynumber.value)) {
		alert("Please fill in a valid party number including yourself.");
		return false;
	}	

	// Ensure names of the partynumber is properly populated
	var partyNamesField = obj("partynamesfield");
	var partyNamesHidden = obj("partynameshidden");
	partyNamesHidden.value = str_replace("\n", "|", partyNamesField.value);
	partyNamesHidden.value = str_replace("\r", "|", partyNamesHidden.value);
	var partyNamesArray = split("|", partyNamesHidden.value);
	var partyCount = 0;
	var partyNamesString = "";
	for (i = 0; i < partyNamesArray.length; i++) {

		if (!empty(partyNamesArray[i])) {
			partyCount++;
			partyNamesString = partyNamesString + partyNamesArray[i] + "|";
		}
		else
			continue;
	}

	if (partyCount != trim(partynumber.value)) {
		
		alert("It appears you have not entered in " + trim(partynumber.value) + " guest names into the party guests field.  Please enter in the " + trim(partynumber.value) + " party guest names into the party guests field or change the party number amount before proceeding.");
		return false;
	}
	else {
		partyNamesHidden.value = partyNamesString;
	}

	// Check if we passed the last day count
	var dateString = sailID[sailID.selectedIndex].innerHTML;
	
	// Need to convert dates to year 2000
	dateString = dateString.substr(0,6) + "20" + dateString.substr(6);
	var sailDate = new Date(dateString);
	var currDate = new Date();
	
	var one_day=1000*60*60*24;
	var dateDiff = Math.ceil((sailDate.getTime() - currDate.getTime())/(one_day));
	if (dateDiff < lastDayCount) {
		alert("Sorry registration is closed for this sail date.");
		return false;
	}

	return true;
}

function checkInputs()
{
	var firstname = obj("firstname");
	if (firstname.value == "") {
		alert("Please fill in your first name.");
		return false;
	}

	var lastname = obj("lastname");
	if (lastname.value == "") {
		alert("Please fill in your last name.");
		return false;
	}

	return true;
}

function checkCruiseShip(ships)
{
	var shipList = obj(ships);
	if (shipList.value == "") {
		alert("Please select a ship from the list.");
		return false;
	}
	else
		window.location = 'entry_cl.cfm?ship=' + shipList.value;
	
	return true;
}

function updateShips()
{
	var cruiselineID = obj("cruiseline");
		
	// Get ships related to cruiseline
	xmlHttp = GetXmlHttpObject(popShipList);
	var params = "cl=" + escape(cruiselineID.value);
	xmlHttp.open("POST", "/ajax/ajx_getMMShips.cfm", true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);	
	return true;
}

function popShipList()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
	
		if (xmlHttp.status == 200) {

			document.body.style.cursor = 'wait';

			// Get xml document
			var shipsXML = xmlHttp.responseXML.documentElement;
			var ships = shipsXML.getElementsByTagName("ship");
						
			// Clear out departure city list and add ALL to the list
			var shipnames = obj("shipnames");
			var dates = obj("dates");
			clearSelectList(shipnames);
			clearSelectList(dates);
			
			// Add default to shipnames and sail dates
			addOption(shipnames, "Select a Ship", "");
			addOption(dates, "Select a Sail Date", "");

			// Loop through deals
			for (i = 0; i < ships.length; i++) {

				// Add ship to drop down list
				addOption(shipnames, URLDecode(ships[i].getAttribute('name')), URLDecode(ships[i].getAttribute('id')));
				
			}
			
			document.body.style.cursor = 'default';			
	
			// Cleanup
			delete xmlHttp;
			xmlHttp = null;		
			return true;
		}
		else {
			alert(xmlHttp.status);
		}
	}

	return false;

}

function updateSailDates()
{
	var shipID = obj("shipnames");
		
	// Get ships related to cruiseline
	xmlHttp = GetXmlHttpObject(popSailDates);
	var params = "id=" + escape(shipID.value);
	xmlHttp.open("POST", "/ajax/ajx_getSailDates.cfm", true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);	
	return true;
}

function popSailDates()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
	
		if (xmlHttp.status == 200) {

			document.body.style.cursor = 'wait';

			// Get xml document
			var datesXML = xmlHttp.responseXML.documentElement;
			var dateList = datesXML.getElementsByTagName("date");
						
			// Clear out sail dates
			var dates = obj("dates");
			clearSelectList(dates);
			
			// Add default to shipnames and sail dates
			addOption(dates, "Select a Sail Date", "");

			// Loop through deals
			for (i = 0; i < dateList.length; i++) {

				// Add ship to drop down list
				addOption(dates, URLDecode(dateList[i].getAttribute('name')), URLDecode(dateList[i].getAttribute('id')));
				
			}
			
			document.body.style.cursor = 'default';			
	
			// Cleanup
			delete xmlHttp;
			xmlHttp = null;		
			return true;
		}
		else {
			alert(xmlHttp.status);
		}
	}

	return false;

}

function checkDelete(email, membername)
{
	if (confirm("Are you sure you want to delete this record for member " + membername + " - " + email + "?"))
		return true;
	else 
		return false;
}

function populatePartyNames()
{
	var firstname = obj("firstname");
	var lastname = obj("lastname");
	var partyNamesField = obj("partynamesfield");
	partyNamesField.value = firstname.value + " " + lastname.value;
	
	return true;
}