// 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;
}

function findPartyInfo()
{
	// Get variables to check if MM entry exists
	var memberName = $('input:hidden[name=membername]').val();
	var shipID = $('input:hidden[name=Ship]').val();
	var sailID = $('select[name=sailID]').val();
	
	// Setup data to send to ajax call
	var dataToSend = "memberName=" + escape(memberName) + "&shipID=" + escape(shipID) + "&sailID=" + escape(sailID);

	// Make ajax call with info
	$.ajax(
	{
		url: '/ajax/ajx_getMMPartyInfo.php',
  		dataType: 'json',
  		data: dataToSend,
  		success: function(data) 
		{
		}
	});
	
	return true;
}

function editPartyInfo(partyID)
{
	// Loading
	$("#loadingParty").css("display", "block");
	
	// Get party ID info
	$("#partyid").val(partyID);
	var partyInfo;
	
	var dataToSend = "partyID=" + escape(partyID);
	$.ajax(
	{
		url: '/ajax/ajx_getMMPartyRecord.php',
  		dataType: 'text',
  		data: dataToSend,
		async: false,
  		success: function(data) 
		{
			partyInfo = eval("(" + data + ")");			
		}
	});

	// Set title
	$("#partyEditBox").dialog("option", "title", partyInfo.cruiseLineName + " Meet & Mingle Party");
	
	// Clear out ship list and get MM ships for this cruiseline info
	$('#shipList')[0].options.length = 0;
	var dataToSend = "cID=" + escape(partyInfo.cruiseLineID);
	$.ajax(
	{
		url: '/ajax/ajx_getMMShips.php',
  		dataType: 'text',
  		data: dataToSend,
		async: false,
  		success: function(data) 
		{
			shipArray = eval("(" + data + ")");			
		}
	});	
	
	// Clear out ship list box and populate
	$.each(shipArray,
	function(i, data) 
	{
		// Append ship to select list
		$("#shipList").append('<option value="' + data.shipID + '">' + data.shipName + '</option>');
	});
	$("#shipList").val(partyInfo.shipID);
	
	// Clear out date list and repopulate with current ship selection
	$('#sailDate')[0].options.length = 0;
	var dataToSend = "shipID=" + escape(partyInfo.shipID);
	$.ajax(
	{
		url: '/ajax/ajx_getMMShipDates.php',
  		dataType: 'text',
  		data: dataToSend,
		async: false,
  		success: function(data) 
		{
			dateArray = eval("(" + data + ")");			
		}
	});	

	// Clear out saildate repopulate
	$.each(dateArray,
	function(i, data) 
	{
		// Append ship to select list
		$("#sailDate").append('<option value="' + data.sailID + '">' + data.sailDate + '</option>');
	});
	$("#sailDate").val(partyInfo.sailID);
	
	// Update the first/lastname
	$("#firstname").val(partyInfo.firstName);
	$("#lastname").val(partyInfo.lastName);
	
		
	// Update the party number and list
	$("#partynumber").val(partyInfo.partyNumber);
	
	var partyNameList = "";
	$.each(partyInfo.partyNames,
	function(i, data)
	{
		partyNameList = partyNameList + data + "\n";
	});
	$("#partynamesfield").val(partyNameList);
	
	// Update cursor
	$("#loadingParty").css("display", "none");

	// Open up the edit box for this party
	$("#partyEditBox").dialog('open');
	
	return true;
}

function updateShipDates()
{
	// Update cursor
	$("body").css("cursor", "wait");
	
	// Clear out date list and repopulate with current ship selection
	$('#sailDate')[0].options.length = 0;
	var dataToSend = "shipID=" + escape($("#shipList").val());
	$.ajax(
	{
		url: '/ajax/ajx_getMMShipDates.php',
  		dataType: 'text',
  		data: dataToSend,
		async: false,
  		success: function(data) 
		{
			dateArray = eval("(" + data + ")");			
		}
	});	

	// Clear out saildate repopulate
	$.each(dateArray,
	function(i, data) 
	{
		// Append ship to select list
		$("#sailDate").append('<option value="' + data.sailID + '">' + data.sailDate + '</option>');
	});
	
	// Update cursor
	$("body").css("cursor", "auto");
	
	return true;
}

function checkPartyUpdate()
{
	// Check out first/last name
	if(!checkInputs())
		return false;
		
	if ($("#partynumber").val() == "") {
		alert("Please fill in your party number including yourself.");
		return false;
	}

	if (!isNumeric($("#partynumber").val())) {
		alert("Please fill in a valid party number including yourself.");
		return false;
	}			
	
	// Ensure names of the partynumber is properly populated
	$("#partynameshidden").val(str_replace("\n", "|", $("#partynamesfield").val()));
	$("#partynameshidden").val(str_replace("\r", "|", $("#partynameshidden").val()));
	var partyNamesArray = split("|", $("#partynameshidden").val());
	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").val())) {
		
		alert("It appears you have not entered in " + trim($("#partynumber").val()) + " guest names into the party guests field.  Please enter in the " + trim($("#partynumber").val()) + " party guest names into the party guests field or change the party number amount before proceeding.");
		return false;
	}
	else {
		$("#partynameshidden").val(partyNamesString);
	}

	return true;
}
