// var request_url = 'http://hal9000/marina/wp-content/themes/twentyten/include/tarifario.php';
var request_url = 'http://marinadapovoa.com/wp-content/themes/MPVZ/include/tarifario.php';

$(document).ready( function() {
	$('#fromCalendarInput').datepicker({ showOn: 'button', buttonImageOnly: true, buttonImage: 'http://marinadapovoa.com/wp-content/themes/MPVZ/images/calendario.png', dateFormat: 'dd/mm/yy' });
	$('#toCalendarInput').datepicker({ showOn: 'button', buttonImageOnly: true, buttonImage: 'http://marinadapovoa.com/wp-content/themes/MPVZ/images/calendario.png', dateFormat: 'dd/mm/yy' });

	/*
	$('#fromCalendarInput').datepicker({ showOn: 'button', buttonImageOnly: true, buttonImage: 'http://hal9000/marina/wp-content/themes/twentyten/images/calendario.png', dateFormat: 'dd/mm/yy' });
	$('#toCalendarInput').datepicker({ showOn: 'button', buttonImageOnly: true, buttonImage: 'http://hal9000/marina/wp-content/themes/twentyten/images/calendario.png', dateFormat: 'dd/mm/yy' });
	*/
	
	$('#calculateButton').click(function () {

		// remove previously calculated prices, if any.
		$('.priceAlternative').remove();
		$('#errorMessage').css("visibility", "hidden");
		
		var fromDate = $('#fromCalendarInput').datepicker("getDate");
		var toDate = $('#toCalendarInput').datepicker("getDate");
		
		var lang = $("#lang").val();
		
		if (fromDate == null) {
			
			switch (lang) {
			case ('pt') : {
				errorMsgFromDate = "A partir de que dia tenciona ficar na Marina?";
				break;
			}
			case ('en') : {
				errorMsgFromDate = "From when do you want to stay in Marina?";
				break;
			}	
			case ('es') : {
				errorMsgFromDate = "Despues cuando?";
				break;
			}
			case ('fr') : {
				errorMsgFromDate = "Vous voulez arriver quand??";
				break;
			}			
			default: 
				errorMsgFromDate = "A partir de que dia tenciona ficar na Marina?";
		}
			$('#errorMessage').html(errorMsgFromDate);
			$('#errorMessage').css("visibility", "visible");
			return false;
		}
		
		
		
		
		if (toDate == null) {
			switch (lang) {
				case ('pt') : {
					errorMsgToDate = "Até que dia tenciona ficar na Marina?";
					break;
				}
				case ('en') : {
					errorMsgToDate = "Until when do you want to stay in Marina?";
					break;
				}	
				case ('es') : {
					errorMsgToDate = "Despues cuando?";
					break;
				}
				case ('fr') : {
					errorMsgToDate = "Vous voulez arriver quand??";
					break;
				}			
				default: 
					errorMsgToDate = "Até que dia tenciona ficar na Marina?";
			}
			
			$('#errorMessage').html(errorMsgToDate);
			$('#errorMessage').css("visibility", "visible");
			return false;
		}
		
		var nr_days = (days_between(toDate, fromDate));
		
		if (nr_days == -1) {
			switch (lang) {
				case ('pt') : {
					errorMsgSingularity = "A data de partida deve ser superior à de chegada.";
					break;
				}
				case ('en') : {
					errorMsgSingularity = "The departure date should be later than the one of arrival.";
					break;
				}	
				case ('es') : {
					errorMsgSingularity = "Despues cuando?";
					break;
				}
				case ('fr') : {
					errorMsgSingularity = "?!?!!";
					break;
				}			
				default: 
					errorMsgSingularity = "A data de partida deve ser superior à de chegada.";
			}
			
			$('#errorMessage').html(errorMsgSingularity);
			$('#errorMessage').css("visibility", "visible");
			return false;
		}
		
		if (nr_days > 365) {
			switch (lang) {
			case ('pt') : {
				errorMsgTooLong = "'As estimativas são só válidas para períodos inferiores a um ano. Escolha um período mais curto.'";
				break;
			}
			case ('en') : {
				errorMsgTooLong = "Shorter Period, please!";
				break;
			}	
			case ('es') : {
				errorMsgTooLong = "Despues cuando?";
				break;
			}
			case ('fr') : {
				errorMsgTooLong = "Trop de temps. Desoleé.";
				break;
			}			
			default: 
				errorMsgTooLong = "A data de partida deve ser superior à de chegada.";
		}
			
			$('#errorMessage').html(errorMsgTooLong);
			$('#errorMessage').css("visibility", "visible");
			return false;
		}
		
		var breadth = $("#shipBreadth").val();
		var boca = $("#boca").val();
		
		if ( $("#seco").attr('checked') ) {
			var seco = 1;
		} else {
			var seco = 0;
		}
		
		if ( $("#multiDeck").attr('checked') ) {
			var multiDeck = 1;
		} else {
			var multiDeck = 0;
		}
			
		$.ajax({
			url: request_url,
			data: 'breadth=' + breadth + '&boca=' + boca + '&nr_days=' + nr_days + '&seco=' + seco + '&multiDeck=' + multiDeck + '&lang=' + lang,
			dataType: 'json',
			success: function(response) {

				if(response.status == 'good') {
					
					var prices = response.total_price;
					var details = response.price_details;
					
					for (var i = 0; i < prices.length; i++) {
						$('#priceResult').append('<div class="priceAlternative"><strong>' + prices[i] + '€</strong>, ' + details[i] + '</div>');
					}
					
					switch (lang) {
						case ('pt') : {
							retryText = "NOVA ESTIMATIVA";
							break;
						}
						case ('en') : {
							retryText = "NEW ESTIMATION";
							break;
						}	
						case ('es') : {
							retryText = "NUEVA ESTIMATIVA";
							break;
						}
						case ('fr') : {
							retryText = "RE-ESSAYEZ";
							break;
						}			
						default: 
							retryText = "NOVA ESTIMATIVA";
					}
					
					$('#calculateButton').html(retryText);
					
					$('#calculateButton').css("background-color", "black");
					
				}
			},
			
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				showError('Algo de problemático se passou, relacionado com ' + textStatus + " e " + errorThrown);
			}
		});
	
	
	});
	
});


function days_between(date1, date2) {
	var oneday = 1000 * 60 * 60 * 24;
	var date1_ms = date1.getTime();
	var date2_ms = date2.getTime();
	if (date1_ms > date2_ms) {
		var difference_ms = Math.abs(date1_ms - date2_ms);
		return Math.round(difference_ms/oneday);
	// 'to' date must be bigger than 'from' date.	
	} else {
		return -1;
	}
		
}
