
function computePrix(mid) {
	var prixTotalDiv = $("#presta-" + mid + " > td > span.presta-prix-total");
	var prixAdulte = parseFloat($("#presta-" + mid + " > td > span.presta-prix-adulte").html());
	var prixEnfant = parseFloat($("#presta-" + mid + " > td > span.presta-prix-enfant").html());
	var nAdulte = parseFloat($("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val());
	var nEnfant = parseFloat($("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").val());
	var nTarifTotal = 0; 
	if (prixEnfant.toString() == "NaN") {
		nTarifTotal = (nAdulte * prixAdulte);
	} else {
		nTarifTotal = nAdulte * prixAdulte + nEnfant * prixEnfant;		
	}
	prixTotalDiv.html(nTarifTotal.toFixed(2)+"€");
	prixTotalDiv.parent("td").dequeue().animate({backgroundColor: "#f66"}, { duration: 200, queue: true }).animate({backgroundColor: "white"}, { duration : 600, queue: true});
}

function onSpin(event, ui) {
	
	$('.presta-alerte').hide();
	if (ui) {
		var mid = ui.element.parents("tr")[0].id.split("-")[1];
		var nAdulte = parseInt($("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val());

		if ($("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").length > 0){
			nEnfant = parseInt($("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").val());
		} else {
			nEnfant = 0;
		}
		var nSpinLimit = parseFloat($("#presta-" + mid + " > td > input.spinLimit").val());
		var nLimiteGroupe = parseInt($("#presta-" + mid + " > td > input.limit")[0].value);	
		var nQuantiteMinimum = parseInt($("#presta-" + mid + " > td > input.QuantiteMinimum")[0].value);
		
		if ($('#dateResa-' + mid).val() == "") {
			ui.element[0].value = 0;
			showAlert(mid,6,0);
		} else if ((nLimiteGroupe-(nAdulte+nEnfant)) < 0) { // Limite maxi de groupe dépassée
			nWrongVal = ui.element[0].value;
			ui.element[0].value = (nWrongVal-1);
			showAlert(mid,2,nLimiteGroupe);
		} else if ((nSpinLimit-(nAdulte+nEnfant)) < 0) { // Pas suffisament de place disponible
			nWrongVal = ui.element[0].value;
			ui.element[0].value = (nWrongVal-1);
			if ((nWrongVal-1) == 0){
				showAlert(mid,1,0);
			} else {
				showAlert(mid,3,0);
			}
		} else if ((nAdulte < nQuantiteMinimum)){ // Limite mini de groupe non atteinte 
			showAlert(mid,4,nQuantiteMinimum);
			$("#presta-" + mid + " > td > button").hide();
			if (nAdulte > 0) {
				ui.element[0].value = (nQuantiteMinimum-1);
			}
			$("#total > td > button").hide();
			$("#presta-" + mid + " > td > button").hide();
			$("#total > td > span").html("<h2>"+locale.sModifNbPers+"</h2>");
		} else { // Ok 
			$("#total > td > button").show();
			$("#presta-" + mid + " > td > button").show();
			$("#total > td > span").html("");
		}
		computePrix(mid);
	}
}

function showAlert(mid,MessageId,NbOption){
	var Message = "";
	if (MessageId == 1){
		Message = "<b>" + locale.sPlusDePlaces + "</b>";
	} else if (MessageId == 2){
		Message = "<b id='compte'>" + locale.sPourGroupPart1 + " " + NbOption + " " + locale.sPourGroupPart2 + $("#rid-" + mid)[0].value + locale.sPourGroupPart3 + "</b>" ;
	} else if (MessageId == 3){
		Message = "<b>" + locale.sStopNbPersMax + "</b>";
	} else if (MessageId == 4){
		Message = "<b>" + locale.sStopNbPersMinPart1 + "("+NbOption+" " + locale.sStopNbPersMinPart2 + ")</b>";
	} else if (MessageId == 5){
		Message = "<b>" + locale.sStopNbPlaceMax + "</b>";
	} else if (MessageId == 6){
		Message = "<b>" + locale.sPasDePlaceXJours + "</b>";
	} else if (MessageId == 7){
		Message = "<b>" + locale.sProposeDate + "</b>";
	}	
	$('#preta-alerte-' + mid + ' > td').html(Message);
	$('#preta-alerte-' + mid ).show();
}

function onReady() {
	$('.presta-alerte').hide();
	
	mydata = {};
	$('.presta > td > .date').datepicker({
		altField: 'aurel',
		showStatus: true,
		showOn: "both",
		buttonImage: "/resources/imgs/calendar-ydp.gif",
		buttonImageOnly: true,
		changeFirstDay: false,
		defaultDate: +1,
		highlightWeek: true,
		mandatory: true,
		minDate: new Date(),
		hideIfNoPrevNext: true,
		dateFormat: 'dd/mm/y',
		url: '/com/sogeres/prestation/MetaPrestationGateway.cfc?method=getDispoByMonth&returnformat=json',

		beforeShowDay: function(date) {
			if (mydata.DISPOARRAY && mydata.DISPOARRAY[date.getDate() - 1] == 0) {
				return [false, 'ui-datepicker-date-full', locale.sPlusDePlaces];
			}
			return [true];
		},

		onSelect: function(dateText, dp) {
			$('.presta-alerte').hide();

			var id = dp.input.parents("tr")[0].id;
			if (id != "presta-RRR" && id != "date-devis") {
				$.ajax({
					url: "/com/sogeres/prestation/MetaPrestationGateway.cfc",
					type:"POST",
					data: {
						method: "getPriceByDay",
						returnformat : 'json',
						id : dp.input.parents("tr")[0].id,
						stDate : dateText
					},
					dataType:'json',
					success: function(response){
						if (response.success) {
							var mid = id.split("-")[1];
							var nLimiteGroupe = parseInt($("#presta-" + mid + " > td > input.limit")[0].value);				
							var ilimit = 0;
							var nbAdulte = 0;
							var nbEnfant = 0;

							nbDispo = parseInt(mydata.DISPOARRAY[dp.selectedDay - 1]);

							if (nbDispo > nLimiteGroupe){
								ilimit=parseInt(nLimiteGroupe);
							}else{
								ilimit=parseInt(nbDispo);
							}

							var prixAdulteDiv = $("#presta-" + mid + " > td > span.presta-prix-adulte");
							var prixEnfantDiv = $("#presta-" + mid + " > td > span.presta-prix-enfant");

							$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").spinner("destroy");
							$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").spinner("destroy");
							nbAdulte = parseInt($("#presta-" + mid + " > td > input.presta-n-adulte")[0].value);
							if ($("#presta-" + mid + " > td > input.presta-n-enfant").length > 0){
								nbEnfant = parseInt($("#presta-" + mid + " > td > input.presta-n-enfant")[0].value);
							} else {
								nbEnfant = -1;
							}
							$('#presta-' + mid + ' > td > input.presta-n-adulte').spinner({
								min: 0,
								max: ilimit+1,
								incremental: false,
								spin: onSpin
							});
							$('#presta-' + mid + ' > td > input.presta-n-enfant').spinner({
								min: 0,
								max: ilimit+1,
								incremental: false,
								spin: onSpin
							});
							
							if (response.prixAdulte == -1) {
								prixAdulteDiv.html("-");
								$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte")
								.val(0)
								.spinner("disable");
							} else {
								prixAdulteDiv.html(response.prixAdulte);
								$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").spinner("enable");
							}

							if (response.prixEnfant == -1) {
								prixEnfantDiv.html("-");
								$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant")
								.val(0)
								.spinner("disable");
							} else {
								prixEnfantDiv.html(response.prixEnfant);
								$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").spinner("enable");
							}
							if (nbEnfant >= 0){
								if ((nbAdulte + nbEnfant) > ilimit){
									showAlert(mid,5,0);
									$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(0);
									$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").val(0);
								}					
							} 
							if (nbEnfant = -1) {
								if ((nbAdulte) > ilimit){
									showAlert(mid,5,0);
									$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(ilimit);
								}					
							}				

							$("#presta-" + mid + " > td > input.spinLimit").val(ilimit);
							computePrix(mid);
						
						}
					}
				});
			} else {
				var dDate = $('#'+id+' > td > input.date').val();
				var iLen = String(dDate).length;
				dDate = String(dDate).substring(0,6) + "20" + String(dDate).substring(iLen, iLen - 2);
				$('#'+id+' > td > input.date').val(dDate);
			}
		}
		
	});
	$(".ui-datepicker-trigger").click(function(){
		currentID = $(this).prev().attr('id').split('-')[1];
		clickedInput = false;
		$('#ui-datepicker-div').removeClass().addClass('currentCalendar-'+currentID);
	});
}



function setDateFixe(mid, state) {
	if (state == "off"){
		onReady();
		//$(".")[0].style.display = 'inline';
		//$("#DATE_MANIF")[0].value = true;
		//$("#date-devis > td > img.ui-datepicker-trigger")[0].style.display = '';
	} else {
		$("#dateResa-" + mid )[0].style.display = 'inline';
		$("#presta-" + mid + " > td > input.isDateFixe")[0].value = true;
		onReady();
		$("#presta-" + mid + " > td > img.ui-datepicker-trigger")[0].style.display = '';
		
	}
}
