
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 ((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){
	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.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;
				
				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");
	
				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);
					}					
				}				
				
				$("#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 = '';
		
	}
}
