// Initialise les variables pour le panier
var effet_affichage_panier=false;
var panier_charge=false;
// Initialise les variables pour le dialogue
var effet_affichage_dialogue=false;
// Initialise les variables pour les champs
var focus_champ='';
// Initialise les variables pour le menu
var liste_action_rubrique;
var liste_action_contenu;
// Fonction d'affichage du panier
function affichage_apercu_panier(){
	// Si l'effet n'est pas en cours
	if(!effet_affichage_panier){
		// Affiche le temoin ajax
		activite_ajax_temoin(1);
		// Si le conteneur est cache
		if($('conteneur_reception_panier').getStyle('display')=='none'){
			// Si le panier est charge
			if(panier_charge){
				// Initialise le conteneur
				$('conteneur_reception_panier').setStyle('display','block');
				// Realise l'effet d'affichage
				new Fx.Slide($('conteneur_reception_panier'),{duration:1000,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
					function(){
						// Realise l'effet d'affichage
						new Fx.Morph($('conteneur_reception_panier'),{duration:2000}).start({'opacity':[0,1]}).chain(
							function(){
								// Indique que l'effet est termine
								effet_affichage_panier=false;
								// Cache le temoin ajax
								activite_ajax_temoin(0);
							}
						);
					}
				);
			// Sinon
			}else{
				// Cache le conteneur
				new Fx.Slide($('conteneur_reception_panier')).hide();
				// Affiche un message d'attente
				$('conteneur_reception_panier').set('html','<div class="conteneur_apercu_panier"><div id="conteneur_apercu_panier_global"><div class="conteneur_apercu_panier_haut"></div><div class="conteneur_apercu_panier_contenu"><div class="conteneur_apercu_panier_fond"><div class="conteneur_apercu_panier_entete"><img src="http://www.roomantic.fr/elements/conteneur_apercu_panier_entete_boutique.gif" alt="Mon panier" width="70" height="175" /></div><div id="contenu_panier" class="conteneur_apercu_panier_recapitulatif"><div class="panier_chargement"></div></div><div style="clear:both"></div></div></div><div class="conteneur_apercu_panier_bas"></div></div></div>');
				// Initialise le conteneur
				$('conteneur_reception_panier').setStyles({
					opacity:'0',
					display:'block'
				});
				// Realise l'effet d'affichage
				new Fx.Slide($('conteneur_reception_panier'),{duration:1000,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
					function(){
						// Realise l'effet d'affichage
						new Fx.Morph($('conteneur_reception_panier'),{duration:1000,fps:20}).start({'opacity':[0,1]}).chain(
							function(){
								// Cree la requete
								var requete_ajax = new Request({
									url:'../includes/ajax_panier.php?url='+window.location,
									onSuccess:function(contenu){
										// Realise l'effet d'affichage
										new Fx.Morph($('conteneur_reception_panier'),{duration:1000,fps:20}).start({'opacity':[1,0]}).chain(
											function(){
												// Realise l'effet d'affichage
												new Fx.Slide($('conteneur_reception_panier'),{duration:500,transition:Fx.Transitions.Cubic.easeIn}).slideOut().chain(
													function(){
														// Cree un code unique base sur le timestamp
														var date=new Date();
														var code='element_tooltip_'+date.getHours()+date.getMinutes()+date.getSeconds();
														// Modifie les codes tooltip avec un code unique
														var motif=new RegExp("(element_tooltip)","g");
														contenu=contenu.replace(motif,code);
														// Integre le panier
														$('conteneur_reception_panier').set('html',contenu);
														// Relance la detection des nouveaux tooltips
														initialisation_tooltip('.'+code);
														// Realise l'effet d'affichage
														new Fx.Slide($('conteneur_reception_panier'),{duration:2000,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
															function(){
																// Realise l'effet d'affichage
																new Fx.Morph($('conteneur_reception_panier'),{duration:1000,fps:20}).start({'opacity':[0,1]}).chain(
																	function(){
																		// Indique que le panier est charge
																		panier_charge=true
																		// Indique que l'effet est termine
																		effet_affichage_panier=false;
																		if(navigator.appName=="Microsoft Internet Explorer"){
																			self.location.hash='haut_de_page';
																		}else{
																			var focus_message=new Fx.Scroll(window, {duration:2000,transition: Fx.Transitions.sineOut});
																			focus_message.toElement('haut_de_page',{wheelStops:false});
																		}
																		// Cache le temoin ajax
																		activite_ajax_temoin(0);
																	}
																);
															}
														);
													}
												);
											}
										);
									},
									onFailure:function(contenu){
										// Indique que l'effet est termine
										effet_affichage_panier=false;
										// Cache le temoin ajax
										activite_ajax_temoin(0);
									}
								});
								// Envoie la requete
								requete_ajax.send();
							}
						);
					}
				);
			}
		// Sinon
		}else{
			// Realise l'effet d'affichage
			new Fx.Morph($('conteneur_reception_panier'),{duration:500,fps:20}).start({'opacity':[1,0]}).chain(
				function(){
					// Realise l'effet d'affichage
					new Fx.Slide($('conteneur_reception_panier'),{duration:1000,transition:Fx.Transitions.Cubic.easeIn}).slideOut().chain(
						function(){
							// Indique que l'effet est termine
							effet_affichage_panier=false;
							// Cache le temoin ajax
							activite_ajax_temoin(0);
							// Initialise le conteneur
							$('conteneur_reception_panier').setStyle('display','none');
						}
					);
				}
			);
		}
	}
}

// Fonction AJAX globale
function ajax_global(requete,cible,temoin_erreur){
	// Affiche le temoin ajax
	activite_ajax_temoin(1);
	// Cree la requete
	var requete_ajax = new Request({
		url:requete,
		onSuccess: function(contenu){
			// Cree un code unique base sur le timestamp
			var code=new Date();
			// Modifie les codes tooltip avec un code unique
			contenu.replace('element_tooltip','element_tooltip_'+code);
			// Met a jour l'element cible
			$(cible).set('html',contenu);
			// Relance la detection des nouveaux tooltips
			initialisation_tooltip('.element_tooltip_'+code);
			// Cache le temoin ajax
			activite_ajax_temoin(0);
		},
		onFailure:function(contenu){
			// Si l'erreur doit etre affichee
			if(temoin_erreur){
				// Met a jour l'element cible
				$(cible).set('html','<p>Une erreur est survenue.<\/p>');
			}
			// Cache le temoin ajax
			activite_ajax_temoin(0);
		}
	});
	// Envoie la requete
	requete_ajax.send();
}
// Fonction d'affichage du dialogue
function affichage_dialogue(){
	// Si l'effet n'est pas en cours
	if(!effet_affichage_dialogue){
		// Affiche le temoin ajax
		activite_ajax_temoin(1);
		// Recupere le style du DIV
		var styles=$('conteneur_dialogue_global').getStyles('display');
		// Si le div est cache
		if(styles['display']=='none'){
			// Affiche le DIV
			$('conteneur_dialogue_global').setStyle('opacity','0');
			$('conteneur_dialogue_global').setStyle('display','block');
			// Realise l'effet
			new Fx.Slide($('conteneur_dialogue_global'),{duration:600,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
				function(){
					// Affiche la zone de contenu
					var effet_apparition=new Fx.Morph($('conteneur_dialogue_global'),{duration:1000,transition: Fx.Transitions.Sine.easeOut});
					effet_apparition.start({'opacity':[0,1]}).chain(
						function(){
							// Indique que l'effet est termine
							effet_affichage_dialogue=false;
							if(navigator.appName=="Microsoft Internet Explorer"){
								self.location.hash='haut_de_page';
							}else{
								var focus_message=new Fx.Scroll(window, {duration:2000,transition: Fx.Transitions.sineOut});
								focus_message.toElement('haut_de_page',{wheelStops:false});
							}
							// Cache le temoin ajax
							activite_ajax_temoin(0);
						}
					);
				}
			);
		}else{
			// Affiche la zone de contenu
			$('conteneur_dialogue_global').setStyle('opacity','1');
			var effet_apparition=new Fx.Morph($('conteneur_dialogue_global'),{duration:500,transition: Fx.Transitions.Sine.easeOut});
			effet_apparition.start({'opacity':[1,0]}).chain(
				function(){
					// Realise l'effet
					new Fx.Slide($('conteneur_dialogue_global'),{duration:500,transition:Fx.Transitions.Cubic.easeOut}).slideOut().chain(
						function(){
							// Cache le DIV
							$('conteneur_dialogue_global').setStyle('display','none');
							// Indique que l'effet est termine
							effet_affichage_dialogue=false;
							// Cache le temoin ajax
							activite_ajax_temoin(0);
						}
					);
				}
			);
		}
	}
}

var menu_element_survol=new Array();
var menu_element_visible="";
var interval_survol;
function menu_evenement_validation(id){
	liste_action_rubrique[id].setStyle('background-image','none');
	if(menu_element_survol[id]==1){
		// Si il y a deja un element visible
		if(menu_element_visible===""){
			// Realise l'effet
			new Fx.Slide($(liste_action_contenu[id]),{duration:600,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
				function(){
					// Stocke l'element rendu visible
					menu_element_visible=id;
					// Cache le temoin ajax
					activite_ajax_temoin(0);
				}
			);
		}else{
			// Realise l'effet
			new Fx.Slide($(liste_action_contenu[menu_element_visible]),{duration:200,transition:Fx.Transitions.Cubic.easeOut}).slideOut().chain(
				function(){
					new Fx.Slide($(liste_action_contenu[id]),{duration:600,transition:Fx.Transitions.Cubic.easeOut}).slideIn().chain(
						function(){
							// Stocke l'element rendu visible
							menu_element_visible=id;
							// Cache le temoin ajax
							activite_ajax_temoin(0);
						}
					);
				}
			);
		}
	}
	menu_element_survol[id]=0;
	clearInterval(interval_survol);
}
function menu_evenement_click(id){
	liste_action_lien[id].setStyle('background-image','none');
}
function menu_evenement_mouseover(id){
	if(liste_action_rubrique[id].getStyle('display')!="none"){
		// Affiche le temoin ajax
		activite_ajax_temoin(1);
		menu_element_survol[id]=1;
		liste_action_lien[id].setStyle('background-image','url(http://www.roomantic.fr/elements/menu_lien_focus.gif)');
		interval_survol=setInterval("menu_evenement_validation("+id+")", 1000);
	}
}
function menu_evenement_mouseout(id){
	menu_element_survol[id]=0;
	liste_action_lien[id].setStyle('background-image','none');
	clearInterval(interval_survol);
	// Cache le temoin ajax
	activite_ajax_temoin(0);
}



// Fonction d'initialisation du menu interactif
function initialisation_menu_interactif(){
	// Recupere la liste des listes deroulantes
	liste_action_rubrique=$$('.action_rubrique');
	liste_action_lien=$$('.action_lien');
	liste_action_contenu=$$('.action_contenu');
	// Parcourt les elements caches
	for(var i=0;i<liste_action_contenu.length;i++){
		new Fx.Slide($(liste_action_contenu[i])).hide();
		liste_action_contenu[i].setStyle('display','block');
	}
	if(liste_action_rubrique.length>0){
		liste_action_rubrique[0].addEvent('click',function(){menu_evenement_click(0);});
		liste_action_rubrique[0].addEvent('mouseover',function(){menu_evenement_mouseover(0);});
		liste_action_rubrique[0].addEvent('mouseout',function(){menu_evenement_mouseout(0);});
	}
	if(liste_action_rubrique.length>1){
		liste_action_rubrique[1].addEvent('click',function(){menu_evenement_click(1);});
		liste_action_rubrique[1].addEvent('mouseover',function(){menu_evenement_mouseover(1);});
		liste_action_rubrique[1].addEvent('mouseout',function(){menu_evenement_mouseout(1);});
	}
	if(liste_action_rubrique.length>2){
		liste_action_rubrique[2].addEvent('click',function(){menu_evenement_click(2);});
		liste_action_rubrique[2].addEvent('mouseover',function(){menu_evenement_mouseover(2);});
		liste_action_rubrique[2].addEvent('mouseout',function(){menu_evenement_mouseout(2);});
	}
	if(liste_action_rubrique.length>3){
		liste_action_rubrique[3].addEvent('click',function(){menu_evenement_click(3);});
		liste_action_rubrique[3].addEvent('mouseover',function(){menu_evenement_mouseover(3);});
		liste_action_rubrique[3].addEvent('mouseout',function(){menu_evenement_mouseout(3);});
	}
	if(liste_action_rubrique.length>4){
		liste_action_rubrique[4].addEvent('click',function(){menu_evenement_click(4);});
		liste_action_rubrique[4].addEvent('mouseover',function(){menu_evenement_mouseover(4);});
		liste_action_rubrique[4].addEvent('mouseout',function(){menu_evenement_mouseout(4);});
	}
	if(liste_action_rubrique.length>5){
		liste_action_rubrique[5].addEvent('click',function(){menu_evenement_click(5);});
		liste_action_rubrique[5].addEvent('mouseover',function(){menu_evenement_mouseover(5);});
		liste_action_rubrique[5].addEvent('mouseout',function(){menu_evenement_mouseout(5);});
	}
	if(liste_action_rubrique.length>6){
		liste_action_rubrique[6].addEvent('click',function(){menu_evenement_click(6);});
		liste_action_rubrique[6].addEvent('mouseover',function(){menu_evenement_mouseover(6);});
		liste_action_rubrique[6].addEvent('mouseout',function(){menu_evenement_mouseout(6);});
	}
	if(liste_action_rubrique.length>7){
		liste_action_rubrique[7].addEvent('click',function(){menu_evenement_click(7);});
		liste_action_rubrique[7].addEvent('mouseover',function(){menu_evenement_mouseover(7);});
		liste_action_rubrique[7].addEvent('mouseout',function(){menu_evenement_mouseout(7);});
	}
	if(liste_action_rubrique.length>8){
		liste_action_rubrique[8].addEvent('click',function(){menu_evenement_click(8);});
		liste_action_rubrique[8].addEvent('mouseover',function(){menu_evenement_mouseover(8);});
		liste_action_rubrique[8].addEvent('mouseout',function(){menu_evenement_mouseout(8);});
	}
	if(liste_action_rubrique.length>9){
		liste_action_rubrique[9].addEvent('click',function(){menu_evenement_click(9);});
		liste_action_rubrique[9].addEvent('mouseover',function(){menu_evenement_mouseover(9);});
		liste_action_rubrique[9].addEvent('mouseout',function(){menu_evenement_mouseout(9);});
	}
	if(liste_action_rubrique.length>10){
		liste_action_rubrique[10].addEvent('click',function(){menu_evenement_click(10);});
		liste_action_rubrique[10].addEvent('mouseover',function(){menu_evenement_mouseover(10);});
		liste_action_rubrique[10].addEvent('mouseout',function(){menu_evenement_mouseout(10);});
	}
}

function activite_ajax_temoin(valeur){
	var activite_ajax=$('activite_ajax');
	// Si une activite ajax est en cours
	if(valeur){
		// Affiche le temoin d'activite
		activite_ajax.src="http://www.roomantic.fr/elements/activite_ajax.gif";
	// Sinon
	}else{
		// Supprime le temoin d'activite
		activite_ajax.src="http://www.roomantic.fr/elements/activite_ajax_attente.gif";
	}
}
function ajax(requete){
	// Affiche le temoin ajax
	activite_ajax_temoin(1);
	// Cree la requete
	var requete_ajax = new Request({
		url:requete,
		onSuccess: function(contenu){
			$('conteneur_barre_outils_message').set('html',contenu);
			ajax_complet();
		},
		onFailure: function(contenu){
			$('conteneur_barre_outils_message').set('html','<p>Une erreur est survenue !</p>');
			ajax_complet();
		}
	});
	// Envoie la requete
	requete_ajax.send();
}
function ajax_complet(){
	// Si aucun message est affiche
	if(!message_affiche){
		// Affiche la zone de message
		message_affiche=1;
		// Affiche le temoin ajax
		activite_ajax_temoin(1);
		slide_recepteur_barre_outils_message.slideIn();
	}else{
		// Cache le temoin ajax
		activite_ajax_temoin(0);
	}
}
function affichage_message(message, fixe, niveau){
	// Si un message est en attente
	if(typeof(fermeture_message)!="undefined"){
		//Supprime la fonction de fermeture du message
		$clear(fermeture_message);
	}
	// Actualise le message
	$('message_important').set('html',message);
	// Si aucun message est affiche
	if(message_affiche==0){
		// Affiche le message
		message_affiche=1;
		slide_recepteur_barre_outils_message.toggle();
	}
	// Affiche le niveau de message
	$('message_important_niveau').src="http://www.roomantic.fr/elements/message_niveau_"+niveau+".gif";
	// Si le message ne doit pas rester fixe
	if(!fixe){
		// Se met en attente pendant 5 secondes
		fermeture_message=function(){
			// Cache le message
			message_affiche=0;
			slide_recepteur_barre_outils_message.toggle();
		}.delay(5000);
	}
}

// Fonction permettant les requetes en AJAX
function file(fichier){
	// Ajax Firefox
	if(window.XMLHttpRequest)
	xhr_object = new XMLHttpRequest();
	// Ajax Internet Explorer
	else if(window.ActiveXObject)
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
}
// Fonction de cochage et decochage en serie
function cochage_decochage(){
	var inpList = document.getElementsByTagName("input");
	var nombre_checkbox = inpList.length - 1;
	var index = 0;

	if(inpList[0].checked == true){
		var valeur=false;
	}else{
		var valeur=true;
	}

	while(index <= nombre_checkbox){
		inpList[index].checked = valeur;
		index++;
	}
}
// Fonction d'effet de focus sur un champ
function effet_focus_champ(id){
	$(id).setStyles({
		background:'url(http://www.roomantic.fr/elements/champ_focus.gif) #FFF no-repeat left top',
		color:'#000',
		border:'1px solid #999'
	});
	$(id).store('focus',1);
}
// Fonction d'effet de la perte de focus sur un champ
function effet_blur_champ(id){
	$(id).setStyles({
		background:'url(http://www.roomantic.fr/elements/champ_blur.gif) #F8F8F8 no-repeat left top',
		color:'#6E6E6E',
		border:'1px solid #CCC'
	});
	$(id).store('focus',0);
}
// Fonction d'effet de survol sur un champ
function effet_over_champ(id){
	if(!$(id).retrieve('focus')){
		$(id).setStyle('border-color','#777');
	}
}
// Fonction d'effet de la perte de survol sur un champ
function effet_out_champ(id){
	if(!$(id).retrieve('focus')){
		$(id).setStyle('border-color','#CCC');
	}
}
// Fonction d'effet de survol sur un bouton
function effet_over_bouton(id){
	if($(id).getStyle('padding-right')!="26px"){
		$(id).setStyle('background','#555');
	}
}
// Fonction d'effet de la perte de survol sur un bouton
function effet_out_bouton(id){
	if($(id).getStyle('padding-right')!="26px"){
		$(id).setStyle('background','#6E6E6E');
	}
}
// Fonction d'effet de survol sur un bouton de la boutique
function effet_over_bouton_boutique(id){
	if($(id).getStyle('padding-right')!="26px"){
		$(id).setStyle('background','#4E1946');
	}
}
// Fonction d'effet de la perte de survol sur un bouton de la boutique
function effet_out_bouton_boutique(id){
	if($(id).getStyle('padding-right')!="26px"){
		$(id).setStyle('background','#611F58');
	}
}
// Fonction d'effet de click sur un bouton
function effet_click_bouton(id){
	$(id).setStyles({
		background:'url(http://www.roomantic.fr/elements/activite_ajax_bouton_classique.gif) #6E6E6E no-repeat right center',
		color:'#FFF',
		padding:'3px 26px 3px 3px'
	});
	$(id).value='Validation en cours...';
}
// Fonction d'effet de click sur un bouton de la boutique
function effet_click_bouton_boutique(id){
	$(id).setStyles({
		background:'url(http://www.roomantic.fr/elements/activite_ajax_bouton_boutique.gif) #611F58 no-repeat right center',
		color:'#FFF',
		padding:'3px 26px 3px 3px'
	});
	$(id).value='Validation en cours...';
}
// Fonction qui affiche le lien permanent
function lien_permanent(contenu,url){
	var retour=prompt('Si vous souhaitez faire un lien vers '+contenu+', copiez l\'adresse ci-dessous :',url);
}
// Fonction de fermeture du videorama
function videorama_fermeture(){
	new Fx.Tween($('lbBottomContainer'),{duration:300,transition:Fx.Transitions.Cubic.easeOut}).start('opacity',1,0).chain(
		function(){
			// Supprime la video
			if($('ibVideo')){ $('ibVideo').destroy(); }
			// Retabli la slimbox
			$('lbCenter').setStyles({
				display:'none',
				overflow:'hidden'
			});
			new Fx.Tween($('lbOverlay'),{duration:1000,transition:Fx.Transitions.Cubic.easeOut}).start('opacity',0.8,0).chain(
				function(){
					$('lbBottomContainer').setStyles({
						opacity:1,
						display:'none',
						visibility:'hidden',
						overflow:'hidden'
					});
				}
			);
		}
	);
}
// Fonction d'initialisation du videorama
function videorama_initialisation(url){
	// Initialise les tailles
	var largeur=640, hauteur=480, scrolling=window.getScroll(), taille=window.getSize();
	$('lbCaption').set('html','');
	// Initalise le slimbox
	$('lbOverlay').setStyles({
		display:'block',
		opacity:0
	});
	$('lbCenter').setStyles({
		left:(scrolling.x+(taille.x/2))-(largeur/2),
		top:(scrolling.y+(taille.y/2))-(hauteur/2),
		width:largeur+20,
		height:hauteur+20,
		margin:0
	});
	$('lbBottomContainer').setStyles({
		left:(scrolling.x+(taille.x/2))-(largeur/2),
		top:(scrolling.y+(taille.y/2))-(hauteur/2)+hauteur+20,
		width:largeur+20,
		opacity:0,
		display:'block',
		visibility:'visible',
		overflow:'visible',
		margin:0
	});
	// Fait apparaitre l'overlay slimbox
	new Fx.Tween($('lbOverlay'),{duration:500,transition:Fx.Transitions.Cubic.easeOut}).start('opacity',0,0.8).chain(
		function(){
			// Integre le contenu de la video dans le slimbox
			var video=new Element('div',{id:'ibVideo'});
			video.inject($('lbCenter'),'top');
			$('ibVideo').set('html','<object style="display:block" type="application/x-shockwave-flash" data="'+url+'" width="'+largeur+'" height="'+hauteur+'"><param name="movie" value="'+url+'" /><param  name="quality" value="high" /><param name="scale" value="showall" /><param name="bgcolor" value="#000000" /><param name="allowfullscreen" value="true" /><\/object>');
			// Affiche le centre slimbox
			$('lbCenter').setStyles({
				display:'block',
				visibility:'visible',
				overflow:'visible'
			});
			// Realise l'effet
			new Fx.Tween($('lbBottomContainer'),{duration:1000,transition:Fx.Transitions.Cubic.easeOut}).start('opacity',0,1).chain(
				function(){
					// Ajoute les evenements
					$('lbOverlay').addEvent('click',function(){ videorama_fermeture(); });
					// Ajoute les evenements
					$('lbCloseLink').addEvent('click',function(){ videorama_fermeture(); });
				}
			);
		}
	);
}
// Fonction qui gere le remplissage d'un champ
function validation_nombre_caracteres(id,maximum,blocage){
	// Initialise le temoin
	var temoin='';
	// Recupere le nombre de caracteres
	var valeur=$(id).value;
	var caracteres=valeur.length;
	// Si le nombre est superieur au maximum
	if(caracteres>maximum){
		// Si il y a un blocage
		if(blocage){
			// Tronque le contenu
			$(id).value=valeur.substr(0,maximum);
			// Adapte le temoin
			temoin=' (Aucun caractère restant)';
		// Sinon
		}else{
			// Adapte le temoin
			temoin=' <span style="color:#F00">('+(caracteres-maximum)+' caractères en trop)<\/span>';
		}
	// Sinon, si le nombre est egal au maximum
	}else if(caracteres==00){
		// Adapte le temoin
		temoin=' (Aucun caractère restant)';
	// Sinon, si le maximum n'est pas depasse
	}else if(caracteres>0){
		// Adapte le temoin
		temoin=' ('+(maximum-caracteres)+' caractères restant)';
	}
	// Met a jour le temoin
	$(id+'_temoin').set('html',temoin);
}
// Fonction de gestion des evenements sur les input
function gestion_elements_entree(){
	// Recupere la liste des champs
	var liste_champs=$$('.champ');
	// Parcourt les champs
	for(var i=0;i<liste_champs.length;i++){
		// Ajoute les evenements
		liste_champs[i].addEvent('mouseover',function(){effet_over_champ(this.id);});
		liste_champs[i].addEvent('mouseout',function(){effet_out_champ(this.id);});
		liste_champs[i].addEvent('focus',function(){effet_focus_champ(this.id);});
		liste_champs[i].addEvent('blur',function(){effet_blur_champ(this.id);});
	}
	// Recupere la liste des listes deroulantes
	var liste_champs_texte=$$('.champ_texte');
	// Parcourt les champs
	for(var i=0;i<liste_champs_texte.length;i++){
		// Ajoute les evenements
		liste_champs_texte[i].addEvent('mouseover',function(){effet_over_champ(this.id);});
		liste_champs_texte[i].addEvent('mouseout',function(){effet_out_champ(this.id);});
		liste_champs_texte[i].addEvent('focus',function(){effet_focus_champ(this.id);});
		liste_champs_texte[i].addEvent('blur',function(){effet_blur_champ(this.id);});
	}
	// Recupere la liste des listes deroulantes
	var liste_listes_deroulantes=$$('.liste_deroulante');
	// Parcourt les champs
	for(var i=0;i<liste_listes_deroulantes.length;i++){
		// Ajoute les evenements
		liste_listes_deroulantes[i].addEvent('mouseover',function(){effet_over_champ(this.id);});
		liste_listes_deroulantes[i].addEvent('mouseout',function(){effet_out_champ(this.id);});
		liste_listes_deroulantes[i].addEvent('focus',function(){effet_focus_champ(this.id);});
		liste_listes_deroulantes[i].addEvent('blur',function(){effet_blur_champ(this.id);});
	}
	// Recupere la liste des boutons de validation
	var liste_boutons_validation=$$('.bouton_validation');
	// Parcourt les champs
	for(var i=0;i<liste_boutons_validation.length;i++){
		// Ajoute les evenements
		liste_boutons_validation[i].addEvent('mouseover',function(){effet_over_bouton(this.id);});
		liste_boutons_validation[i].addEvent('mouseout',function(){effet_out_bouton(this.id);});
		liste_boutons_validation[i].addEvent('click',function(){effet_click_bouton(this.id);});
	}
	// Recupere la liste des boutons de validation de la boutique
	var liste_boutons_validation_boutique=$$('.bouton_validation_boutique');
	// Parcourt les champs
	for(var i=0;i<liste_boutons_validation_boutique.length;i++){
		// Ajoute les evenements
		liste_boutons_validation_boutique[i].addEvent('mouseover',function(){effet_over_bouton_boutique(this.id);});
		liste_boutons_validation_boutique[i].addEvent('mouseout',function(){effet_out_bouton_boutique(this.id);});
		liste_boutons_validation_boutique[i].addEvent('click',function(){effet_click_bouton_boutique(this.id);});
	}
	// Recupere la liste des boutons de validation
	var liste_boutons_validation=$$('.bouton_suppression');
	// Parcour les champs
	for(var i=0;i<liste_boutons_validation.length;i++) {
		// Ajoute les evenements
		liste_boutons_validation[i].addEvent('mouseover',function(){effet_over_bouton(this.id);});
		liste_boutons_validation[i].addEvent('mouseout',function(){effet_out_bouton(this.id);});
	}
}
// Fonction de prise de controle sur les liens externes
function gestion_liens_externes(){
	// Recupere la liste des liens externes
	var liste_lien_externe=$$('.lien_externe');
	// Parcourt les liens
	for(var i=0 ; i < liste_lien_externe.length ; ++i) {
		// Ajoute les evenements
		liste_lien_externe[i].addEvent('click', function(effet){
			effet=new Event(effet);
			effet.stop()
			window.open(this.href);
			return false;
		});
	}
	// Recupere la liste des liens externes
	var liste_lien_puce_page_externe=$$('.lien_puce_page_externe');
	// Parcourt les liens
	for(var i=0 ; i < liste_lien_puce_page_externe.length ; ++i) {
		// Ajoute les evenements
		liste_lien_puce_page_externe[i].addEvent('click', function(effet){
			effet=new Event(effet);
			effet.stop()
			window.open(this.href);
			return false;
		});
	}
}
// Fonction d'initialisation du scrolling
function initialisation_scrolling(){
	// Active le scrolling
	new SmoothScroll({duration:1500,transition:Fx.Transitions.Sine.easeOut}, window);
}
// Fonction d'initialisation de tooltip personnalises
function initialisation_tooltip(classe){
	// Recupere la liste elements avec tooltip
	var liste_elements_tooltip=$$(classe);
	// Parcourt les tooltips
	liste_elements_tooltip.each(function(element,index) {
		var content = element.get('title').split('::');
		element.store('tip:title', content[0]);
		element.store('tip:text', content[1]);
	});
	// Initialise l'opacite et le nombre de caracteres dans le titre
	new Tips(liste_elements_tooltip,{maxTitleChars: 25});
}

// Evenements au chargement de la page
window.addEvent('load',function(){
	// Ajoute les evenements sur les elements d'entree
	gestion_elements_entree();
	// Ajoute la gestion des liens externes personnalises
	gestion_liens_externes();
});
