(function($){

TravelPlanner.Sidebar = {

	init: function(){
		$('#sidebar-trip').simplyTabs({
			'tabsNavMenuSelector': '#sidebarTabs',
			'selectedTabClass': 'selected',
			'tabsPanelClass': 'sidebar-content',
			'invisibleTabClass': 'hidden',
			'visibleTabClass': 'visible'
		});

		// initialize events
		$('.datepicker').datepicker({
			dateFormat: 'dd/mm/yy',
			minDate: new Date(),
			duration: 0,
			showOn: 'both',
			buttonImage: '/media/images/icons/calendar.gif'
		});
		
		// custom hotel
		$('#hotels-custom').live('click', function(){
			var el = $(this);
			var type = el.attr('checked');
			
			if (type){
				// use custom hotels
				$('#top_hotels_list ol li a').removeClass('selected');
				$('#hotels-sidebar-content .sidebar-info').addClass('hidden');
				$('#hotels-name-input, #hotels-price-input').val('');
				$('#hotels-name-input, #hotels-price-input').attr('disabled', false);
			} else {
				// update form
				$('#hotels-name-input').val('');
				$('#hotels-price-input').val('');
				$('#hotels-name-input, #hotels-price-input').attr('disabled', true);
			}
		});
		
		// save hotel
		$('#hotels-sidebar-content .save-button').live('click', function(){
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			// add hotel data to destination object
			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			var selectedHotel = $('#top_hotels_list ol li a.selected');
			
			destination.hotel = {
				id: selectedHotel.length ? selectedHotel.attr('href').split('#')[1] : null,
				name: $('#hotels-name-input').val() || null,
				price: $('#hotels-price-input').val() || null,
				nights: $('#hotels-nights-select').val(),
				checkInDate: (+$('#hotels-check-in-date').datepicker('getDate')) || null,
				custom: $('#hotels-custom').attr('checked')
			};
			
			TravelPlanner.updateDestination(uid);
			
			return false;
		});

		// remove hotel
		$('#hotels-sidebar-content .remove-button').live('click', function(){
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			// remove hotel data from destination object
			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			destination.hotel = {};

			TravelPlanner.Sidebar.updateHotelForm(uid);

			// update hotel info
			$('#top_hotels_list ol li a').removeClass('selected');
			$('#hotels-sidebar-content .sidebar-info').addClass('hidden');
			
			TravelPlanner.updateDestination(uid);
			
			return false;
		});
	
		// hotels list click event
		$('#top_hotels_list ol li a').live('click', function(){
			var el = $(this);
			var id = el.attr('href').split('#')[1];
			var hotelData = TravelPlanner.Sidebar.hotelData[id];
			var sidebarInfo = $('#hotels-sidebar-content .sidebar-info');
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return;

			if ($('#hotels-custom').attr('checked')){
				$('#hotels-custom').trigger('click');
			}

			// update hotels info
			var html = '';
			var amount = TravelPlanner.Currency.convertAmount(hotelData.best_price, TravelPlanner.currency);
			html = _.template(TravelPlanner.Templates.hotelInfo, {
				hotelName: TravelPlanner.Utils.wrapText(hotelData.name, 32),
				hotelTitle: hotelData.name,
				hotelImage: hotelData.image,
				hotelAmount: amount,
				currency: TravelPlanner.currency,
				hotelStars: hotelData.stars.replace('.', '_'),
				hotelAddress: hotelData.address,
				hotelDesc: TravelPlanner.Utils.wrapText(hotelData.desc, 280)
			});
			sidebarInfo.html(html).removeClass('hidden');

			// mark as selected
			$('#top_hotels_list ol li a').removeClass('selected');
			el.addClass('selected');

			// update form
			$('#hotels-name-input').val(hotelData.name);
			$('#hotels-price-input').val(amount);

			return false;
		});
		
		// save flight for home airport
		$('#flights-sidebar-content .save-button').live('click', function(){
			var destinations = TravelPlanner.Data.destinations;
			var dLen = destinations.length;
			var firstDestination = destinations[0];
			var lastDestination = destinations[destinations.length-1]; 
			
			var _return = $('#flights-return-radio').is(':checked');
			var price = $('#flights-price-input').val() || null;
			var from = firstDestination.transport.from;
			var to = firstDestination.transport.to;
			
			var data = TravelPlanner.flightBestPrices[from + '|' + to];
			
			var transport = {
				'return': _return,
				price: price,
				departDate: (+$('#flights-depart-date').datepicker('getDate')) || null,
				returnDate: (+$('#flights-return-date').datepicker('getDate')) || null
			};
			$.extend(firstDestination.transport, transport);
			
			var convertAmount = TravelPlanner.Currency.convertAmount;
			var done = function(){
				TravelPlanner.renderDestinations();
				TravelPlanner.highlightDestination('homeairport');
			};
			
			if (_return){
				if (dLen > 2){
					// Need to check if the 2nd destination and last destination are same
					// If same, means 'return' flight works
					// If not same, have to add another destination that is the same as the 2nd destination
					var secondDestination = destinations[1];
					if (secondDestination.location.id == lastDestination.location.id){
						$.extend(lastDestination.transport, transport);
						if (Math.round(convertAmount(price, 'USD', TravelPlanner.currency)) == data.returnPrice){
							firstDestination.transport.airlineName = data.returnAirlineName;
							lastDestination.transport.airlineName = data.returnAirlineName;
						} else {
							firstDestination.transport.airlineName = null;
							lastDestination.transport.airlineName = null;
						}
						done();
					} else {
						$.extend(lastDestination.transport, {
							to: secondDestination.location.airportCode || secondDestination.location.hotelLocationCode,
							departDate: null
						});
						var destinationHash = {};
						$.extend(true, destinationHash, secondDestination, {
							uid: TravelPlanner.Utils.genUID(),
							hotel: {},
							activities: [],
							transport: {
								to: firstDestination.location.airportCode || firstDestination.location.hotelLocationCode,
								referLocation: firstDestination.uid
							}
						});
						$.extend(destinationHash.transport, transport);
						firstDestination.transport.referLocation = destinationHash.uid; // switching uid referrals
						destinations.push(destinationHash);
						
						TravelPlanner.requestFlightBestPrice({
							from: lastDestination.location.airportCode || lastDestination.location.hotelLocationCode,
							to: destinationHash.location.airportCode || destinationHash.location.hotelLocationCode
						}, function(data){
							$.extend(lastDestination.transport, {
								airlineName: data.onewayAirlineName || null,
								price: convertAmount(data.onewayPrice, TravelPlanner.currency) || null
							});
							done();
						});
					}
				} else {
					$.extend(lastDestination.transport, transport);
					if (Math.round(convertAmount(price, 'USD', TravelPlanner.currency)) == data.returnPrice){
						firstDestination.transport.airlineName = data.returnAirlineName;
						lastDestination.transport.airlineName = data.returnAirlineName;
					} else {
						firstDestination.transport.airlineName = null;
						lastDestination.transport.airlineName = null;
					}
					done();
				}
			} else {
				var _price = Math.round(convertAmount(price, 'USD', TravelPlanner.currency));
				firstDestination.transport.airlineName = (_price == data.onewayPrice) ? data.onewayAirlineName : null;
				TravelPlanner.requestFlightBestPrice({
					from: to,
					to: from
				}, function(data){
					$.extend(lastDestination.transport, {
						airlineName: data.onewayAirlineName || null,
						price: convertAmount(data.onewayPrice, TravelPlanner.currency) || null,
						'return': false,
						departDate: null,
						returnDate: null
					});
					done();
				});
			}
			
			return false;
		});
		
		// return/oneway toggle for home airport flight
		// No live "change" event here. Careful.
		var checkFlightRadios = function(){
			var _return = $('#flights-return-radio').is(':checked');
			var transport = TravelPlanner.Data.destinations[0].transport;
			var data = TravelPlanner.flightBestPrices[transport.from + '|' + transport.to];
			var priceInput = $('#flights-price-input');
			var returnDateInput = $('#flights-return-date');
			var returnDateInputContainer = returnDateInput.parents('li:first');
			
			var convertAmount = TravelPlanner.Currency.convertAmount;
			var currency = TravelPlanner.currency;
			
			if (_return){
				if (data.returnPrice) priceInput.val(convertAmount(data.returnPrice, currency));
				returnDateInputContainer.show();
			} else{
				if (data.onewayPrice) priceInput.val(convertAmount(data.onewayPrice, currency));
				returnDateInput.datepicker('setDate', null);
				returnDateInputContainer.hide();
			}
		};
		$('#flights-sidebar-content .radio input:radio').change(checkFlightRadios);
		if ($.browser.msie && parseInt($.browser.version, 10) <= 8){
			$('#flights-sidebar-content .radio input:radio').click(checkFlightRadios);
		}
		
		// best price info links
		$('#flights-sidebar-content .return-info:visible a').live('click', function(){
			var price = $(this).find('.price').text();
			$('#flights-price-input').val(price);
			$('#flights-return-radio').attr('checked', true);
			return false;
		});
		$('#flights-sidebar-content .oneway-info:visible a').live('click', function(){
			var price = $(this).find('.price').text();
			$('#flights-price-input').val(price);
			$('#flights-oneway-radio').attr('checked', true);
			return false;
		});
		$('#transport-sidebar-content .oneway-info:visible a').live('click', function(){
			var price = $(this).find('.price').text();
			$('#transport-type-select').val('flight');
			$('#transport-price-input').val(price);
			return false;
		});
		
		// update flight details on return flight link
		$('#sidebar .update-home-airport').live('click', function(){
			TravelPlanner.pub('focusItineraryDestination', ['homeairport']);
			return false;
		});
		
		$('#transport-sidebar-content .save-button').live('click', function(){
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			$.extend(destination.transport, {
				type: $('#transport-type-select').val() || 'flight',
				price: $('#transport-price-input').val() || null,
				departDate: +$('#transport-depart-date').datepicker('getDate') || null
			});
			
			TravelPlanner.updateDestination(uid);
			
			return false;
		});
		
		// activity list click event
		$('#activities_list ol li a').live('click', function(){
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			var el = $(this);
			var activityList = TravelPlanner.Sidebar.activitiesData;
			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			var activityData = [];
			var activityItem = {};

			if (destination.activities) activityData = destination.activities;
			el.toggleClass('selected');
			
			// add activity from api
			var activityID = el.attr('href').split('#')[1];

			if (el.hasClass('selected')){
				activityItem.id = activityID;
				activityItem.name = activityList[activityID].name;
				activityItem.theme = activityList[activityID].theme;
				activityItem.desc = activityList[activityID].desc;
				activityItem.type = 'api';
				activityData.push(activityItem);
			}else{
				$.each(activityData, function(i, d){
					if (d.id == activityID) {
						activityData.remove(i);
						return false;
					}
				});
			}

			destination['activities'] = activityData;
			TravelPlanner.updateDestination(uid);

			return false;
		});
		
		$('#your_activities_list ol li a').live('click', function(){
			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			var el = $(this);
			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			var activityData = [];
			var activityItem = {};

			if (destination.activities) activityData = destination.activities;
			
			// add activity from api
			var activityID = el.attr('href').split('#')[1];

			$.each(activityData, function(i, d){
				if (d.id == activityID) {
					activityData.remove(i);
					return false;
				}
			});

			el.remove();
			destination['activities'] = activityData;
			
			if ($('#your_activities_list ol li a').length == 0){
				$('#thingstodo-sidebar-content').removeClass('has-custom-activities');
			}

			TravelPlanner.updateDestination(uid);

			return false;
		});
		
		// activity list add activity event
		$('#thingstodo-sidebar-content #add-activity').live('click', function(){
			var el = $(this);
			var dataActivities = [];

			var uid = TravelPlanner.Utils.getCurrentUID();
			if (!uid) return false;

			var destination = TravelPlanner.Utils.getDestinationByUID(uid);
			if (destination.activities) dataActivities = destination.activities;
			
			var yourActivities = $('#your_activities_list ol');
			var activityItem = {};			
			if ($('#activities-title').val().length > 0){
				activityItem.id = 'custom-' + yourActivities.find('li').length;
				activityItem.name = $('#activities-title').val();
				activityItem.theme = null;
				activityItem.desc = null;
				activityItem.type = 'custom';
			}
			dataActivities.push(activityItem);
			destination.activities = dataActivities;
			$('#thingstodo-sidebar-content').addClass('has-custom-activities');
			$('#activities-title').val('');

			var activities_html = _.template(TravelPlanner.Templates.activityList, {
					activityID: activityItem.id,
					activityName: TravelPlanner.Utils.wrapText(activityItem.name, 36),
					activityTitle: activityItem.name,
					activityClass: 'selected'
				});
			yourActivities.append(activities_html);

			TravelPlanner.updateDestination(uid);
			return false;
		});
		
		TravelPlanner.sub('updateSidebar', function(e, uid){
			if (uid === 'homeairport'){
				TravelPlanner.Sidebar.updateFlight(uid);
			} else {
				var destination = TravelPlanner.Utils.getDestinationByUID(uid);
				if (destination){
					var locationName = destination.location.name;
					if ($.browser.msie && parseInt($.browser.version, 10) <= 7) locationName += ' '; // stupid spacing bug in IE7
					$('#sidebar-trip:visible .destination-city, #sidebar-return:visible .destination-city').text(locationName);
					TravelPlanner.Sidebar.updateTransport(uid);
					TravelPlanner.Sidebar.updateHotel(uid);
					TravelPlanner.Sidebar.updateActivities(uid);
				} else {
					$('#sidebar-intro').show().siblings('.sidebar-item').hide();
				}
			}
		});
	},

	// array of top 10 hotel objects from API
	hotelData: {},

	// update sidebar info and hotels.data from API data
	updateHotel: function(uid){
		if (!uid) return false;
		var destination = TravelPlanner.Utils.getDestinationByUID(uid);
		
		// add to top hotels list
		$.ajax({
			url: '/api/top_hotels?location_id=' + destination.location.id,
			dataType: 'json',
			success: function(data){

				// update top hotels list
				var topHotels = [];
				var html = '';
				var hotel_html = '';
				var amount = 0;

				$.each(data, function(i, d){
					topHotels.push(d);
				});

				if (topHotels.length > 0){
					$.each(topHotels, function(i, d){
						amount = TravelPlanner.Utils.formatPrice(TravelPlanner.Currency.convertAmount(d.best_price, TravelPlanner.currency));
						hotel_html = _.template(TravelPlanner.Templates.listItemHotel, {
							hotelID: d.id,
							hotelName: TravelPlanner.Utils.wrapText(d.name, 32),
							hotelTitle: d.name,
							hotelAmount: amount,
							currency: TravelPlanner.currency
						});
						html += hotel_html;
					});
					$('#top_hotels_list ol').html(html).parent().removeClass('hidden');

					// update hotels data object
					$.each(topHotels, function(i, d){
						TravelPlanner.Sidebar.hotelData[d.id] = d;
					});
				}else{
					$('#top_hotels_list').addClass('hidden');
				}

				$('#hotels-sidebar-content .sidebar-info').addClass('hidden');

				// add hotel
				TravelPlanner.Sidebar.updateHotelForm(uid);
			},
			error: function(){
				console.log('Error in top hotels API request.');
			}
		});
	},
	
	updateHotelForm: function(uid){
		if (!uid) return false;

		var destination = TravelPlanner.Utils.getDestinationByUID(uid);
		var hotelData = [];
		
		// update form
		if (destination.hotel && destination.hotel.name){
			hotelData = destination.hotel;
			
			if (hotelData.custom){
				$('#hotels-custom').attr('checked', true);
				$('#hotels-name-input, #hotels-price-input').attr('disabled', false);
			} else {
				$('#hotels-custom').attr('checked', false);
				$('#hotels-name-input, #hotels-price-input').attr('disabled', true);
			}
			
			$('#hotels-name-input').val(hotelData.name);
			$('#hotels-price-input').val(hotelData.price);
			$('#hotels-nights-select').val(hotelData.nights);
			
			if (hotelData.checkInDate)
			{
				$('#hotels-check-in-date').datepicker('setDate', hotelData.checkInDate);
			}

			// mark top hotels list if hotelData is on the list
			$('#top_hotels_list ol li a[href="#' + hotelData.id + '"]').addClass('selected');
		} else {
			$('#hotels-name-input').val('');
			$('#hotels-price-input').val('');
			$('#hotels-nights-select').val(3);
			$('#hotels-check-in-date').datepicker('setDate', null);
		}
		
		// check more prices link
		var pad = TravelPlanner.Utils.padZero;
		var params = {
			reqDomain: 'www.wego.com',
			reqFrom: 'hotels',
			reqTo: 'search/create',
			ts_code: 'abaa6',
			wg_location_code_hotels: destination.location.hotelLocationCode,
			wg_location_id_hotels: destination.location.hotelID,
			wg_rooms: 1,
			wg_guests: 1,
			wg_star_rating: 'Any',
			wg_origin_hotels: destination.location.name + ', ' + destination.location.country
		};
		var date = hotelData.checkInDate;
		if (date){
			var d = new Date(date);
			var nights = destination.location.nights || 3;
			var outDate = new Date(date + (nights*24*60*60*1000)); // miliseconds
			$.extend(params, {
				wg_checkIn_date: pad(d.getDate()) + '/' + pad(d.getMonth()+1) + '/' + d.getFullYear(),
				wg_checkOut_date: pad(outDate.getDate()) + '/' + pad(outDate.getMonth()+1) + '/' + outDate.getFullYear()
			});
		}
		bookingURL = 'http://bookings.southeastasia.org/widgets/searchbox?' + $.param(params);
		$('#hotels-sidebar-content .more-prices').attr('href', bookingURL);
	},
	
	updateFlight: function(){
		var destination = TravelPlanner.Data.destinations[0]; // always the first one.
		var transport = destination.transport;
		var convertAmount = TravelPlanner.Currency.convertAmount;
		var formatPrice = TravelPlanner.Utils.formatPrice;
		var currency = TravelPlanner.currency;
		
		var sidebar = $('#flights-sidebar-content');
		sidebar.find('.flight-from').text(transport.from);
		sidebar.find('.flight-to').text(transport.to);
		if (transport['return']){
			$('#flights-return-radio').attr('checked', true);
		} else {
			$('#flights-oneway-radio').attr('checked', true);
		}
		$('#flights-price-input').val(convertAmount(transport.price, currency, TravelPlanner.Data.currency) || '');
		$('#flights-depart-date').datepicker('setDate', transport.departDate ? new Date(transport.departDate) : null);
		$('#flights-return-date').datepicker('setDate', transport.returnDate ? new Date(transport.returnDate) : null);
		
		var sidebarInfo = sidebar.find('.sidebar-info').hide();
		
		TravelPlanner.requestFlightBestPrice({
			from: transport.from,
			to: transport.to
		}, function(data){
			if (!data || (!data.returnAirlineName && !data.onewayAirlineName)) return;
			var html = _.template(TravelPlanner.Templates.flightBestPriceInfo, {
				returnAirlineName: data.returnAirlineName || '',
				returnPrice: formatPrice(convertAmount(data.returnPrice, currency)) || '',
				onewayAirlineName: data.onewayAirlineName || '',
				onewayPrice: formatPrice(convertAmount(data.onewayPrice, currency)) || '',
				currency: currency
			});
			sidebarInfo.show().html(html);
			if (!data.returnAirlineName) sidebarInfo.find('.return-info').hide();
			if (!data.onewayAirlineName) sidebarInfo.find('.oneway-info').hide();
		});
	},
	
	updateTransport: function(uid){
		if (!uid) return false;
		
		var destination = TravelPlanner.Utils.getDestinationByUID(uid);
		var transport = destination.transport;
		
		var sidebar = $('#transport-sidebar-content, #sidebar-return:visible .sidebar-content');
		sidebar.find('.transport-from').text(transport.from);
		sidebar.find('.transport-to').text(transport.to);
		
		var morePrices = sidebar.find('.more-prices');
		var updateHomeAirport = sidebar.find('.update-home-airport');
		var typeSelect = $('#transport-type-select');
		var priceInput = $('#transport-price-input');
		var departDate = $('#transport-depart-date');
		var sidebarInfo = sidebar.find('.sidebar-info').hide();
		var saveButton = sidebar.find('.save-button');
		
		if (transport.type == 'flight' && transport['return']){
			updateHomeAirport.show();
			morePrices.hide();
			typeSelect.attr('disabled', true).val('flight');
			priceInput.val('').attr('disabled', true);
			departDate.datepicker('disable').attr('disabled', true);
			saveButton.hide();
		} else {
			updateHomeAirport.hide();
			morePrices.show();
			typeSelect.attr('disabled', false).val(transport.type || 'flight');
			priceInput.val(transport.price || '').attr('disabled', false);
			departDate.attr('disabled', false).datepicker('enable').datepicker('setDate', transport.departDate ? new Date(transport.departDate) : null);
			saveButton.show();
			
			if (transport.type == 'flight') TravelPlanner.requestFlightBestPrice({
				from: transport.from,
				to: transport.to
			}, function(data){
				if (!data || !data.onewayAirlineName) return;
				var html = _.template(TravelPlanner.Templates.flightBestPriceInfo, {
					returnAirlineName: '',
					returnPrice: '',
					onewayAirlineName: data.onewayAirlineName || '',
					onewayPrice: TravelPlanner.Utils.formatPrice(TravelPlanner.Currency.convertAmount(data.onewayPrice, TravelPlanner.currency)) || '',
					currency: TravelPlanner.currency
				});
				sidebarInfo.show().html(html);
				sidebarInfo.find('.return-info').hide();
				if (!data.onewayAirlineName) sidebarInfo.find('.oneway-info').hide();
			});
		}
	},

	// array of activities from API
	activitiesData: {},

	updateActivities: function(uid){
		if (!uid) return false;

		$('#thingstodo-sidebar-content').removeClass('has-custom-activities');
		$('#activities-title').val('');
		var destination = TravelPlanner.Utils.getDestinationByUID(uid);

		$.ajax({
			// url: 'http://www.southeastasia.org/geo.php/all_near_city?nearest_city='+destination.location.name+'&verbose=1',
			url: '/api/things_to_do?location='+destination.location.name,
			dataType: 'json',
			success: function(data){

				// update activities list
				var allActivities = [];
				var html = '';
				var activities_html = '';
				var filterArray = [];

				$.each(data, function(i, d){
					if (_.lastIndexOf(filterArray, d.title) == -1) {
						filterArray.push(d.title);
						allActivities.push(d);
					}
				});

				// get activities from travel planner data
				var selectedIDs = [];
				var customActivities = [];

				if (destination.activities && destination.activities.length>0){
					$.each(destination.activities, function(i, d){
						if (d.type == 'api'){
							selectedIDs[d.id] = true;	
						}else{
							customActivities.push(d);
						}
					});
				}

				if (customActivities.length > 0){
					$('#thingstodo-sidebar-content').addClass('has-custom-activities');
					
					$.each(customActivities, function(i, d){
						activities_html = _.template(TravelPlanner.Templates.activityList, {
										   activityID: d.id,
										   activityName: TravelPlanner.Utils.wrapText(d.name, 36),
										   activityTitle: d.name,
										   activityClass: 'selected'
									   });
						html += activities_html;
					});

					$('#your_activities_list ol').html(html);
					html = '';
				} else {
					$('#thingstodo-sidebar-content').removeClass('has-custom-activities');
					$('#your_activities_list ol').html('');
				}

				if (allActivities.length > 0){
					$.each(allActivities, function(i, d){
						activities_html = _.template(TravelPlanner.Templates.activityList, {
										   activityID: d.entry_id,
										   activityName: TravelPlanner.Utils.wrapText(d.title, 36),
										   activityTitle: d.title,
										   activityClass: (selectedIDs[d.entry_id]) ? 'selected' : ''
									   });
						html += activities_html;
					});
					
					// update activities data object
					$.each(allActivities, function(i, d){
						var activity = [];
						activity.name = d.title;
						activity.desc = d.info_html;
						activity.theme = d.theme_id;
						activity.type = 'api';
						TravelPlanner.Sidebar.activitiesData[d.entry_id] = activity;
					});
					
					$('#activities_list ol').html(html).parent().removeClass('hidden');
				} else {
					$('#activities_list ol').html('').parent().addClass('hidden');
				}
			},
			error: function(){
				console.log('Error while calling http://www.southeastasia.org/geo.php/all_near_city?nearest_city='+destination.location.name);
			}
		});
	}
	
};

})(jQuery);
