$(document).ready(function() { $('body').append('
'); // preLoadVideo(1); // Set up nav $('#search_selected > li > div:first-child').click(function(e) { searchNav($(this).parent(), e); }).hover( function() { if (!isMobile) { searchDrawer('show', $(this)); } }, function() { var t = $(this); var li = t.parent(); // Set a flag for the slight delay in the category drawer li.data('timer', setTimeout(function() { // Clear the delay flag li.data('timer', null); searchDrawer('hide', t); }, 10)); } ); // Set up for deleting a "single" option in a search_selected category $(document).on('click', '#search_selected > li > div:first-child > div > span', function() { var t = $(this); // If this is not mobile and not a cruise type, delete the single option. // If it is either mobile or cruise type, then do nothing (essentially) if (!isMobile && t.closest('li').not('[data-id="cruiseType"]').length > 0 && t.closest('li').not('[data-id="destinationsCruiseTour"]').length > 0) { searchOption(t); } else { t.parent() .parent() .trigger('click'); } }); // Set up entering and exiting the drawer $(document).on('mouseenter mouseleave', '#search_selected > li > div:first-child + div > div', function(e) { if (e.type == 'mouseenter') { searchDrawer('show', $(this).parent().prev()); } else if (e.type == 'mouseleave') { var t = $(this); var li = t.parent().parent(); // Set a flag for the slight delay in the category drawer li.data('timer', setTimeout(function() { // Clear the delay flag li.data('timer', null); searchDrawer('hide', t.parent().prev()); }, 10)); } }); // Set up deleting an item from the drawer if (!isMobile) { $(document).on('click', '#search_selected > li > div:first-child + div > div li', function() { var t = $(this); // Set the 'clicked' flag, so that the drawer will not be "opened" again, after the li (option) is deleted. // This is necessary, as when the li is deleted, the mouseenter event is triggered again (for some reason), and thus the drawer will try to be opened, even though it's already open. // This flag prevents the drawer from being opened again t.parent().data('clicked', true) searchOption(t); }); } // Set up options for specific ids var targetIds = ['destinations', 'destinationsRiverCruise', 'destinationsCruiseTour', 'departurePorts', 'departurePortsRiverCruise', 'departurePortsCruiseTour', 'cruiseLines', 'cruiseLinesRiverCruise', 'cruiseLinesCruiseTour', 'portsOfCall', 'portsOfCallRiverCruise', 'portsOfCallCruiseTour', 'countries', 'cities', 'waterways']; $(document).on('click', '#search_options .cell:not(.off) > div', function(e) { var needle = $('#pop_up > div:nth-of-type(2)').prop('id'); if ($.inArray(needle, targetIds) != -1) { searchOption($(this).parent()); } }); // Set up options for departure date $(document).on('click', '#departureDate #search_options .cell:not(.off) > div', function(e) { searchOptionDepartureDate($(this).parent(), e); }); // Set up options for duration $(document).on('click', '#search_options[data-categoryid="duration"] .cell:not(.off) > div, #search_options[data-categoryid="durationRiverCruise"] .cell:not(.off) > div, #search_options[data-categoryid="durationCruiseTour"] .cell:not(.off) > div', function() { searchOptionDuration($(this).parent()); }); // Set up options for cruise type $(document).on('click', '#cruiseType #search_options .cell:not(.off) > div', function() { searchOptionCruiseType($(this).parent()); }); // Set up hover "range" for departure dates $(document).on('mouseenter mouseleave', '#departureDate #search_options .cell:not(.off) > div', function(e) { if (e.type == 'mouseenter') { searchOptionDepartureDateHover('show', $(this).parent()); } else if (e.type == 'mouseleave') { searchOptionDepartureDateHover('hide', $(this).parent()); } }); // Set up options for ships $(document).on('click', '#ships #search_options .cell:not(.off) > div', function() { searchOptionShips($(this).parent()); }); // Set up "currently searching" $(document).on('click', '#options_selected > div > div > span, #pop_up_selected > div > div > span', function(e) { var id = $('#pop_up > div:nth-of-type(2)').prop('id'); if ($(this).hasClass('view')) { viewSelected('show'); } else if (id == 'ships') { searchOptionShips($(this)); } else if (id == 'cruiseType' || id == 'destinationsCruiseTour') { return; } else { searchOption($(this)); } }); // Set up options nav $(document).on('click', '#options_nav > div > a', function() { var id = $(this).data('id'); searchNav($('#search_selected > li[data-id=' + id + ']')); }); $(document).on('click', 'a.search', function() { searchCruises(); }); $(document).on('click', '#sub_nav a', function() { navSub($(this)); }); }); $(window).resize(function() { checkPopupSize(); }); var cruiseTypeSelected = 1; // Default to ocean cruise function searchDrawer(option, t) { var li = t.parent(); if (option == 'show') { // Check if a click/delete inside the drawer was just done. // If so, this prevents the drawer from reopening again, even though it's already open. // This also resets (deletes) the 'clicked' flag if (t.next().find('ul').data('clicked')) { t.next().find('ul').removeData('clicked'); return; } // If we are going from the category div to the drawer, clear the delay and don't try to open the drawer, as it's already open if (li.data('timer') && li.hasClass('drawer')) { // Clear the delay, as the cursor is now hovering over the drawer clearTimeout(li.data('timer')); li.data('timer', null); } else if (li.data('ids') && li.data('ids').length > 1) { // Clear any delay that might be sill around, as we are now staring fresh clearTimeout(li.data('timer')); li.data('timer', null); var str = ''; // Get the names of the selected options li.data('currentText').forEach(function(e) { str += '
  • ' + e.name + '
  • '; }); var tHeight = t.outerHeight(); li.addClass('drawer'); t.after('
      ' + str + '
    '); setTimeout(function() { t.next() .addClass('show'); }, 100); } } else { searchDrawerTimer = null; t.next() .removeClass('show'); setTimeout(function() { li.removeClass('drawer'); t.next() .remove(); }, 250); } } function searchNav(t, e) { // Check if this is an event bubble from clicking the delete "single" option in a search_selected category. // If it is, don't show the option popup if (typeof e != 'undefined' && $(e.target).is('span')) { return; } var id = t.data('id'); var category, options, prevNav, nextNav, prevId, nextId; var multipleText = shipsAll = subNav = ''; switch(id) { case 'cruiseType': category = 'Cruise Type'; options = buildCruiseTypeOptions(t); prevNav = false; prevId = false; nextNav = 'Destinations'; nextId = t.next() .data('id'); break; case 'destinations': case 'destinationsRiverCruise': case 'destinationsCruiseTour': category = 'Destinations'; options = buildOptions(t, id); prevNav = 'CruiseType'; prevId = 'cruiseType'; nextNav = 'DepartureDate'; nextId = 'departureDate'; multipleText = 'You may select multiple Destinations.'; break; case 'departureDate': category = 'Departure Date'; options = buildDateOptions(t); prevNav = 'Destination'; prevId = t.prev() .data('id'); nextNav = 'Duration'; nextId = t.next() .data('id'); multipleText = 'Select a start and end date or single month.'; break; case 'duration': case 'durationRiverCruise': case 'durationCruiseTour': category = 'Duration'; options = buildDurationOptions(t, id); prevNav = 'DepartureDate'; prevId = 'departureDate'; // If river cruise if (cruiseType['_' + cruiseTypeSelected].type == 'riverCruise') { nextNav = 'CruiseLines'; nextId = t.next() .next() .data('id'); } else { nextNav = 'DeparturePorts'; nextId = t.next() .data('id'); } break; case 'departurePorts': case 'departurePortsRiverCruise': case 'departurePortsCruiseTour': category = 'Departure Ports'; options = buildDepartuePortsOptions(t, id); prevNav = 'Duration'; prevId = t.prev() .data('id'); nextNav = 'CruiseLines'; nextId = t.next() .data('id'); multipleText = 'You may select multiple Departure Ports.'; break; case 'cruiseLines': case 'cruiseLinesRiverCruise': case 'cruiseLinesCruiseTour': category = 'Cruise Lines'; options = buildOptions(t, id); if (cruiseType['_' + cruiseTypeSelected].type == 'riverCruise') { prevNav = 'Duration'; prevId = t.prev() .prev() .data('id'); } else { prevNav = 'DeparturePorts'; prevId = t.prev() .data('id'); } nextNav = 'Ships'; nextId = 'ships'; multipleText = 'You may select multiple Cruise Lines.'; break; case 'ships': category = 'Ships'; options = buildShipsOptions(t); prevNav = 'CruiseLines'; prevId = t.prev() .data('id'); if (cruiseType['_' + cruiseTypeSelected].type == 'riverCruise') { nextNav = 'Countries'; nextId = t.next() .next() .data('id'); } else { nextNav = 'Portsof Call'; nextId = t.next() .data('id'); } if (options.all === false) { multipleText = 'You may select multiple Ships.'; } else { shipsAll = ' data-all="true"'; } break; case 'portsOfCall': case 'portsOfCallRiverCruise': case 'portsOfCallCruiseTour': category = 'Ports of Call'; options = buildPortsOfCallOptions(t, id); prevNav = 'Ships'; prevId = 'ships'; nextNav = false; nextId = false; multipleText = 'You may select multiple Ports of Call.'; if (id == 'portsOfCall') { var a = []; Object.keys(geoOrder).forEach(function(key, index) { var geoOrderName = geoOrder[key] + '_' + key; a.push(geoOrderName); }); a.sort(); var str = ''; a.forEach(function(value) { str += '
  • ' + value.split('_')[1] + '
  • '; }); subNav = ''; } break; case 'countries': category = 'Countries'; options = buildOptions(t, id); prevNav = 'Ships'; prevId = 'ships'; nextNav = 'Cities'; nextId = 'cities'; multipleText = 'You may select multiple Countries.'; break; case 'cities': category = 'Cities'; options = buildOptions(t, id); prevNav = 'Countries'; prevId = 'countries'; nextNav = 'Waterways'; nextId = 'waterways'; multipleText = 'You may select multiple Cities.'; break; case 'waterways': category = 'Waterways'; options = buildOptions(t, id); prevNav = 'Cities'; prevId = 'cities'; nextNav = false; nextId = false; multipleText = 'You may select multiple Waterways.'; break; } // Build options nav prevNav = (prevNav) ? '' + prevNav + '' : ''; nextNav = (nextNav) ? '' + nextNav + '' : ''; // Build options "currently searching" var selectedLinks = 'All'; // If there is at least one previously selected, build the "remove" links if (options.selectedLinks.length > 0) { var selectedLinks = ''; options.selectedLinks.forEach(function(e) { selectedLinks += '' + e.name + ''; }); // If this is for ports of call, add the "view selected" span if (id != 'cruiseType' && id != 'departureDate' && id != 'duration' && id != 'durationCruiseTour' && id != 'durationRiverCruise') { selectedLinks = 'View Selected' + options.selectedLinks.length + '' + selectedLinks; } } // If there is selectedText is returned, show that in place of selctedLinks. // This will happen if there are no selected links (multiple options), but rather a single option - usually some sort of range if (options.selectedText) { selectedLinks = options.selectedText; } str = '
    ' + prevNav + '
    ' + category + '
    ' + nextNav + '

    Currently Searching:

    ' + selectedLinks + '
    ' + multipleText + '
    ' + subNav + '
    ' + options.str + '
    '; popUp('show', str); var pu = $('#pop_up'); // If there is a sub menu, show it if (subNav.length > 0) { var timeoutLength = (pu.hasClass('show')) ? 0 : 500; // Wait for the overlay to show (500 ms), then show sub_nav setTimeout(function() { $('#sub_nav').addClass('show'); // If the sub_nav is at the top, wait for (maybe) the menu to slide in place, then do a short a scroll animation if (pu.hasClass('top')) { setTimeout(function() { subNavScrollAnimate() }, 350); } }, timeoutLength); } } function subNavScrollAnimate() { var snd = $('#sub_nav > div'); var start = 0; var end = 50; snd.animate({scrollLeft:end}, 350, function() { snd.animate({scrollLeft:start}, 350, function() { snd.animate({scrollLeft:end}, 350, function() { snd.animate({scrollLeft:start}, 350, function() { }); }); }); }); } // Build the options for the category function buildOptions(t, id) { var idsArray = (t.data('ids')) ? t.data('ids') : []; var str = ''; var selectedLinks = []; // If building the countries options, set the array that includes all the viable countries, based on what destinations are selected if (id == 'countries') { var destinationsSelected = []; var destinationsSelectedIds = $('#search_selected li[data-id="destinationsRiverCruise"]').data('ids'); // If there were destinations selected, find out what the country codes are, and add them to the destinationsSelected array if (typeof destinationsSelectedIds != 'undefined' && destinationsSelectedIds.length > 0) { destinationsSelected = getCountryCodes(destinationsSelectedIds); } } // Loop through all the options for the category for(key in window[id]) { var keyNumber = Number(key.substr(1)); if (id == 'countries') { keyNumber = key; if (destinationsSelected.length > 0 && destinationsSelected.indexOf(keyNumber) == -1) { continue; } } //var keyNumber = (id == 'countries') ? key : Number(key.substr(1)); var selected = ''; var optionName = (id == 'destinationsRiverCruise') ? window[id][key].name : window[id][key]; // If the key was found in the previously selected options, set up the "remove" link if (idsArray.indexOf(keyNumber) != -1) { selected = ' selected'; selectedLinks.push( { id: keyNumber, name: optionName } ); } str += '
    ' + optionName + '
    '; } str = '
    ' + str + '
    '; return { str: str, selectedLinks: selectedLinks }; } function buildDepartuePortsOptions(t, id) { var idsArray = (t.data('ids')) ? t.data('ids') : []; var selectedLinks = []; var geo = {}; // Loop through all the options for the category for(key in window[id]) { var keyNumber = Number(key.substr(1)); var selected = ''; // If the key was found in the previously selected options, set up the "remove" link if (idsArray.indexOf(keyNumber) != -1) { selected = ' selected'; selectedLinks.push( { id: keyNumber, name: window[id][key].name } ); } if (typeof geo[window[id][key].geo] == 'undefined') { geo[window[id][key].geo] = []; } geo[window[id][key].geo].push('
    ' + window[id][key].name + '
    ') } var ordered = {}; Object.keys(geo).sort().reverse().forEach(function(key) { ordered[key] = geo[key]; }); var str = ''; Object.keys(ordered).forEach(function(key, index) { str += '

    ' + key + ' Ports

    '; var optionsLength = ordered[key].length; for (i = 0; i < optionsLength; i++) { str += ordered[key][i]; } str += '
    '; }); str = '
    ' + str + '
    '; return { str: str, selectedLinks: selectedLinks }; } var geoOrder = { 'Africa': 'm', 'Antarctica': 'n', 'Caribbean': 'b', 'Central America': 'c', 'East Asia': 'i', 'Eastern Europe': 'f', 'North America': 'a', 'Russia': 'g', 'South America': 'd', 'South Asia': 'j', 'South East Asia': 'k', 'South Pacific': 'h', 'Western Asia': 'l', 'Western Europe': 'e' } function buildPortsOfCallOptions(t, id) { var idsArray = (t.data('ids')) ? t.data('ids') : []; var selectedLinks = []; var geo = {}; // Loop through all the options for the category for(key in window[id]) { var keyNumber = Number(key.substr(1)); var selected = ''; // If the key was found in the previously selected options, set up the "remove" link if (idsArray.indexOf(keyNumber) != -1) { selected = ' selected'; selectedLinks.push( { id: keyNumber, name: window[id][key].name } ); } // If the geo location has not been set up yet, make the array var geoName = window[id][key].geo; var geoOrderName = geoOrder[geoName] + '_' + geoName; if (typeof geo[geoOrderName] == 'undefined') { geo[geoOrderName] = []; } geo[geoOrderName].push('
    ' + window[id][key].name + '
    ') } var ordered = {}; Object.keys(geo).sort().forEach(function(key) { ordered[key] = geo[key]; }); var str = ''; Object.keys(ordered).forEach(function(key, index) { var regionName = key.split('_')[1]; str += '

    ' + regionName + ' Ports

    '; var optionsLength = ordered[key].length; for (i = 0; i < optionsLength; i++) { str += ordered[key][i]; } str += '
    '; }); str = '
    ' + str + '
    '; return { str: str, selectedLinks: selectedLinks }; } // Build date options function buildDateOptions(t) { var idsArray = (t.data('ids')) ? t.data('ids') : []; // Check if cruise type is "cruise tour" var isCruiseTour = ($('#search_selected li[data-id="cruiseType"]').data('ids') == 3) ? true : false; var cruiseTourSkipMonths = [1,2,3,10,11,12]; var str = ''; var selectedLinks = []; var blocks = []; var lastYear = null; // Loop through all the departure date options for(key in departureDate) { var keyNumber = Number(key.substr(1)); var year = departureDate[key].year; var monthNumber = departureDate[key].monthNumber; var monthText = departureDate[key].monthText; var status = departureDate[key].status; // If this is the start of a new year, add the last year code to the block array, and reset the code string for the new year if (lastYear && year != lastYear) { blocks.push('

    ' + lastYear + '

    ' + str + '
    '); str = ''; } // Begin to build what will be in the class var classArray = ['cell']; if (status === 0 || (isCruiseTour && cruiseTourSkipMonths.indexOf(monthNumber) != -1)) { classArray.push('off'); } if ((!idsArray.end && keyNumber === idsArray.start) || keyNumber >= idsArray.start && keyNumber <= idsArray.end) { classArray.push('selected'); } str += '
    ' + monthText +'
    '; lastYear = year; } // Add the last year to the block array blocks.push('

    ' + lastYear + '

    ' + str + '
    '); str = '
    ' + blocks.join("\n\n") + '
    '; // Make selectedText, but only if there is at least one date selected var selectedText = (idsArray.start) ? t.find('> div > div').html() : null; return { str: str, selectedLinks: selectedLinks, selectedText: selectedText } } // Build duration options function buildDurationOptions(t, id) { var selectedDuration = (t.data('ids')) ? t.data('ids') : null; var str = ''; var selectedLinks = []; // Loop through all the duration options for(key in window[id]) { var keyNumber = Number(key.substr(1)); var start = window[id][key].start; var end = window[id][key].end; // Check if this is not the last option, as there is no "end" for the last option var text = (end) ? start + ' – ' + end : start + '+'; // Begin to build what will be in the class var classArray = ['cell']; if (selectedDuration == keyNumber) { classArray.push('selected'); selectedLinks.push( { id: keyNumber, name: text + ' Nights' } ); } str += '
    ' + text + ' Nights
    '; } str = '
    ' + str + '
    '; return { str: str, selectedLinks: selectedLinks } } // Build cruise type options function buildCruiseTypeOptions(t) { var selectedCruiseType = (t.data('ids')) ? t.data('ids') : 1; var str = ''; var selectedLinks = []; // Loop through all the duration options for(key in cruiseType) { var keyNumber = Number(key.substr(1)); // Begin to build what will be in the class var classArray = ['cell']; if (selectedCruiseType == keyNumber) { classArray.push('selected'); selectedLinks.push( { id: keyNumber, name: cruiseType[key].name } ); } str += '
    ' + cruiseType[key].name + '
    '; } str = '
    ' + str + '
    '; return { str: str, selectedLinks: selectedLinks } } function buildShipsOptions(t) { var selectedShips = (t.data('ids')) ? t.data('ids') : []; var str = ''; var selectedLinks = []; var blocks = []; // Sort the cruise lines info alphabetical order var ordered = {}; Object.keys(ships).sort().forEach(function(key) { ordered[key] = ships[key]; }); // Loop through all the ships options for(key in ordered) { var cruiseLine = key; var clId = ships[key].id; var clName = ships[key].name; var clShips = ships[key].ships; for(key2 in clShips) { var clShipId = Number(clShips[key2].id); var clShipName = clShips[key2].name; // Begin to build what will be in the class var classArray = ['cell']; // If the key was found in the previously selected options, set up the "remove" link if (selectedShips.indexOf(clShipId) != -1) { classArray.push('selected'); selectedLinks.push( { id: clShipId, name: clShipName } ); } str += '
    ' + clShipName +'
    '; } blocks.push('

    ' + clName + '

    ' + str + '
    '); str = ''; } var blocksLenth = blocks.length; var blocksFinal = (blocksLenth > 0) ? blocks.join("\n\n") : '

    Currently All Cruise Lines and All Ships are being searched.

    If you would like to search for a specific ship, please select the cruise line first.
    '; var blocksId = ''; if (blocksLenth === 1) { blocksId = ' id="blocks1"'; } else if (blocksLenth == 2) { blocksId = ' id="blocks2"'; } str = '
    ' + blocksFinal + '
    '; return { str: str, selectedLinks: selectedLinks, all: (blocksLenth > 0) ? false : true } } // Process when an options or a "remove" link is clicked function searchOption(t) { // Get the option id var id = t.data('id'); // If the "remove" link that was clicked was in the drawer or a single delete. // If not, it's simply turning off one of the options if (t.is('li') || (t.is('span') && t.closest('ul').prop('id') == 'search_selected')) { var li = t.parent().closest('li'); var categoryId = li.data('id'); } else { var categoryId = $('#search_options').data('categoryid'); // Get the LI for this category var li = $('#search_selected > li[data-id=' + categoryId + ']'); } // If this is a destination cruise tour, just return, as we don't want to select/deselect the one option available if (categoryId == 'destinationsCruiseTour') { return; } // If deleting a departure date from either the LI or the "currently searching", do a separate delete and return, as we don't need the rest of the code. // This will reset all the departure date options and text to "all" if (categoryId == 'departureDate') { t.addClass('all') .html('All'); $('#search_options > div .selected').removeClass('selected'); li.data('ids', { start: null, end: null }) .find('> div > div') .html('All'); setupToolTip('remove'); return; } // If deleting a duration from either the LI or the "currently searching", do a separate delete and return, as we don't need the rest of the code. // This will reset all the duration options and text to "all" if (categoryId == 'duration' || categoryId == 'durationRiverCruise' || categoryId == 'durationCruiseTour') { t.addClass('all') .html('All'); $('#search_options > div .selected').removeClass('selected'); li.data('ids', null) .find('> div > div') .html('All'); return; } // If this is a "remove" selected from the options "currently searching", then make "t" the object in "search_options". // This will make everything work, as we no longer need the "t" from what was actually clicked if (t.is('span') && t.data('id') && $('#search_options').length > 0) { if (categoryId == 'departurePorts' || categoryId == 'departurePortsCruiseTour' || categoryId == 'portsOfCall' || categoryId == 'portsOfCallCruiseTour') { t = $('#search_options > div > div > div > div[data-id=' + t.data('id') + ']'); } else { t = $('#search_options > div > div[data-id=' + t.data('id') + ']'); } } var postProcess = false; // If the option is already selected, deselect it and remove it from the saved selected options. // If not, select it and add it to the saved selected options if (t.hasClass('selected') || t.is('li') || (t.is('span') && t.closest('ul').prop('id') == 'search_selected')) { t.removeClass('selected'); // Remove the index from the array var updatedIds = li.data('ids').filter(function(value, index, arr) { return value != id; }); // Update the saved options with the updated array li.data('ids', updatedIds); postProcess = 'delete'; } else { t.addClass('selected'); // If there is nothing yet saved, create a blank array if (!li.data('ids')) { li.data('ids', []); } // Add the id of the option to the saved selected options var currentIds = li.data('ids'); // Add the index to the array currentIds.push(id); li.data('ids', currentIds); postProcess = 'add'; } // If this is a delete from the drawer, delete the li and check if there is only one left. If so, close the drawer if (t.is('li')) { var tp = t.parent(); t.remove(); // If there is only one option left, then hide the drawer, and put the remaining option in the LI if (tp.find('li').length < 2) { searchDrawer('hide', tp.parent().parent().prev()); } } // Build the list of options var optionsSelectedArray = []; var dataIds = li.data('ids'); // Loop through all the options for the category if (categoryId == 'ships') { var optionsSelectedShipsArray = [] for(key in ships) { // Loop through all the ships for this cruise line for(key2 in ships[key].ships) { var shipId = Number(ships[key].ships[key2].id); var shipName = ships[key].ships[key2].name; var shipAbbrName = shipName.replace(/ /g, ''); // If the ship ID was found in the previously selected options, set up the "remove" link if (dataIds.indexOf(shipId) != -1) { optionsSelectedShipsArray[shipAbbrName] = { id: shipId, name: shipName } } } } // Sort the cruise lines info alphabetical order var ordered = optionsSelectedShipsArray.sort(); // Turn associative array back to regular array, as the sorting is done now for (var items in ordered){ optionsSelectedArray.push(ordered[items]); } } else { for(key in window[categoryId]) { var keyNumber = (categoryId == 'countries') ? key : Number(key.substr(1)); var optionName = (categoryId == 'destinationsRiverCruise' || categoryId == 'departurePorts' || categoryId == 'departurePortsCruiseTour' || categoryId == 'portsOfCall' || categoryId == 'portsOfCallCruiseTour') ? window[categoryId][key].name : window[categoryId][key]; // If the key was found in the previously selected options, set up the "remove" link if (dataIds.indexOf(keyNumber) != -1) { optionsSelectedArray.push( { id: keyNumber, name: optionName } ); } } } var searchDisplayText; var optionsDisplayText = ''; // Build the different texts showing what has been selected switch(optionsSelectedArray.length) { case 0: searchDisplayText = 'All'; optionsDisplayText = 'All'; break; case 1: searchDisplayText = '' + optionsSelectedArray[0].name + ''; optionsDisplayText = '' + optionsSelectedArray[0].name + ''; break; default: searchDisplayText = 'Multiple'; optionsSelectedArray.forEach(function(e) { optionsDisplayText += '' + e.name + ''; }); break; } var pus = $('#pop_up_selected'); // If the category was ports of call and the sub menu in on top, add the "view" button //if ((categoryId == 'portsOfCall' || categoryId == 'portsOfCallCruiseTour') && optionsSelectedArray.length > 0) { if (optionsSelectedArray.length > 0) { // If this is a deletion from the currently searching popup (popup exists check), update the spans if (pus.length > 0) { pus.find('> div > div') .html(optionsDisplayText); } optionsDisplayText = 'View Selected' + optionsSelectedArray.length + '' + optionsDisplayText; } else if (pus.length > 0) { viewSelected('hide'); } // Save the currently selected options, and update the category LI li.data('currentText', optionsSelectedArray) .find('> div:first-child > div') .html(searchDisplayText); // Update the "currently searching" text/links $('#options_selected > div > div').html(optionsDisplayText); checkPopupSize(); if (postProcess !== false) { if (postProcess == 'add') { if (categoryId == 'cruiseLines' || categoryId == 'cruiseLinesRiverCruise' || categoryId == 'cruiseLinesCruiseTour') { // Get ships for selected cruise line getShips(id); // Check if we need to hide any countries, based on the selected cruise line checkCountries(optionsSelectedArray, categoryId); } } else if (postProcess == 'delete') { if (categoryId == 'cruiseLines' || categoryId == 'cruiseLinesRiverCruise' || categoryId == 'cruiseLinesCruiseTour') { // Delete ships from ships object that are associated with this cruise line for(key in ships) { if (ships[key].id == id) { // Delete any selected ship id's saved in the "ships" LI.data associated with this cruise line var liShips = $('#search_selected > li[data-id=ships]'); // Only delete ships, if any ships have been previously selected. // There will be if (liShips.data('ids')) { // Loop through all the ships for this cruise line for(key2 in ships[key].ships) { var shipId = Number(ships[key].ships[key2].id); // If the ship is found (has been previously selected), delete it if (liShips.data('ids').indexOf(shipId) != -1) { var updatedIds = liShips.data('ids').filter(function(value, index, arr) { return value != shipId; }); // Update the saved options with the updated array liShips.data('ids', updatedIds); var shipsCurrentText = liShips.data('currentText'); // Delete this ship from the 'currentText' data, too for (i = 0; i < shipsCurrentText.length; i++) { if (shipsCurrentText[i].id == shipId) { shipsCurrentText.splice(i, 1); liShips.data('currentText', shipsCurrentText); break; } } // Rebuild the search_selected LI var liShipsLength = liShips.data('ids').length; var liShipsTextObj = liShips.find('> div > div'); if (liShipsLength > 1) { liShipsTextObj.html('Multiple'); } else if (liShipsLength === 1) { liShipsTextObj.html('' + shipsCurrentText[0].name + ''); } else { liShipsTextObj.html('All'); } } } } // Delete the cruise line ships from the ships object delete ships[key]; break; } } // Check if we need to hide any countries, based on the selected cruise line checkCountries(optionsSelectedArray, categoryId); } else if (categoryId == 'destinationsRiverCruise') { checkCountries(optionsSelectedArray, categoryId) } } } } function checkCountries(a, categoryId) { //console.log(a) if (categoryId == 'destinationsRiverCruise') { var destinationsSelectedIds = []; // Get the destination id's a.forEach(function(key) { destinationsSelectedIds.push(key.id); }); // Get the country codes var destinationsSelected = getCountryCodes(destinationsSelectedIds); // If there are any countries selected, remove any that are no longer in destinationsSelected array - essentially rebuild the Countries options var countriesLi = $('#search_selected li[data-id="countries"]'); if (typeof countriesLi.data('ids') != 'undefined' && countriesLi.data('ids').length > 0) { var dataIds = countriesLi.data('ids'); var dataCurrentText = countriesLi.data('currentText'); dataIds.forEach(function(key, index) { // If the selected country code is not found in destinationsSelected array, delete it from dataIds if (destinationsSelected.indexOf(key) == -1) { delete dataIds[index]; // Delete this country from the currentText array, too var cdtLength = dataCurrentText.length; for(i = 0; i < cdtLength; i++) { // If this particular index hasn't been "deleted" yet (as it could have been), and the id matches the key, then this is the one to "delete" if (typeof dataCurrentText[i] != 'undefined' && dataCurrentText[i].id == key) { delete dataCurrentText[i]; break; } } } }); // Filter out the undefined/null indexes that were just "deleted" var dataIdsNew = dataIds.filter(function (el) { return el != null; }); var dataCurrentTextNew = dataCurrentText.filter(function (el) { return el != null; }); // Update the countries LI countriesLi.data({ ids: dataIdsNew, currentText: dataCurrentTextNew }); // If there is only 1 or 0 left, alter what is showing in the LI if (dataIdsNew.length < 2) { var str = (dataIdsNew.length === 1) ? '' + dataCurrentTextNew[0].name + '' : 'All'; countriesLi.find('> div > h3 + div') .html(str); } } } } function getCountryCodes(idsArray) { var a = []; // Loop through to get each destination idsArray.forEach(function(key) { // Loop through to get each country code destinationsRiverCruise['_' + key].countriesIds.forEach(function(code) { a.push(code); }); }); return a; } // Process a departure date option function searchOptionDepartureDate(t, event) { // Get the selected count ID var selectedDateCount = t.data('count'); // Get the LI for this category var li = $('#search_selected > li[data-id=departureDate]'); var datesWrap = $('#search_options > div'); var dateCountInfo = (li.data('ids')) ? li.data('ids') : { start: null, end: null } var str = 'All'; // If the option is already selected if (t.hasClass('selected')) { switch(true) { // If there was no end date yet selected, just deselect the option case !dateCountInfo.end: dateCountInfo.start = null; t.removeClass('selected hover_selected'); setupToolTip('remove'); break; // There was both a start and end date selected, so clear out the end date and set the selected date as the new start date default: datesWrap.find('.selected') .not("[data-count='" + selectedDateCount + "']") .removeClass('selected'); dateCountInfo = { start: selectedDateCount, end: null }; var start = datesWrap.find('.cell[data-count=' + dateCountInfo.start + ']'); var startMonth = start.text(); var startYear = start.parent() .parent() .data('id'); str = startMonth + ' ' + startYear; $('#options_selected > div > div > span').removeClass('all') .html(str); setupToolTip('show', event); break; } } else { switch(true) { // If there was a start date, but no end date... case dateCountInfo.start && !dateCountInfo.end: // If the selected date was after the start date, make the end date the selected date. // If the selected date was before the start date, make the end date the current start date, and the selected date the new start date if (Number(selectedDateCount) > dateCountInfo.start) { dateCountInfo.end = selectedDateCount; } else if (Number(selectedDateCount) < dateCountInfo.start) { dateCountInfo = { start: selectedDateCount, end: dateCountInfo.start } } setupToolTip('remove'); break; // If there is no start or end date, make the start date the selected date case !dateCountInfo.start && !dateCountInfo.end: dateCountInfo.start = selectedDateCount; setupToolTip('show', event); break; // There was both a start and end date already, so clear out the end date and make the selected date the new start date default: datesWrap.find('.selected') .removeClass('selected'); dateCountInfo = { start: selectedDateCount, end: null }; setupToolTip('show', event); break; } // Get the newly updated start and end date info var start = datesWrap.find('.cell[data-count=' + dateCountInfo.start + ']'); var startMonth = start.text(); var startYear = start.parent() .parent() .data('id'); var end = datesWrap.find('.cell[data-count=' + dateCountInfo.end + ']'); var endMonth = end.text(); var endYear = end.parent() .parent() .data('id'); // Update the text to reflect the updated start and end date info switch(true) { // If there was a start date but no end date... case dateCountInfo.start && !dateCountInfo.end: t.addClass('selected'); str = startMonth + ' ' + startYear; $('#options_selected > div > div > span').removeClass('all') .html(str); break; // If there was both a start date and end date... default: // Remove all the hover_selected (hover range) classes and put in the selected classes for(i = dateCountInfo.start; i <= dateCountInfo.end; i++) { datesWrap.find('.cell[data-count=' + i + ']') .addClass('selected') .removeClass('hover_selected'); } if (startYear == endYear) { str = startMonth + ' – ' + endMonth + ' ' + startYear; } else { str = startMonth + ' ' + startYear + ' – ' + endMonth + ' ' + endYear; } $('#options_selected > div > div > span').removeClass('all') .html(str); break; } } // If there was no start or end date... if (!dateCountInfo.start && !dateCountInfo.end) { str = 'All'; $('#options_selected > div > div > span').addClass('all') .html(str); } str = (str != 'All') ? '' + str + '' : str; li.data('ids', dateCountInfo) .find('> div > div') .html(str); } function setupToolTip(option, event) { var dt = '
    Select a Start or End Date,
    or nothing else to only search on the selected month.
    '; var m = $('#multiple > div'); if (option == 'show') { if (isMobile) { // Save default html m.data('default', m.html()); m.html(dt); checkPopupSize(); } else { $(dt).css({ display: 'block' }) .appendTo('body'); document.getElementById('search_options').addEventListener('mousemove', fn, false); document.getElementById('search_options').addEventListener('mouseover', fn2, false); document.getElementById('search_options').addEventListener('mouseout', fn3, false); fn(event); } } else { if (isMobile) { m.html(m.data('default')); checkPopupSize(); } else { if (document.getElementById('search_options')) { document.getElementById('search_options').removeEventListener('mousemove', fn, false); document.getElementById('search_options').removeEventListener('mouseover', fn2, false); document.getElementById('search_options').removeEventListener('mouseout', fn3, false); $('#date_tip').remove(); } } } } function fn(e) { var tooltip = document.getElementById('date_tip'); var dt = $('#date_tip'); dt.css({ left: (e.pageX - (dt.outerWidth(true) + 0) / 2) + 'px', top: (e.pageY - (dt.outerHeight(true) + 20)) + 'px' }); } function fn2() { document.getElementById('date_tip').style.display = 'block'; } function fn3() { document.getElementById('date_tip').style.display = 'none'; } // Process and show the hover date range function searchOptionDepartureDateHover(option, t) { // Get the current count ID of the option that is currently being hovered over var selectedDateCount = t.data('count'); // Get the LI for this category var li = $('#search_selected > li[data-id=departureDate]'); var datesWrap = $('#search_options > div'); var dateCountInfo = (li.data('ids')) ? li.data('ids') : { start: null, end: null } // If there is either both a start and end date OR neither a start and end date, just return, as there is no reason for a "hove range" to show if ((dateCountInfo.start && dateCountInfo.end) || (!dateCountInfo.start && !dateCountInfo.end)) { return; } if (option == 'show') { // Set up the start the end count ID's for the hover range if (selectedDateCount > dateCountInfo.start) { // Hover is after the start date var start = dateCountInfo.start; var end = selectedDateCount; } else { // Hover is before the start date var start = selectedDateCount; var end = dateCountInfo.start; } // Show the hover range for(i = start; i <= end; i++) { datesWrap.find('.cell[data-count=' + i + ']').addClass('hover_selected'); } } else { // Remove the hover range datesWrap.find('.hover_selected') .removeClass('hover_selected'); } } function searchOptionDuration(t) { // Get the selected id var id = t.data('id'); // Get the LI for this category var li = $('#search_selected > li[data-baseid=duration]'); var currentDuration = (li.data('ids')) ? li.data('ids') : null; var str = 'All'; // If the option is already selected, unselect it and reset to all. // If it is not selected, select and update the text if (t.hasClass('selected')) { t.removeClass('selected'); id = null; $('#options_selected > div > div > span').addClass('all') .html(str); } else { // Unselect the previously selected option if (currentDuration) { t.parent() .find('div[data-id=' + currentDuration + ']') .removeClass('selected'); } t.addClass('selected') str = t.find('div').text(); $('#options_selected > div > div > span').removeClass('all') .html(str); } str = (str != 'All') ? '' + str + '' : str; li.data('ids', id) .find('> div > div') .html(str); } function searchOptionCruiseType(t) { // Get the selected id var id = t.data('id'); // Get the LI for this category var li = $('#search_selected > li[data-id=cruiseType]'); var currentCruiseType = (li.data('ids')) ? li.data('ids') : 1; var str = 'Ocean Cruise'; // If the option is already selected, unselect it and reset to all. // If it is not selected, select and update the text if (t.hasClass('selected')) { return; } else { // Unselect the previously selected option if (currentCruiseType) { t.parent() .find('div[data-id=' + currentCruiseType + ']') .removeClass('selected'); } t.addClass('selected') str = t.find('div').text(); $('#options_selected > div > div > span').html(str); } str = '' + str + ''; li.data('ids', id) .find('> div > div') .html(str); changeForm(id); cruiseTypeSelected = id; // Pre-load video preLoadVideo(id); } function searchOptionShips(t) { // Get the selected id var id = t.data('id'); // If this is a "remove" selected from the options "currently searching", then make "t" the object in "search_options". // This will make everything work, as we no longer need the "t" from what was actually clicked if (t.is('span') && t.data('id') && $('#search_options').length > 0) { t = $('#search_options > div > div > div > div[data-id=' + id + ']'); } // Get the LI for this category var li = $('#search_selected > li[data-id=ships]'); var currentShips = (li.data('ids')) ? li.data('ids') : null; var str = 'All'; // If the option is already selected, unselect it and reset to all. // If it is not selected, select and update the text if (t.hasClass('selected')) { t.removeClass('selected'); // Remove the index from the array var updatedIds = li.data('ids').filter(function(value, index, arr) { return value != id; }); // Update the saved options with the updated array li.data('ids', updatedIds); } else { t.addClass('selected') // If there is nothing yet saved, create a blank array if (!li.data('ids')) { li.data('ids', []); } // Add the id of the option to the saved selected options var currentIds = li.data('ids'); // Add the index to the array currentIds.push(id); li.data('ids', currentIds); } // Build the list of options var optionsSelectedShipsArray = []; var dataIds = li.data('ids'); // Loop through all the cruise lines for(key in ships) { // Loop through all the ships for this cruise line for(key2 in ships[key].ships) { var shipId = Number(ships[key].ships[key2].id); var shipName = ships[key].ships[key2].name; var shipAbbrName = shipName.replace(/ /g, ''); // If the ship ID was found in the previously selected options, set up the "remove" link if (dataIds.indexOf(shipId) != -1) { optionsSelectedShipsArray[shipAbbrName] = { id: shipId, name: shipName } } } } // Sort the cruise lines info alphabetical order var ordered = optionsSelectedShipsArray.sort(); // Turn associative array back to regular array, as the sorting is done now var optionsSelectedArray = []; for (var items in ordered){ optionsSelectedArray.push(ordered[items]); } var searchDisplayText; var optionsDisplayText = ''; // Build the different texts showing what has been selected switch(optionsSelectedArray.length) { case 0: searchDisplayText = 'All'; optionsDisplayText = 'All'; break; case 1: searchDisplayText = '' + optionsSelectedArray[0].name + ''; optionsDisplayText = '' + optionsSelectedArray[0].name + ''; break; default: searchDisplayText = 'Multiple'; optionsSelectedArray.forEach(function(e) { optionsDisplayText += '' + e.name + ''; }); break; } var pus = $('#pop_up_selected'); // If the category was ports of call and the sub menu in on top, add the "view" button //if ((categoryId == 'portsOfCall' || categoryId == 'portsOfCallCruiseTour') && optionsSelectedArray.length > 0) { if (optionsSelectedArray.length > 0) { // If this is a deletion from the currently searching popup (popup exists check), update the spans if (pus.length > 0) { pus.find('> div > div') .html(optionsDisplayText); } optionsDisplayText = 'View Selected' + optionsSelectedArray.length + '' + optionsDisplayText; } else if (pus.length > 0) { viewSelected('hide'); } // Save the currently selected options, and update the category LI li.data('currentText', optionsSelectedArray) .find('> div:first-child > div') .html(searchDisplayText); // Update the "currently searching" text/links $('#options_selected > div > div').html(optionsDisplayText); checkPopupSize(); } function popUp(option, str, loc) { var pu = $('#pop_up'); if (option == 'show') { var timeoutLength = 0; // If the popup is not showing, show the overlay and delay the popup from showing if (!pu.hasClass('show')) { overlay('show'); timeoutLength = 500; } setTimeout(function() { pu.html(str); pu.addClass('show'); $('html, body').css({ 'overflow-y': 'hidden' }); checkPopupSize(); if (typeof loc != 'undefined') { location.href = loc; } }, timeoutLength); } else { overlay('hide'); pu.removeClass('show'); $('html, body').css({ 'overflow-y': 'auto' }); pu.html('') .prop('style', ''); } } function checkPopupSize() { var pu = $('#pop_up'); var subNavHeight = 0; // Check if the sub_nav is showing and if it needs to be at the top of side if ($('#sub_nav').length > 0) { var sn = $('#sub_nav'); var ww = $(window).width(); if (pu.hasClass('top') && ww > 1400) { pu.removeClass('top'); } else if (!pu.hasClass('top') && ww <= 1400) { pu.addClass('top'); } subNavHeight = (pu.hasClass('top')) ? sn.outerHeight(true) : 0; } var header = pu.find('> div:first'); //var headerHeight = header.outerHeight(true); // Had to set a specific min-height, based on the main first divs within the "header", as IE11 doesn't calculate the outer height of the "header" correctly var headerHeight = $('#options_nav').outerHeight(true) + $('#options_selected').outerHeight(true) + $('#multiple').outerHeight(true) + subNavHeight; header.css({ 'min-height': headerHeight + 'px' }); var contentHeight = header.next().find('> div:first').outerHeight(true); var footerHeight = 0; if (pu.find('#popup_footer').length > 0) { var footer = pu.find('#popup_footer'); footerHeight = footer.outerHeight(true); } pu.css({ 'max-height': (headerHeight + contentHeight + footerHeight) +'px' }); } function getShips(clineID) { if (clineID == '') { return; } else { $.ajax({ type: 'GET', url: '/cruise-search-process.php', data: `a=getships&formLock=${formLock}&cline_id=${clineID}`, success: function(data) { var a = JSON.parse(data); var id = Object.keys(a)[0]; ships[id] = a[id]; } }); } } function changeForm(id) { var ss = $('#search_selected'); var on = $('#options_nav'); switch(id) { case 1: // Ocean Cruise resetLi('destinations', true, false, 'show', 'destinations'); resetLi('departureDate', false, false, 'show', false); resetLi('duration', true, false, 'show', 'duration'); resetLi('departurePorts', true, false, 'show', 'departurePorts'); resetLi('cruiseLines', true, false, 'show', 'cruiseLines'); resetLi('ships', false, false, 'show', false); // resetLi('portsOfCall', true, false, 'show', 'portsOfCall'); // resetLi('countries', false, false, 'hide', false); // resetLi('cities', false, false, 'hide', false); resetLi('waterways', false, false, 'hide', false); // For the "next" navigation in the popup on.find('> div:last-child a') .attr('data-id', 'destinations'); break; case 2: // River Cruise resetLi('destinations', false, false, 'hide', false);//resetLi('destinations', true, false, 'show', 'destinationsRiverCruise'); resetLi('departureDate', false, false, 'show', false); resetLi('duration', true, false, 'show', 'durationRiverCruise'); resetLi('departurePorts', true, false, 'hide', 'departurePortsRiverCruise'); resetLi('cruiseLines', true, false, 'show', 'cruiseLinesRiverCruise'); resetLi('ships', false, false, 'show', false); // resetLi('portsOfCall', true, false, 'hide', false); // resetLi('countries', false, false, 'show', false); // resetLi('cities', false, false, 'show', false); resetLi('waterways', false, false, 'show', false); // For the "next" navigation in the popup on.find('> div:last-child a') .attr('data-id', 'destinationsRiverCruise'); break; case 3: // Cruise Tour resetLi('destinations', true, [1], 'show', 'destinationsCruiseTour'); resetLi('departureDate', false, false, 'show', false); resetLi('duration', true, false, 'show', 'durationCruiseTour'); resetLi('departurePorts', true, false, 'show', 'departurePortsCruiseTour'); resetLi('cruiseLines', true, false, 'show', 'cruiseLinesCruiseTour'); resetLi('ships', false, false, 'show', false); // resetLi('portsOfCall', true, false, 'show', 'portsOfCallCruiseTour'); // resetLi('countries', false, false, 'hide', false); // resetLi('cities', false, false, 'hide', false); resetLi('waterways', false, false, 'hide', false); // For the "next" navigation in the popup on.find('> div:last-child a') .attr('data-id', 'destinationsCruiseTour'); // Pre-select Alaska ss.find('li[data-baseid="destinations"] > div > div') .html('Alaska'); break; } } /* id : category id baseId : true = data-baseid, false = data-id data : false = no data to be saved, xxx = the data to be saved. This is passed as an array showHide : show = make the li visible, hide = make the li hidden attr : false = the data attribute does not need to be edited, xxx = the data attribute is updated with the xxx value */ function resetLi(id, baseId, data, showHide, attr) { // Set the idType: data-id or data-baseid var idType = (baseId === true) ? 'baseId' : 'id'; // Build the object, based on the idtype and id var t = $('#search_selected li[data-' + idType + '="' + id + '"]'); // Remove any data from this li t.removeData(); // If there is data, save the data to the li if (data !== false) { t.data('ids', data); } // Show or hide the li if (showHide == 'show') { t.show(); } else { t.hide(); } // If there is attr, rename the data-id the value of attr if (attr !== false) { t.attr('data-id', attr); } // Delete any "drawer" info and reset to "All" t.find('> div > div') .html('All'); // If this is the ships category, clear out the ships object, too if (id == 'ships') { ships = {} } } function searchCruises() { //var video = $('#video_bg > video')[0]; //video.play(); var overviewObj = {}; var qs = ['SearchCruise=true&referrer=odyssey&siid=1123905']; var b = $('body'); // Set the kind of cruise we are searching for var isOceanCruise = isRiverCruise = isCruiseTour = false; var logoImage = 'logo-header.png'; if (cruiseType['_' + cruiseTypeSelected].type == 'oceanCruise') { isOceanCruise = true; b.addClass('ocean_cruise'); qs.push('destinationtype=Ocean'); qs.push('transportId=29'); } else if (cruiseType['_' + cruiseTypeSelected].type == 'riverCruise') { isRiverCruise = true; b.addClass('river_cruise'); logoImage = 'ce-logo-white-ds.png'; qs.push('destinationtype=River'); } else if (cruiseType['_' + cruiseTypeSelected].type == 'cruiseTour') { isCruiseTour = true; b.addClass('cruise_tour'); logoImage = 'ce-logo-white-ds.png'; qs.push('destinationtype=Ocean'); qs.push('transportId=28'); } var ss = $('#search_selected') // Destinations overviewObj.destinations = { name: 'Destinations', selected: 'All' } var d = ss.find('li[data-baseid="destinations"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.destinations.selected = []; d.forEach(function(e) { if (isRiverCruise) { //var dDest = 'search[destination_ids][]=' + e; var ov = destinationsRiverCruise['_' + e]; } else { //var dDest = 'destination_ids[]=' + e; var ov = (isCruiseTour) ? destinationsCruiseTour['_' + e] : destinations['_' + e]; } //qs.push(dDest); overviewObj.destinations.selected.push(ov); }); qs.push('Destinations=' + d.join(',')); } // Departure date // Set default start and end data. 6 months from today /* var today = new Date(); var day = String(today.getDate()); //.padStart(2, '0'); day = (day.length < 2) ? '0' + day : day; var month = String(today.getMonth() + 1); //.padStart(2, '0'); //January is 0! month = (month.length < 2) ? '0' + month : month; var year = today.getFullYear(); var dateStart = month + '/' + day + '/' + year; var monthRange = (isRiverCruise) ? 3 : 6; today.setMonth(today.getMonth() + monthRange); day = String(today.getDate()); //.padStart(2, '0'); day = (day.length < 2) ? '0' + day : day; month = String(today.getMonth() + 1); //.padStart(2, '0'); //January is 0! month = (month.length < 2) ? '0' + month : month; year = today.getFullYear(); var dateEnd = month + '/' + day + '/' + year; */ dateStart = dateEnd = ''; d = ss.find('li[data-id="departureDate"]') .data('ids'); if (typeof d != 'undefined' && d != null && d.start != null) { var dateStartObj = departureDate['_' + d.start]; dateStart = (dateStartObj.monthNumber < 10 ? '0' + dateStartObj.monthNumber : dateStartObj.monthNumber) + '/01/' + dateStartObj.year; if (d.end == null) { dateEnd = (dateStartObj.monthNumber < 10 ? '0' + dateStartObj.monthNumber : dateStartObj.monthNumber) + '/' + dateStartObj.lastDayOfMonth + '/' + dateStartObj.year; } else { var dateEndObj = departureDate['_' + d.end]; dateEnd = (dateEndObj.monthNumber < 10 ? '0' + dateEndObj.monthNumber : dateEndObj.monthNumber) + '/' + dateEndObj.lastDayOfMonth + '/' + dateEndObj.year; } } //if (isRiverCruise) { // var dStart = 'search[start_date]=' + dateStart; // var dEnd = 'search[end_date]=' + dateEnd; //} else { // var dStart = 'start_date=' + dateStart; // var dEnd = 'end_date=' + dateEnd; //} var dStart = 'StartDate=' + dateStart; var dEnd = 'EndDate=' + dateEnd; qs.push(dStart); qs.push(dEnd); overviewObj.departureDate = { name: 'Departure Date', date: { start: dateStart, end: dateEnd } } // Duration overviewObj.duration = { name: 'Duration', duration: 'All' } d = ss.find('li[data-baseid="duration"]') .data('ids'); if (typeof d != 'undefined' && d != null) { var type = ''; if (!isOceanCruise) { type = cruiseType['_' + cruiseTypeSelected].type; type = type.charAt(0).toUpperCase() + type.slice(1) } var d2 = window['duration' + type]['_' + d]; var d2Start = d2.start; var d2End = d2.end != null ? d2.end : 9999; //if (isRiverCruise) { // var dMin = 'search[duration_minimum]=' + d2Start; // var dMax = 'search[duration_maximum]=' + d2End; //} else { // var dMin = 'duration_min=' + d2Start; // var dMax = 'duration_max=' + d2End; //} var dMin = 'MinDuration=' + d2Start; var dMax = 'MaxDuration=' + d2End; qs.push(dMin); qs.push(dMax); overviewObj.duration.duration = d2.start + ((d2.end != null) ? ' – ' + d2.end : '+') + ' Nights'; } // Cruise Lines overviewObj.cruiseLines = { name: 'Cruise Lines', selected: 'All' } d = ss.find('li[data-baseid="cruiseLines"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.cruiseLines.selected = []; d.forEach(function(e) { if (isRiverCruise) { //var dCl = 'search[vendor_ids][]=' + e; var ov = cruiseLinesRiverCruise['_' + e]; } else { //var dCl = 'vendor_ids[]=' + e; var ov = (isCruiseTour) ? cruiseLinesCruiseTour['_' + e] : cruiseLines['_' + e]; } //qs.push(dCl); overviewObj.cruiseLines.selected.push(ov); }); qs.push('CruiseLine=' + d.join(',')); } // Ships overviewObj.ships = { name: 'Ships', selected: 'All' } d = ss.find('li[data-id="ships"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.ships.selected = []; d.forEach(function(e) { if (isRiverCruise) { //var dShips = 'search[ship_ids][]=' + e; //var ov = shipsRiverCruise['_' + e]; var shipsVar = ships; //shipsRiverCruise; } else { //var dShips = 'ship_ids[]=' + e; if (isCruiseTour) { //var ov = shipsCruiseTour['_' + e]; var shipsVar = ships; //shipsCruiseTour; } else { //var ov = ships['_' + e]; var shipsVar = ships; } } // Loop through all the cruise lines till the ship is found loop1: for(key in shipsVar) { // Loop through all the ships for this cruise line loop2: for(key2 in ships[key].ships) { var shipId = Number(ships[key].ships[key2].id); var shipName = ships[key].ships[key2].name; if (e == shipId) { var ov = shipName; break loop1; } } } //qs.push(dShips); overviewObj.ships.selected.push(ov); }); qs.push('Ship=' + d.join(',')); } if (isRiverCruise) { /* // Countries overviewObj.countries = { name: 'Countries', selected: 'All' } d = ss.find('li[data-id="countries"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.countries.selected = []; d.forEach(function(e) { qs.push('search[country_codes][]=' + e); overviewObj.countries.selected.push(countries[e]); }); } // Cities overviewObj.cities = { name: 'Cities', selected: 'All' } d = ss.find('li[data-id="cities"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.cities.selected = []; d.forEach(function(e) { qs.push('search[geolocation_ids][]=' + e); overviewObj.cities.selected.push(cities['_' + e]); }); } */ // Waterways /*overviewObj.waterways = { name: 'Waterways', selected: 'All' }*/ d = ss.find('li[data-id="waterways"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { /*overviewObj.waterways.selected = []; d.forEach(function(e) { qs.push('search[waterway_ids][]=' + e); overviewObj.waterways.selected.push(waterways['_' + e]); });*/ qs.push('rivers=' + d.join(',')); } // var loc = 'https://res.cruiseexperts.com/app/0/river_cruise/0/search_cruises.html'; } else { // Departure Ports overviewObj.departurePorts = { name: 'Departure Ports', selected: 'All' } d = ss.find('li[data-baseid="departurePorts"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.departurePorts.selected = []; var a = []; d.forEach(function(e) { //qs.push('departure_port_ids[]=' + e); a.push(departurePorts['_' + e].code); overviewObj.departurePorts.selected.push(departurePorts['_' + e]); }); qs.push('DeparturePorts=' + a.join(',')); } /* // Ports of Call overviewObj.portsOfCall = { name: 'Ports of Call', selected: 'All' } d = ss.find('li[data-baseid="portsOfCall"]') .data('ids'); if (typeof d != 'undefined' && d.length > 0) { overviewObj.portsOfCall.selected = []; d.forEach(function(e) { qs.push('port_of_call_ids[]=' + e); overviewObj.portsOfCall.selected.push(portsOfCall['_' + e]); }); } */ // var loc = 'https://res.cruiseexperts.com/app/0/cruise/0/search_cruises.html'; } var loc = 'https://booking.sigtn.com/swift/?' + qs.join('&'); // loc+= '?' + qs.join('&'); //console.log(loc);return false; location.href = loc;return; var optionsHtml = '

    Cruise Type

    ' + (isOceanCruise ? 'Ocean Cruise' : isRiverCruise ? 'River Cruise' : 'Cruise Tour') + '
    '; optionsHtml += buildOptionsHtml(overviewObj.destinations); optionsHtml += buildOptionsHtml(overviewObj.departureDate); optionsHtml += buildOptionsHtml(overviewObj.duration); if (!isRiverCruise) { optionsHtml += buildOptionsHtml(overviewObj.departurePorts); } optionsHtml += buildOptionsHtml(overviewObj.cruiseLines); optionsHtml += buildOptionsHtml(overviewObj.ships); if (!isRiverCruise) { optionsHtml += buildOptionsHtml(overviewObj.portsOfCall); } if (isRiverCruise) { optionsHtml += buildOptionsHtml(overviewObj.countries); optionsHtml += buildOptionsHtml(overviewObj.cities); optionsHtml += buildOptionsHtml(overviewObj.waterways); } var str = '

    Finding Your Cruise

    loading...
    ' + optionsHtml + '
    '; //Object.keys(overviewObj).forEach(function(key, index) { // console.log(index, key, this[key]); //}, overviewObj); b.addClass('search'); var pu = $('
    ' + str + '
    '); pu.appendTo('body'); if (typeof loc != 'undefined') { setTimeout(function() { location.href = loc; }, 100); } } function buildOptionsHtml(o) { var s = '

    ' + o.name + '

    '; if (typeof o.date != 'undefined') { s += o.date.start + ' – ' + o.date.end; } else if (typeof o.duration != 'undefined') { s += o.duration; } else { if (typeof o.selected == 'object') { // Check if it's an object (or array - which is an object) var a = []; o.selected.forEach(function(e) { if (typeof e == 'string') { a.push(e); } else { a.push(e.name); } }); a.sort(); s += a.join(' '); } else { s += o.selected; } } return '
    ' + s + '
    '; } function navSub(t) { var text = $.trim(t.text()); var e = $('#search_options div[data-id="' + text + '"] > h3'); var ePosTop = e.position().top; var p = $('#portsOfCall'); //p.scrollTop(p.scrollTop() + ePosTop); var scrollOffset = p.scrollTop() + ePosTop; p.animate({scrollTop:scrollOffset}, 350); } function viewSelected(option) { if (option == 'show') { var selected = $('#options_selected > div > div > span:not(.view)').clone(); var pus = $('

    Currently Searching

    ').appendTo('body'); pus.find('> div > div').append(selected); $('#pop_up > div:nth-of-type(2)').css('overflow-y', 'hidden'); $('html, body').css({ 'overflow-y': 'hidden', 'position': 'fixed' }); } else { $('html, body').css({ 'overflow-y': 'auto', 'position': 'relative' }); $('#pop_up > div:nth-of-type(2)').css('overflow-y', 'auto'); $('#pop_up_selected').remove(); } } function preLoadVideo(id) { if (isPhone) { return; } var video = $('#video_bg > video')[0]; video.src = '/video/' + cruiseType['_' + id].type + '.mp4'; video.load(); } /* ===== SET UP VARABLES ===== */ var cruiseType = { _1: { name: 'Ocean Cruise', type: 'oceanCruise' }, _2: { name: 'River Cruise', type: 'riverCruise' }, _3: { name: 'Cruise Tour', type: 'cruiseTour' } } var destinations = { _2: 'Africa', _1: 'Alaska', _99: 'Amazon', _65: 'Antarctica', _54: 'Arabian Gulf', _67: 'Arctic', _19: 'Asia and Asia Pacific', _50: 'Atlantic', _58: 'Australasia', _104: 'Australia', _29: 'Australia / New Zealand', _7: 'Bahamas', _8: 'Bermuda', _121: 'British Isles', _171: 'Canada', _26: 'Canada / New England', _68: 'Canary Islands', _9: 'Caribbean', _10: 'Caribbean - Eastern', _13: 'Caribbean - Southern', _14: 'Caribbean - Western', _42: 'Central America', _15: 'Europe', _38: 'Europe - Eastern', _39: 'Europe - Northern', _40: 'Europe - Southern', _41: 'Europe - Western', _60: 'Galapagos Island', _61: 'Greenland', _21: 'Hawaii', _122: 'Iceland and Norway', _73: 'India', _63: 'Indian Ocean', _62: 'Island Highlights', _124: 'Japan', _75: 'Mediterranean', _57: 'Mediterranean - Central', _16: 'Mediterranean - Eastern', _18: 'Mediterranean - Western', _24: 'Mexico', _55: 'Mexico - Baja Mexico', _56: 'Mexico Riviera', _31: 'Middle East', _105: 'New Zealand', _48: 'North America', _74: 'Oceania', _45: 'Pacific', _49: 'Panama Canal', _52: 'Repositioning', _69: 'Russia', _32: 'South America', _44: 'South Pacific', _130: 'Southeast Asia', _66: 'Tasmania', _34: 'Transatlantic', _47: 'U. S. Pacific Coast', _180: 'U. S. River', _36: 'World' } var destinationsRiverCruise = { _2: { name: 'Africa', countriesIds: [ 'EG' ] }, _: { name: 'Asia River', countriesIds: [ '' ] }, _: { name: 'Dutch and Belgian Waterways', countriesIds: [ '' ] }, _1: { name: 'Europe', countriesIds: [ 'AT','BE','BG','HR','CZ','FR','DE','HU','IT','LU','MC','NL','PL','PT','RO','RU','RS','SK','CH' ] }, _5: { name: 'India', countriesIds: [ 'IN' ] }, _: { name: 'North America', countriesIds: [ '' ] }, _24: { name: 'Saint Lawrence', countriesIds: [ '' ] }, _17: { name: 'South America', countriesIds: [ 'BR','CL','EC','PE' ] }, _3: { name: 'Southeast Asia', countriesIds: [ 'CN','HK' ] }, _15: { name: 'U. S. River', countriesIds: [ 'US' ] } } var destinationsCruiseTour = { _1: 'Alaska' } var countries = { AT: 'Austria', BE: 'Belgium', BR: 'Brazil', BG: 'Bulgaria', KH: 'Cambodia', CA: 'Canada', CL: 'Chile', CN: 'China', HR: 'Croatia', CZ: 'Czech Republic', EC: 'Ecuador', EG: 'Egypt', FR: 'France', DE: 'Germany', HK: 'Hong Kong', HU: 'Hungary', IN: 'India', IT: 'Italy', LU: 'Luxembourg', MC: 'Monaco', NL: 'Netherlands', PE: 'Peru', PL: 'Poland', PT: 'Portugal', RO: 'Romania', RU: 'Russia', RS: 'Serbia', SK: 'Slovakia', CH: 'Switzerland', TR: 'Turkey', US: 'United States', VN: 'Vietnam' } var cruiseLines = { _8139: 'Aqua Expeditions', _8293: 'Australis', _1043: 'Azamara', _1: 'Carnival', _2: 'Celebrity', _10: 'Costa', _3: 'Crystal', _12: 'Cunard', _4: 'Disney', _9204: 'Explora Journeys', _5: 'Holland America Line', _8146: 'Hurtigruten', _9191: 'HX Hurtigruten Expeditions', _8192: 'Lindblad Expeditions', _982: 'MSC', _6: 'Norwegian', _14: 'Oceania', _8119: 'Paul Gauguin Cruises', _8156: 'Ponant', _7: 'Princess', _8161: 'Quark Expeditions', _8116: 'Regent', _8: 'Royal Caribbean', _11: 'Seabourn', _8126: 'SeaDream', _8115: 'Silversea', _17: 'Star Clippers', _8122: 'Tauck', _8829: 'The Ritz-Carlton Yacht Collection', _8230: 'UnCruise Adventures', _9072: 'Viking Expeditions', _8175: 'Viking Ocean Cruises', _8807: 'Virgin Voyages', _9: 'Windstar' } var cruiseLinesCruiseTour = { _2: 'Celebrity', _5: 'Holland America Line', _6: 'Norwegian Cruise Line', _7: 'Princess', _8: 'Royal Caribbean' } var cruiseLinesRiverCruise = { _8138: 'AmaWaterways', _8135: 'American Cruise Lines', _8121: 'Avalon', //_11: 'Crystal River Cruises', _8122: 'Tauck', _8149: 'Uniworld', _8112: 'Viking' } var ships = {} var departureDate = { _1: { year: 2024, monthNumber: 1, monthText: 'Jan', lastDayOfMonth: '31', status: 0 }, _2: { year: 2024, monthNumber: 2, monthText: 'Feb', lastDayOfMonth: '29', status: 0 }, _3: { year: 2024, monthNumber: 3, monthText: 'Mar', lastDayOfMonth: '31', status: 0 }, _4: { year: 2024, monthNumber: 4, monthText: 'Apr', lastDayOfMonth: '30', status: 0 }, _5: { year: 2024, monthNumber: 5, monthText: 'May', lastDayOfMonth: '31', status: 0 }, _6: { year: 2024, monthNumber: 6, monthText: 'Jun', lastDayOfMonth: '30', status: 0 }, _7: { year: 2024, monthNumber: 7, monthText: 'Jul', lastDayOfMonth: '31', status: 0 }, _8: { year: 2024, monthNumber: 8, monthText: 'Aug', lastDayOfMonth: '31', status: 0 }, _9: { year: 2024, monthNumber: 9, monthText: 'Sep', lastDayOfMonth: '30', status: 0 }, _10: { year: 2024, monthNumber: 10, monthText: 'Oct', lastDayOfMonth: '31', status: 0 }, _11: { year: 2024, monthNumber: 11, monthText: 'Nov', lastDayOfMonth: '30', status: 1 }, _12: { year: 2024, monthNumber: 12, monthText: 'Dec', lastDayOfMonth: '31', status: 1 }, _13: { year: 2025, monthNumber: 1, monthText: 'Jan', lastDayOfMonth: '31', status: 1 }, _14: { year: 2025, monthNumber: 2, monthText: 'Feb', lastDayOfMonth: '28', status: 1 }, _15: { year: 2025, monthNumber: 3, monthText: 'Mar', lastDayOfMonth: '31', status: 1 }, _16: { year: 2025, monthNumber: 4, monthText: 'Apr', lastDayOfMonth: '30', status: 1 }, _17: { year: 2025, monthNumber: 5, monthText: 'May', lastDayOfMonth: '31', status: 1 }, _18: { year: 2025, monthNumber: 6, monthText: 'Jun', lastDayOfMonth: '30', status: 1 }, _19: { year: 2025, monthNumber: 7, monthText: 'Jul', lastDayOfMonth: '31', status: 1 }, _20: { year: 2025, monthNumber: 8, monthText: 'Aug', lastDayOfMonth: '31', status: 1 }, _21: { year: 2025, monthNumber: 9, monthText: 'Sep', lastDayOfMonth: '30', status: 1 }, _22: { year: 2025, monthNumber: 10, monthText: 'Oct', lastDayOfMonth: '31', status: 1 }, _23: { year: 2025, monthNumber: 11, monthText: 'Nov', lastDayOfMonth: '30', status: 1 }, _24: { year: 2025, monthNumber: 12, monthText: 'Dec', lastDayOfMonth: '31', status: 1 }, _25: { year: 2026, monthNumber: 1, monthText: 'Jan', lastDayOfMonth: '31', status: 1 }, _26: { year: 2026, monthNumber: 2, monthText: 'Feb', lastDayOfMonth: '28', status: 1 }, _27: { year: 2026, monthNumber: 3, monthText: 'Mar', lastDayOfMonth: '31', status: 1 }, _28: { year: 2026, monthNumber: 4, monthText: 'Apr', lastDayOfMonth: '30', status: 1 }, _29: { year: 2026, monthNumber: 5, monthText: 'May', lastDayOfMonth: '31', status: 1 }, _30: { year: 2026, monthNumber: 6, monthText: 'Jun', lastDayOfMonth: '30', status: 1 }, _31: { year: 2026, monthNumber: 7, monthText: 'Jul', lastDayOfMonth: '31', status: 1 }, _32: { year: 2026, monthNumber: 8, monthText: 'Aug', lastDayOfMonth: '31', status: 1 }, _33: { year: 2026, monthNumber: 9, monthText: 'Sep', lastDayOfMonth: '30', status: 1 }, _34: { year: 2026, monthNumber: 10, monthText: 'Oct', lastDayOfMonth: '31', status: 1 }, _35: { year: 2026, monthNumber: 11, monthText: 'Nov', lastDayOfMonth: '30', status: 1 }, _36: { year: 2026, monthNumber: 12, monthText: 'Dec', lastDayOfMonth: '31', status: 1 } } var duration = { _1: { start: 1, end: 5 }, _2: { start: 6, end: 8 }, _3: { start: 9, end: 15 }, _4: { start: 16, end: null } } var durationRiverCruise = { _1: { start: 4, end: 8 }, _2: { start: 9, end: 15 }, _3: { start: 16, end: null } } var durationCruiseTour = { _1: { start: 9, end: 15 }, _2: { start: 16, end: null } } var departurePorts = { _4: { name: 'Amsterdam, Netherlands', geo: 'International', code: 'AMS' }, _6: { name: 'Anchorage, Alaska, United States', geo: 'US', code: 'ANC' }, _15: { name: 'Athens, Greece', geo: 'International', code: 'ATH' }, _16: { name: 'Auckland, New Zealand', geo: 'International', code: 'AKL' }, _21: { name: 'Baltimore, Maryland, United States', geo: 'US', code: 'BWI' }, _24: { name: 'Barbados (Bridgetown), Barbados', geo: 'International', code: 'BGI' }, _25: { name: 'Barcelona, Spain', geo: 'International', code: 'BCN' }, _31: { name: 'Bergen, Norway', geo: 'International', code: 'BGO' }, _38: { name: 'Boston, Massachusetts, United States', geo: 'US', code: 'BOS' }, _41: { name: 'Brisbane, Australia', geo: 'International', code: 'BNE' }, _46: { name: 'Buenos Aires, Argentina', geo: 'International', code: 'BUE' }, _62: { name: 'Charleston, South Carolina, United States', geo: 'US', code: 'CHS' }, _63: { name: 'Charlotte Amalie, St. Thomas (Charlotte Amalie), Virgin Islands, us', geo: 'International', code: 'SPB' }, _69: { name: 'Civitavecchia (Rome), Italy', geo: 'International', code: 'CIV' }, _73: { name: 'Copenhagen, Denmark', geo: 'International', code: 'CPH' }, _76: { name: 'Cozumel, Mexico', geo: 'International', code: 'CZM' }, _84: { name: 'Dubai, United Arab Emirates', geo: 'International', code: 'DXB' }, _93: { name: 'Fairbanks, Alaska, United States', geo: 'US', code: 'FAI' }, _97: { name: 'Fremantle (Perth/Fremantle), Western Australia, Australia', geo: 'International', code: 'JFM' }, _99: { name: 'Ft Lauderdale (Port Everglades), Florida, United States', geo: 'US', code: 'FLL' }, _102: { name: 'Galveston, Texas, United States', geo: 'US', code: 'GLS' }, _118: { name: 'Hong Kong, Hong Kong', geo: 'International', code: 'HKG' }, _120: { name: 'Honolulu, Hawaii, United States', geo: 'US', code: 'HNL' }, _123: { name: 'Istanbul, Turkey', geo: 'International', code: 'IST' }, _125: { name: 'Jacksonville, Florida, United States', geo: 'US', code: 'JAX' }, _129: { name: 'Juneau, Alaska, United States', geo: 'US', code: 'JNU' }, _134: { name: 'Ketchikan, Alaska, United States', geo: 'US', code: 'KTN' }, _142: { name: 'Kona- Hawaii, Hawaii, United States', geo: 'US', code: 'KOA' }, _158: { name: 'Lisbon, Portugal', geo: 'International', code: 'LIS' }, _162: { name: 'London (Dover), United Kingdom', geo: 'International', code: 'QQD' }, _165: { name: 'Los Angeles, California, United States', geo: 'US', code: 'LAX' }, _178: { name: 'Manaus, Brazil', geo: 'International', code: 'MAO' }, _181: { name: 'Melbourne, Australia', geo: 'International', code: 'MEL' }, _184: { name: 'Miami, Florida, United States', geo: 'US', code: 'MIA' }, _190: { name: 'Mobile, Alabama, United States', geo: 'US', code: 'MOB' }, _197: { name: 'Montreal, Quebec, Canada', geo: 'International', code: 'YMQ' }, _204: { name: 'Naples, Italy', geo: 'International', code: 'NAP' }, _207: { name: 'New Orleans, Louisiana, United States', geo: 'US', code: 'MSY' }, _208: { name: 'New York City, New York, United States', geo: 'US', code: 'NYC' }, _209: { name: 'Newark (Cape Liberty, Bayonne), New Jersey, United States', geo: 'US', code: 'EWR' }, _222: { name: 'Oslo, Norway', geo: 'International', code: 'OSL' }, _227: { name: 'Panama City, Panama', geo: 'International', code: 'PTY' }, _228: { name: 'Papeete, French Polynesia', geo: 'International', code: 'PPT' }, _229: { name: 'Paris, France', geo: 'International', code: 'PAR' }, _239: { name: 'Port Canaveral (Orlando), Florida, United States', geo: 'US', code: 'XPC' }, _260: { name: 'Reykjavik, Iceland', geo: 'International', code: 'REK' }, _271: { name: 'San Diego, California, United States', geo: 'US', code: 'SAN' }, _272: { name: 'San Francisco, California, United States', geo: 'US', code: 'SFO' }, _275: { name: 'San Juan, Puerto Rico', geo: 'US', code: 'SJU' }, _280: { name: 'Seattle, Washington, United States', geo: 'US', code: 'SEA' }, _281: { name: 'Seward, Alaska, United States', geo: 'US', code: 'SWD' }, _283: { name: 'Shanghai (Baoshan), China', geo: 'International', code: 'BAOS' }, _288: { name: 'Singapore, Singapore', geo: 'International', code: 'SIN' }, _290: { name: 'Southampton, United Kingdom', geo: 'International', code: 'SOU' }, _301: { name: 'Stockholm, Sweden', geo: 'International', code: 'STO' }, _304: { name: 'Sydney, Australia', geo: 'International', code: 'SYD' }, _307: { name: 'Tampa, Florida, United States', geo: 'US', code: 'TPA' }, _312: { name: 'Tianjin (Beijing), China', geo: 'International', code: 'TSN' }, _314: { name: 'Tokyo, Japan', geo: 'International', code: 'TYO' }, _324: { name: 'Vancouver (Vancouver, BC), British Columbia, Canada', geo: 'International', code: 'YVR' }, _327: { name: 'Venice, Italy', geo: 'International', code: 'VCE' }, _336: { name: 'Whittier, Alaska, United States', geo: 'US', code: 'WH1' } } var departurePortsRiverCruise = { } var departurePortsCruiseTour = { _6: { name: 'Anchorage, Alaska, United States', geo: 'US', code: 'ANC' }, _93: { name: 'Fairbanks, Alaska, United States', geo: 'US', code: 'FAI' }, _280: { name: 'Seattle, Washington, United States', geo: 'US', code: 'SEA' }, _281: { name: 'Seward, Alaska, United States', geo: 'US', code: 'SWD' }, _336: { name: 'Whittier, Alaska, United States', geo: 'US', code: 'WH1' } } var portsOfCall = { _5441: { name: 'Aabenraa, Denmark', geo: 'Western Europe' }, _1183: { name: 'Aalborg, Denmark', geo: 'Western Europe' }, _5507: { name: 'Aappilattoq, Greenland', geo: 'Western Europe' }, _383: { name: 'Aarhus, Denmark', geo: 'Western Europe' }, _2776: { name: 'Aberdeen, Scotland', geo: 'Western Europe' }, _385: { name: 'Abidjan, Ivory Coast', geo: 'Africa' }, _2287: { name: 'Abraao, Ilha Grande, Brazil', geo: 'South America' }, _386: { name: 'Abu Dhabi, United Arab Emirates', geo: 'Western Asia' }, _2503: { name: 'Acajutla, El Salvador', geo: 'Central America' }, _196: { name: 'Acapulco, Mexico', geo: 'North America' }, _387: { name: 'Adamstown, Pitcairn Island', geo: 'South Pacific' }, _388: { name: 'Adelaide, Australia', geo: 'South Pacific' }, _6298: { name: 'Admiralty Bay, Grenadines', geo: 'Caribbean' }, _10: { name: 'Agadir, Morocco', geo: 'Africa' }, _389: { name: 'Aghios Nikolaos, Crete, Greece', geo: 'Western Europe' }, _6300: { name: 'Agios Nikolaos, Crete, Greece', geo: 'Western Europe' }, _2918: { name: 'Ainsworth Bay, Antarctica', geo: 'Antarctica' }, _2387: { name: 'Airlie Beach, Australia', geo: 'South Pacific' }, _390: { name: 'Aitutaki, Cook Islands', geo: 'South Pacific' }, _303: { name: 'Ajaccio, Corsica, France', geo: 'Western Europe' }, _392: { name: 'Akaroa, New Zealand', geo: 'South Pacific' }, _5425: { name: 'Akita, Japan', geo: 'East Asia' }, _2887: { name: 'Akpatok Island, Canada', geo: 'North America' }, _393: { name: 'Akureyri, Iceland', geo: 'Western Europe' }, _394: { name: 'Alanya, Turkey', geo: 'Western Asia' }, _395: { name: 'Albany, Australia', geo: 'South Pacific' }, _4492: { name: 'Alcudia, Spain', geo: 'Western Europe' }, _2691: { name: 'Aldabra, Seychelles', geo: 'Africa' }, _396: { name: 'Alert Bay, British Columbia', geo: 'North America' }, _397: { name: 'Alesund, Norway', geo: 'Western Europe' }, _5: { name: 'Alexandria, Egypt', geo: 'Africa' }, _399: { name: 'Alghero, Italy', geo: 'Western Europe' }, _2504: { name: 'Algiers, Algeria', geo: 'Africa' }, _400: { name: 'Alicante, Spain', geo: 'Western Europe' }, _401: { name: 'Almeria, Spain', geo: 'Western Europe' }, _2894: { name: 'Alofi, Niue', geo: 'South Pacific' }, _402: { name: 'Alotau, Papua New Guinea', geo: 'South Pacific' }, _1180: { name: 'Alta, Norway', geo: 'Western Europe' }, _248: { name: 'Alter do Chao, Brazil', geo: 'South America' }, _404: { name: 'Amalfi, Italy', geo: 'Western Europe' }, _1196: { name: 'Amalia (Skua) Glacier, Chile', geo: 'South America' }, _5486: { name: 'Amami Oshima, Japan', geo: 'East Asia' }, _4742: { name: 'Amber Cove, Dominican Republic', geo: 'Caribbean' }, _193: { name: 'Ambon, Moluccas, Indonesia', geo: 'South East Asia' }, _3483: { name: 'Ambrym Island, Vanuatu', geo: 'South Pacific' }, _1050: { name: 'Amorgos Island, Greece', geo: 'Western Europe' }, _298: { name: 'Amsterdam, The Netherlands', geo: 'Western Europe' }, _4598: { name: 'Anadyr, Russia', geo: 'Russia' }, _331: { name: 'Anchorage, Alaska', geo: 'North America' }, _1175: { name: 'Ancona, Italy', geo: 'Western Europe' }, _408: { name: 'Andalsnes, Norway', geo: 'Western Europe' }, _2258: { name: 'Anegada, British Virgin Islands', geo: 'Caribbean' }, _410: { name: 'Angra Dos Reis, Brazil', geo: 'South America' }, _4467: { name: 'Anses D\'arlet, Martinique', geo: 'Caribbean' }, _120: { name: 'Antalya, Turkey', geo: 'Western Asia' }, _1231: { name: 'Antarctic Peninsula, Antarctica', geo: 'Antarctica' }, _29: { name: 'Antarctic Sound, Antarctica', geo: 'Antarctica' }, _3375: { name: 'Antibes, France', geo: 'Western Europe' }, _84: { name: 'Antigua, Antigua & Barbuda', geo: 'Caribbean' }, _1217: { name: 'Antofagasta, Chile', geo: 'South America' }, _1242: { name: 'Aomori, Japan', geo: 'East Asia' }, _273: { name: 'Apia, Western Samoa', geo: 'South Pacific' }, _412: { name: 'Apra, Guam', geo: 'South East Asia' }, _2301: { name: 'Aqaba, Jordan', geo: 'Western Asia' }, _5305: { name: 'Arakamchechen, Russia', geo: 'Russia' }, _1243: { name: 'Arch. Fernando de Noronha, Brazil', geo: 'South America' }, _2860: { name: 'Arendal, Norway', geo: 'Western Europe' }, _4437: { name: 'Arequipa (Matarani), Peru', geo: 'South America' }, _41: { name: 'Argostoli, Kephalonia', geo: 'Western Europe' }, _4558: { name: 'Ariau , Brazil', geo: 'South America' }, _414: { name: 'Arica, Chile', geo: 'South America' }, _2689: { name: 'Aride, Seychelles', geo: 'Africa' }, _1182: { name: 'Arkhangelsk, Russia', geo: 'Russia' }, _1: { name: 'Arrecife, Lanzarote, Canary Islands', geo: 'Western Europe' }, _5395: { name: 'Aru Islands, Indonesia', geo: 'South East Asia' }, _5602: { name: 'Arutanga, Cook Islands', geo: 'South Pacific' }, _117: { name: 'Ashdod (Jerusalem), Israel', geo: 'Western Asia' }, _367: { name: 'Astoria, Oregon', geo: 'North America' }, _2922: { name: 'Atacama, Chile', geo: 'South America' }, _3642: { name: 'Atlasov Island, Kuril Islands', geo: 'Russia' }, _5390: { name: 'Attu Island, Alaska', geo: 'North America' }, _587: { name: 'Atuona, Marquesas, French Polynesia', geo: 'South Pacific' }, _222: { name: 'Auckland, New Zealand', geo: 'South Pacific' }, _4592: { name: 'Aurland, Norway', geo: 'Western Europe' }, _470: { name: 'Avalon, Catalina Island, California', geo: 'North America' }, _4446: { name: 'Aviles, Spain', geo: 'Western Europe' }, _3693: { name: 'Azores Islands, Portugal', geo: 'Western Europe' }, _3002: { name: 'Badas, Sumbawa, Indonesia', geo: 'South East Asia' }, _420: { name: 'Baddeck, Nova Scotia', geo: 'North America' }, _6150: { name: 'Baffin Island, Nunavut, Canada', geo: 'North America' }, _256: { name: 'Bahia de Salvador, Brazil', geo: 'South America' }, _2727: { name: 'Bahia Drake, Costa Rica', geo: 'Central America' }, _1068: { name: 'Bahia Magdalena, Mexico', geo: 'North America' }, _421: { name: 'Bahrain, Bahrain', geo: 'Western Asia' }, _2511: { name: 'Baie-Commeau, Quebec', geo: 'North America' }, _422: { name: 'Balboa, Panama', geo: 'Central America' }, _169: { name: 'Bali, Indonesia', geo: 'South East Asia' }, _332: { name: 'Baltimore, Maryland', geo: 'North America' }, _6294: { name: 'Baltiysk, Russia', geo: 'Russia' }, _5514: { name: 'Banda Aceh, Indonesia', geo: 'South East Asia' }, _4671: { name: 'Banda Neira, Indonesia', geo: 'South East Asia' }, _2312: { name: 'Bandar Seri Begawan, Brunei', geo: 'South East Asia' }, _5298: { name: 'Bandol, France', geo: 'Western Europe' }, _135: { name: 'Bangkok, Thailand', geo: 'South East Asia' }, _423: { name: 'Banjul, Gambia', geo: 'Africa' }, _3380: { name: 'Bantry Bay, Ireland', geo: 'Western Europe' }, _204: { name: 'Bar Harbor, Maine', geo: 'North America' }, _5593: { name: 'Bar, Montenegro', geo: 'Eastern Europe' }, _327: { name: 'Barcelona, Spain', geo: 'Western Europe' }, _424: { name: 'Bari, Italy', geo: 'Western Europe' }, _4659: { name: 'Barrow, Alaska', geo: 'North America' }, _1653: { name: 'Bartolome (san Salvador), Galapagos Islands', geo: 'South America' }, _517: { name: 'Basse-Terre, Guadeloupe', geo: 'Caribbean' }, _3381: { name: 'Bassens, France', geo: 'Western Europe' }, _426: { name: 'Bastia, France', geo: 'Western Europe' }, _3124: { name: 'Batsfjord, Norway', geo: 'Western Europe' }, _2359: { name: 'Batumi, Georgia', geo: 'Western Asia' }, _170: { name: 'Bau Bau, Indonesia', geo: 'South East Asia' }, _6280: { name: 'Bay Islands, Honduras', geo: 'Central America' }, _2944: { name: 'Bay of Fundy, Canada', geo: 'North America' }, _428: { name: 'Bay of Islands (Paihia), New Zealand', geo: 'South Pacific' }, _2903: { name: 'Bear Island, Norway', geo: 'Western Europe' }, _1225: { name: 'Beechey Island, Canada', geo: 'North America' }, _430: { name: 'Beijing, China', geo: 'East Asia' }, _2949: { name: 'Bejaia, Algeria', geo: 'Africa' }, _249: { name: 'Belem, Brazil', geo: 'South America' }, _431: { name: 'Belfast, Northern Ireland', geo: 'Western Europe' }, _1072: { name: 'Belgrade, Serbia', geo: 'Eastern Europe' }, _89: { name: 'Belize City, Belize', geo: 'Central America' }, _432: { name: 'Belle Ile, France', geo: 'Western Europe' }, _382: { name: 'Benoa (Bali), Indonesia', geo: 'South East Asia' }, _4501: { name: 'Beppu, Japan', geo: 'East Asia' }, _2581: { name: 'Beqa, Fiji', geo: 'South Pacific' }, _434: { name: 'Bequia, Grenadines', geo: 'Caribbean' }, _233: { name: 'Bergen, Norway', geo: 'Western Europe' }, _3125: { name: 'Berlevag, Norway', geo: 'Western Europe' }, _792: { name: 'Berlin, Germany', geo: 'Western Europe' }, _437: { name: 'Bermuda', geo: 'Caribbean' }, _5394: { name: 'Big Diomede Island, Russia', geo: 'Russia' }, _438: { name: 'Bilbao, Spain', geo: 'Western Europe' }, _439: { name: 'Bimini, Bahamas', geo: 'Caribbean' }, _4303: { name: 'Bintulu, Malaysia', geo: 'South East Asia' }, _1605: { name: 'Birmingham, Alabama', geo: 'North America' }, _176: { name: 'Bitung, Sulawesi, Indonesia', geo: 'South East Asia' }, _5551: { name: 'Black Turtle Cove, Santa Cruz, Ecuador', geo: 'South America' }, _3210: { name: 'Bluff, New Zealand', geo: 'South Pacific' }, _5465: { name: 'Boa Vista, Cape Verde', geo: 'Africa' }, _441: { name: 'Boca da Valeria, Brazil', geo: 'South America' }, _2389: { name: 'Bocas Del Toro, Panama', geo: 'Central America' }, _3001: { name: 'Bodo, Norway', geo: 'Western Europe' }, _121: { name: 'Bodrum, Turkey', geo: 'Western Asia' }, _442: { name: 'Bom Bom Island, Africa', geo: 'Africa' }, _2228: { name: 'Bombay, India', geo: 'South Asia' }, _304: { name: 'Bonifacio, Corsica, France', geo: 'Western Europe' }, _270: { name: 'Bora Bora, French Polynesia', geo: 'South Pacific' }, _4510: { name: 'Boracay, Philippines', geo: 'South East Asia' }, _294: { name: 'Bordeaux, France', geo: 'Western Europe' }, _3766: { name: 'Borkum, Germany', geo: 'Western Europe' }, _1249: { name: 'Bornholm, Denmark', geo: 'Western Europe' }, _333: { name: 'Boston, Massachusetts', geo: 'North America' }, _4715: { name: 'Bozcaada, Turkey', geo: 'Western Asia' }, _1077: { name: 'Bratislava, Slovakia', geo: 'Eastern Europe' }, _3211: { name: 'Bremen, Germany', geo: 'Western Europe' }, _896: { name: 'Bremerhaven, Germany', geo: 'Western Europe' }, _1650: { name: 'Brest, France', geo: 'Western Europe' }, _95: { name: 'Bridgetown, Barbados', geo: 'Caribbean' }, _450: { name: 'Brindisi, Italy', geo: 'Western Europe' }, _53: { name: 'Brisbane, Australia', geo: 'South Pacific' }, _2798: { name: 'Bristol, United Kingdom', geo: 'Western Europe' }, _3140: { name: 'Bronnoysund, Norway', geo: 'Western Europe' }, _2557: { name: 'Brooklyn, New York', geo: 'North America' }, _54: { name: 'Broome, Australia', geo: 'South Pacific' }, _940: { name: 'Brugge, Belgium', geo: 'Western Europe' }, _2323: { name: 'Brunsbuettel, Germany', geo: 'Western Europe' }, _3592: { name: 'Bruny Island, Tasmania', geo: 'South Pacific' }, _244: { name: 'Buenos Aires, Argentina', geo: 'South America' }, _1601: { name: 'Buffalo, New York', geo: 'North America' }, _4444: { name: 'Burgas, Bulgaria', geo: 'Eastern Europe' }, _454: { name: 'Burnie, Tasmania', geo: 'South Pacific' }, _128: { name: 'Busan (Kyongju), South Korea', geo: 'East Asia' }, _5455: { name: 'Busselton, Australia', geo: 'South Pacific' }, _1427: { name: 'Butang Group, Thailand', geo: 'South East Asia' }, _5393: { name: 'Butaritari, Kiribati', geo: 'South Pacific' }, _455: { name: 'Buzios, Brazil', geo: 'South America' }, _1651: { name: 'Cabo Frio, Brazil', geo: 'South America' }, _197: { name: 'Cabo San Lucas, Mexico', geo: 'North America' }, _456: { name: 'Cabrits, Dominica', geo: 'Caribbean' }, _301: { name: 'Cadiz (Seville), Spain', geo: 'Western Europe' }, _320: { name: 'Cagliari, Sardinia, Italy', geo: 'Western Europe' }, _4334: { name: 'Cai Lan Halong Bay, Vietnam', geo: 'South East Asia' }, _55: { name: 'Cairns, Australia', geo: 'South Pacific' }, _458: { name: 'Cairo, Egypt', geo: 'Africa' }, _2383: { name: 'Caldera (San Jose), Costa Rica', geo: 'Central America' }, _265: { name: 'Callao (Lima), Peru', geo: 'South America' }, _459: { name: 'Calvi, France', geo: 'Western Europe' }, _5618: { name: 'Camboriú, Brazil', geo: 'South America' }, _5299: { name: 'Cambridge Bay, Nunavut, Canada', geo: 'North America' }, _3606: { name: 'Campbell Island, new Zealand', geo: 'South Pacific' }, _5603: { name: 'CampbelTown, Scotland', geo: 'Western Europe' }, _122: { name: 'Canakkale, Turkey', geo: 'Western Asia' }, _4337: { name: 'Canberra, Australia', geo: 'South Pacific' }, _381: { name: 'Cannes, France', geo: 'Western Europe' }, _1252: { name: 'Canouan, St. Vincent', geo: 'Caribbean' }, _4469: { name: 'Cap-Aux-Meules, Canada', geo: 'North America' }, _208: { name: 'Cape Cod, Massachusetts', geo: 'North America' }, _5312: { name: 'Cape Dezhnev, Russia', geo: 'Russia' }, _4470: { name: 'Cape Dorset, Canada', geo: 'North America' }, _866: { name: 'Cape Horn, Chile', geo: 'South America' }, _1188: { name: 'Cape Liberty (Bayonne), New Jersey', geo: 'North America' }, _24: { name: 'Cape Town, South Africa', geo: 'Africa' }, _1253: { name: 'Cape York, Australia', geo: 'South Pacific' }, _311: { name: 'Capri, Italy', geo: 'Western Europe' }, _2615: { name: 'Cardiff, Wales, United Kingdom', geo: 'Western Europe' }, _4471: { name: 'Carloforte, Italy', geo: 'Western Europe' }, _225: { name: 'Cartagena, Colombia', geo: 'South America' }, _464: { name: 'Cartagena, Spain', geo: 'Western Europe' }, _5361: { name: 'Carthage, Tunisia', geo: 'Africa' }, _465: { name: 'Casa De Campo, Dominican Republic', geo: 'Caribbean' }, _11: { name: 'Casablanca, Morocco', geo: 'Africa' }, _466: { name: 'Cassis, France', geo: 'Western Europe' }, _467: { name: 'Castaway Cay, Bahamas', geo: 'Caribbean' }, _4401: { name: 'Castellon de la Plana, Spain', geo: 'Western Europe' }, _917: { name: 'Castries, St. Lucia', geo: 'Caribbean' }, _469: { name: 'Castro, Chile', geo: 'South America' }, _471: { name: 'Catalina Island, Dominican Republic', geo: 'Caribbean' }, _322: { name: 'Catania, Sicily, Italy', geo: 'Western Europe' }, _5539: { name: 'Cavalaire-sur-mer, France', geo: 'Western Europe' }, _3215: { name: 'Cayenne, French Guiana', geo: 'South Pacific' }, _1150: { name: 'Cayman Brac, Cayman Islands', geo: 'Caribbean' }, _4305: { name: 'Cayo Largo, Cuba', geo: 'Caribbean' }, _1640: { name: 'Cayo Levantado, Dominican Republic', geo: 'Caribbean' }, _5482: { name: 'CELUKAN BAWANG, INDONESIA', geo: 'South East Asia' }, _4721: { name: 'Cernavoda, Romania', geo: 'Eastern Europe' }, _4613: { name: 'Cerro Dragon, Argentina', geo: 'South America' }, _4589: { name: 'Cesme, turkey', geo: 'Western Asia' }, _474: { name: 'Ceuta, Spain', geo: 'Western Europe' }, _3100: { name: 'Champagne Bay, Vanuatu', geo: 'South Pacific' }, _2467: { name: 'Chan May, Vietnam', geo: 'South East Asia' }, _476: { name: 'Chania, Greece', geo: 'Western Europe' }, _1260: { name: 'Channel Islands, United Kingdom', geo: 'Western Europe' }, _278: { name: 'Charleston, South Carolina', geo: 'North America' }, _105: { name: 'Charlotte Amalie, St. Thomas, U.S. Virgin Islands', geo: 'Caribbean' }, _214: { name: 'Charlottetown, Prince Edward Island', geo: 'North America' }, _478: { name: 'Charlotteville, Tobago', geo: 'Caribbean' }, _479: { name: 'Cheju City, South Korea', geo: 'East Asia' }, _162: { name: 'Chennai (Madras), India', geo: 'South Asia' }, _480: { name: 'Cherbourg, France', geo: 'Western Europe' }, _5271: { name: 'Chichi-jima, Japan', geo: 'East Asia' }, _5386: { name: 'Chignik, Alaska', geo: 'North America' }, _2390: { name: 'Chilean, Fjords', geo: 'South America' }, _1264: { name: 'Chios, Greece', geo: 'Western Europe' }, _3639: { name: 'Chirpoy Island, Kuril Islands', geo: 'Russia' }, _5518: { name: 'Chiswell Islands, Alaska', geo: 'North America' }, _223: { name: 'Christchurch, New Zealand', geo: 'South Pacific' }, _1265: { name: 'Christiansted, St. Croix', geo: 'Caribbean' }, _483: { name: 'Christmas Island, Australia', geo: 'South Pacific' }, _1187: { name: 'Christmas Island, Republic of Kiribati', geo: 'South Pacific' }, _5264: { name: 'Chukotka Province, Russia', geo: 'Russia' }, _4404: { name: 'Churchill, Manitoba', geo: 'North America' }, _3029: { name: 'Cienfuegos, Cuba', geo: 'Caribbean' }, _3691: { name: 'Cies Islands (Islas Cies), Spain', geo: 'Western Europe' }, _5487: { name: 'Ciudadela (Menorca), Spain', geo: 'Western Europe' }, _4472: { name: 'Clyde River, Canada', geo: 'North America' }, _76: { name: 'Cobh (Cork), Ireland', geo: 'Western Europe' }, _5628: { name: 'Cobia Island, Fiji', geo: 'South Pacific' }, _163: { name: 'Cochin, India', geo: 'South Asia' }, _2880: { name: 'Cocos Island, Costa Rica', geo: 'Central America' }, _547: { name: 'College Fjord, Alaska', geo: 'North America' }, _1269: { name: 'Collioure, France', geo: 'Western Europe' }, _168: { name: 'Colombo, Sri Lanka', geo: 'South Asia' }, _380: { name: 'Colon, Panama', geo: 'Central America' }, _4708: { name: 'Comino, Malta', geo: 'Western Europe' }, _5362: { name: 'Concepcion, Chile', geo: 'South America' }, _5605: { name: 'Conflict Islands, Papua New Guinea', geo: 'South Pacific' }, _6256: { name: 'Conningham Bay, Nunavut, Canada', geo: 'North America' }, _119: { name: 'Constanta, Romania', geo: 'Eastern Europe' }, _56: { name: 'Cooktown, Australia', geo: 'South Pacific' }, _2409: { name: 'Copacabana Beach, Brazil', geo: 'South America' }, _63: { name: 'Copenhagen, Denmark', geo: 'Western Europe' }, _5502: { name: 'Copinsay Island, Scotland', geo: 'Western Europe' }, _489: { name: 'Coquimbo (La Serena), Chile', geo: 'South America' }, _1088: { name: 'Cordova, Alaska', geo: 'North America' }, _146: { name: 'Corfu, Greece', geo: 'Western Europe' }, _2397: { name: 'Corigliano Calabro, Italy', geo: 'Western Europe' }, _1272: { name: 'Corinth, Greece', geo: 'Western Europe' }, _1654: { name: 'Cormorant Point (Floreana), Galapagos Islands', geo: 'South America' }, _490: { name: 'Corner Brook, Newfoundland', geo: 'North America' }, _3694: { name: 'Cornwall, England', geo: 'Western Europe' }, _4660: { name: 'Coron, Philippines', geo: 'South East Asia' }, _131: { name: 'Corregidor Island, Philippines', geo: 'South East Asia' }, _495: { name: 'Costa Maya, Mexico', geo: 'North America' }, _496: { name: 'Cotonou, Benin', geo: 'Africa' }, _5541: { name: 'Cousin Island, Seychelles', geo: 'Africa' }, _497: { name: 'Cowes, England UK', geo: 'Western Europe' }, _936: { name: 'Coxen Hole (Roatan), Honduras', geo: 'Central America' }, _202: { name: 'Cozumel, Mexico', geo: 'North America' }, _6200: { name: 'Cres, Croatia', geo: 'Eastern Europe' }, _3389: { name: 'Crete, Greece', geo: 'Western Europe' }, _369: { name: 'Cristobal, Panama', geo: 'Central America' }, _3473: { name: 'Crotone, Italy', geo: 'Western Europe' }, _1633: { name: 'Crown Bay, St. Thomas', geo: 'Caribbean' }, _103: { name: 'Cruz Bay, St. John, U.S. Virgin Islands', geo: 'Caribbean' }, _2251: { name: 'Culebrita, Puerto Rico', geo: 'Caribbean' }, _1276: { name: 'Curacao, Caribbean', geo: 'Caribbean' }, _2482: { name: 'Curieuse Island, Seychelles', geo: 'Africa' }, _3004: { name: 'Cusco, Peru', geo: 'South America' }, _501: { name: 'Cuverville Island, Antarctica', geo: 'Antarctica' }, _137: { name: 'Da Nang, Vietnam', geo: 'South East Asia' }, _13: { name: 'Dakar, Senegal', geo: 'Africa' }, _3702: { name: 'Dakhla, Western Sahara', geo: 'Africa' }, _502: { name: 'Dalian, China', geo: 'East Asia' }, _3781: { name: 'Daphne Island (galapagos), Ecuador', geo: 'South America' }, _1089: { name: 'Darien Jungle, Panama', geo: 'Central America' }, _4636: { name: 'Dartmouth, United Kingdom', geo: 'Western Europe' }, _57: { name: 'Darwin, Australia', geo: 'South Pacific' }, _42: { name: 'Deception Island, Antarctica', geo: 'Antarctica' }, _147: { name: 'Delos, Greece', geo: 'Western Europe' }, _142: { name: 'Delphi, Greece', geo: 'Western Europe' }, _2603: { name: 'Denali, Alaska', geo: 'North America' }, _6184: { name: 'Denia, Spain', geo: 'Western Europe' }, _2373: { name: 'Deshaies, Guadeloupe', geo: 'Caribbean' }, _1092: { name: 'Desolation Sound, British Columbia', geo: 'North America' }, _1284: { name: 'Desroches, Seychelle Islands', geo: 'Africa' }, _264: { name: 'Devils Island, French Guiana', geo: 'South Pacific' }, _5522: { name: 'Devon Island, Nunavut, Canada', geo: 'North America' }, _2808: { name: 'Diego Suarez (Antsiranana), Madagascar', geo: 'Africa' }, _123: { name: 'Dikili, Turkey', geo: 'Western Asia' }, _4702: { name: 'Dili, East Timor', geo: 'South East Asia' }, _2723: { name: 'Disko Bay, Greenland', geo: 'Western Europe' }, _4: { name: 'Djibouti, Africa', geo: 'Africa' }, _506: { name: 'Djupivogur, Iceland', geo: 'Western Europe' }, _507: { name: 'Doha, Qatar', geo: 'Western Asia' }, _4508: { name: 'Doini Island, Papua New Guinea', geo: 'South Pacific' }, _508: { name: 'Dominica, Caribbean', geo: 'Caribbean' }, _3224: { name: 'Donegal, Ireland', geo: 'Western Europe' }, _509: { name: 'Doubtful Sound, New Zealand', geo: 'South Pacific' }, _4637: { name: 'Douglas, Isle Of Man', geo: 'Western Europe' }, _74: { name: 'Dover (London), England', geo: 'Western Europe' }, _1655: { name: 'Dragon Hill (santa Cruz), Galapagos Islands', geo: 'South America' }, _2907: { name: 'Drake Passage, Antarctica', geo: 'Antarctica' }, _1052: { name: 'Dravuni Island, Fiji', geo: 'South Pacific' }, _3672: { name: 'Duart Castle, Scotland', geo: 'Western Europe' }, _51: { name: 'Dubai, United Arab Emirates', geo: 'Western Asia' }, _511: { name: 'Dublin, Ireland', geo: 'Western Europe' }, _302: { name: 'Dubrovnik, Croatia', geo: 'Eastern Europe' }, _2564: { name: 'Ducie Island, United Kingdom', geo: 'Western Europe' }, _77: { name: 'Dun Laoghaire, Dublin, Ireland', geo: 'Western Europe' }, _6260: { name: 'Dundas Harbour, Nunavut, Canada', geo: 'North America' }, _1288: { name: 'Dundee, Scotland', geo: 'Western Europe' }, _2217: { name: 'Dunedin, New Zealand', geo: 'South Pacific' }, _3652: { name: 'Dunkirk, France', geo: 'Western Europe' }, _512: { name: 'Dunmore East (Waterford), Ireland', geo: 'Western Europe' }, _25: { name: 'Durban, South Africa', geo: 'Africa' }, _2604: { name: 'Durham, England', geo: 'Western Europe' }, _2336: { name: 'Durres, Albania', geo: 'Eastern Europe' }, _513: { name: 'Dusky Sound, New Zealand', geo: 'South Pacific' }, _514: { name: 'Dutch Harbor, Alaska', geo: 'North America' }, _5634: { name: 'Dynjandi, Iceland', geo: 'Western Europe' }, _1289: { name: 'East London, South Africa', geo: 'Africa' }, _515: { name: 'Easter Island, Chile', geo: 'South America' }, _6291: { name: 'Eden Island, Seychelles', geo: 'Africa' }, _2750: { name: 'Eden, Australia', geo: 'South Pacific' }, _1053: { name: 'Eidfjord, Norway', geo: 'Western Europe' }, _2640: { name: 'Eilat, Israel', geo: 'Western Asia' }, _3397: { name: 'El Hierro, Spain', geo: 'Western Europe' }, _2494: { name: 'El Nido, Philippines', geo: 'South East Asia' }, _2269: { name: 'Elafonisos, Greece', geo: 'Western Europe' }, _3398: { name: 'Elat, Egypt', geo: 'Africa' }, _518: { name: 'Elba Island, Italy', geo: 'Western Europe' }, _519: { name: 'Elephant Island, Antarctica', geo: 'Antarctica' }, _1656: { name: 'Elizabeth Bay (Isabela), Galapagos Islands', geo: 'South America' }, _1230: { name: 'Ellesmere Island, Canada', geo: 'North America' }, _3613: { name: 'Enderby Island, Auckland Islands', geo: 'South Pacific' }, _1451: { name: 'Endicott Arm, Alaska', geo: 'North America' }, _361: { name: 'Ensenada, Mexico', geo: 'North America' }, _3448: { name: 'Ephesus, Turkey', geo: 'Western Asia' }, _522: { name: 'Ermoupolis, Syros, Greece', geo: 'Western Europe' }, _523: { name: 'Esbjerg, Denmark', geo: 'Western Europe' }, _4447: { name: 'Eskifjordur, Iceland', geo: 'Western Europe' }, _261: { name: 'Esmeraldas, Ecuador', geo: 'South America' }, _3020: { name: 'Espanola (Hood) Island, Ecuador', geo: 'South America' }, _4335: { name: 'Esperance, Australia', geo: 'South Pacific' }, _2252: { name: 'Esperanza, Vieques', geo: 'Caribbean' }, _1292: { name: 'Espiritu Santo, Vanuatu', geo: 'South Pacific' }, _6142: { name: 'Etah, Greenland', geo: 'Western Europe' }, _526: { name: 'Exmouth, Australia', geo: 'South Pacific' }, _2574: { name: 'Fairbanks, Alaska', geo: 'North America' }, _527: { name: 'Fakarava, Tahiti', geo: 'South Pacific' }, _528: { name: 'Falmouth Harbour, Antigua', geo: 'Caribbean' }, _491: { name: 'Falmouth, Cornwall, England', geo: 'Western Europe' }, _2573: { name: 'Falmouth, Jamaica', geo: 'Caribbean' }, _530: { name: 'Fanning Island, Kiribati', geo: 'South Pacific' }, _2736: { name: 'Faroe Islands, Denmark', geo: 'Western Europe' }, _2630: { name: 'Farsund, Norway', geo: 'Western Europe' }, _531: { name: 'Fatu Hiva, French Polynesia', geo: 'South Pacific' }, _1638: { name: 'Ferrol, Spain', geo: 'Western Europe' }, _6244: { name: 'Ferryland, Canada', geo: 'North America' }, _2341: { name: 'Fethiye, Turkey', geo: 'Western Asia' }, _3131: { name: 'Finnsnes, Norway', geo: 'Western Europe' }, _5329: { name: 'Fischer\'s Cove, British Virgin Islands', geo: 'Caribbean' }, _1298: { name: 'Fishguard, Wales', geo: 'Western Europe' }, _533: { name: 'Fiskardo, Cephalonia Island', geo: 'Western Europe' }, _534: { name: 'Fjordland, New Zealand', geo: 'South Pacific' }, _234: { name: 'Flaam, Norway', geo: 'Western Europe' }, _3227: { name: 'Flinders Island, Australia', geo: 'South Pacific' }, _1381: { name: 'Florence, Italy', geo: 'Western Europe' }, _1404: { name: 'Flores, Indonesia', geo: 'South East Asia' }, _3144: { name: 'Floro, Norway', geo: 'Western Europe' }, _3722: { name: 'Folegandros, Greece', geo: 'Western Europe' }, _1453: { name: 'Formentera, Balearic Islands', geo: 'Western Europe' }, _334: { name: 'Fort Lauderdale (Port Everglades), Florida', geo: 'North America' }, _6253: { name: 'Fort Ross, California', geo: 'North America' }, _6281: { name: 'Fort San Lorenzo, Panama', geo: 'Central America' }, _4411: { name: 'Fort William, Scotland', geo: 'Western Europe' }, _843: { name: 'Fort-de-France, Martinique', geo: 'Caribbean' }, _252: { name: 'Fortaleza, Brazil', geo: 'South America' }, _538: { name: 'Fowey, Cornwall, England', geo: 'Western Europe' }, _2620: { name: 'Foynes, Ireland', geo: 'Western Europe' }, _2811: { name: 'Fraser Island, Australia', geo: 'South Pacific' }, _4707: { name: 'Fredericia, Denmark', geo: 'Western Europe' }, _1454: { name: 'Frederikstad, St. Croix', geo: 'Caribbean' }, _4621: { name: 'Fredrikstad, Norway', geo: 'Western Europe' }, _540: { name: 'Freeport, Bahamas', geo: 'Caribbean' }, _3229: { name: 'Freetown, Sierre Leone', geo: 'Africa' }, _5540: { name: 'Frejus, France', geo: 'Western Europe' }, _541: { name: 'Fremantle, Australia', geo: 'South Pacific' }, _542: { name: 'Fuerte Amador, Panama', geo: 'Central America' }, _1023: { name: 'Fuerteventura, Canary Islands', geo: 'Western Europe' }, _543: { name: 'Fujairah, United Arab Emirates', geo: 'Western Asia' }, _2220: { name: 'Fukuoka, Japan', geo: 'East Asia' }, _371: { name: 'Funchal, Madeira, Portugal', geo: 'Western Europe' }, _1382: { name: 'Gaeta, Italy', geo: 'Western Europe' }, _4477: { name: 'Gairloch, Greenland', geo: 'Western Europe' }, _3402: { name: 'Galapagos Islands, Ecuador', geo: 'South America' }, _3027: { name: 'Galle, Sri Lanka', geo: 'South Asia' }, _3169: { name: 'Gallipoli, Turkey', geo: 'Western Asia' }, _1384: { name: 'Gallipolis, Italy', geo: 'Western Europe' }, _335: { name: 'Galveston, Texas', geo: 'North America' }, _2812: { name: 'Galway, Ireland', geo: 'Western Europe' }, _6177: { name: 'Gamagori, Japan', geo: 'East Asia' }, _2917: { name: 'Garabaldi, Argentina', geo: 'South America' }, _5525: { name: 'Garove Island, Papua New Guinea', geo: 'South Pacific' }, _546: { name: 'Gaspe, Quebec', geo: 'North America' }, _548: { name: 'Gatun Lake, Panama Canal, Panama', geo: 'Central America' }, _550: { name: 'Gdansk, Poland', geo: 'Eastern Europe' }, _68: { name: 'Gdynia, Poland', geo: 'Eastern Europe' }, _1459: { name: 'Geelong, Australia', geo: 'South Pacific' }, _235: { name: 'Geiranger, Norway', geo: 'Western Europe' }, _551: { name: 'General San Martin, Peru', geo: 'South America' }, _313: { name: 'Genoa, Italy', geo: 'Western Europe' }, _3003: { name: 'Genovesa (Tower) Island, Ecuador', geo: 'South America' }, _1406: { name: 'George Town, Ascension Island, United Kingdom', geo: 'Western Europe' }, _2523: { name: 'Georgetown, Barbados', geo: 'Caribbean' }, _90: { name: 'Georgetown, Grand Cayman, Cayman Islands', geo: 'Caribbean' }, _4676: { name: 'Georgetown, Guyana', geo: 'South America' }, _2987: { name: 'Georgetown, Penang, Malaysia', geo: 'South East Asia' }, _2405: { name: 'Geraldton, Australia', geo: 'South Pacific' }, _2297: { name: 'Giardini Naxos, Sicily', geo: 'Western Europe' }, _310: { name: 'Gibraltar, United Kingdom', geo: 'Western Europe' }, _1054: { name: 'Gijon, Spain', geo: 'Western Europe' }, _2621: { name: 'Gisborne, New Zealand', geo: 'South Pacific' }, _3232: { name: 'Gizo, Solomon Islands', geo: 'South Pacific' }, _5322: { name: 'Gjoa Haven, Nunavut', geo: 'North America' }, _30: { name: 'Glacier Bay, Alaska', geo: 'North America' }, _5360: { name: 'Gladstone, Australia', geo: 'South Pacific' }, _4678: { name: 'Glengariff, Ireland', geo: 'Western Europe' }, _1377: { name: 'Gloucester, Massachusetts', geo: 'North America' }, _165: { name: 'Goa, India', geo: 'South Asia' }, _557: { name: 'Gold Harbour, South Georgia', geo: 'Antarctica' }, _558: { name: 'Golfito, Costa Rica', geo: 'Central America' }, _4478: { name: 'Golfo Arranci, Italy', geo: 'Western Europe' }, _1463: { name: 'Golfo Dulce, Panama', geo: 'Central America' }, _2879: { name: 'Gorgona Island, Colombia', geo: 'South America' }, _3768: { name: 'Goteborg, Sweden', geo: 'Western Europe' }, _560: { name: 'Gothenburg, Sweden', geo: 'Western Europe' }, _561: { name: 'Gozo, Malta', geo: 'Western Europe' }, _2605: { name: 'Gran Canaria, Canary Islands', geo: 'Western Europe' }, _5549: { name: 'Granada, Spain', geo: 'Western Europe' }, _1648: { name: 'Grand Bahama Island, Bahamas', geo: 'Caribbean' }, _2295: { name: 'Grand Bay, Canouan, Grenadines', geo: 'Caribbean' }, _563: { name: 'Grand Turk, Turks and Caicos', geo: 'Caribbean' }, _2379: { name: 'Grande Anse, Guadeloupe', geo: 'Caribbean' }, _564: { name: 'Gravdal, Norway', geo: 'Western Europe' }, _58: { name: 'Great Barrier Reef, Australia', geo: 'South Pacific' }, _1473: { name: 'Great Exuma, Bahamas', geo: 'Caribbean' }, _2263: { name: 'Great Harbor, Peter Island, BVI', geo: 'Caribbean' }, _566: { name: 'Great Stirrup Cay, Bahamas', geo: 'Caribbean' }, _5606: { name: 'Great Yarmouth, Norfolk', geo: 'Western Europe' }, _80: { name: 'Greenock (Glasgow), Scotland', geo: 'Western Europe' }, _2939: { name: 'Greenwich, England', geo: 'Western Europe' }, _1379: { name: 'Grenada, Caribbean', geo: 'Caribbean' }, _2712: { name: 'Grimsey, Iceland', geo: 'Western Europe' }, _2456: { name: 'Grundarfjordur, Iceland', geo: 'Western Europe' }, _569: { name: 'Grytviken, South Georgia', geo: 'Antarctica' }, _1495: { name: 'Guadalcanal, South Pacific', geo: 'South Pacific' }, _570: { name: 'Guadeloupe, Caribbean', geo: 'Caribbean' }, _4385: { name: 'Guajara, Brazil', geo: 'South America' }, _571: { name: 'Guam, Asia', geo: 'South East Asia' }, _262: { name: 'Guayaquil (Quito), Ecuador', geo: 'South America' }, _2622: { name: 'Guaymas Sonora, Mexico', geo: 'North America' }, _3742: { name: 'Gudhjem (Bornholm), Denmark', geo: 'Western Europe' }, _574: { name: 'Gudvangen, Norway', geo: 'Western Europe' }, _1497: { name: 'Gustavia, St. Barts', geo: 'Caribbean' }, _576: { name: 'Gythion, Greece', geo: 'Western Europe' }, _577: { name: 'Ha Long Bay, Vietnam', geo: 'South East Asia' }, _1418: { name: 'Hagi, Japan', geo: 'East Asia' }, _118: { name: 'Haifa, Israel', geo: 'Western Asia' }, _1362: { name: 'Haikou, China', geo: 'East Asia' }, _31: { name: 'Haines, Alaska', geo: 'North America' }, _138: { name: 'Haiphong (Hanoi), Vietnam', geo: 'South East Asia' }, _5283: { name: 'Hakata, Japan', geo: 'East Asia' }, _578: { name: 'Hakodate, Japan', geo: 'East Asia' }, _579: { name: 'Half Moon Cay (Little San Salvador Island), Bahama', geo: 'Caribbean' }, _215: { name: 'Halifax, Nova Scotia', geo: 'North America' }, _1220: { name: 'Hall Island, Alaska', geo: 'North America' }, _6242: { name: 'Hamada, Japan', geo: 'East Asia' }, _6262: { name: 'Hamajima, Japan', geo: 'East Asia' }, _4310: { name: 'Hambantota, Sri Lanka', geo: 'South Asia' }, _1032: { name: 'Hamilton Island, Australia', geo: 'South Pacific' }, _108: { name: 'Hamilton, Bermuda', geo: 'Caribbean' }, _581: { name: 'Hammerfest, Norway', geo: 'Western Europe' }, _2515: { name: 'Hanga Roa, Chile', geo: 'South America' }, _3759: { name: 'Hanoi, Vietnam', geo: 'South East Asia' }, _6255: { name: 'Hanstholm, Denamark', geo: 'Western Europe' }, _582: { name: 'Hardy Reef, Australia', geo: 'South Pacific' }, _1179: { name: 'Harstad, Norway', geo: 'Western Europe' }, _4743: { name: 'Harvest Caye, Belize', geo: 'Central America' }, _360: { name: 'Harwich (London), England', geo: 'Western Europe' }, _6247: { name: 'Hasvik, Norway', geo: 'Western Europe' }, _2507: { name: 'Haugesund, Norway', geo: 'Western Europe' }, _1498: { name: 'Havana, Cuba', geo: 'Caribbean' }, _3128: { name: 'Havoysund, Norway', geo: 'Western Europe' }, _2582: { name: 'Havre St. Pierre, Quebec', geo: 'North America' }, _2437: { name: 'Heimaey, Iceland', geo: 'Western Europe' }, _237: { name: 'Hellesylt, Norway', geo: 'Western Europe' }, _70: { name: 'Helsingborg, Sweden', geo: 'Western Europe' }, _1499: { name: 'Helsingor, Denmark', geo: 'Western Europe' }, _66: { name: 'Helsinki, Finland', geo: 'Western Europe' }, _2623: { name: 'Hendaye (Biarritz), France', geo: 'Western Europe' }, _148: { name: 'Heraklion, Crete, Greece', geo: 'Western Europe' }, _2260: { name: 'Herradura, Costa Rica', geo: 'Central America' }, _155: { name: 'Hilo, Hawaii', geo: 'North America' }, _1419: { name: 'Himeji, Japan', geo: 'East Asia' }, _182: { name: 'Hiroshima, Japan', geo: 'East Asia' }, _6178: { name: 'Hitachinaka, Japan', geo: 'East Asia' }, _6241: { name: 'Hjorundfjorden, Norway', geo: 'Western Europe' }, _139: { name: 'Ho Chi Minh City (Saigon), Vietnam', geo: 'South East Asia' }, _59: { name: 'Hobart, Australia', geo: 'South Pacific' }, _1519: { name: 'Hodeidah, Yemen', geo: 'Western Asia' }, _5319: { name: 'Holman, Nunavat', geo: 'North America' }, _2755: { name: 'Holtenau, Germany', geo: 'Western Europe' }, _5548: { name: 'Holy Loch, Scotland', geo: 'Western Europe' }, _589: { name: 'Holyhead, Wales', geo: 'Western Europe' }, _1110: { name: 'Homer, Alaska', geo: 'North America' }, _4550: { name: 'Honeymoon Beach, Water Island, USVI', geo: 'Caribbean' }, _590: { name: 'Honfleur, France', geo: 'Western Europe' }, _591: { name: 'Hong Gai (Hanoi), Vietnam', geo: 'South East Asia' }, _111: { name: 'Hong Kong, Hong Kong SAR, China', geo: 'East Asia' }, _592: { name: 'Honiara, Soloman Island', geo: 'South Pacific' }, _238: { name: 'Honningsvag (North Cape), Norway', geo: 'Western Europe' }, _336: { name: 'Honolulu, Oahu, Hawaii', geo: 'North America' }, _6175: { name: 'Hoonah, Alaska', geo: 'North America' }, _2532: { name: 'Hornbjarg Bird Cliffs, Iceland', geo: 'Western Europe' }, _6159: { name: 'Hornstrandir, Iceland', geo: 'Western Europe' }, _2720: { name: 'Hornsund, Norway', geo: 'Western Europe' }, _6250: { name: 'Hornvika, Norway', geo: 'Western Europe' }, _290: { name: 'Horta, Azores, Portugal', geo: 'Western Europe' }, _4575: { name: 'Hososhima, Japan', geo: 'East Asia' }, _6206: { name: 'Houghton, Michigan', geo: 'North America' }, _6284: { name: 'Hua Hin, Thailand', geo: 'South East Asia' }, _271: { name: 'Huahine, French Polynesia', geo: 'South Pacific' }, _4578: { name: 'Hualien, Taiwan, China', geo: 'East Asia' }, _2813: { name: 'Huatulco, Mexico', geo: 'North America' }, _32: { name: 'Hubbard Glacier, Alaska', geo: 'North America' }, _1520: { name: 'Hue, Vietnam', geo: 'South East Asia' }, _2524: { name: 'Huelva, Spain', geo: 'Western Europe' }, _2866: { name: 'Hull, England', geo: 'Western Europe' }, _5448: { name: 'Hundested, Denmark', geo: 'Western Europe' }, _5353: { name: 'Hundred Islands, Philippines', geo: 'South East Asia' }, _2531: { name: 'Husavik, Iceland', geo: 'Western Europe' }, _4526: { name: 'Hvalsey, Greenland', geo: 'Western Europe' }, _595: { name: 'Hvar, Croatia', geo: 'Eastern Europe' }, _1465: { name: 'Hydra, Greece', geo: 'Western Europe' }, _596: { name: 'IAnse Au Meadow, Canada', geo: 'North America' }, _597: { name: 'Ibiza, Spain', geo: 'Western Europe' }, _1222: { name: 'Icy Strait, Alaska', geo: 'North America' }, _4493: { name: 'Igoumenitsa, Greece', geo: 'Western Europe' }, _3089: { name: 'Ijmuiden, Netherlands', geo: 'Western Europe' }, _6286: { name: 'Ikaria, Greece', geo: 'Western Europe' }, _3108: { name: 'Ile Bonaventure, Canada', geo: 'North America' }, _599: { name: 'Ile Des Pins, New Caledonia', geo: 'South Pacific' }, _687: { name: 'Ile Royale, French Guiana', geo: 'South Pacific' }, _2612: { name: 'Iles De La Madeleine, Quebec', geo: 'North America' }, _600: { name: 'Iles des Saintes, Guadeloupe', geo: 'Caribbean' }, _3173: { name: 'Iles du Salut, Guiana', geo: 'South Pacific' }, _4727: { name: 'Ilfracombe, England', geo: 'Western Europe' }, _601: { name: 'Ilha Grande, Brazil', geo: 'South America' }, _602: { name: 'Ilhabela, Brazil', geo: 'South America' }, _603: { name: 'Ilheus(Bahia), Brazil', geo: 'South America' }, _6269: { name: 'Ilocos (Salomague), Philippines', geo: 'South East Asia' }, _2744: { name: 'Ilulissat, Greenland', geo: 'Western Europe' }, _2639: { name: 'Incheon, South Korea', geo: 'East Asia' }, _5597: { name: 'Innvikfjorden, Norway', geo: 'Western Europe' }, _33: { name: 'Inside Passage, Alaska', geo: 'North America' }, _81: { name: 'Invergordon, Scotland', geo: 'Western Europe' }, _606: { name: 'Inverness, Scotland', geo: 'Western Europe' }, _607: { name: 'Iona, Scotland', geo: 'Western Europe' }, _4515: { name: 'Iqaluit, Nunavut, Canada', geo: 'North America' }, _608: { name: 'Iquique, Chile', geo: 'South America' }, _4381: { name: 'Iquitos, Peru', geo: 'South America' }, _609: { name: 'Iraklion (Heraklion), Crete, Greece', geo: 'Western Europe' }, _5543: { name: 'Isabel Segunda, Vieques, Puerto Rico', geo: 'Caribbean' }, _1521: { name: 'Isafjord, Iceland', geo: 'Western Europe' }, _3747: { name: 'Isfjorden, Spitsbergen, Norway', geo: 'Western Europe' }, _2814: { name: 'Ishigaki, Ryukyu Island', geo: 'East Asia' }, _5572: { name: 'Ishinomaki, Japan', geo: 'East Asia' }, _1203: { name: 'Isla Baltra, Galapagos Islands', geo: 'South America' }, _1207: { name: 'Isla Bartolome, Galapagos Islands', geo: 'South America' }, _6277: { name: 'Isla De La Juventud, Cuba', geo: 'Caribbean' }, _2900: { name: 'Isla de la Plata, Ecuador', geo: 'South America' }, _612: { name: 'Isla de Providencia, Colombia', geo: 'South America' }, _6257: { name: 'Isla de Utila, Honduras', geo: 'Central America' }, _1209: { name: 'Isla Isabela (Caleta Tagus), Galapagos Islands', geo: 'South America' }, _2932: { name: 'Isla Lobos De Tierra, Peru', geo: 'South America' }, _613: { name: 'Isla Margarita, Venezuela', geo: 'South America' }, _1204: { name: 'Isla North Seymour, Galapagos Islands', geo: 'South America' }, _2555: { name: 'Isla Pan De Acuzar, Chile', geo: 'South America' }, _5588: { name: 'Isla Parida, Panama', geo: 'Central America' }, _1212: { name: 'Isla Rabida, Galapagos Islands', geo: 'South America' }, _1211: { name: 'Isla Santiago (Puerto Egas), Galapagos Islands', geo: 'South America' }, _5437: { name: 'Island of Mozambique, Mozambique', geo: 'Africa' }, _4658: { name: 'Islas Ballestas, Peru', geo: 'South America' }, _5609: { name: 'Islas Guanape, Peru', geo: 'South America' }, _3716: { name: 'Islas Los Islotes, Mexico', geo: 'North America' }, _3741: { name: 'Islas Malvinas (Falkland Islands), Antarctica', geo: 'Antarctica' }, _2772: { name: 'Islay, Scotland', geo: 'Western Europe' }, _2406: { name: 'Isle Of Pines, New Caledonia', geo: 'South Pacific' }, _3508: { name: 'Isle of Skye, United Kingdom', geo: 'Western Europe' }, _1504: { name: 'Isle of Wight, United Kingdom', geo: 'Western Europe' }, _124: { name: 'Istanbul, Turkey', geo: 'Western Asia' }, _618: { name: 'Itajai, Brazil', geo: 'South America' }, _2238: { name: 'Itea, Greece', geo: 'Western Europe' }, _3728: { name: 'Ithaca (Ithaka), Greece', geo: 'Western Europe' }, _6155: { name: 'Itilleq, Greenland', geo: 'Western Europe' }, _5529: { name: 'Ittoqqortoormiit, Greenland', geo: 'Western Europe' }, _1503: { name: 'Izmir, Turkey', geo: 'Western Asia' }, _620: { name: 'Jacksonville, Florida', geo: 'North America' }, _171: { name: 'Jakarta, Java, Indonesia', geo: 'South East Asia' }, _621: { name: 'Jakobshavn, Greenland', geo: 'Western Europe' }, _622: { name: 'Jamestown, St. Helena', geo: 'Africa' }, _181: { name: 'Jayapura, New Guinea', geo: 'South Pacific' }, _1523: { name: 'Jeddah, Saudi Arabia', geo: 'Western Asia' }, _2592: { name: 'Jeju Island, South Korea', geo: 'East Asia' }, _4695: { name: 'Jondal, Norway', geo: 'Western Europe' }, _624: { name: 'Jost Van Dyke, British Virgin Islands', geo: 'Caribbean' }, _1490: { name: 'Juan Les Pins (Antibes), France', geo: 'Western Europe' }, _34: { name: 'Juneau, Alaska', geo: 'North America' }, _183: { name: 'Kagoshima, Kyushu, Japan', geo: 'East Asia' }, _157: { name: 'Kahului, Maui, Hawaii', geo: 'North America' }, _626: { name: 'Kaikoura, New Zealand', geo: 'South Pacific' }, _644: { name: 'Kailua-Kona, Hawaii', geo: 'North America' }, _627: { name: 'Kailua, Hawaii', geo: 'North America' }, _1114: { name: 'Kake, Alaska', geo: 'North America' }, _3345: { name: 'Kalabahi, Indonesia', geo: 'South East Asia' }, _2950: { name: 'Kalamata, Greece', geo: 'Western Europe' }, _3243: { name: 'Kamena Vourla, Greece', geo: 'Western Europe' }, _2610: { name: 'Kamloops, British Columbia', geo: 'North America' }, _628: { name: 'Kanazawa, Japan', geo: 'East Asia' }, _5531: { name: 'Kangaamiut, Greenland', geo: 'Western Europe' }, _2910: { name: 'Kangaroo Island, Australia', geo: 'South Pacific' }, _2722: { name: 'Kangerlussuaq, Greenland', geo: 'Western Europe' }, _629: { name: 'Kao-Hsiung, Taiwan, China', geo: 'East Asia' }, _5604: { name: 'Karatsu, Japan', geo: 'East Asia' }, _630: { name: 'Karlskrona, Sweden', geo: 'Western Europe' }, _4476: { name: 'Karrat, Greenland', geo: 'Western Europe' }, _143: { name: 'Katakolon (Olympia), Greece', geo: 'Western Europe' }, _632: { name: 'Kauai, Hawaii', geo: 'North America' }, _2337: { name: 'Kavala, Greece', geo: 'Western Europe' }, _134: { name: 'Keelung (Taipei), Taiwan, China', geo: 'East Asia' }, _473: { name: 'Kefalonia, Greece', geo: 'Western Europe' }, _35: { name: 'Ketchikan, Alaska', geo: 'North America' }, _281: { name: 'Key West, Florida', geo: 'North America' }, _635: { name: 'Khasab, Oman', geo: 'Western Asia' }, _4591: { name: 'Khor Al Fakkan, United Arab Emirates', geo: 'Western Asia' }, _4325: { name: 'Kiel Canal, Germany', geo: 'Western Europe' }, _366: { name: 'Kiel, Germany', geo: 'Western Europe' }, _2586: { name: 'Killybegs, Ireland', geo: 'Western Europe' }, _2875: { name: 'Kilwa, Tanzania', geo: 'Africa' }, _2407: { name: 'Kimberley Coast, Australia', geo: 'South Pacific' }, _636: { name: 'Kings Wharf, Bermuda', geo: 'Caribbean' }, _1622: { name: 'Kingston, New York', geo: 'North America' }, _6207: { name: 'Kingston, Ontario', geo: 'North America' }, _4509: { name: 'Kiriwina Island, Trobriand Islands, Papua New Guin', geo: 'South Pacific' }, _2332: { name: 'Kirkenes, Norway', geo: 'Western Europe' }, _637: { name: 'Kirkwall, Scotland', geo: 'Western Europe' }, _5255: { name: 'Kiska Harbor, Aleutian Islands, Alaska', geo: 'North America' }, _5564: { name: 'Kitakyushu, Japan', geo: 'East Asia' }, _3511: { name: 'Kitava, Trobriand Islands, Papua New Guinea', geo: 'South Pacific' }, _638: { name: 'Kithira, Greece', geo: 'Western Europe' }, _3127: { name: 'Kjollefjord, Norway', geo: 'Western Europe' }, _639: { name: 'Klaipeda, Lithuania', geo: 'Eastern Europe' }, _4600: { name: 'Klaksvik, Faroe Islands', geo: 'Western Europe' }, _5544: { name: 'Klemtu, British Columbia, Canada', geo: 'North America' }, _640: { name: 'Ko Kood, Thailand', geo: 'South East Asia' }, _1432: { name: 'Ko Kradan, Thailand', geo: 'South East Asia' }, _3634: { name: 'Ko Kut, Thailand', geo: 'South East Asia' }, _1434: { name: 'Ko Miang, Thailand', geo: 'South East Asia' }, _1436: { name: 'Ko Rok Nok, Thailand', geo: 'South East Asia' }, _641: { name: 'Ko Samui, Thailand', geo: 'South East Asia' }, _1437: { name: 'Ko Surin, Thailand', geo: 'South East Asia' }, _184: { name: 'Kobe, Japan', geo: 'East Asia' }, _3092: { name: 'Kochi, India', geo: 'South Asia' }, _4697: { name: 'Kochi, Japan', geo: 'East Asia' }, _642: { name: 'Kodiak, Alaska', geo: 'North America' }, _643: { name: 'Koh Hong, Thailand', geo: 'South East Asia' }, _5320: { name: 'Kolyuchin Island, Russia', geo: 'Russia' }, _174: { name: 'Komodo Island, Indonesia', geo: 'South East Asia' }, _158: { name: 'Kona, Hawaii', geo: 'North America' }, _2358: { name: 'Koper, Slovenia', geo: 'Eastern Europe' }, _645: { name: 'Korcula, Croatia', geo: 'Eastern Europe' }, _2625: { name: 'Koror, Palau', geo: 'South Pacific' }, _1445: { name: 'Korsakov, Sakhalin, Russia', geo: 'Russia' }, _149: { name: 'Kos, Greece', geo: 'Western Europe' }, _4639: { name: 'Kosrae, Federated States of Micronesia', geo: 'South East Asia' }, _647: { name: 'Kota Kinabalu, Malaysia', geo: 'South East Asia' }, _5505: { name: 'Kotka, Finland', geo: 'Western Europe' }, _1525: { name: 'Kotor, Montenegro', geo: 'Eastern Europe' }, _3248: { name: 'Krakatoa, Indonesia', geo: 'South East Asia' }, _5281: { name: 'Krakow, Poland', geo: 'Eastern Europe' }, _5483: { name: 'Kralendijk, Bonaire', geo: 'Caribbean' }, _889: { name: 'Kralendijk, Bonaire, Dutch Antilles', geo: 'Caribbean' }, _649: { name: 'Kristiansund, Norway', geo: 'Western Europe' }, _3739: { name: 'Krossfjorden, Norway', geo: 'Western Europe' }, _5315: { name: 'Ksamili, Albania', geo: 'Eastern Europe' }, _189: { name: 'Kuching, Malaysia', geo: 'South East Asia' }, _5254: { name: 'Kumamoto, Kyushu, Japan', geo: 'East Asia' }, _5434: { name: 'Kumano, Japan', geo: 'East Asia' }, _2762: { name: 'Kupang, West Timor, Indonesia', geo: 'South East Asia' }, _6301: { name: 'Kuri Bay, Australia', geo: 'South Pacific' }, _5274: { name: 'Kuril Islands, Russia', geo: 'Russia' }, _125: { name: 'Kusadasi (Ephesus), Turkey', geo: 'Western Asia' }, _4503: { name: 'Kushiro, Japan', geo: 'East Asia' }, _6258: { name: 'Kvanefjord, Greenland', geo: 'Western Europe' }, _3669: { name: 'Kyle of Lochalsh, Scotland', geo: 'Western Europe' }, _3724: { name: 'Kythnos, Greece', geo: 'Western Europe' }, _2583: { name: 'La Baie, Canada', geo: 'North America' }, _656: { name: 'La Coruna, Spain', geo: 'Western Europe' }, _657: { name: 'La Digue, Seychelles', geo: 'Africa' }, _659: { name: 'La Goulette, Tunisia', geo: 'Africa' }, _661: { name: 'La Pallice La Rochelle, France', geo: 'Western Europe' }, _5501: { name: 'La Palma, Spain', geo: 'Western Europe' }, _664: { name: 'La Paz, Mexico', geo: 'North America' }, _665: { name: 'La Possession, Reunion', geo: 'Africa' }, _666: { name: 'La Rochelle, France', geo: 'Western Europe' }, _667: { name: 'La Romana, Dominican Republic', geo: 'Caribbean' }, _2971: { name: 'La Savina, Formentera, Spain', geo: 'Western Europe' }, _1388: { name: 'La Spezia (Cinque Terre), Italy', geo: 'Western Europe' }, _668: { name: 'Labadee (Labadie), Haiti', geo: 'Caribbean' }, _363: { name: 'Laem Chabang (Bangkok), Thailand', geo: 'South East Asia' }, _670: { name: 'Laguna San Raphael, Chile', geo: 'South America' }, _159: { name: 'Lahaina, Maui, Hawaii', geo: 'North America' }, _6186: { name: 'Lamotrek, Micronesia', geo: 'South East Asia' }, _672: { name: 'Langkawi, Malaysia', geo: 'South East Asia' }, _413: { name: 'Lanzarote, Canary Islands, Spain', geo: 'Western Europe' }, _3418: { name: 'Larantuka, Indonesia', geo: 'South East Asia' }, _1595: { name: 'Larnaca, Cyprus', geo: 'Western Europe' }, _1208: { name: 'Las Bachas, Ecuador', geo: 'South America' }, _2: { name: 'Las Palmas, Gran Canaria, Canary Islands', geo: 'Western Europe' }, _674: { name: 'Launceston, Tasmania', geo: 'South Pacific' }, _675: { name: 'Lautoka, Fiji', geo: 'South Pacific' }, _295: { name: 'Le Havre (Paris), France', geo: 'Western Europe' }, _676: { name: 'Le Lavandou, France', geo: 'Western Europe' }, _4340: { name: 'Le Marin, Martinique', geo: 'Caribbean' }, _677: { name: 'Le Palais Belle Isle, France', geo: 'Western Europe' }, _79: { name: 'Leith/Edinburgh, Scotland', geo: 'Western Europe' }, _680: { name: 'Leixoes (Oporto), Portugal', geo: 'Western Europe' }, _2324: { name: 'Leknes, Norway', geo: 'Western Europe' }, _44: { name: 'Lemaire Channel, Antarctica', geo: 'Antarctica' }, _4301: { name: 'Lembar, Indonesia', geo: 'South East Asia' }, _3181: { name: 'Lemnos, Greece', geo: 'Western Europe' }, _3779: { name: 'Lerici, Italy', geo: 'Western Europe' }, _82: { name: 'Lerwick, Shetland Islands', geo: 'Western Europe' }, _2703: { name: 'Les Saintes, Guadeloupe', geo: 'Caribbean' }, _681: { name: 'Lesbos, Greece', geo: 'Western Europe' }, _4593: { name: 'Libourne, France', geo: 'Western Europe' }, _2525: { name: 'Lifou, New Caledonia', geo: 'South Pacific' }, _3025: { name: 'Lighthouse Reef, Belize', geo: 'Central America' }, _4542: { name: 'Lima, Peru', geo: 'South America' }, _116: { name: 'Limassol, Cyprus', geo: 'Western Europe' }, _1049: { name: 'Limon Bay Panama Canal, Panama', geo: 'Central America' }, _683: { name: 'Lipari, Italy', geo: 'Western Europe' }, _299: { name: 'Lisbon, Portugal', geo: 'Western Europe' }, _2859: { name: 'List, Germany', geo: 'Western Europe' }, _2256: { name: 'Little Bay, Montserrat, Leeward Islands', geo: 'Caribbean' }, _684: { name: 'Little Corn Island, Nicaragua', geo: 'Central America' }, _1315: { name: 'Little Diomede Island, Alaska', geo: 'North America' }, _685: { name: 'Liverpool, England', geo: 'Western Europe' }, _686: { name: 'Livingston Island, South Shetland Islands', geo: 'Western Europe' }, _6304: { name: 'Livingston, Guatemala', geo: 'Central America' }, _314: { name: 'Livorno (Florence/Pisa), Italy', geo: 'Western Europe' }, _1460: { name: 'Lizard Island, Australia', geo: 'South Pacific' }, _4505: { name: 'Ljubljana, Slovenia', geo: 'Eastern Europe' }, _1372: { name: 'Llle Rousse, Corsica', geo: 'Western Europe' }, _4532: { name: 'Lobito, Angola', geo: 'Africa' }, _3677: { name: 'Loch Ness, Inverness, Scotland', geo: 'Western Europe' }, _1485: { name: 'Lofoten, Norway', geo: 'Western Europe' }, _689: { name: 'Lombok, Indonesia', geo: 'South East Asia' }, _690: { name: 'Lome, Togo', geo: 'Africa' }, _4410: { name: 'London (HMS Belfast), England', geo: 'Western Europe' }, _379: { name: 'London, England', geo: 'Western Europe' }, _691: { name: 'Londonderry, Northern Ireland', geo: 'Western Europe' }, _239: { name: 'Longyearbyen, Svalbard (Norway)', geo: 'Western Europe' }, _693: { name: 'Loreto, Mexico', geo: 'North America' }, _694: { name: 'Lorient, France', geo: 'Western Europe' }, _338: { name: 'Los Angeles, California', geo: 'North America' }, _695: { name: 'Los Roques, Venezuela', geo: 'South America' }, _2548: { name: 'Louisbourg, Nova Scotia, Canada', geo: 'North America' }, _2542: { name: 'Lower Savage Islands, Canary Islands', geo: 'Western Europe' }, _3182: { name: 'Luanda, Angola', geo: 'Africa' }, _697: { name: 'Lubeck, Germany', geo: 'Western Europe' }, _698: { name: 'Luderitz, Namibia', geo: 'Africa' }, _2443: { name: 'Luganville, Vanuatu', geo: 'South Pacific' }, _5598: { name: 'Lustrafjorden, Norway', geo: 'Western Europe' }, _2229: { name: 'Luxor/Karnak (Safaga), Egypt', geo: 'Africa' }, _700: { name: 'Lynn Canal, Alaska', geo: 'North America' }, _1168: { name: 'Lyon, France', geo: 'Western Europe' }, _3419: { name: 'Lysefjord, Norway', geo: 'Western Europe' }, _4638: { name: 'Lysekil, Sweden', geo: 'Western Europe' }, _1057: { name: 'Lyttelton (Christchurch), New Zealand', geo: 'South Pacific' }, _701: { name: 'Maceio, Brazil', geo: 'South America' }, _5431: { name: 'Machala, Ecuador', geo: 'South America' }, _2990: { name: 'Machu Picchu, Peru', geo: 'South America' }, _702: { name: 'Madang, Papua New Guinea', geo: 'South Pacific' }, _2607: { name: 'Madrid, Spain', geo: 'Western Europe' }, _6316: { name: 'Madura Island, Indonesia', geo: 'South East Asia' }, _4670: { name: 'Mahajanga, Madagascar', geo: 'Africa' }, _22: { name: 'Mahe, Seychelles Islands', geo: 'Africa' }, _328: { name: 'Mahon, Minorca, Spain', geo: 'Western Europe' }, _4506: { name: 'Maizuru, Japan', geo: 'East Asia' }, _706: { name: 'Majuro, Marshall Islands', geo: 'South East Asia' }, _3616: { name: 'Makassar, Sulawesi, Indonesia', geo: 'South East Asia' }, _5575: { name: 'Makatea, Tuamotus, French Polynesia', geo: 'South Pacific' }, _707: { name: 'Malacca, Malaysia', geo: 'South East Asia' }, _378: { name: 'Malaga, Spain', geo: 'Western Europe' }, _167: { name: 'Male, Maldives', geo: 'Africa' }, _3183: { name: 'Malee, Thailand', geo: 'South East Asia' }, _6201: { name: 'Mali Losinj, Croatia', geo: 'Eastern Europe' }, _2952: { name: 'Malmo, Sweden', geo: 'Western Europe' }, _3143: { name: 'Maloy, Norway', geo: 'Western Europe' }, _2874: { name: 'Mamoudzou, Mayotte', geo: 'Africa' }, _2759: { name: 'Manama, Bahrain', geo: 'Western Asia' }, _4705: { name: 'Mandal, Norway', geo: 'Western Europe' }, _2451: { name: 'Mangalore, India', geo: 'South Asia' }, _977: { name: 'Mangareva,Tuamotu Atolls, French Polynesia', geo: 'South Pacific' }, _2746: { name: 'Maniitsoq, Greenland', geo: 'Western Europe' }, _132: { name: 'Manila, Philippines', geo: 'South East Asia' }, _710: { name: 'Manta (Quito), Ecuador', geo: 'South America' }, _711: { name: 'Manzanillo, Mexico', geo: 'North America' }, _2735: { name: 'Maputo, Mozambique', geo: 'Africa' }, _4389: { name: 'Mare, New Caledonia', geo: 'South Pacific' }, _4704: { name: 'Margaret River, Australia', geo: 'South Pacific' }, _1184: { name: 'Mariehamn, Finland', geo: 'Western Europe' }, _4517: { name: 'Marigot, Guadeloupe', geo: 'Caribbean' }, _4307: { name: 'Marigot, Saint Martin', geo: 'Caribbean' }, _2642: { name: 'Marina di Carrara, Italy', geo: 'Western Europe' }, _4481: { name: 'Marina di Ragusa, Italy', geo: 'Western Europe' }, _4482: { name: 'Marina di Sciacca, Italy', geo: 'Western Europe' }, _3720: { name: 'Marina Zea, Piraeus, Greece', geo: 'Western Europe' }, _3152: { name: 'Marmagao, india', geo: 'South Asia' }, _715: { name: 'Marmaris, Turkey', geo: 'Western Asia' }, _6210: { name: 'Marquette, Michigan', geo: 'North America' }, _377: { name: 'Marseille, France', geo: 'Western Europe' }, _209: { name: 'Marthas Vineyard, Massachusetts', geo: 'North America' }, _1662: { name: 'Matarani, Peru', geo: 'South America' }, _5557: { name: 'Matsue, Japan', geo: 'East Asia' }, _4507: { name: 'Matsuyama, Japan', geo: 'East Asia' }, _716: { name: 'Mayotte, Comoros Isles', geo: 'Africa' }, _6191: { name: 'Mayotte, France', geo: 'Western Europe' }, _100: { name: 'Mayreau, Grenadines', geo: 'Caribbean' }, _198: { name: 'Mazatlan, Mexico', geo: 'North America' }, _6282: { name: 'Mechunque, Chile', geo: 'South America' }, _3126: { name: 'Mehamn, Norway', geo: 'Western Europe' }, _60: { name: 'Melbourne, Australia', geo: 'South Pacific' }, _1540: { name: 'Mellila, Spanish Moroco', geo: 'Africa' }, _2233: { name: 'Menton, France', geo: 'Western Europe' }, _1413: { name: 'Merida, Mexico', geo: 'North America' }, _323: { name: 'Messina, Sicily, Italy', geo: 'Western Europe' }, _1317: { name: 'Metlakatla, Alaska', geo: 'North America' }, _4408: { name: 'Mgarr (Victoria), Malta', geo: 'Western Europe' }, _339: { name: 'Miami, Florida', geo: 'North America' }, _6249: { name: 'Mikkelsen Harbour, Antarctica', geo: 'Antarctica' }, _1389: { name: 'Milan, Italy', geo: 'Western Europe' }, _723: { name: 'Milford Fjord, New Zealand', geo: 'South Pacific' }, _1542: { name: 'Milford Haven, Wales', geo: 'Western Europe' }, _724: { name: 'Milford Sound, New Zealand', geo: 'South Pacific' }, _3522: { name: 'Milne Bay, Papua New Guinea', geo: 'South Pacific' }, _2340: { name: 'Milos, Greece', geo: 'Western Europe' }, _3475: { name: 'Milos, Greece', geo: 'Western Europe' }, _1600: { name: 'Milwaukee, Wisconsin', geo: 'North America' }, _725: { name: 'Mindelo, Cape Verde Island', geo: 'Africa' }, _6198: { name: 'Miri, Malaysia', geo: 'South East Asia' }, _3424: { name: 'Mirina, Greece', geo: 'Western Europe' }, _415: { name: 'Misty Fjord, Alaska', geo: 'North America' }, _3648: { name: 'Miyajima(Itsukushima), Japan', geo: 'East Asia' }, _2502: { name: 'Miyako, Japan', geo: 'East Asia' }, _5430: { name: 'Miyakojima, Japan', geo: 'East Asia' }, _4512: { name: 'Miyazaki (Aburatsu), Japan', geo: 'East Asia' }, _2700: { name: 'Mljet, Croatia', geo: 'Eastern Europe' }, _364: { name: 'Mobile, Alabama', geo: 'North America' }, _5326: { name: 'Mogo Mogo Island, Panama', geo: 'Central America' }, _240: { name: 'Molde, Norway', geo: 'Western Europe' }, _18: { name: 'Mombasa, Kenya', geo: 'Africa' }, _6353: { name: 'Monacobreen, Svalbard', geo: 'Western Europe' }, _729: { name: 'Monemvasia, Greece', geo: 'Western Europe' }, _2342: { name: 'Monopoli, Italy', geo: 'Western Europe' }, _365: { name: 'Monte Carlo, Monaco', geo: 'Western Europe' }, _91: { name: 'Montego Bay, Jamaica', geo: 'Caribbean' }, _732: { name: 'Monterey, California', geo: 'North America' }, _3007: { name: 'Monteverde, Costa Rica', geo: 'Central America' }, _267: { name: 'Montevideo, Uruguay', geo: 'South America' }, _340: { name: 'Montreal, Quebec', geo: 'North America' }, _2888: { name: 'Monumental Island, Canada', geo: 'North America' }, _5276: { name: 'Mooloolaba, Australia', geo: 'South Pacific' }, _733: { name: 'Moorea, French Polynesia', geo: 'South Pacific' }, _5427: { name: 'Moreton Island, Australia', geo: 'South Pacific' }, _735: { name: 'Mormugao, India', geo: 'South Asia' }, _5570: { name: 'Mosquera Islet, Galapagos', geo: 'South America' }, _2826: { name: 'Mossel Bay, South Africa', geo: 'Africa' }, _737: { name: 'Motril, Spain', geo: 'Western Europe' }, _3350: { name: 'Moyo, Indonesia', geo: 'South East Asia' }, _2839: { name: 'Mukran, Germany', geo: 'Western Europe' }, _166: { name: 'Mumbai (Bombay), India', geo: 'South Asia' }, _1181: { name: 'Murmansk, Russia', geo: 'Russia' }, _5454: { name: 'Muroran, Japan', geo: 'East Asia' }, _49: { name: 'Muscat, Oman', geo: 'Western Asia' }, _150: { name: 'Mykonos, Greece', geo: 'Western Europe' }, _2593: { name: 'Mystery Island, Vanuatu', geo: 'South Pacific' }, _151: { name: 'Mytilene, Lesbos, Greece', geo: 'Western Europe' }, _2584: { name: 'Nafplion, Greece', geo: 'Western Europe' }, _185: { name: 'Nagasaki, Japan', geo: 'East Asia' }, _739: { name: 'Nagoya, Japan', geo: 'East Asia' }, _6182: { name: 'Nakagusuku, Japan', geo: 'East Asia' }, _4662: { name: 'Namibe, Angola', geo: 'Africa' }, _1159: { name: 'Nanaimo, Canada', geo: 'North America' }, _2856: { name: 'Nanortalik, Greenland', geo: 'Western Europe' }, _2363: { name: 'Nantes, France', geo: 'Western Europe' }, _2245: { name: 'Naousa, Paros, Greece', geo: 'Western Europe' }, _741: { name: 'Napier, New Zealand', geo: 'South Pacific' }, _316: { name: 'Naples, Italy', geo: 'Western Europe' }, _2641: { name: 'Narsarsuaq, Greenland', geo: 'Western Europe' }, _3075: { name: 'Narvik, Norway', geo: 'Western Europe' }, _357: { name: 'Nassau, Bahamas', geo: 'Caribbean' }, _742: { name: 'Natal(Rio Grande do Norte), Brazil', geo: 'South America' }, _743: { name: 'Navplion, Greece', geo: 'Western Europe' }, _3763: { name: 'Nawiliwili, Kauai', geo: 'North America' }, _745: { name: 'Naxos, Italy', geo: 'Western Europe' }, _4463: { name: 'Nazareth, Israel', geo: 'Western Asia' }, _2827: { name: 'Naze, Amani Oshima', geo: 'South East Asia' }, _2893: { name: 'Neiafu, Vavau', geo: 'South Pacific' }, _746: { name: 'Nelson, New Zealand', geo: 'South Pacific' }, _2268: { name: 'Neopolis, Greece', geo: 'Western Europe' }, _3138: { name: 'Nesna, Norway', geo: 'Western Europe' }, _115: { name: 'Nessebar, Bulgaria', geo: 'Eastern Europe' }, _6289: { name: 'Neum, Bosnia', geo: 'Eastern Europe' }, _4513: { name: 'New Mangalore, India', geo: 'South Asia' }, _341: { name: 'New Orleans, Louisiana', geo: 'North America' }, _3798: { name: 'New Plymouth, New Zealand', geo: 'South Pacific' }, _342: { name: 'New York, New York', geo: 'North America' }, _4499: { name: 'Newcastle-tyne, United Kingdom', geo: 'Western Europe' }, _1461: { name: 'Newcastle, Australia', geo: 'South Pacific' }, _6180: { name: 'Newhaven, Scotland', geo: 'Western Europe' }, _5616: { name: 'Newhaven, United Kingdom', geo: 'Western Europe' }, _1325: { name: 'Newport News, Virginia', geo: 'North America' }, _213: { name: 'Newport, Rhode Island', geo: 'North America' }, _748: { name: 'Nha Trang, Vietnam', geo: 'South East Asia' }, _305: { name: 'Nice, France', geo: 'Western Europe' }, _2562: { name: 'Niebla, Chile', geo: 'South America' }, _3695: { name: 'Nightingale Island, Tristan da Cunha', geo: 'Antarctica' }, _1421: { name: 'Niigata, Japan', geo: 'East Asia' }, _1158: { name: 'Nome, Alaska', geo: 'North America' }, _3679: { name: 'Nordfjord, Norway', geo: 'Western Europe' }, _3078: { name: 'Nordfjordeid, Norway', geo: 'Western Europe' }, _1462: { name: 'Norfolk Island, Australia', geo: 'South Pacific' }, _343: { name: 'Norfolk, Virginia', geo: 'North America' }, _1375: { name: 'Norman Island, British Virgin Islands', geo: 'Caribbean' }, _749: { name: 'North Cape, Norway', geo: 'Western Europe' }, _2966: { name: 'Noss, Scotland', geo: 'Western Europe' }, _20: { name: 'Nosy Be, Madagascar', geo: 'Africa' }, _751: { name: 'Noumea, New Caledonia', geo: 'South Pacific' }, _275: { name: 'Nuku Alofa, Tonga', geo: 'South Pacific' }, _754: { name: 'Nuku Hiva, Marquesas, French Polynesia', geo: 'South Pacific' }, _758: { name: 'Nuuk, Greenland', geo: 'Western Europe' }, _2713: { name: 'Ny Alesund, Norway', geo: 'Western Europe' }, _4713: { name: 'Nydri, Nisos Lefkada, Greece', geo: 'Western Europe' }, _759: { name: 'Nynashamn, Sweden', geo: 'Western Europe' }, _5600: { name: 'Oarai, Japan', geo: 'East Asia' }, _3799: { name: 'Oban (halfmoon Bay), New Zealand', geo: 'South Pacific' }, _761: { name: 'Oban, Scotland', geo: 'Western Europe' }, _6290: { name: 'Ocean Cay, Bahamas', geo: 'Caribbean' }, _92: { name: 'Ocho Rios, Jamaica', geo: 'Caribbean' }, _126: { name: 'Odessa, Ukraine', geo: 'Eastern Europe' }, _3803: { name: 'Oeksfjord, Norway', geo: 'Western Europe' }, _6322: { name: 'Ofunato, Japan', geo: 'East Asia' }, _2575: { name: 'Okayama, Japan', geo: 'East Asia' }, _5249: { name: 'Okhotsk, Russia', geo: 'Russia' }, _762: { name: 'Okinawa (Naha), Japan', geo: 'East Asia' }, _3129: { name: 'Oksfjord, Norway', geo: 'Western Europe' }, _764: { name: 'Olbia, Italy', geo: 'Western Europe' }, _765: { name: 'Olden, Norway', geo: 'Western Europe' }, _1044: { name: 'Oostende (Bruges), Belgium', geo: 'Western Europe' }, _2764: { name: 'Opatija, Croatia', geo: 'Eastern Europe' }, _4712: { name: 'Oranjestad, Sint Eustatius', geo: 'Caribbean' }, _3137: { name: 'Ornes, Norway', geo: 'Western Europe' }, _186: { name: 'Osaka (Kyoto and Nara), Japan', geo: 'East Asia' }, _241: { name: 'Oslo, Norway', geo: 'Western Europe' }, _5599: { name: 'Oslofjord, Norway', geo: 'Western Europe' }, _768: { name: 'Otaru, Japan', geo: 'East Asia' }, _3045: { name: 'Otranto, Italy', geo: 'Western Europe' }, _4709: { name: 'Ouranoupoli, Greece', geo: 'Western Europe' }, _3587: { name: 'Owaraha Island (Santa Ana Island), Solomon Islands', geo: 'South Pacific' }, _2986: { name: 'Paamiut (Frederickshaab), Greenland', geo: 'Western Europe' }, _274: { name: 'Pago Pago, American Samoa', geo: 'South Pacific' }, _771: { name: 'Palamos, Spain', geo: 'Western Europe' }, _324: { name: 'Palermo, Sicily, Italy', geo: 'Western Europe' }, _329: { name: 'Palma de Mallorca, Spain', geo: 'Western Europe' }, _1391: { name: 'Palmarola, Italy', geo: 'Western Europe' }, _177: { name: 'Palopo, Sulawesi, Indonesia', geo: 'South East Asia' }, _6263: { name: 'Pamenang, Indonesia', geo: 'South East Asia' }, _230: { name: 'Panama Canal, Panama', geo: 'Central America' }, _1532: { name: 'Panama Canal/Gatun Lake, Panama', geo: 'Central America' }, _370: { name: 'Panama City, Panama', geo: 'Central America' }, _6267: { name: 'Pandar Island, Indonesia', geo: 'South East Asia' }, _272: { name: 'Papeete, Tahiti, French Polynesia', geo: 'South Pacific' }, _2246: { name: 'Paphos, Republic of Cyprus', geo: 'Western Europe' }, _1041: { name: 'Paracas Bay, Peru', geo: 'South America' }, _773: { name: 'Paradise Bay, Errera Channel, Antarctica', geo: 'Antarctica' }, _1663: { name: 'Paramaribo, Suriname', geo: 'South America' }, _774: { name: 'Paranagua, Brazil', geo: 'South America' }, _4399: { name: 'Paraty, Brazil', geo: 'South America' }, _2940: { name: 'Pare Pare, Indonesia', geo: 'South East Asia' }, _144: { name: 'Parga, Greece', geo: 'Western Europe' }, _776: { name: 'Paros, Greece', geo: 'Western Europe' }, _152: { name: 'Patmos, Greece', geo: 'Western Europe' }, _3283: { name: 'Patras, Greece', geo: 'Western Europe' }, _3285: { name: 'Pauillac, France', geo: 'Western Europe' }, _2299: { name: 'Paxoi, Greece', geo: 'Western Europe' }, _190: { name: 'Penang, Malaysia', geo: 'South East Asia' }, _2844: { name: 'Penguin Island, Antarctica', geo: 'Antarctica' }, _5471: { name: 'Penneshaw (Kangaroo Island), Australia', geo: 'South Pacific' }, _4390: { name: 'Pentecoste Island, Vanuatu', geo: 'South Pacific' }, _778: { name: 'Penzance, United Kingdom', geo: 'Western Europe' }, _3589: { name: 'Percy Island, Australia', geo: 'South Pacific' }, _486: { name: 'Perfect Day at CocoCay', geo: 'Caribbean' }, _61: { name: 'Perth (Fremantle), Australia', geo: 'South Pacific' }, _781: { name: 'Petermann Island, Antarctica', geo: 'Antarctica' }, _1103: { name: 'Petersburg (Frederick Sound), Alaska', geo: 'North America' }, _48: { name: 'Petra, Jordan', geo: 'Western Asia' }, _782: { name: 'Petropavlovsk, Russia', geo: 'Russia' }, _1438: { name: 'Phang Nga, Thailand', geo: 'South East Asia' }, _345: { name: 'Philadelphia, Pennsylvania', geo: 'North America' }, _682: { name: 'Philipsburg, St. Maarten', geo: 'Caribbean' }, _2394: { name: 'Phillip Island, Australia', geo: 'South Pacific' }, _784: { name: 'Phu My, Vietnam', geo: 'South East Asia' }, _3635: { name: 'Phu Quoc, Vietnam', geo: 'South East Asia' }, _136: { name: 'Phuket, Thailand', geo: 'South East Asia' }, _663: { name: 'Pichilingue (La Paz), Mexico', geo: 'North America' }, _785: { name: 'Picton, New Zealand', geo: 'South Pacific' }, _786: { name: 'Pigeon Island, St. Lucia', geo: 'Caribbean' }, _4321: { name: 'Pilos, Greece', geo: 'Western Europe' }, _2436: { name: 'Pio Xi (Bruggen) Glacier, Chile', geo: 'South America' }, _4483: { name: 'Piombino, Italy', geo: 'Western Europe' }, _140: { name: 'Piraeus (Athens), Greece', geo: 'Western Europe' }, _3044: { name: 'Piran, Slovenia', geo: 'Eastern Europe' }, _1393: { name: 'Pisa, Italy', geo: 'Western Europe' }, _789: { name: 'Pisco (Puerto San Martin), Peru', geo: 'South America' }, _790: { name: 'Pitcairn Island, United Kingdom', geo: 'Western Europe' }, _2726: { name: 'Playas Del Coco, Costa Rica', geo: 'Central America' }, _4674: { name: 'Plazas Sur,Galapagos Islands, Ecuador', geo: 'South America' }, _5259: { name: 'Plymouth, England', geo: 'Western Europe' }, _4549: { name: 'Plymouth, Montserrat', geo: 'Western Europe' }, _5366: { name: 'Pohang, Japan', geo: 'East Asia' }, _2951: { name: 'Pohnpei, Micronesia', geo: 'South East Asia' }, _6239: { name: 'Point Barrow, Alaska', geo: 'North America' }, _794: { name: 'Pointe des Galets, Reunion Island', geo: 'Africa' }, _793: { name: 'Pointe-a-Pitre, Guadeloupe', geo: 'Caribbean' }, _3723: { name: 'Poliegos, Greece', geo: 'Western Europe' }, _5591: { name: 'Pomene, Mozambique', geo: 'Africa' }, _1489: { name: 'Ponce, Puerto Rico', geo: 'Caribbean' }, _4654: { name: 'Pond Inlet, Nunavut, Canada', geo: 'North America' }, _291: { name: 'Ponta Delgada, Azores, Portugal', geo: 'Western Europe' }, _2235: { name: 'Ponza, Italy', geo: 'Western Europe' }, _6166: { name: 'Poole, England', geo: 'Western Europe' }, _2729: { name: 'Porbandar, India', geo: 'South Asia' }, _6199: { name: 'Poros, Greece', geo: 'Western Europe' }, _160: { name: 'Port Allen (Nawiliwili), Kauai, Hawaii', geo: 'North America' }, _93: { name: 'Port Antonio, Jamaica', geo: 'Caribbean' }, _799: { name: 'Port Arthur, Australia', geo: 'South Pacific' }, _3290: { name: 'Port Au Prince, Haiti', geo: 'Caribbean' }, _802: { name: 'Port Blair, Andaman Islands, India', geo: 'South Asia' }, _346: { name: 'Port Canaveral, Florida', geo: 'North America' }, _224: { name: 'Port Chalmers (Dunedin), New Zealand', geo: 'South Pacific' }, _2756: { name: 'Port Denarau, Fiji', geo: 'South Pacific' }, _804: { name: 'Port Douglas, Australia', geo: 'South Pacific' }, _4338: { name: 'Port Elizabeth, Saint Vincent', geo: 'Caribbean' }, _805: { name: 'Port Elizabeth, South Africa', geo: 'Africa' }, _4445: { name: 'Port Hedland, Australia', geo: 'South Pacific' }, _188: { name: 'Port Kelang (Kuala Lumpur), Malaysia', geo: 'South East Asia' }, _5469: { name: 'Port Kembla, Australia', geo: 'South Pacific' }, _3595: { name: 'Port Lincoln, Australia', geo: 'South Pacific' }, _46: { name: 'Port Lockroy (Neumayer Channel), Antarctica', geo: 'Antarctica' }, _375: { name: 'Port Louis, Mauritius', geo: 'Africa' }, _5638: { name: 'Port Mahon, Balearic Islands, Spain', geo: 'Western Europe' }, _2440: { name: 'Port Mahon, Spain', geo: 'Western Europe' }, _809: { name: 'Port Moresby, Papua New Guinea', geo: 'South Pacific' }, _86: { name: 'Port of Basseterre, St. Kitts, St. Kitts and Nevis', geo: 'Caribbean' }, _747: { name: 'Port of Charlestown, Nevis, St. Kitts and Nevis', geo: 'Caribbean' }, _941: { name: 'Port of Kingstown, St. Vincent & the Grenadines', geo: 'Caribbean' }, _28: { name: 'Port of Oranjestad, Aruba, Caribbean', geo: 'Caribbean' }, _102: { name: 'Port of Spain, Trinidad', geo: 'Caribbean' }, _6: { name: 'Port Said (Cairo), Egypt', geo: 'Africa' }, _263: { name: 'Port Stanley, Falkland Islands', geo: 'South America' }, _2439: { name: 'Port Stanley, Ontario', geo: 'North America' }, _463: { name: 'Port Vendres (Carcassonne), France', geo: 'Western Europe' }, _2733: { name: 'Port Victoria, Seychelles', geo: 'Africa' }, _813: { name: 'Port Vila, Vanuatu', geo: 'South Pacific' }, _815: { name: 'Portimao, Portugal', geo: 'Western Europe' }, _5278: { name: 'Portland, Australia', geo: 'South Pacific' }, _4584: { name: 'Portland, England', geo: 'Western Europe' }, _205: { name: 'Portland, Maine', geo: 'North America' }, _2747: { name: 'Portland, United Kingdom', geo: 'Western Europe' }, _300: { name: 'Porto (Oporto), Portugal', geo: 'Western Europe' }, _821: { name: 'Porto Belo (Santa Catarina), Brazil', geo: 'South America' }, _321: { name: 'Porto Cervo, Sardinia, Italy', geo: 'Western Europe' }, _816: { name: 'Porto Empedocle, Italy', geo: 'Western Europe' }, _1396: { name: 'Porto Ercole, Italy', geo: 'Western Europe' }, _817: { name: 'Porto Grande, Cape Verde Islands', geo: 'Africa' }, _4700: { name: 'Porto Novo, Cape Verde Island', geo: 'Africa' }, _3294: { name: 'Porto Santo Stefano, Italy', geo: 'Western Europe' }, _818: { name: 'Porto Santo, Portugal', geo: 'Western Europe' }, _5470: { name: 'Porto Torres(sardinia),italy', geo: 'Western Europe' }, _820: { name: 'Porto Vecchio, Corsica, France', geo: 'Western Europe' }, _306: { name: 'Portoferraio (Elba), Italy', geo: 'Western Europe' }, _317: { name: 'Portofino, Italy', geo: 'Western Europe' }, _822: { name: 'Portovenere, Italy', geo: 'Western Europe' }, _823: { name: 'Portree, Scotland', geo: 'Western Europe' }, _2779: { name: 'Portrush, Ireland', geo: 'Western Europe' }, _825: { name: 'Portsmouth, Dominica', geo: 'Caribbean' }, _2488: { name: 'Portsmouth, England', geo: 'Western Europe' }, _1555: { name: 'Portuguese Island, Mozambique', geo: 'Africa' }, _1397: { name: 'Positano, Italy', geo: 'Western Europe' }, _1535: { name: 'Post Office, Galapagos Islands', geo: 'South America' }, _1153: { name: 'Prague, Czech Republic', geo: 'Eastern Europe' }, _2464: { name: 'Praia da Rocha, Portugal', geo: 'Western Europe' }, _4570: { name: 'Praia da Vitoria, Portugal', geo: 'Western Europe' }, _4484: { name: 'Praia, Cape Verde', geo: 'Africa' }, _23: { name: 'Praslin, Seychelles Islands', geo: 'Africa' }, _1139: { name: 'Pribilof Islands (St. Paul and St. George), Alaska', geo: 'North America' }, _3296: { name: 'Prickly Pear Cays, Anguilla', geo: 'Caribbean' }, _4518: { name: 'Prickly Pear Island, B.V.I', geo: 'Caribbean' }, _2538: { name: 'Prince Christian Sund, Greenland', geo: 'Western Europe' }, _826: { name: 'Prince Rupert, British Columbia', geo: 'North America' }, _827: { name: 'Princess Cays, Bahamas', geo: 'Caribbean' }, _1218: { name: 'Principe Island, Sao Tome and Principe', geo: 'Africa' }, _6254: { name: 'Prion Island, South Georgia', geo: 'Antarctica' }, _3784: { name: 'Probolinggo, Indonesia', geo: 'South East Asia' }, _721: { name: 'Progreso, Mexico', geo: 'North America' }, _1373: { name: 'Propriano, Corsica', geo: 'Western Europe' }, _1152: { name: 'Provideniya, Russia', geo: 'Russia' }, _210: { name: 'Provincetown, Massachusetts', geo: 'North America' }, _1536: { name: 'Puerto Ayora, Galapagos Islands', geo: 'South America' }, _330: { name: 'Puerto Banus, Spain', geo: 'Western Europe' }, _6167: { name: 'Puerto Baquerizo, Cristobal, Galapagos Islands', geo: 'South America' }, _226: { name: 'Puerto Caldera, Costa Rica', geo: 'Central America' }, _832: { name: 'Puerto Chacabuco, Chile', geo: 'South America' }, _1649: { name: 'Puerto Chiapas, Mexico', geo: 'North America' }, _2442: { name: 'Puerto Corinto, Nicaragua', geo: 'Central America' }, _5626: { name: 'Puerto de La Estaca, Canary Islands', geo: 'Western Europe' }, _2908: { name: 'Puerto del Rosario, Spain', geo: 'Western Europe' }, _833: { name: 'Puerto Deseado, Argentina', geo: 'South America' }, _6240: { name: 'Puerto Eden, Chile', geo: 'South America' }, _5363: { name: 'Puerto Jimenez, Costa Rica', geo: 'Central America' }, _358: { name: 'Puerto Limon, Costa Rica', geo: 'Central America' }, _246: { name: 'Puerto Madryn, Argentina', geo: 'South America' }, _258: { name: 'Puerto Montt, Chile', geo: 'South America' }, _2992: { name: 'Puerto Morelos, Mexico', geo: 'North America' }, _837: { name: 'Puerto Natales, Chile', geo: 'South America' }, _3192: { name: 'Puerto Plata, Dominican Republic', geo: 'Caribbean' }, _2476: { name: 'Puerto Princesa, Philippines', geo: 'South East Asia' }, _838: { name: 'Puerto Quepos, Costa Rica', geo: 'Central America' }, _839: { name: 'Puerto Quetzal, Guatemala', geo: 'Central America' }, _199: { name: 'Puerto Vallarta, Mexico', geo: 'North America' }, _2516: { name: 'Puerto Williams, Chile', geo: 'South America' }, _1510: { name: 'Pula, Croatia', geo: 'Eastern Europe' }, _3300: { name: 'Pulau Bintang, Indonesia', geo: 'South East Asia' }, _6320: { name: 'Pulau Menyawakan, Indonesia', geo: 'South East Asia' }, _259: { name: 'Punta Arenas, Chile', geo: 'South America' }, _5426: { name: 'Punta Cana, Dominican Republic', geo: 'Caribbean' }, _6251: { name: 'Punta Colorada, Uruguay', geo: 'South America' }, _842: { name: 'Punta del Este, Uruguay', geo: 'South America' }, _1537: { name: 'Punta Espinoza, Galapagos Islands', geo: 'South America' }, _4304: { name: 'Punta Maria la Gorda, Cuba', geo: 'Caribbean' }, _6168: { name: 'Punta Pitt, Galapagos Island', geo: 'South America' }, _1538: { name: 'Punta Suarez, Galapagos Islands', geo: 'South America' }, _841: { name: 'Puntarenas, Costa Rica', geo: 'Central America' }, _1366: { name: 'Putuoshan Island, China', geo: 'East Asia' }, _1468: { name: 'Pylos, Greece', geo: 'Western Europe' }, _6141: { name: 'Pyramiden, Russia', geo: 'Russia' }, _844: { name: 'Qaqortoq, Greenland', geo: 'Western Europe' }, _6245: { name: 'Qassiarsuk, Greenland', geo: 'Western Europe' }, _2740: { name: 'Qeqertarsuaq, Greenland', geo: 'Western Europe' }, _845: { name: 'Qingdao, China', geo: 'East Asia' }, _348: { name: 'Quebec City, Quebec', geo: 'North America' }, _847: { name: 'Quepos, Costa Rica', geo: 'Central America' }, _6302: { name: 'Quintana Roo, Mexico', geo: 'North America' }, _1511: { name: 'Rab Island, Croatia', geo: 'Eastern Europe' }, _848: { name: 'Rabaul, Papua New Guinea', geo: 'South Pacific' }, _849: { name: 'Raiatea, French Polynesia', geo: 'South Pacific' }, _2898: { name: 'Raivavae, French Polynesia', geo: 'South Pacific' }, _850: { name: 'Rangiroa, Tahiti', geo: 'South Pacific' }, _2899: { name: 'Rapa, French Polynesia', geo: 'South Pacific' }, _4455: { name: 'Rapallo, Italy', geo: 'Western Europe' }, _851: { name: 'Rarotonga, Cook Islands', geo: 'South Pacific' }, _852: { name: 'Ravenna, Italy', geo: 'Western Europe' }, _254: { name: 'Recife, Brazil', geo: 'South America' }, _3305: { name: 'Red Bay, Canada', geo: 'North America' }, _1224: { name: 'Resolute, Canada', geo: 'North America' }, _2560: { name: 'Rethymno, Greece', geo: 'Western Europe' }, _2320: { name: 'Reunion Island, France', geo: 'Western Europe' }, _5480: { name: 'Reunion, Reunion', geo: 'Africa' }, _232: { name: 'Reykjavik, Iceland', geo: 'Western Europe' }, _153: { name: 'Rhodes, Greece', geo: 'Western Europe' }, _2477: { name: 'Ribbon Reef Region, Australia', geo: 'South Pacific' }, _854: { name: 'Richards Bay, South Africa', geo: 'Africa' }, _855: { name: 'Riga, Latvia', geo: 'Eastern Europe' }, _2505: { name: 'Rijeka, Croatia', geo: 'Eastern Europe' }, _5340: { name: 'Rinca Island, Indonesia', geo: 'South East Asia' }, _2509: { name: 'Ringaskiddy, Ireland', geo: 'Western Europe' }, _255: { name: 'Rio de Janeiro, Brazil', geo: 'South America' }, _5262: { name: 'Rio Grande, Rio Grande do Sul, Brazil', geo: 'South America' }, _3132: { name: 'Risoyhamn, Norway', geo: 'Western Europe' }, _106: { name: 'Road Town, Tortola, B.V.I.', geo: 'Caribbean' }, _229: { name: 'Roatan, Honduras', geo: 'Central America' }, _1559: { name: 'Robinson Crusoe Island, Chile', geo: 'South America' }, _2594: { name: 'Rockland, Maine', geo: 'North America' }, _1530: { name: 'Rodney Bay, St. Lucia', geo: 'Caribbean' }, _859: { name: 'Romblon Island, Philippines', geo: 'South East Asia' }, _312: { name: 'Rome (Civitavecchia), Italy', geo: 'Western Europe' }, _6355: { name: 'Romer Fjord, Greenland', geo: 'Western Europe' }, _3450: { name: 'Romsdalfjord, Norway', geo: 'Western Europe' }, _64: { name: 'Ronne, Denmark', geo: 'Western Europe' }, _3141: { name: 'Rorvik, Norway', geo: 'Western Europe' }, _4413: { name: 'Rosas (Roses), Spain', geo: 'Western Europe' }, _862: { name: 'Roseau, Dominica', geo: 'Caribbean' }, _3067: { name: 'Rosendal, Norway', geo: 'Western Europe' }, _1403: { name: 'Roses, Costa Brava, Spain', geo: 'Western Europe' }, _614: { name: 'Rostock, Germany', geo: 'Western Europe' }, _1606: { name: 'Rostov-on-Don, Russia', geo: 'Russia' }, _4466: { name: 'Rosyth, Scotland', geo: 'Western Europe' }, _5617: { name: 'Rothesay, Isle Of Bu, Scotland', geo: 'Western Europe' }, _3451: { name: 'Rotorua, New Zealand', geo: 'South Pacific' }, _374: { name: 'Rotterdam, The Netherlands', geo: 'Western Europe' }, _296: { name: 'Rouen, France', geo: 'Western Europe' }, _1147: { name: 'Rousse (Russe), Bulgaria', geo: 'Eastern Europe' }, _1512: { name: 'Rovinj, Croatia', geo: 'Eastern Europe' }, _868: { name: 'Royal Naval Dockyard, Bermuda', geo: 'Caribbean' }, _1148: { name: 'Rudesheim, Germany', geo: 'Western Europe' }, _4699: { name: 'Runavik, Faroe Islands', geo: 'Western Europe' }, _2896: { name: 'Rurutu, French Polynesia', geo: 'South Pacific' }, _1059: { name: 'Russell, New Zealand', geo: 'South Pacific' }, _4464: { name: 'S. Queensferry, Scotland', geo: 'Western Europe' }, _4535: { name: 'Saaremaa, Estonia', geo: 'Eastern Europe' }, _1560: { name: 'Saba, Dutch Antilles', geo: 'Caribbean' }, _3194: { name: 'Sabang, Indonesia', geo: 'South East Asia' }, _4648: { name: 'Sachs Harbour, Canada', geo: 'North America' }, _7: { name: 'Safaga (Luxor, Karnak), Egypt', geo: 'Africa' }, _869: { name: 'Safi, Morocco', geo: 'Africa' }, _219: { name: 'Saguenay Fjord, Canada', geo: 'North America' }, _870: { name: 'Saigon, Vietnam', geo: 'South East Asia' }, _2266: { name: 'Saint Florent, Corsica, France', geo: 'Western Europe' }, _220: { name: 'Saint John, New Brunswick', geo: 'North America' }, _4308: { name: 'Saint Malo, France', geo: 'Western Europe' }, _2370: { name: 'Saint Mary\'s, Scilly Isles, United Kingdom', geo: 'Western Europe' }, _6285: { name: 'Saint Tropez, France', geo: 'Western Europe' }, _6307: { name: 'Saint-Cyr-sur-Mer, France', geo: 'Western Europe' }, _4581: { name: 'Saipan, Mariana Islands', geo: 'South Pacific' }, _872: { name: 'Sakaiminato, Japan', geo: 'East Asia' }, _5573: { name: 'Sakata, Japan', geo: 'East Asia' }, _6192: { name: 'Sal, Cape Verde', geo: 'Africa' }, _50: { name: 'Salalah, Oman', geo: 'Western Asia' }, _266: { name: 'Salaverry (Trujillo), Peru', geo: 'South America' }, _4739: { name: 'Salay, Philippines', geo: 'South East Asia' }, _4711: { name: 'Salem, Massachusetts', geo: 'North America' }, _874: { name: 'Salerno, Italy', geo: 'Western Europe' }, _875: { name: 'Salt Cay, The Bahamas', geo: 'Caribbean' }, _5369: { name: 'Sam Ford Fjord, Nunavut, Canada', geo: 'North America' }, _877: { name: 'Samana, Dominican Republic', geo: 'Caribbean' }, _878: { name: 'Samarai Island, Papua New Guinea', geo: 'South Pacific' }, _5619: { name: 'Sami, Greece', geo: 'Western Europe' }, _879: { name: 'Samos, Greece', geo: 'Western Europe' }, _880: { name: 'San Andres Island, Colombia', geo: 'South America' }, _3440: { name: 'San Antonio, Santiago, Chile', geo: 'South America' }, _231: { name: 'San Blas Islands, Panama', geo: 'Central America' }, _1602: { name: 'San Cristobal, Galapagos Islands', geo: 'South America' }, _349: { name: 'San Diego, California', geo: 'North America' }, _350: { name: 'San Francisco, California', geo: 'North America' }, _1145: { name: 'San Jose, Costa Rica', geo: 'Central America' }, _1029: { name: 'San Juan del Sur, Nicaragua', geo: 'Central America' }, _1144: { name: 'San Juan Islands, Washington', geo: 'North America' }, _351: { name: 'San Juan, Puerto Rico', geo: 'Caribbean' }, _3441: { name: 'San Remo, Italy', geo: 'Western Europe' }, _883: { name: 'San Salvador, Bahamas', geo: 'Caribbean' }, _3197: { name: 'San Sebastian, Spain', geo: 'Western Europe' }, _1022: { name: 'Sanary-Sur-Mer, France', geo: 'Western Europe' }, _192: { name: 'Sandakan, Malaysia', geo: 'South East Asia' }, _3139: { name: 'Sandnessjoen, Norway', geo: 'Western Europe' }, _1561: { name: 'Sandy Ground, Anguilla', geo: 'Caribbean' }, _885: { name: 'Santa Barbara, California', geo: 'North America' }, _2469: { name: 'Santa Catalina Island', geo: 'North America' }, _4402: { name: 'Santa Cruz de La Palma, Spain', geo: 'Western Europe' }, _3: { name: 'Santa Cruz de Tenerife, Canary Islands', geo: 'Western Europe' }, _594: { name: 'Santa Cruz Huatulco, Mexico', geo: 'North America' }, _4343: { name: 'Santa Cruz Island, Galapagos Islands', geo: 'South America' }, _4665: { name: 'Santa Fe Island, Galapagos', geo: 'South America' }, _2448: { name: 'Santa Margherita, Italy', geo: 'Western Europe' }, _4651: { name: 'Santa Maria Di Leuca, Italy', geo: 'Western Europe' }, _890: { name: 'Santa Marta, Colombia', geo: 'South America' }, _891: { name: 'Santa Rosalia, Mexico', geo: 'North America' }, _892: { name: 'Santander, Spain', geo: 'Western Europe' }, _893: { name: 'Santarem, Brazil', geo: 'South America' }, _1500: { name: 'Santiago de Cuba, Cuba', geo: 'Caribbean' }, _4683: { name: 'Santiago Island, Ecuador', geo: 'South America' }, _894: { name: 'Santiago, Chile', geo: 'South America' }, _1192: { name: 'Santo Domingo, Dominican Republic', geo: 'Caribbean' }, _227: { name: 'Santo Tomas de Castilla, Guatemala', geo: 'Central America' }, _154: { name: 'Santorini (Thira), Greece', geo: 'Western Europe' }, _257: { name: 'Santos (Sao Paulo), Brazil', geo: 'South America' }, _895: { name: 'Sao Francisco do Sul, Brazil', geo: 'South America' }, _898: { name: 'Sapporo (Muroran/Hokkaido), Japan', geo: 'East Asia' }, _1562: { name: 'Sarande, Albania', geo: 'Eastern Europe' }, _1398: { name: 'Sardinia, Italy', geo: 'Western Europe' }, _5481: { name: 'Sasebo, Japan', geo: 'East Asia' }, _3362: { name: 'Satonda, Indonesia', geo: 'South East Asia' }, _6185: { name: 'Saumlaki, Indonesia', geo: 'South East Asia' }, _4479: { name: 'Saunders Island, Falkland Islands', geo: 'South America' }, _4486: { name: 'Savissivik , Greenland', geo: 'Western Europe' }, _900: { name: 'Savona (Genoa), Italy', geo: 'Western Europe' }, _2493: { name: 'Savusavu, Fiji', geo: 'South Pacific' }, _901: { name: 'Scarborough, Tobago', geo: 'Caribbean' }, _3047: { name: 'Scilly Isles, United Kingdom', geo: 'Western Europe' }, _4536: { name: 'Scoresby Sund, Greenland', geo: 'Western Europe' }, _2420: { name: 'Scrabster, Scotland', geo: 'Western Europe' }, _352: { name: 'Seattle, Washington', geo: 'North America' }, _5371: { name: 'Seguam Island, Alaska', geo: 'North America' }, _172: { name: 'Semarang, Java, Indonesia', geo: 'South East Asia' }, _903: { name: 'Sendai, Japan', geo: 'East Asia' }, _5545: { name: 'Senggigi, Indonesia', geo: 'South East Asia' }, _6228: { name: 'Senzaki, Japan', geo: 'East Asia' }, _129: { name: 'Seoul (Inchon), South Korea', geo: 'East Asia' }, _2585: { name: 'Sept-Iles, Canada', geo: 'North America' }, _307: { name: 'Sete, France', geo: 'Western Europe' }, _3748: { name: 'Seven Islands (Svalbard), Norway', geo: 'Western Europe' }, _2259: { name: 'Seville, Spain', geo: 'Western Europe' }, _353: { name: 'Seward, Alaska', geo: 'North America' }, _907: { name: 'Seydisfjordur, Iceland', geo: 'Western Europe' }, _113: { name: 'Shanghai, China', geo: 'East Asia' }, _8: { name: 'Sharm-el-Sheikh, Egypt', geo: 'Africa' }, _4701: { name: 'Shelburne, Nova Scotia', geo: 'North America' }, _909: { name: 'Shimizu, Japan', geo: 'East Asia' }, _5589: { name: 'Shingu, Japan', geo: 'East Asia' }, _912: { name: 'Ships Cove, New Zealand', geo: 'South Pacific' }, _3645: { name: 'Shumshu, Kuril Islands', geo: 'Russia' }, _1637: { name: 'Sibenik, Croatia', geo: 'Eastern Europe' }, _1399: { name: 'Sicily, Italy', geo: 'Western Europe' }, _1470: { name: 'Sifnos, Greece', geo: 'Western Europe' }, _2969: { name: 'Siglufjordur, Iceland', geo: 'Western Europe' }, _914: { name: 'Sihanoukville, Cambodia', geo: 'South East Asia' }, _987: { name: 'Silistra (Varna), Bulgaria', geo: 'Eastern Europe' }, _1440: { name: 'Similan Islands, Thailand', geo: 'South East Asia' }, _133: { name: 'Singapore, Singapore', geo: 'South East Asia' }, _5423: { name: 'Sir Bani Yas Island, United Arab Emirates', geo: 'Western Asia' }, _3052: { name: 'Sisimiut Holsteinsborg, Greenland', geo: 'Western Europe' }, _2739: { name: 'Sisimiut, Greenland', geo: 'Western Europe' }, _36: { name: 'Sitka, Alaska', geo: 'North America' }, _1501: { name: 'Skagen, Denmark', geo: 'Western Europe' }, _37: { name: 'Skagway, Alaska', geo: 'North America' }, _919: { name: 'Skarsvaag, North Cape', geo: 'Western Europe' }, _6278: { name: 'Skarsvag, Norway', geo: 'Western Europe' }, _1471: { name: 'Skiathos, Greece', geo: 'Western Europe' }, _3130: { name: 'Skjervoy, Norway', geo: 'Western Europe' }, _2465: { name: 'Skjolden, Norway', geo: 'Western Europe' }, _2537: { name: 'Skjoldungen, Greenland', geo: 'Western Europe' }, _3316: { name: 'Skopelos Island, Greece', geo: 'Western Europe' }, _4647: { name: 'Smoking Hills, Canada', geo: 'North America' }, _3317: { name: 'Snares Islands, New Zealand', geo: 'South Pacific' }, _920: { name: 'Sochi, Russia', geo: 'Russia' }, _3318: { name: 'Sognefjord, Norway', geo: 'Western Europe' }, _5592: { name: 'Sokcho, South Korea', geo: 'East Asia' }, _2386: { name: 'Sokhna (Cairo), Egypt', geo: 'Africa' }, _2711: { name: 'Solovetsky, Russia', geo: 'Russia' }, _1376: { name: 'Sopers Hole, British Virgin Islands', geo: 'Caribbean' }, _318: { name: 'Sorrento, Italy', geo: 'Western Europe' }, _3133: { name: 'Sortland, Norway', geo: 'Western Europe' }, _3471: { name: 'Souda Bay, Greece', geo: 'Western Europe' }, _1216: { name: 'Soufriere, St. Lucia', geo: 'Caribbean' }, _4553: { name: 'South Friars Beach, St. Kitts', geo: 'Caribbean' }, _1478: { name: 'South Georgia, Antarctica', geo: 'Antarctica' }, _2906: { name: 'South Orkney Islands, Antarctica', geo: 'Antarctica' }, _921: { name: 'South Queensferry, Scotland', geo: 'Western Europe' }, _5438: { name: 'Southampton, England', geo: 'Western Europe' }, _3363: { name: 'Spetsai (Spetses), Greece', geo: 'Western Europe' }, _1487: { name: 'Spitzbergen, Norway', geo: 'Western Europe' }, _922: { name: 'Split, Croatia', geo: 'Eastern Europe' }, _6283: { name: 'St Andrews Bay, South Georgia', geo: 'Antarctica' }, _5542: { name: 'St Anne Island, Seychelles', geo: 'Africa' }, _4458: { name: 'St Denis, Reunion Islands', geo: 'Africa' }, _4452: { name: 'St Helier, Isle of Jersey', geo: 'Western Europe' }, _2513: { name: 'St Pierre et Miquelon', geo: 'North America' }, _1665: { name: 'St Raphael, France', geo: 'Western Europe' }, _1563: { name: 'St. Anthony, Newfoundland', geo: 'North America' }, _5566: { name: 'St. Anthony, Newfoundland', geo: 'North America' }, _85: { name: 'St. Barts (St. Barthelemy)', geo: 'Caribbean' }, _104: { name: 'St. Croix, U.S. Virgin Islands', geo: 'Caribbean' }, _1565: { name: 'St. Denis, Reunion Islands', geo: 'Africa' }, _924: { name: 'St. George, Bermuda', geo: 'Caribbean' }, _98: { name: 'St. Georges, Grenada, West Indies', geo: 'Caribbean' }, _6357: { name: 'St. Helena, Norway', geo: 'Western Europe' }, _1505: { name: 'St. Helena, United Kingdom', geo: 'Western Europe' }, _1566: { name: 'St. Helier, Channel Islands', geo: 'Western Europe' }, _928: { name: 'St. Jean de Luz, France', geo: 'Western Europe' }, _1567: { name: 'St. John\'s, Antigua', geo: 'Caribbean' }, _930: { name: 'St. Johns, Newfoundland', geo: 'North America' }, _2773: { name: 'St. Kilda, Scotland', geo: 'Western Europe' }, _1061: { name: 'St. Lawrence River, Canada', geo: 'North America' }, _101: { name: 'St. Lucia, Caribbean', geo: 'Caribbean' }, _87: { name: 'St. Maarten, Netherlands Antilles', geo: 'Caribbean' }, _935: { name: 'St. Malo, France', geo: 'Western Europe' }, _1140: { name: 'St. Matthew Island, Alaska', geo: 'North America' }, _575: { name: 'St. Peter Port (Guernsey), England', geo: 'Western Europe' }, _69: { name: 'St. Petersburg, Russia', geo: 'Russia' }, _937: { name: 'St. Pierre, St. Pierre and Miquelon', geo: 'North America' }, _499: { name: 'St. Thomas, U.S. Virgin Islands', geo: 'Caribbean' }, _308: { name: 'St. Tropez, France', geo: 'Western Europe' }, _897: { name: 'St. Vincent (Sao Vicente), Cape Verde Islands', geo: 'Africa' }, _3529: { name: 'Staffa, Scotland', geo: 'Western Europe' }, _2489: { name: 'Stanley, Falkland Islands', geo: 'South America' }, _242: { name: 'Stavanger, Norway', geo: 'Western Europe' }, _1568: { name: 'Stewart Island, New Zealand', geo: 'South Pacific' }, _72: { name: 'Stockholm, Sweden', geo: 'Western Europe' }, _3134: { name: 'Stokmarknes, Norway', geo: 'Western Europe' }, _6275: { name: 'Storfjordenm, Norway', geo: 'Western Europe' }, _943: { name: 'Stornoway, Scotland', geo: 'Western Europe' }, _5503: { name: 'Storstappen Island, Norway', geo: 'Western Europe' }, _1569: { name: 'Stromboli, Aeolian Islands', geo: 'Western Europe' }, _6156: { name: 'Stykkisholmur, Iceland', geo: 'Western Europe' }, _9: { name: 'Suez Canal, Egypt', geo: 'Africa' }, _4612: { name: 'Sullivan Bay, Ecuador', geo: 'South America' }, _4689: { name: 'Sumbawa, Indonesia', geo: 'South East Asia' }, _3010: { name: 'Sur, Oman', geo: 'Western Asia' }, _173: { name: 'Surabaya, Java, Indonesia', geo: 'South East Asia' }, _2535: { name: 'Surtsey, Iceland', geo: 'Western Europe' }, _269: { name: 'Suva, Fiji Islands', geo: 'South Pacific' }, _2529: { name: 'Svalbard, Norway', geo: 'Western Europe' }, _948: { name: 'Svolvaer, Norway', geo: 'Western Europe' }, _62: { name: 'Sydney, Australia', geo: 'South Pacific' }, _221: { name: 'Sydney, Nova Scotia', geo: 'North America' }, _2959: { name: 'Symi, Greece', geo: 'Western Europe' }, _950: { name: 'Syracuse, Sicily', geo: 'Western Europe' }, _4487: { name: 'Syros, Greece', geo: 'Western Europe' }, _4302: { name: 'Tadoussac, Quebec', geo: 'North America' }, _951: { name: 'Tahaa, French Polynesia', geo: 'South Pacific' }, _2572: { name: 'Tahuata, Marquesas, French Polynesia', geo: 'South Pacific' }, _4576: { name: 'Taichung, Taiwan, China', geo: 'East Asia' }, _756: { name: 'Taiohae, Nuku Hiva, Marquesas', geo: 'South Pacific' }, _2360: { name: 'Takamatsu, Japan', geo: 'East Asia' }, _952: { name: 'Takoradi, Ghana', geo: 'Africa' }, _6292: { name: 'Talcahuano, Chile', geo: 'South America' }, _65: { name: 'Tallinn, Estonia', geo: 'Eastern Europe' }, _2441: { name: 'Tamatave (Toamasina), Madagascar', geo: 'Africa' }, _354: { name: 'Tampa, Florida', geo: 'North America' }, _12: { name: 'Tangier, Morocco', geo: 'Africa' }, _4459: { name: 'Taolagnaro, Madagascar', geo: 'Africa' }, _325: { name: 'Taormina , Sizilien, Italien', geo: 'Western Europe' }, _5639: { name: 'Tarragona, Spain', geo: 'Western Europe' }, _953: { name: 'Tarragona, Spain', geo: 'Western Europe' }, _2905: { name: 'Tasiilaq, Greenland', geo: 'Western Europe' }, _955: { name: 'Tauranga, New Zealand', geo: 'South Pacific' }, _2580: { name: 'Taveuni, Fiji', geo: 'South Pacific' }, _956: { name: 'Tema (Accra), Ghana', geo: 'Africa' }, _2277: { name: 'Tenerife, Canary Islands, Spain', geo: 'Western Europe' }, _4740: { name: 'Terneuzen, Netherlands', geo: 'Western Europe' }, _2970: { name: 'Terre-de-haut, Guadeloupe', geo: 'Caribbean' }, _145: { name: 'Thessaloniki, Greece', geo: 'Western Europe' }, _959: { name: 'Thorshavn, Denmark', geo: 'Western Europe' }, _961: { name: 'Thursday Island, Australia', geo: 'South Pacific' }, _114: { name: 'Tianjin (Beijing), China', geo: 'East Asia' }, _3535: { name: 'Tikopia, Solomon Islands', geo: 'South Pacific' }, _75: { name: 'Tilbury (London), England', geo: 'Western Europe' }, _2478: { name: 'Timaru, New Zealand', geo: 'South Pacific' }, _2927: { name: 'Tinos, Greece', geo: 'Western Europe' }, _2329: { name: 'Tiputa, Rangiroa, Tuamotus, French Polynesia', geo: 'South Pacific' }, _3165: { name: 'Tirana, Albania', geo: 'Eastern Europe' }, _5620: { name: 'Tivanipupu, Solomon Islands', geo: 'South Pacific' }, _1425: { name: 'Toba, Japan', geo: 'East Asia' }, _4519: { name: 'Tobago Cays, St. Vincent and Grenadine', geo: 'Caribbean' }, _2884: { name: 'Tobago, Trinidad and Tobago', geo: 'Caribbean' }, _965: { name: 'Tobermory, Scotland', geo: 'Western Europe' }, _5630: { name: 'Tokeh, Sierra Leone', geo: 'Africa' }, _5433: { name: 'Tokushima, Japan', geo: 'East Asia' }, _187: { name: 'Tokyo, Japan', geo: 'East Asia' }, _6324: { name: 'Tomonoura, Japan', geo: 'East Asia' }, _3055: { name: 'Tondheim, Norway', geo: 'Western Europe' }, _1417: { name: 'Toplobampo, Mexico', geo: 'North America' }, _4666: { name: 'Torishima, Japan', geo: 'East Asia' }, _5352: { name: 'Torquay, Devon, United Kingdom', geo: 'Western Europe' }, _1639: { name: 'Torshavn, Faroe Islands', geo: 'Western Europe' }, _2709: { name: 'Tortel, Chile', geo: 'South America' }, _2589: { name: 'Tortola, B.V.I.', geo: 'Caribbean' }, _5582: { name: 'Tortuguero, Costa Rica', geo: 'Central America' }, _3142: { name: 'Torvik, Norway', geo: 'Western Europe' }, _970: { name: 'Toulon, France', geo: 'Western Europe' }, _1134: { name: 'Tournon, France', geo: 'Western Europe' }, _971: { name: 'Townsville, Australia', geo: 'South Pacific' }, _4597: { name: 'Toyama, Japan', geo: 'East Asia' }, _972: { name: 'Tracy Arm, Alaska', geo: 'North America' }, _1178: { name: 'Trapani, Italy', geo: 'Western Europe' }, _2466: { name: 'Travemunde, Germany', geo: 'Western Europe' }, _1507: { name: 'Treasure Island (Juventud), Cuba', geo: 'Caribbean' }, _2770: { name: 'Tresco, Isles of Scilly', geo: 'Western Europe' }, _1176: { name: 'Trieste, Italy', geo: 'Western Europe' }, _4311: { name: 'Trincomalee, Sri Lanka', geo: 'South Asia' }, _6179: { name: 'Trinidad (Cuba), Cuba', geo: 'Caribbean' }, _4661: { name: 'Tristan da Cunha, United Kingdom', geo: 'Western Europe' }, _1513: { name: 'Trogir, Croatia', geo: 'Eastern Europe' }, _2291: { name: 'Trois Ilets, Martinique', geo: 'Caribbean' }, _4520: { name: 'Troisrivieres, Canada', geo: 'North America' }, _2372: { name: 'Trollfjord, Norway', geo: 'Western Europe' }, _975: { name: 'Tromso, Norway', geo: 'Western Europe' }, _243: { name: 'Trondheim, Norway', geo: 'Western Europe' }, _4667: { name: 'Trujillo, Honduras', geo: 'Central America' }, _5485: { name: 'Tsuruga, Japan', geo: 'East Asia' }, _6325: { name: 'Tual, Indonesia', geo: 'South East Asia' }, _4668: { name: 'Tuam Island, Papua New Guinea', geo: 'South Pacific' }, _3578: { name: 'Tufi Harbour, Papua New Guinea', geo: 'South Pacific' }, _6252: { name: 'Tusket Island, Nova Scotia, Canada', geo: 'North America' }, _2547: { name: 'Twillingate, Canada', geo: 'North America' }, _4645: { name: 'Tymlat, Russia', geo: 'Russia' }, _3680: { name: 'Tysfjord, Norway', geo: 'Western Europe' }, _4642: { name: 'Tyuleniy Island, Russia', geo: 'Russia' }, _4500: { name: 'Ubatuba, Brazil', geo: 'South America' }, _981: { name: 'Udjung Pandang, Indonesia', geo: 'South East Asia' }, _2841: { name: 'Ullapool, Scotland', geo: 'Western Europe' }, _5297: { name: 'Ulukhaktok, Northwest Territories, Canada', geo: 'North America' }, _1062: { name: 'Ulvik, Norway', geo: 'Western Europe' }, _3536: { name: 'Unartoq, Greenland', geo: 'Western Europe' }, _5372: { name: 'Unga Village, Alaska', geo: 'North America' }, _3094: { name: 'Union Island, Grenadines', geo: 'Caribbean' }, _247: { name: 'Ushuaia, Argentina', geo: 'South America' }, _6303: { name: 'Utila, Honduras', geo: 'Central America' }, _4679: { name: 'Utria Natl Park, Nuqui Harbour, Colombia', geo: 'South America' }, _3585: { name: 'Utupua Island, Solomon Islands', geo: 'South Pacific' }, _2742: { name: 'Uummannaq, Greenland', geo: 'Western Europe' }, _1479: { name: 'Uwajima, Japan', geo: 'East Asia' }, _3123: { name: 'Vadso, Norway', geo: 'Western Europe' }, _6143: { name: 'Vairao (Matiti), Tahiti, French Polynesia', geo: 'South Pacific' }, _38: { name: 'Valdez, Alaska', geo: 'North America' }, _984: { name: 'Valencia, Spain', geo: 'Western Europe' }, _326: { name: 'Valletta, Malta', geo: 'Western Europe' }, _260: { name: 'Valparaiso (Santiago), Chile', geo: 'South America' }, _355: { name: 'Vancouver, British Columbia', geo: 'North America' }, _3122: { name: 'Vardo, Norway', geo: 'Western Europe' }, _2766: { name: 'Varna, Bulgaria', geo: 'Eastern Europe' }, _988: { name: 'Vavau, Tonga Islands', geo: 'South Pacific' }, _319: { name: 'Venice, Italy', geo: 'Western Europe' }, _2534: { name: 'Vestmannaey Island, Iceland', geo: 'Western Europe' }, _40: { name: 'Victoria, British Columbia', geo: 'North America' }, _991: { name: 'Victoria, Seychelles', geo: 'Africa' }, _1128: { name: 'Vienna, Austria', geo: 'Western Europe' }, _992: { name: 'Vigo, Spain', geo: 'Western Europe' }, _2533: { name: 'Vigur Island, Iceland', geo: 'Western Europe' }, _993: { name: 'Vik, Norway', geo: 'Western Europe' }, _3334: { name: 'Vilamoura, Portugal', geo: 'Western Europe' }, _309: { name: 'Villefranche, France', geo: 'Western Europe' }, _107: { name: 'Virgin Gorda, British Virgin Islands', geo: 'Caribbean' }, _2885: { name: 'Vis, Croatia', geo: 'Eastern Europe' }, _73: { name: 'Visby, Sweden', geo: 'Western Europe' }, _996: { name: 'Vitoria, Brazil', geo: 'South America' }, _5596: { name: 'Vizhanjim, India', geo: 'South Asia' }, _997: { name: 'Vladivostok, Russia', geo: 'Russia' }, _998: { name: 'Volos, Greece', geo: 'Western Europe' }, _3755: { name: 'Waitangi (Bay of Islands), New Zealand', geo: 'South Pacific' }, _4461: { name: 'Wakayama, Japan', geo: 'East Asia' }, _6229: { name: 'Wakkanai (Hokkaido), Japan', geo: 'East Asia' }, _6293: { name: 'Wallaroo, Australia', geo: 'South Pacific' }, _21: { name: 'Walvis Bay, Namibia', geo: 'Africa' }, _67: { name: 'Warnemunde, Germany', geo: 'Western Europe' }, _78: { name: 'Waterford, Ireland', geo: 'Western Europe' }, _1002: { name: 'Wellington, New Zealand', geo: 'South Pacific' }, _1003: { name: 'West End, Bermuda', geo: 'Caribbean' }, _1005: { name: 'West Palm Beach (Port of Palm Beach), Florida', geo: 'North America' }, _1006: { name: 'West Point, Falkland Islands', geo: 'South America' }, _2914: { name: 'Wewak, Papua New Guinea', geo: 'South Pacific' }, _1007: { name: 'White Island, New Zealand', geo: 'South Pacific' }, _1008: { name: 'Whitsunday Islands, Australia', geo: 'South Pacific' }, _537: { name: 'Whittier, Alaska', geo: 'North America' }, _97: { name: 'Willemstad, Curacao', geo: 'South America' }, _2454: { name: 'Willis Island, Australia', geo: 'South Pacific' }, _3599: { name: 'Wineglass Bay, Australia', geo: 'South Pacific' }, _2857: { name: 'Wismar, Germany', geo: 'Western Europe' }, _3540: { name: 'Woody Point, Newfoundland', geo: 'North America' }, _1010: { name: 'Wrangell, Alaska', geo: 'North America' }, _3571: { name: 'Wyndham, Australia', geo: 'South Pacific' }, _1369: { name: 'Xiamen, China', geo: 'East Asia' }, _373: { name: 'Xingang (Beijing), China', geo: 'East Asia' }, _2382: { name: 'Xlendi, Malta', geo: 'Western Europe' }, _2576: { name: 'Yakushima, Japan', geo: 'East Asia' }, _194: { name: 'Yangon (Rangoon), Myanmar', geo: 'South East Asia' }, _3640: { name: 'Yankicha Island, Kuril Islands', geo: 'Russia' }, _2481: { name: 'Yap Island, Micronesia', geo: 'South East Asia' }, _4462: { name: 'Yatsushiro, Japan', geo: 'East Asia' }, _3568: { name: 'Yirrkala, Australia', geo: 'South Pacific' }, _5571: { name: 'Yokkaichi, Japan', geo: 'East Asia' }, _372: { name: 'Yokohama, Japan', geo: 'East Asia' }, _2447: { name: 'Yorkeys Knob, Australia', geo: 'South Pacific' }, _4640: { name: 'Yttygran Island, Russia', geo: 'Russia' }, _1514: { name: 'Zadar, Croatia', geo: 'Eastern Europe' }, _1472: { name: 'Zakynthos, Greece', geo: 'Western Europe' }, _26: { name: 'Zanzibar, Tanzania', geo: 'Africa' }, _293: { name: 'Zeebrugge (Bruges), Belgium', geo: 'Western Europe' }, _3644: { name: 'Zhupanova River, Kamchatka', geo: 'Russia' }, _200: { name: 'Zihuatanejo (Ixtapa/Zihuatanejo), Mexico', geo: 'North America' } } var portsOfCallRiverCruise = { _292: { name: 'Antwerp, Belgium', geo: '' }, _1064: { name: 'Arles, France', geo: 'Western Europe' }, _367: { name: 'Astoria, Oregon', geo: 'North America' }, _1066: { name: 'Avignon, France', geo: 'Western Europe' }, _2186: { name: 'Barca d\'Alva, Portugal', geo: 'Western Europe' }, _1071: { name: 'Basel, Switzerland', geo: '' }, _426: { name: 'Bastia, France', geo: 'Western Europe' }, _5553: { name: 'Belleville, France', geo: 'Western Europe' }, _3488: { name: 'Bonn, Germany', geo: '' }, _2835: { name: 'Braubach, Germany', geo: '' }, _940: { name: 'Brugge, Belgium', geo: 'Western Europe' }, _453: { name: 'Brussels, Belgium', geo: '' }, _1079: { name: 'Budapest, Hungary', geo: '' }, _2395: { name: 'Bunbury, Australia', geo: '' }, _4594: { name: 'Cadillac, France', geo: 'Western Europe' }, _381: { name: 'Cannes, France', geo: 'Western Europe' }, _1081: { name: 'Caudebec, France', geo: 'Western Europe' }, _1598: { name: 'Chicago, Illinois', geo: 'North America' }, _1266: { name: 'Clarkston, Washington', geo: 'North America' }, _6209: { name: 'Cleveland, Ohio', geo: 'North America' }, _1084: { name: 'Cochem, Germany', geo: '' }, _1085: { name: 'Cologne, Germany', geo: '' }, _119: { name: 'Constanta, Romania', geo: 'Eastern Europe' }, _6197: { name: 'Detroit, Michigan', geo: 'North America' }, _1096: { name: 'Dresden, Germany', geo: '' }, _1097: { name: 'Durnstein, Austria', geo: '' }, _1596: { name: 'Dusseldorf, Germany', geo: '' }, _553: { name: 'Ghent, Belgium', geo: '' }, _30: { name: 'Glacier Bay, Alaska', geo: 'North America' }, _6310: { name: 'Green Bay, Wisconsin', geo: 'North America' }, _138: { name: 'Haiphong (Hanoi), Vietnam', geo: 'South East Asia' }, _297: { name: 'Hamburg, Germany', geo: '' }, _3759: { name: 'Hanoi, Vietnam', geo: 'South East Asia' }, _139: { name: 'Ho Chi Minh City (Saigon), Vietnam', geo: 'South East Asia' }, _590: { name: 'Honfleur, France', geo: 'Western Europe' }, _591: { name: 'Hong Gai (Hanoi), Vietnam', geo: 'South East Asia' }, _1520: { name: 'Hue, Vietnam', geo: 'South East Asia' }, _1490: { name: 'Juan Les Pins (Antibes), France', geo: 'Western Europe' }, _295: { name: 'Le Havre (Paris), France', geo: 'Western Europe' }, _678: { name: 'Le Verdon, France', geo: 'Western Europe' }, _680: { name: 'Leixoes (Oporto), Portugal', geo: 'Western Europe' }, _3733: { name: 'Linz, Austria', geo: '' }, _2331: { name: 'Macapa, Brazil', geo: 'South America' }, _253: { name: 'Manaus, Brazil', geo: 'South America' }, _1162: { name: 'Melk, Austria', geo: '' }, _1677: { name: 'Miltenberg, Germany', geo: '' }, _1160: { name: 'Moscow, Russia', geo: 'Russia' }, _305: { name: 'Nice, France', geo: 'Western Europe' }, _1157: { name: 'Nuremberg, Germany', geo: '' }, _775: { name: 'Parintins, Brazil', geo: 'South America' }, _376: { name: 'Paris, France', geo: 'Western Europe' }, _3285: { name: 'Pauillac, France', geo: 'Western Europe' }, _1239: { name: 'Pittsburgh, Pennsylvania', geo: 'North America' }, _347: { name: 'Portland, Oregon', geo: 'North America' }, _300: { name: 'Porto (Oporto), Portugal', geo: 'Western Europe' }, _1151: { name: 'Regensburg, Germany', geo: '' }, _2185: { name: 'Regua, Portugal', geo: 'Western Europe' }, _870: { name: 'Saigon, Vietnam', geo: 'South East Asia' }, _5420: { name: 'Saint Jean Les Deux Jumeaux, France', geo: 'Western Europe' }, _4726: { name: 'Saint-Emilion, France', geo: 'Western Europe' }, _4457: { name: 'Saint-Pierre, France', geo: 'Western Europe' }, _987: { name: 'Silistra (Varna), Bulgaria', geo: 'Eastern Europe' }, _1138: { name: 'Strasbourg, Alsace, France', geo: 'Western Europe' }, _1136: { name: 'The Dalles and Hood River, Oregon', geo: 'North America' }, _6196: { name: 'Thunder Bay, Ontario, Canada', geo: '' }, _5302: { name: 'Tobermory, Canada', geo: '' }, _1630: { name: 'Toronto, Ontario', geo: '' }, _1126: { name: 'Viviers, France', geo: 'Western Europe' }, _1122: { name: 'Wurzburg, Germany', geo: '' }, _194: { name: 'Yangon (Rangoon), Myanmar', geo: 'South East Asia' }, _293: { name: 'Zeebrugge (Bruges), Belgium', geo: 'Western Europe' } } var portsOfCallCruiseTour = { _331: { name: 'Anchorage, Alaska', geo: 'North America' }, _4659: { name: 'Barrow, Alaska', geo: 'North America' }, _547: { name: 'College Fjord, Alaska', geo: 'North America' }, _1088: { name: 'Cordova, Alaska', geo: 'North America' }, _2603: { name: 'Denali, Alaska', geo: 'North America' }, _2574: { name: 'Fairbanks, Alaska', geo: 'North America' }, _31: { name: 'Haines, Alaska', geo: 'North America' }, _32: { name: 'Hubbard Glacier, Alaska', geo: 'North America' }, _1222: { name: 'Icy Strait, Alaska', geo: 'North America' }, _33: { name: 'Inside Passage, Alaska', geo: 'North America' }, _34: { name: 'Juneau, Alaska', geo: 'North America' }, _35: { name: 'Ketchikan, Alaska', geo: 'North America' }, _415: { name: 'Misty Fjord, Alaska', geo: 'North America' }, _36: { name: 'Sitka, Alaska', geo: 'North America' }, _2598: { name: 'Talkeetna, Alaska', geo: 'North America' }, _38: { name: 'Valdez, Alaska', geo: 'North America' }, _537: { name: 'Whittier, Alaska', geo: 'North America' } } var cities = { _2078025: 'Adelaide', _1279259: 'Agra', _3038493: 'Aigues-Mortes', _3038354: 'Aix-en-Provence', _2633274: 'Akureyri', _5106834: 'Albany', _3163392: 'Alesund', _2958486: 'Alken', _847633: 'Alta', _4232679: 'Alton', _2657360: 'Ambleside', _2759794: 'Amsterdam', _3037797: 'Ancenis', _3163155: 'Andalsnes', _3037656: 'Angers', _2803138: 'Antwerpen', _733643: 'Arbanasi', _581049: 'Arkhangelsk', _3036935: 'Arles', _2759661: 'Arnhem', _2955272: 'Aschaffenburg', _580497: 'Astrakhan', _359792: 'Aswan', _5785965: 'Auburn', _3035864: 'Auvers-sur-Oise', _3035828: 'Auxonne', _3035681: 'Avignon', _2953352: 'Bad Schandau', _2952984: 'Bamberg', _3128760: 'Barcelona', _2661604: 'Basel', _2656173: 'Bath', _3204413: 'Batina', _4315588: 'Baton Rouge', _3034126: 'Beaune', _2951345: 'Beilstein', _792680: 'Belgrade', _3033636: 'Belleville', _733309: 'Belogradchik', _1587976: 'Ben Tre', _3161732: 'Bergen', _2950159: 'Berlin', _3033123: 'Besancon', _2967108: 'Blaye', _2434979: 'Bol', _2946447: 'Bonn', _2946366: 'Boppard', _3031582: 'Bordeaux', _3031368: 'Bouchemaine', _3030947: 'Bourg', _3031009: 'Bourg-en-Bresse', _683844: 'Brasov', _3060972: 'Bratislava', _2945024: 'Braunschweig', _2944800: 'Breisach am Rhein', _2944388: 'Bremen', _3030132: 'Briare', _2654675: 'Bristol', _2943049: 'Brunsbuettel', _2800866: 'Brussels', _683506: 'Bucharest', _3054643: 'Budapest', _3181402: 'Burano', _2075265: 'Busselton', _3029253: 'Cadillac', _2520600: 'Cadiz', _360630: 'Cairo', _4379966: 'Cape Girardeau', _3028641: 'Carcassonne', _3028215: 'Caudebec-en-Caux', _3028214: 'Caudebec-les-Elbeuf', _682321: 'Cernavoda', _682268: 'Cetate', _3027642: 'Chagny', _3027484: 'Chalon-sur-Saone', _3026233: 'Chateauneuf-du-Pape', _4612862: 'Chattanooga', _569696: 'Cheboksary', _2653228: 'Chester', _3178784: 'Chioggia', _1585660: 'Cho Dok', _2963370: 'Cill Airne', _4613868: 'Clarksville', _3024624: 'Clerval', _4989133: 'Clinton', _2965260: 'Cobh', _2939949: 'Cochem', _3024440: 'Cognac', _2740637: 'Coimbra', _3024306: 'Collonges', _3024297: 'Colmar', _2886242: 'Cologne', _3023924: 'Conflans-Sainte-Honorine', _3023921: 'Conflans-sur-Seine', _680963: 'Constanta', _2618425: 'Copenhagen', _2519240: 'Cordoba', _680203: 'Crisan', _2757874: 'Cuijk', _1583992: 'Da Nang', _4236895: 'Decatur', _2938540: 'Deggendorf', _1273294: 'Delhi', _3021622: 'Deluz', _3021372: 'Dijon', _3021263: 'Dole', _2756669: 'Dordrecht', _3021034: 'Dormans', _3020991: 'Doubs', _4142290: 'Dover', _2935022: 'Dresden', _2964574: 'Dublin', _3201047: 'Dubrovnik', _4854529: 'Dubuque', _3020720: 'Duclair', _2780604: 'Duernstein', _2934246: 'Duesseldorf', _2934691: 'Duisburg', _2934020: 'Eberbach', _2933882: 'Eberswalde', _2650225: 'Edinburgh', _3158668: 'Eidfjord', _2518207: 'El Puerto de Santa Maria', _2930646: 'Eltville', _592279: 'Elva', _2780072: 'Engelhartszell', _2756077: 'Enkhuizen', _3020062: 'Epernay', _2071860: 'Esperance', _3053163: 'Esztergom', _3019256: 'Evry', _3177090: 'Ferrara', _678306: 'Fetesti', _3157191: 'Flam', _3176959: 'Florence', _2925533: 'Frankfurt am Main', _2071223: 'Fremantle', _6544699: 'Friesland', _2964180: 'Gaillimh', _4893384: 'Galena', _6692393: 'Geiranger', _2797656: 'Gent', _2921034: 'Germersheim', _677106: 'Giurgiu', _3015907: 'Giverny', _2964047: 'Glengarriff', _2648404: 'Gloucester', _790560: 'Golubac', _4064671: 'Gordon', _560058: 'Goritsy', _2755420: 'Gouda', _2517117: 'Granada', _3014784: 'Gray', _4469160: 'Greenville', _2917788: 'Greifswald', _2778039: 'Grein', _2960515: 'Grevenmacher', _8643913: 'Grimsey', _2755251: 'Groningen', _3416839: 'Grundarfjoerdur', _2755003: 'Haarlem', _4389418: 'Hannibal', _2910831: 'Hannover', _1581130: 'Hanoi', _2647383: 'Harwich', _3553478: 'Havana', _2907911: 'Heidelberg', _5656882: 'Helena', _4294494: 'Henderson', _3013385: 'Herry', _2754135: 'Heusden', _1566083: 'Ho Chi Minh City', _1580541: 'Hoi An', _3013173: 'Honfleur', _779554: 'Honningsvag', _2753638: 'Hoorn', _1580240: 'Hue', _3199180: 'Hvar', _3199128: 'Ilok', _2660253: 'Interlaken', _2646088: 'Inverness', _355449: 'Isna', _1269515: 'Jaipur', _2516326: 'Jerez de la Frontera', _1268341: 'Kalna', _3050719: 'Kalocsa', _2753106: 'Kampen', _1831167: 'Kampong Chhnang', _2892794: 'Karlsruhe', _2892786: 'Karlstadt', _353802: 'Kawm Umbu', _551487: 'Kazan', _2891951: 'Kehl', _2891834: 'Kelheim', _1830804: 'Khum Angkor Ban', _703448: 'Kiev', _2752828: 'Kinderdijk', _5992500: 'Kingston', _2645198: 'Kirkwall', _2890158: 'Kitzingen', _547864: 'Kizhi', _598098: 'Klaipeda', _2618795: 'Klaksvik', _2660123: 'Koblenz', _2886946: 'Koblenz', _1275004: 'Kolkata', _3197710: 'Korcula', _543878: 'Kostroma', _3197538: 'Kotor', _3149412: 'Kragero', _2884850: 'Krakow am See', _3072929: 'Kralupy nad Vltavou', _2773549: 'Krems an der Donau', _3149312: 'Kristiansund', _537888: 'Kuzino', _5258957: 'La Crosse', _3006790: 'La Roche-Guyon', _3009194: 'Lagarde-Enval', _3009071: 'Lagny-sur-Marne', _146400: 'Larnaca', _2879929: 'Lauterbach', _3003796: 'Le Havre', _2160367: 'Leith', _2751738: 'Lelystad', _2751729: 'Lemmer', _3002383: 'Lere', _2644605: 'Lerwick', _3002172: 'Les Andelys', _2998517: 'Libourne', _146384: 'Limassol', _2772400: 'Linz', _2267057: 'Lisbon', _3071677: 'Litomerice', _2960964: 'Loch Garman', _2159720: 'Loira', _2643743: 'London', _2997744: 'Longecourt-en-Plaine', _2875376: 'Ludwigshafen am Rhein', _2997008: 'Lutzelbourg', _2960316: 'Luxembourg', _360502: 'Luxor', _2659811: 'Luzern', _2996944: 'Lyon', _2751283: 'Maastricht', _2996882: 'Macon', _3117735: 'Madrid', _2874545: 'Magdeburg', _1312609: 'Magway', _2874225: 'Mainz', _3195890: 'Makarska', _1311874: 'Mandalay', _2873891: 'Mannheim', _2996148: 'Mantes-la-Jolie', _2873307: 'Marktbreit', _2995461: 'Marseilles-les-Aubigny', _2692469: 'Marstrand', _2995387: 'Martigues', _2771760: 'Mauthausen', _2994798: 'Meaux', _2872155: 'Meissen', _2771682: 'Melk', _2994651: 'Melun', _4641239: 'Memphis', _2994581: 'Menetreol-sous-Sancerre', _2994160: 'Metz', _2750896: 'Middelburg', _3173435: 'Milano', _2871079: 'Miltenberg', _2871039: 'Minden', _3047967: 'Mohacs', _2790869: 'Mons', _2992938: 'Montbeliard', _6077243: 'Montreal', _524901: 'Moscow', _2867714: 'Munich', _2991189: 'Munster', _524305: 'Murmansk', _1262412: 'Murshidabad', _1574023: 'My Tho', _1308204: 'Myanaung', _2990969: 'Nantes', _4644585: 'Nashville', _4437982: 'Natchez', _2866718: 'Nedlitz', _2990474: 'Nevers', _4400427: 'New Madrid', _4335045: 'New Orleans', _2990440: 'Nice', _2862620: 'Nienburg', _2750053: 'Nijmegen', _700051: 'Nikopol', _520555: 'Nizhniy Novgorod', _20000008: 'Normandy', _3194360: 'Novi Sad', _2861650: 'Nuernberg', _2861422: 'Oberammergau', _2858562: 'Oberwesel', _2858092: 'Oderberg', _698740: 'Odessa', _2989674: 'Oingt', _3224850: 'Olden', _2857458: 'Oldenburg', _671832: 'Oltenita', _716791: 'Opusztaszer', _3193935: 'Osijek', _3143244: 'Oslo', _6094817: 'Ottawa', _2640729: 'Oxford', _3171728: 'Padova', _4048662: 'Paducah', _1302638: 'Pagan', _2988742: 'Palavas-les-Flots', _2855525: 'Papenburg', _2988507: 'Paris', _2855328: 'Passau', _2988350: 'Pauillac', _3046526: 'Pecs', _2855091: 'Peenemuende', _2063591: 'Penneshaw', _5308480: 'Peoria', _2736316: 'Peso da Regua', _1821306: 'Phnom Penh', _20000007: 'Pinhao', _2986501: 'Poissy', _3170397: 'Polesella', _2640101: 'Poole', _2985999: 'Port-en-Bessin-Huppain', _2985934: 'Port-Saint-Louis-du-Rhone', _2735943: 'Porto', _2639996: 'Portsmouth', _2852458: 'Potsdam', _3067696: 'Prague', _5268002: 'Prairie du Chien', _2659131: 'Provence', _1299154: 'Pyay', _6325494: 'Quebec', _2984467: 'Ranchot', _5042773: 'Red Wing', _2849483: 'Regensburg', _2960154: 'Remich', _3413829: 'Reykjavik', _2983761: 'Rhinau', _2961819: 'Ringaskiddy', _2983451: 'Riquewihr', _3169070: 'Rome', _2614553: 'Ronne', _3141292: 'Rosendal', _2844249: 'Roth', _2844056: 'Rothenburg ob der Tauber', _2747891: 'Rotterdam', _3066730: 'Roudnice', _2982652: 'Rouen', _3066636: 'Roztoky', _2843396: 'Rudesheim', _727523: 'Ruse', _2638925: 'Ruthin', _2842647: 'Saarbruecken', _1568212: 'Sadek', _1298482: 'Sagaing', _2150660: 'Saint Kilda', _498817: 'Saint Petersburg', _2980392: 'Saint-Emilion', _2979310: 'Saint-Jean-de-Losne', _2979218: 'Saint-Jean-les-Deux-Jumeaux', _2978804: 'Saint-Leger-sur-Dheune', _2977921: 'Saint-Nazaire', _3111108: 'Salamanca', _2766824: 'Salzburg', _499099: 'Samara', _2976114: 'Santenay', _498677: 'Saratov', _2975758: 'Saumur', _4221552: 'Savannah', _2975588: 'Saverne', _2834498: 'Schweinfurt', _2975233: 'Selestat', _2833242: 'Seligenstadt', _2974733: 'Sete', _2974710: 'Seurre', _2510911: 'Sevilla', _3190941: 'Sibenik', _1822214: 'Siem Reap', _2627130: 'Siglufjoerdur', _727221: 'Silistra', _3190813: 'Sisak', _3190586: 'Slavonski Brod', _3137405: 'Sortland', _2830582: 'Speyer', _3190261: 'Split', _3190103: 'Sremska Mitrovica', _4407066: 'St. Louis', _3137115: 'Stavanger', _4091859: 'Stevenson', _2826536: 'Stolpe', _2636790: 'Stornoway', _2826287: 'Stralsund', _2973783: 'Strasbourg', _2826099: 'Straubing', _665790: 'Sulina', _726534: 'Svishtov', _2147714: 'Sydney', _3083829: 'Szczecin', _715429: 'Szeged', _3165981: 'Taglio di Po', _2973393: 'Tarascon', _1292037: 'Thayetmyo', _5756304: 'The Dalles', _2972811: 'Thionville', _2635836: 'Tilbury', _714659: 'Tokaj', _6167865: 'Toronto', _2611396: 'Torshavn', _2972315: 'Toulouse', _2972213: 'Tournon', _2972203: 'Tournus', _2972191: 'Tours', _2971722: 'Trevoux', _2821164: 'Trier', _3188763: 'Trogir', _3133895: 'Tromso', _3133880: 'Trondheim', _664518: 'Tulcea', _479532: 'Uglich', _3063548: 'Usti nad Labem', _2745912: 'Utrecht', _2745739: 'Veere', _725993: 'Veliko Turnovo', _3164603: 'Venice', _475071: 'Verkhniye Mandrogi', _2969766: 'Vernon', _3164527: 'Verona', _2610343: 'Vestmanna', _4449620: 'Vicksburg', _725905: 'Vidin', _2761369: 'Vienna', _2969284: 'Vienne', _2732438: 'Vila Real', _2817202: 'Vilshofen', _1562693: 'Vinh Long', _5406567: 'Visalia', _2662689: 'Visby', _3042824: 'Visegrad', _2967816: 'Viviers', _472757: 'Volgograd', _2816702: 'Volkach', _3187047: 'Vukovar', _2967487: 'Waltenheim-sur-Zorn', _2761593: 'Weissenkirchen in der Wachau', _2810716: 'Wertheim', _2809346: 'Wiesbaden', _2744388: 'Willemstad', _5053156: 'Winona', _2807465: 'Wismar', _5279483: 'Wittenberg', _2806501: 'Wolgast', _2805615: 'Wuerzburg', _2805475: 'Wusterwitz', _2805385: 'Xanten', _2967261: 'Xouaxange', _1298824: 'Yangon', _468902: 'Yaroslavl', _2633352: 'York', _3186886: 'Zagreb', _2744014: 'Zeeland', _2804882: 'Zell', _2657896: 'Zurich' } var waterways = { _99: 'Amazon', _19: 'Asia and Asia Pacific', _178: 'Asia River', _136: 'Columbia River', _134: 'Cumberland River', _77: 'Danube River', _82: 'Dordogne River', _85: 'Douro River', _80: 'Dutch and Belgian Waterways', _96: 'Elbe River', _15: 'Europe', _179: 'Europe - River Cruises', _93: 'Ganges River', _81: 'Garonne River', _95: 'Gironde', _78: 'Main River', _86: 'Mekong River', _112: 'Mississippi River', _79: 'Moselle River', _91: 'Neva River', _94: 'Nile River', _48: 'North America', _131: 'Ohio River', _88: 'Po River', _76: 'Rhine River', _84: 'Rhone River', _129: 'Saint Lawrence', _102: 'Saone River', _83: 'Seine River', _135: 'Snake River', _32: 'South America', _90: 'Svir River', _132: 'Tennessee River', _180: 'U. S. River', _89: 'Volga River', _92: 'Yangtze River' }