window.addEvent('domready', function(){

	//if ($('carousel'))
	/* {		
		 $$( '.wrapper' ).each(function(item){
									
		  var thisSlider = new Fx.Tween(item.getElement( '.jeu' ), { duration: 500 });
		  
		  //thisSlider.hide();
		  item.getElement( '.bouton-suivant' ).addEvent( 'click', 
				function()
				{ 
					thisSlider.start('width', '118px', '0px'); 
				} 
				
		   );
		 } );
	}*/
	
	
	if ($('slides'))
	{		
	
		// set up the instance
		var slideshow = new SlideShow('slides',{
			delay: 6000,
			duration: 600,
			transition: 'crossFade',
			autoplay: true
		});
		
		var manualPaused = false;

		// add play / pause elements are hovered
		var hoverEvents = {
			mouseenter: function(){ slideshow.pause(); },
			mouseleave: function(){
				if (!manualPaused) 
				{
					manualPaused = false;
					slideshow.play();
					
				}
			}
		};
		
		slideshow.element.addEvents($merge(hoverEvents,{
			// can send transition and duration information to show methods
			click: function() { slideshow.pause(); }
		}));
		
	   
		// navigation	   
	   var slideLabels = $$('.puce_slide');
	   slideLabels.each(function(el, index){
		   el.store('slide', slideshow.slides[index]);
		   
		   el.addEvent('click',function() {
		   	slideshow.show(el.retrieve('slide'));

	   });
	   
	   });  
	

	}	
	
	
	// gestion du bloc des messages privées
	if ($('calendrier_ajax'))
	{
		var url_cible = 'ajax.calendrier.php';
		var date_courante = new Date();
		var date_today = new Date();

		// -------------------
		// Fonction permettant l'aff du calendrier
		// -------------------
		var affiche_calendrier = function(date_defaut){

			new Request.HTML({
				method: 'get',
				url: url_cible,
				update: $('calendrier_ajax'),
				onComplete: function(response) { 
					
					// lorsque le calendrier est chargé, on initialise les infobulles
					new MooTooltips({
						hovered:'.tipper',		// the element that when hovered shows the tip
						ToolTipClass:'ToolTips',	// tooltip display class
						toolTipPosition:-1, // -1 top; 1: bottom - set this as a default position value if none is set on the element
						sticky:true,		// remove tooltip if closed
						fromTop: -10,		// distance from mouse or object
						fromLeft: -43,	// distance from left
						duration: 100,		// fade effect transition duration
						fadeDistance: 0    // the distance the tooltip starts the morph
					});			

					// traitement du click sur le creneau horaire choisi
					 $$('.heure_creneau').each(function(item){
						item.addEvent( 'click', 
							function()
							{ 

								// on reinitialise la couleur de fond des creneaux
								$$('.heure_creneau').each(function(item2){
									item2.setStyle('background-color', '#eeeeee');	
									item2.getElement('a').setStyle('color', '#666');	
								});

								// recup des parametres contenus dans l'attribut rel (timestamp, id_creneau)
								var array_date_resa = item.getElement( 'a' ).get('rel').split(',');
								
								item.setStyle('background-color', '#f99b00');
								item.getElement('a').setStyle('color', '#ffffff');
								
								var heure_aff = item.getElement('a').get('html');
								var date_aff = 'Le ' + item.getElement( 'a' ).get('title') + ' à ' + heure_aff;
								
								
								// stockage des infos dans le form
								$('date_reservation').set('value', array_date_resa[0]);
								$('id_creneau').set('value', array_date_resa[1]);

								afficher_recap ('recap_date', date_aff);
								
								// APPEL de la fonction pour afficher form suivant
								affiche_form_invites (array_date_resa[0], array_date_resa[1]);
								
							} 
							
					   );
					 
					 } );

		
				}
			}).send({
				data:'datemois='+ date_defaut.format('db')
			});	
		}

		// -------------------
		// Fonction form de saisie du nb d'invites
		// -------------------		
		var affiche_form_invites = function(timestamp_jour, id_creneau){
			// on deplie le bloc
			
			
			mySlideInvites.slideIn();
			
			
			// rafraichi la liste des salles si form deja affiché

			if ($('nb_invites').value)
			{
				affiche_form_salles(timestamp_jour, id_creneau, $('nb_invites').value);			
			}
			else
			{
				// on scrolle vers le bas de l'ecran
				var myFx = new Fx.Scroll(window).toElement('calendrier_reservation');				
			}
			
			

	
			// afficher form invités, nom, age

			
			$$('.saisie-invite').addEvent('blur', function(e){
				// si les 3 zones sont completes
				if ($('nb_invites').value!='' && $('nom_enfant').value!='' && $('age_enfant').value!='')
				{
					e.stop();
					var txt_invites = $('nb_invites').value + ' enfants au total participeront aux ' + $('age_enfant').value + ' ans de ' + $('nom_enfant').value ;
					afficher_recap ('recap_invites', txt_invites);
					
					// masquer le bouton Suite
					$('bouton-invite').setStyle('display', 'none');
					
					//afficher le bloc des salles
					affiche_form_salles(timestamp_jour, id_creneau, $('nb_invites').value);
					
				}
			});	
			
			
		}
		
		// -------------------
		// Fonction form du choix de la salle
		// -------------------		
		var affiche_form_salles = function(timestamp_jour, id_creneau, nb_invites){

			//mySlideSalles.slideIn();
			afficher_attente($('salles_reservation'),true);
			
			new Request.HTML({
				method: 'get',
				url: 'ajax.salles.php',
				update: $('salles_reservation'),
				onComplete: function(response) { 
					// rien pour le moment	
					Mediabox.scanPage();
					
					var myFx = new Fx.Scroll(window).toElement('salles_reservation');
					
					// si option pas encore affiché, on les affiche
					if ($('options_reservation').getStyle('display') == 'none')
					{
						affiche_form_options();
					}

					 $('salles_reservation').getElements('input').each(function(item){
					  
					  if (item.checked)
					  	afficher_recap ('recap_salle', 'Salle souhaitée : ' + item.get('rel'));
					  
					  //thisSlider.hide();
					  item.addEvent( 'click', function() { 
								afficher_recap ('recap_salle', 'Salle souhaitée : ' + item.get('rel'));
							});
					 } );
	
					
				}
			}).send({
				data:'date_resa=' + timestamp_jour + '&id_creneau=' + id_creneau + '&nb_invites=' + nb_invites
			});		

		}

		// fonction qui affiche les options
		var affiche_form_options = function(){

					$('options_reservation').setStyle('display', 'block');
					mySlideOptions.slideIn();

					// traitement du click sur le input
					 $$('.liste_options').each(function(item){
						var variantesOption = item.getElement( '.variantes_reservation' );

						// montre les variantes par defaut
						if (item.getElement( '.option_item' ).checked)
						{
							//variantesOption.setStyle('display', 'block');
							afficher_variantes(item.getElement( '.option_item' ).value, item)
							
						}
								

						item.addEvent( 'click', 
							function()
							{ 
	
								var id_option = item.getElement( '.option_item' ).value;
								
								// recup de la valeur (cliqué ou non)
								if (item.getElement( '.option_item' ).checked)
								{
									
									// a remplacer par ajax
									//variantesOption.setStyle('display', 'block');
									if (!item.getElement('.variante_option'))
									{
										afficher_variantes(id_option, item);
									}
								}
								else
								{
									//variantesOption.setStyle('display', 'none');
									//afficher_recap ('recap_option_' + id_option, '');
									item.getElement('.variantes_reservation').set({html: ''});
								}
								
								// TODO rafrachir le recap
								//afficher_recap ('recap_date', date_aff);
							} 
					     );
					 
					 } );
		 
		}


		// fonction qui affiche en ajax les variantes d'une option
		var afficher_variantes = function(id_option, item){
			
			afficher_attente(item.getElement('.variantes_reservation'),true);
			
			// recup libelle option
			var libelle_option = item.getElement( '.option_item' ).get('rel');

			
			var liste_qte = item.getElements('.qte-input');
			
			liste_qte.each(function(item2){
					liste_qte.addEvent( 'blur', 
							function()
							{ 
								libelle_option = item.getElement( '.option_item' ).get('rel') + ' (' + item2.value + ')';
								//afficher_recap ('recap_option_' + id_option, libelle_option);
							}
					);
			});
	
			
			new Request.HTML({
				method: 'get',
				url: 'ajax.variantes.php',
				update: item.getElement('.variantes_reservation'),
				onComplete: function(response) { 
	 
	 				var liste_variantes = item.getElements('.variante_option');
	 				var bVarianteExiste = false;

					liste_variantes.each(function(item){

									
						// traitement des clics sur les options
						item.getElement('input').addEvent( 'blur', 
							function(e)
							{ 
								var libelle_variante = item.getElement('.libelle_variante').get('rel');
								
								if (item.getElement('.qte-input') != null)
								{
									var qte = item.getElement('.qte-input').get('value');
									libelle_option = libelle_option + ' (' + qte + ')';
									// cocher la case
								}
								
								//afficher_recap ('recap_option_' + id_option, libelle_option + ' : ' + libelle_variante);
							}
						);
						
						bVarianteExiste = true;
					
					}); // fin each
					
					// si pas de variante, on affiche le libelle de l'option en direct
					if (bVarianteExiste == false)
					{

						if (item.getElement( '.option_item' ).checked)
						{
							if (item.getElement('.qte-input') != null)
							{
									var qte = item.getElement('.qte-input').get('value');
									libelle_option = libelle_option + ' (' + qte + ')';
							}							
							
							
							//afficher_recap ('recap_option_' + id_option, libelle_option);
						}
						else
						{
							
							//afficher_recap ('recap_option_' + id_option, '');
						}
					}
	
				}
			}).send({
				data:'id_option=' + id_option
			});	


		}
		
		var afficher_attente = function(element, bAfficher) {

			if (bAfficher)
			{
				if (!element.getElement('.img_loading')) // si existe pas on cree le code attente
				{
					var myTxtElement = new Element('img', {
					 //configurez ici tous les paramètres de l'élement
					 'src': 'images/mediabox/WhiteLoading.gif',
					 'class':'img_loading'
					});	
					myTxtElement.inject(element , 'bottom');	
				}
			}
			else
			{
				//var myItem = element.getElement('.img_loading');
				//myItem.destroy();
			}
			
		}
		
		// -------------------
		// Fonction form de saisie du nb d'invites
		// -------------------		
		var afficher_recap = function(id_zone, txt){
			// affiche une information dans la partie recap du site
			
			// si la zone existe deja, on se contente de changer le texte
			var myElement = $(id_zone);
			if (myElement != null)
			{
				$(id_zone).set({html: txt});
			}
			else
			{
				// sinon on cree l'element et on l'injecte
				var myTxtElement = new Element('div', {
				 //configurez ici tous les paramètres de l'élement
				 'id': id_zone,
				 'html': txt,
				 'class': 'bloc_info' 
				});	
	
				var bodyWrapRecap = $('recap_listing');
				myTxtElement.inject(bodyWrapRecap , 'bottom');
			}

			//$(id_zone).set('text') = txt;
		}		
		
		// -----------------------
		// fonctions exexutés par defaut
		// -----------------------
		affiche_calendrier(date_courante);

		var myElementScroll = $(document.body);
		var mySlideInvites	 = new Fx.Slide('invites_reservation');
		var mySlideOptions	 = new Fx.Slide('options_reservation');
		var mySlideCoordonnees = new Fx.Slide('coordonnees_reservation');
		
		mySlideInvites.hide();
		mySlideOptions.hide();
		mySlideCoordonnees.hide();

		$('invites_reservation').setStyle('display', 'block');
		$('coordonnees_reservation').setStyle('display', 'block');

		// ---------------
		// mise en place des boutons suivants precedents sur le calendrier
		// ---------------
		$('calendrier_suiv').addEvent('click', function(e){
			e.stop();
			var mois_prochain = date_courante.clone().increment('month', 1);
			affiche_calendrier(mois_prochain);
			date_courante = mois_prochain;
		});		
		
		$('calendrier_prec').addEvent('click', function(e){
			e.stop();
			var mois_prochain = date_courante.clone().decrement('month', 1);
			
			if (mois_prochain >= date_today)
			{	
				affiche_calendrier(mois_prochain);
				date_courante = mois_prochain;
			}
		});		
		
		$('bouton-coordonnees').addEvent('click', function(e){
			e.stop();
			$('bouton-coordonnees').setStyle('display', 'none');
			mySlideCoordonnees.slideIn();
		});				
		
		
		$('bouton-valider').addEvent('click', function(e){
													   
			
		});	
		
		$('bouton-modifier').addEvent('click', function(e){

			$('recap').setStyle('display', 'none');	
			$('corpForm').setStyle('display', 'block');
			$('contener').getElements('.ToolTips').setStyle('display', 'block'); 
		});	
		

		
	}	
	

});


