/**
 * Appel la page d'ajout d'article dans le panier (en session)
 *
 * @onComplete ajaxFillCart
 */
ajaxAddToCart = function(tarification_id) {
	var requestParameters = "tarification_id="+tarification_id;
	new Ajax.Request('add_to_cart.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxFillCart}); 
}

/**
 * Appel la page de generation du contenus du panier
 *
 * @onComplete ajaxFillCartComplete
 */
ajaxFillCart = function(isValidation) {
	if(typeof(isValidation) == undefined) isValidation = 0;
	var requestParameters = "isValidation="+isValidation;
	new Ajax.Request('fill_cart.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxFillCartComplete}); 
}

/**
 * Retour sur generation du contenus du panier (remplissage & affichage de la cartDiv)
 */
ajaxFillCartComplete = function(xhr, options) {
	var json = eval('('+xhr.responseText+')');
	
	$('cartDivContent').innerHTML = json.content;
	
	if(json.content != "") $('cartDiv').style.display = 'block';
	else $('cartDiv').style.display = 'none';
}
	
/**
 * Appel la page de suppression d'un artivcle du panier (on le retire de la session)
 *
 * @onComplete ajaxFillCart
 */
ajaxRemoveCartItem = function(tarification_id) {
	var requestParameters = "tarification_id="+tarification_id;
	new Ajax.Request('remove_cart_item.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxFillCart}); 
}

/**
 * Appel la page de vidage du contenus de la session courante
 *
 * @onComplete ajaxFillCart
 */
ajaxEmptyCart = function() {
	var requestParameters = "";
	new Ajax.Request('empty_cart.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxFillCart}); 	
}

/**
 * Appel la page de sauvegarde du panier
 *  -> recuperation des article du panier a partir de leur node dans l'arborescence DOM de la page
 *  -> recuperation du prix total
 *  -> serialisation du formulaire d'information client
 *
 * @onComplete ajaxSaveCartComplete
 */
ajaxSaveCart = function() {
	var commandeRecap = '';
	if($('cartList')) {
		for(var i=0;i < $('cartList').childNodes.length;i++) {
			commandeRecap += $('cartList').childNodes[i].childNodes[0].textContent+'\n';
		}
	}
	
	if($('total')) var total = $('total').innerHTML;
	var requestParameters = $('validateCartForm').serialize();
	requestParameters += "&commandeRecap="+commandeRecap+"&total="+total;
	new Ajax.Request('save_cart.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxSaveCartComplete});
}

/**
 * Affichage d'un message d'erreur si nécéssaire apres une sauvegarde du panier
 * On success => redirection vers la page d'accueil
 */
ajaxSaveCartComplete = function(xhr, options) {
	var json = eval('('+xhr.responseText+')');
	
	if(json.success) {
		// Si l'enregistrement de la commande à été effectuer avec succes, on calcule le montant total du sejour puis on l'enregistre
		ajaxRecalculateTotalPrice(json.commandeId,0);
		alert(json.message);
		window.location.href = 'end_cart.php';
	}
	else alert(json.errorMessage);
}

/**
 * Sauvegarde du prix total d'une commande a partir de la partie administrateur
 *
 * @onComplete ajaxSaveTotalPriceComplete
 */
ajaxSaveTotalPrice = function(commande_id) {
	var prix_total = $('prix_total-'+commande_id).value;
	var requestParameters = "commande_id="+commande_id+"&prix_total="+prix_total;
	new Ajax.Request('save_price.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxSaveTotalPriceComplete}); 
}

/**
 * Affichage d'un message d'erreur si nécéssaire apres un changement du prix total d'une commande
 */
ajaxSaveTotalPriceComplete = function(xhr, options) {
	var json = eval('('+xhr.responseText+')');
	
	if(!json.success) alert(json.errorMessage);
}

/**
 * Recalcul le prix total du séjour en tenant compte des date et donc de la durée du séjour
 *
 * @OnComplete ajaxRecalculateTotalPriceComplete
 */
ajaxRecalculateTotalPrice = function(commandeId, reloadTotal) {
	if(typeof(reloadTotal) == 'undefined') reloadTotal = 1;
	if(typeof(commandeId) == 'undefined') commandeId = 0;
	var startDate = $('start_date').value;
	var endDate = $('end_date').value;
	
	var requestParameters = "start_date="+startDate+"&end_date="+endDate+"&commandeId="+commandeId+"&reloadTotal="+reloadTotal;
	new Ajax.Request('recalculate_total.php',{asynchronous:true, method:'post', postBody:requestParameters, onComplete:ajaxRecalculateTotalPriceComplete}); 
}

/**
 * Apres recalcul du prix total du séjour : maj ajax du prix || message d'alerte en cas d'echec
 *
 * @param Json xhr, options
 */
ajaxRecalculateTotalPriceComplete = function(xhr, options) {
	var json = eval('('+xhr.responseText+')');
	
	if(json.reloadTotal == 1) { 
		if(json.success) {
			$('total').innerHTML = '<b>'+json.total+'</b>';
			$('total').style.left = '-10px';
			$('devise').style.left = '0px';
			$('rapport').innerHTML = '<br /><b>pour un séjour de '+(json.nbjours+1)+' jours et '+json.nbjours+' nuits</b>';
			$('totalMainDiv').style.height = '55px';
		}
		else {
			alert(json.errorMessage);
			
			
		}
	}
}





function setPaid(id){
	if(confirm("Êtes-vous sûr de vouloir marquer cette réservation comme payée ?")) window.location.href="setpaid.php?commande_id="+id;
}
function setValidated(id){
	if(confirm("Êtes-vous sûr de vouloir valider cette réservation ?")) window.location.href="validate.php?commande_id="+id;
}
function setPasPossible(id){
	if(confirm("Êtes-vous sûr de vouloir effacer cette réservation ? Action irréversible !!")) window.location.href="delete.php?commande_id="+id;
}


