
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 > #nAdulte").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;		
	}
	if (nTarifTotal.toFixed(2) == "NaN") {
		nFinTarifTotal = "0.00";
	} else {
		nFinTarifTotal = nTarifTotal.toFixed(2);
	}

	prixTotalDiv.html(nFinTarifTotal+"€");
	prixTotalDiv.parent("td").dequeue().animate({backgroundColor: "#f66"}, { duration: 200, queue: true }).animate({backgroundColor: "white"}, { duration : 600, queue: true});
}

function onSpinCallback(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 nLimiteGroupe = parseInt($("#presta-" + mid + " > td > input.limit")[0].value);
		var nQuantiteMinimum = parseInt($("#presta-" + mid + " > td > input.QuantiteMinimum")[0].value);
		
		if (nLimiteGroupe == (nAdulte + nEnfant)) { // Limite maxi de groupe dépassée
			nWrongVal = ui.element[0].value;
			if ((nWrongVal - 1) == 0) {
				showAlert(mid, 1, 0);
			}
			else {
				showAlert(mid, 2, nLimiteGroupe);
			}
		} 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("");
			}
			if (nAdulte == nQuantiteMinimum) {
				$("#presta-" + mid + " > td > button").show();
			}
		computePrix(mid);
	}
}


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 ((nLimiteGroupe-(nAdulte+nEnfant)) < 0) { // Limite maxi de groupe dépassée
			nWrongVal = ui.element[0].value;
			ui.element[0].value = (nWrongVal-1);
			if ((nWrongVal-1) == 0){
				showAlert(mid,1,0);
			} else {
				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,ExtraId){
	var Message = "";
	if (MessageId == 1) {
		Message = "<b>" + locale.sPlusDePlaces + "</b>";
	}
	else 
		if (MessageId == 2) {
			Message = "<b id='compte'>" + locale.sPourGroupPart1 + " " + NbOption + " " + locale.sPourGroupPart2 + "</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 == 7) {
			Message = "<b>" + locale.sProposeDate + "</b>";
		}
		else 
		if (MessageId == 8) {
			Message = "<b>" + locale.sMinExtra + "(" + NbOption + " " + locale.sNbMinExtra + ")</b>";;
		}
		
	if (mid == (-1)) {
		$('#preta-alerte-Extra_' + ExtraId + ' > td').html(Message);
		$('#preta-alerte-Extra_' + ExtraId).show();
	} else {
		$('#preta-alerte-' + mid + ' > td').html(Message);
		$('#preta-alerte-' + mid).show();
	}
	
	if (MessageId == 6) {
		if ($('#dateResa-' + mid).css("display") != "none") {
			Message = "<b>" + locale.sPasDePlaceXJours + "</b>";
			$('#preta-alerte-' + mid + ' > td').html(Message);
			$('#preta-alerte-' + mid).show();
		} else {
			$('#preta-alerte-' + mid).hide();
		}
	}
}

function onReady() {
	$('.presta-alerte').hide();
	
	mydata = {};
	$('.presta > td > .date').datepicker({
		altField: 'aurel',
		showStatus: true,
		showOn: "both",
		buttonImage: "resources/imgs/static/calendar.gif",
		buttonImageOnly: true,
		changeFirstDay: false,
		highlightWeek: true,
		mandatory: true,
		minDate: new Date(),
		hideIfNoPrevNext: true,
		dateFormat: 'dd/mm/y',
		url: 'model/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") {
				var mid = id.split("-")[1];				
				var nLimiteGroupe = parseInt($("#presta-" + mid + " > td > input.limit")[0].value);				
				var ilimit = 0;
				var nbAdulte = 0;
				var nbEnfant = 0;
				
				$('#presta-' + mid + ' > td > button').show();
				
				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");
				var nbQuantiteMini = parseInt($("#presta-" + mid + " > td > input.QuantiteMinimum")[0].value);
				prixAdulteDiv.html(mydata.PRIXADULTEARRAY[dp.selectedDay - 1]);
				
				$("#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 (mydata.PRIXENFANTARRAY[dp.selectedDay - 1] == -1) {
					prixEnfantDiv.html("-");
					$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant")
					.val(0)
					.spinner("disable");
				} else {
					prixEnfantDiv.html(mydata.PRIXENFANTARRAY[dp.selectedDay - 1]);
					$("#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);
					}
				}
				if (nbAdulte < nbQuantiteMini)
				{
					$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(nbQuantiteMini);
				}
				$("#presta-" + mid + " > td > input.spinLimit").val(ilimit);
				computePrix(mid);
				$("#presta-" + mid + " > td > button").removeClass('noReserv');
			} 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);
	});
	
	$("input.radioButton").click(function(event){
		var checkBox = $(event.target);
		var mid = checkBox.attr('id').split('-')[1];
		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 (checkBox.attr('id').split('-')[0] == 'radio1') {
			
			if ($("#presta-" + mid + " > td > button").hasClass('noReserv'))
			{
				$("#presta-" + mid + " > td > button").hide();
				$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(0);
			}
			else
				$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(nQuantiteMinimum);
			
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").val(0);
			
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").spinner("destroy");
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").spinner("destroy");
			
			$('#presta-' + mid + ' > td > input.presta-n-adulte').spinner({
				min: limitPers[mid].split(',')[0],
				max: limitPers[mid].split(',')[1],
				incremental: false,
				spin: onSpin
			});
			$('#presta-' + mid + ' > td > input.presta-n-enfant').spinner({
				min: 0,
				max: limitPers[mid].split(',')[1],
				incremental: false,
				spin: onSpin
			});
		} else {
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").val(0);
			
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").spinner("destroy");
			$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").spinner("destroy");
			
			$('#presta-' + mid + ' > td > input.presta-n-adulte').spinner({
				min: limitPers[mid].split(',')[0],
				max: 10,
				incremental: false,
				spin: onSpin
			});
			$('#presta-' + mid + ' > td > input.presta-n-enfant').spinner({
				min: 0,
				max: 10,
				incremental: false,
				spin: onSpin
			});
		}
		computePrix(mid);
	});
}

function setDateFixe(mid, state) {
	
	$('.presta-alerte').hide();
	$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(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 (state == "off"){
		if ($("#presta-" + mid + " > td > button").css("display") == "none")
			$("#presta-" + mid + " > td > button").addClass('noReserv');
		$("#dateResa-" + mid )[0].style.display = 'none';
		$("#presta-" + mid + " > td > input.isDateFixe")[0].value = false;
		$("#presta-" + mid + " > td > img.ui-datepicker-trigger")[0].style.display = 'none';

		$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").spinner("destroy");
		$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-enfant").spinner("destroy");
		
		$('#presta-' + mid + ' > td > input.presta-n-adulte').spinner({
			min: nQuantiteMinimum,
			max: nLimiteGroupe,
			incremental: false,
			spin: onSpinCallback
		});
		$('#presta-' + mid + ' > td > input.presta-n-enfant').spinner({
			min: nQuantiteMinimum,
			max: nLimiteGroupe,
			incremental: false,
			spin: onSpinCallback
		});

		$("#presta-" + mid + " > td > div.ui-spinner > input.presta-n-adulte").val(nQuantiteMinimum);
		$("#presta-" + mid + " > td > button").show();
		computePrix(mid);
	} else {
		$("#dateResa-" + mid )[0].style.display = 'inline';
		$("#presta-" + mid + " > td > input.isDateFixe")[0].value = true;
		$("#presta-" + mid + " > td > img.ui-datepicker-trigger")[0].style.display = 'inline';
	}
}