var Accueil=function()
{
	this.effets=new Effets();
	this.fenetre=new Fenetre();
	this.formulaire=new Formulaire();
	
	/************** VIDEO ****************/
	
	this.xVideo=920; // Position en x de la vidéo
	this.videoIsMoving=false; // La vidéo bouge?

	/************* END VIDEO *************/
	
	if($('accueil')!=null)
	{
		this.init();
	}
	
}

Accueil.prototype.init=function()
{
	var accueil=this;
	
	this.moteur=new Moteur();
	
	Event.observe("video-onglet","click",
				  function()
				  {
					 accueil.videoSlide();
				  }
	);
	
	Event.observe
	(
	 	"newsletter-envoyer","click",
				function()
				{
					accueil.sendNewsletter();
				}
	)

	
}


Accueil.prototype.sendNewsletter=function()
{
	this.formulaire.reinit();
	this.formulaire.isMail('newsletter-mail');
	
	if(this.formulaire.validate())
	{
		new Ajax.Request("php/index.ajax.php",
						 {
							 method:"post",
							 parameters:"action=newsletter-inscription&mail="+encodeURIComponent($F('newsletter-mail')),
							 onComplete:function(reponse)
							 {
								$("newsletter-mail").value = "Inscription terminee";
							 }
						 }
		);
	}
	else
	{
		$("newsletter-mail").value = "Adresse e-mail incorrecte";
	}
}

Accueil.prototype.videoSlide=function() // Slide de la vidéo
{
		var accueil=this;
	 
		 if(!accueil.videoIsMoving)
		 {
			
			if(accueil.xVideo == 920)
			 {
				 accueil.xVideo=440;
			 }
			 else
			 {
				 accueil.xVideo=920;
			 }
			 
			 accueil.videoIsMoving=true; 
			 
			 new Effect.Move("video",
							  {
								  mode:"absolute",
								  x:accueil.xVideo,
								  y:8,
								  afterFinish:function()
								  {
									  accueil.videoIsMoving=false;
								  }
							  }
			  );
		 
		 }
}
var Contact=function()
{
	
	if($("contact")!=null)
	{
		this.formulaire=new Formulaire();
		this.formulaire.init();
		
		this.googleMap= new GoogleMap($('googlemap'));
		this.init();
	}
}

Contact.prototype.init=function()
{
	var contact=this;
							
	contact.googleMap.goToAddress("27 all&eacute;e Gambetta 93340 Le Raincy France","<b>Groupe-Satim</b><br />27 all&eacute;e Gambetta<br />93340 Le Raincy<br />France",100);
	
	Event.observe($('contact-envoyer'),"click",
					function()
					{
						contact.send();
					}
	)
}

Contact.prototype.send=function()
{
	this.formulaire.reinit();
	
	this.formulaire.isAlpha("contact-nom");
	this.formulaire.isAlpha("contact-prenom");
	this.formulaire.isMail("contact-email");
	this.formulaire.isNumeric("contact-telephone");
	this.formulaire.isNotEmpty("contact-sujet");
	this.formulaire.isNotEmpty("contact-message");

	if(this.formulaire.validate())
	{
		$('contact-envoyer').hide();
		$('contact-chargementencours').show();
		
		new Ajax.Request
		("php/index.ajax.php",
		 {
			 method:"post",
			 parameters:
			 {
				 action:"contact-send",
				 nom:$F('contact-nom'),
				 prenom:$F('contact-prenom'),
				 email:$F('contact-email'),
				 telephone:$F('contact-telephone'),
				 sujet:$F('contact-sujet'),
				 message:$F('contact-message'),
				 civilite:$F('contact-civilite'),
				 theme:$F('contact-theme'),
				 newsletter:$F('contact-newsletter')
			 },
			 onComplete:function(reponse)
			 {
				 $('contact-etape1').hide();
				 $('contact-etape2').show();
			 }
		 }
		);
	}



}
var Cookie=function(name, value, expire)
{
	var timestamp=new Date(expire);
	document.cookie=name + "=" + escape(value) + "; expires=" + timestamp.toGMTString();
}

// FORMAT : new Cookie('nom','valeur',(new Date(2010, 12).getTime());
// JavaScript Document

var Effets=function()
{
}

Effets.prototype.initImageBox=function()
{
	$$('a').each
	(
	 function(e)
	 {
		 if(e.getAttribute("rel") == "imagebox")
		 {
			 Event.observe(e,"click",
						   function()
						   {
							   Lightview.show
							   (
								{
									href:e.href,
									rel:"image",
									caption:e.title
								}
							   )
							   return false;
						   }
			 );
			 
			 e.onclick=function()
			 {
				 return false;
			 }
		 }
	 }
	)
}

Effets.prototype.accordion=function(accordionClick,accordionContent)
{
	var accordion;
	var accordionClicks;
	var accordionContents;
	
	accordionClicks = accordionClick;
	accordionContents = accordionContent;
	accordion = new fx.Accordion(accordionClicks, accordionContents);
}

Effets.prototype.scaleOverOut=function(element,taillepetit,taillegrand, opacite)
{
	if(opacite == null)
	{
		opacite = 0.6
	}
	Event.observe(element,"mouseover",
				  function()
				  { 
					Element.setStyle(element,{height:taillegrand+"px",opacity:opacite})
				  }
	);
	
	Event.observe(element,"mouseout",
				  function()
				  { 
					Element.setStyle(element,{height:taillepetit+"px", opacity:"1"})
				  }
	);
}

Effets.prototype.blackbackgroundOverOut=function(element,opacite)
{
	if(opacite == null)
	{
		opacite = 0.6
	}
	
	var couleurPolice=element.style.color;
	var couleurBackground=element.style.backgroundColor;
	
	Event.observe(element,"mouseover",
				  function()
				  { 
					Element.setStyle(element,{color:"#FFFFFF", backgroundColor:"#000000",opacity:opacite})
				  }
	);
	
	Event.observe(element,"mouseout",
				  function()
				  { 
					Element.setStyle(element,{backgroundColor:couleurBackground, color:couleurPolice, opacity:"1"})
				  }
	);
}
var EspaceClient=function()
{
	this.effets=new Effets();
	
	if($("espace-client")!=null)
	{
		
		this.init();
	}
	
	
}

EspaceClient.prototype.init=function()
{
	var espaceClient=this;

	this.effets.initImageBox();


}
var Fenetre=function() // Constructeur Fenetre
{
}


// CREATION DE LA FENETRE

Fenetre.prototype.setAjaxContent=function(lien,parametres)
{	
	var Fenetre=this;			
	
	Lightview.show
	(
	 {
		 href:lien,
		 rel:"ajax",
		 title:parametres["title"],
		 options:
		 {
			 autosize:true,
			 ajaxOptions:
			 {
				 method:"post",
				 parameters:parametres["parameters"],
				 onComplete:parametres["onComplete"]
			 }
		 }
	 }
	)	
}

Fenetre.prototype.destroy=function()
{
	Lightview.hide();
}


var Formulaire=function()
{
	this.nbErreurs=0;
	this.chemin="images/icones";
	this.elements=Array();
}

Formulaire.prototype.init=function()
{
	// Recuperer tout les input
	this.elements=$A(document.getElementsByTagName("input"));
	this.elements=this.elements.concat($A(document.getElementsByTagName("select")));
	this.elements=this.elements.concat($A(document.getElementsByTagName("textarea")));
	

	this.elements.each
	(
		 function(e)
		 {
			Event.observe
			(e,"focus",
			 function()
			 {
				 e.addClassName("form-focus");
			 }
			)
			
			Event.observe
			(e,"blur",
			 function()
			 {
				 e.removeClassName("form-focus");
			 }
			)
			
		 }
	 )
}

Formulaire.prototype.setError=function(e)
{
	e.addClassName("form-error");
	this.nbErreurs++;
}

Formulaire.prototype.isMail=function(e) // On verifie la syntaxe de l'email (e == ID input / select / textarea)
{	
 	 $(e).value=$F(e).toLowerCase()
	 var mail= $F(e);
	 var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
	 var retour=reg.exec(mail);
	 
	 if(!retour) 
	 {
	 	this.setError($(e)); // Si c'est pas bon on incremente le compteur
	 }
	  
	 return(retour);

}

Formulaire.prototype.isNumeric=function(e) // On verifie la syntaxe du texte (e == ID input / select / textarea)
{
	 var reg = /^[0-9]+$/
	 var chaine = $F(e);
	  
	 var retour=reg.exec(chaine);
	 
	 if(!retour) 
	 {
	 	this.setError($(e)); // Si c'est pas bon on incremente le compteur
	 }
	  
	 return(retour);
}

Formulaire.prototype.isAlphaNumerique=function(e) // On verifie la syntaxe du texte (e == ID input / select / textarea)
{
	 var reg = /^[a-zA-Z0-9 ]+$/
	 var chaine = $F(e);
	  
	 var retour=reg.exec(chaine);
	 
	 if(!retour) 
	 {
	 	this.setError($(e)); // Si c'est pas bon on incremente le compteur
	 }
	  
	 return(retour);
	
}


Formulaire.prototype.isAlpha=function(e) // On verifie la syntaxe du texte (e == ID input / select / textarea)
{
	 var reg = /^[a-zA-Z \-éèàç]+$/
	 var chaine = $F(e);
	  
	 var retour=reg.exec(chaine);
	 
	 if(!retour) 
	 {
	 	this.setError($(e)); // Si c'est pas bon on incremente le compteur
	 }
	  
	 return(retour);

}

Formulaire.prototype.isNotEmpty=function(e)
{
	var retour=$F(e).empty();
	
	 if(retour) 
	 {
	 	this.setError($(e)); // Si c'est pas bon on incremente le compteur
	 }
	  
	 return(!retour);
}

Formulaire.prototype.reinit=function()
{
	this.nbErreurs=0;
	
	this.elements.each
	(
	 function(e)
	 {
		 e.removeClassName('form-error');
	 }
	)
}

Formulaire.prototype.validate=function()
{
	if(this.nbErreurs == 0)
	{
		return true;
	}
	else return false;
}
var GoogleMap=function(canvas)
{
	
	// Point de départ : Paris
	this.geocoder = new google.maps.Geocoder();

	var myLatlng = new google.maps.LatLng(48.8566667, 2.3509871);
	
	// Options de la map
	var myOptions = {
	  zoom: 14,
	  mapTypeControl: false,
	  navigationControl: true,
	  navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
	  center: myLatlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	}


	// Initialise la map
	this.map = new google.maps.Map(document.getElementById("googlemap"), myOptions);
	
}


GoogleMap.prototype.goToAddress=function(address, textMarker)
{
	
		var gmap = this;
		
		if (gmap.geocoder) {
			gmap.geocoder.geocode( { 'address': address}, function(results, status) {
				
				if (status == google.maps.GeocoderStatus.OK) {
					
				  gmap.map.setCenter(results[0].geometry.location);
				  
				  var marker = new google.maps.Marker({
					  map: gmap.map, 
					  position: results[0].geometry.location
				  });
				  
				  
				  var infoBulle = new google.maps.InfoWindow({
						  content: textMarker	
				  })
					
				  infoBulle.open(gmap.map, marker);
	
				}
			})
		}

	

	
	//	else
	//	{
	//		setTimeout
	//		(
	//		 	function()
	//			{
	//		 		googlemap.goToAddress(address)
	//			},
	//			3000
	//		);
	//	}
    
}
Event.observe(window,"load",
			  function()
			  {	
			  		window.offres=new Offres();

			  		window.accueil=new Accueil();
					
					window.rechercheImmobilier=new RechercheImmobilier();
				
					
					window.realisationDetail=new RealisationDetail();
					
					window.contact=new Contact();
					window.menu=new Menu();
					window.menu.init();
					
					window.espaceClient=new EspaceClient();
					
				
			  }
);

var chargementEnCours='<div align="center" class="spacer-height"><img src="images/icones/load.gif" /></div><br /><div align="center" class="petitGras"><i>Chargement en cours</i></div>';

var loader='<div align="center" class="spacer-height"><img src="images/icones/load.gif" /></div>';

// JavaScript Document

var Menu=function()
{
	var menu=this;

}

Menu.prototype.init=function()
{
	
	var menu=this;
	
	this.sousMenuOffres=new SousMenu();
	this.sousMenuGroupe=new SousMenu();
	this.sousMenuEspaces=new SousMenu();
	
	Event.observe($("menu-offres"),"mouseover",
					function()
					{
						menu.sousMenuOffres.show($('sousmenu-offres'));
					}
	);


	Event.observe($("menu-offres"),"mouseout",
					function()
					{
						menu.sousMenuOffres.hide($('sousmenu-offres'));
					}
	);
	
		
	Event.observe($("menu-groupe"),"mouseover",
					function()
					{
						menu.sousMenuGroupe.show($('sousmenu-groupe'));
					}
	);


	Event.observe($("menu-groupe"),"mouseout",
					function()
					{
						menu.sousMenuGroupe.hide($('sousmenu-groupe'));
					}
	);
	
	Event.observe($("menu-espaces"),"mouseover",
					function()
					{
						menu.sousMenuEspaces.show($('sousmenu-espaces'));
					}
	);


	Event.observe($("menu-espaces"),"mouseout",
					function()
					{
						menu.sousMenuEspaces.hide($('sousmenu-espaces'));
					}
	);


}

var SousMenu=function()
{
	this.isVisible=false;
	this.isMoving = false;
}

SousMenu.prototype.show=function(element)
{
	var sousmenu=this;
	
	clearTimeout(sousmenu.timeout);
	
	if(!this.isVisible && !this.isMoving)
	{
		this.isMoving=true;
		this.isVisible=true;
		
		new Effect.BlindDown(element,
							 {
								 duration:0.5, 
							 	 afterFinish:function()
								 {
									 sousmenu.isMoving=false;
									 
								 }
							 }
		);
	}
}

SousMenu.prototype.hide=function(element)
{
	var sousmenu=this;
	
	this.timeout=setTimeout
	(
	 function()
	 {
		sousmenu.isVisible=false;
		sousmenu.isMoving=true;
		
		
		if(!this.isMoving)
		{
			new Effect.BlindUp(element,
							 {
								 duration:0.5, 
								 afterFinish:function()
								 {
									 sousmenu.isMoving=false;
								 }
							 }
			);
		}
	 },
	 1000
	);
}
var Moteur=function()
{
	this.init();
	this.formulaire=new Formulaire();
}

Moteur.prototype.init=function()
{
	var moteur=this;
	
	
	
	// Point de départ : Paris
	var myLatlng = new google.maps.LatLng(48.8566667, 2.3509871);
	
	// Options de la map
	var myOptions = {
	  zoom: 8,
	  mapTypeControl: false,
	  navigationControl: true,
	  navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
	  center: myLatlng,
	  scrollwheel:false,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	}


	// Initialise la map
	var map = new google.maps.Map(document.getElementById("canvas"), myOptions);
	
	// Les markers
	var iconAppartement = new google.maps.MarkerImage('img/icones/apartment.png', new google.maps.Size(32, 37), new google.maps.Point(0,0), new google.maps.Point(16, 37));
	
	var iconMaison = new google.maps.MarkerImage('img/icones/home.png', new google.maps.Size(32, 37), new google.maps.Point(0,0), new google.maps.Point(16, 37));
	
	var iconTerrain = new google.maps.MarkerImage('img/icones/land.png', new google.maps.Size(32, 37), new google.maps.Point(0,0), new google.maps.Point(16, 37));


	
	$$(".offre").each(function(e){

		try{
	
			var lat = e.down('div[class="coordonnees"]').down('div[class="latitude"]').innerHTML;
			var lon = e.down('div[class="coordonnees"]').down('div[class="longitude"]').innerHTML;
					
			var latLong = new google.maps.LatLng(lat, lon);
					
			var icon = null;
			
			var type = e.down('div[class="informations"]').down('span[class="type"]').innerHTML;
			
			if(/T.*/.exec(type)) {
				icon = iconTerrain;
			}
			else if(/M.*/.exec(type)) {
				icon = iconMaison
			}
			else {
				icon = iconAppartement;
			}
		
		
			// Pour chaque programme faire la boucle
			var optionsMarqueur  = {
				  position: latLong,
				  map: map,
				  title: e.down('div[class="nom"]').innerHTML,
				  icon:icon
			}
			
			
		
			var marqueur = new google.maps.Marker(optionsMarqueur);
		
			var infoBulle = new google.maps.InfoWindow({
				  content: e.innerHTML	
			})
			
			google.maps.event.addListener(marqueur, 'click', function() {
				 infoBulle.open(map, marqueur);
			});
			
		}
		catch(e){
		}

		
	});

	
	
	// Zoom minimum et maximum
	
	google.maps.event.addListener(map, 'zoom_changed', function() {

		if (this.getZoom() > 11) this.setZoom(11);
		if (this.getZoom() < 6) this.setZoom(6);
	}); 
}
var Offres=function()
{
	this.slideIsMoving=false;
	this.effets=new Effets();
	this.fenetre=new Fenetre();
	this.formulaire=new Formulaire();

	if($("offres-detail")!= null)
	{
		this.googleMap=new GoogleMap($('googlemap'));
		this.init();
	}
}

Offres.prototype.displayEnvoyerAmi=function(idprogramme)
{
	var offres=this;
	
	this.fenetre.setAjaxContent
	("php/index.ajax.php",
		{
			method:"post",
			parameters:
			{
				action:"offres-displayEnvoyerAmi",
				idprogramme:idprogramme
			},
			onComplete:function()
			{
				offres.initEnvoyerAmi();
			}
		}
	);
}

Offres.prototype.initEnvoyerAmi=function()
{
	var offres=this;
	this.formulaire.init();
	
	Event.observe
	("envoyerami-envoyer","click",
	 function()
	 {	 

		
		offres.formulaire.reinit();
	
		offres.formulaire.isMail('envoyerami-email1');
		offres.formulaire.isAlpha('envoyerami-nomexpediteur');
		offres.formulaire.isMail('envoyerami-emailexpediteur');
		
		if(!$F('envoyerami-email2').empty())
		{
			offres.formulaire.isMail('envoyerami-email2')
		}
		
		if(!$F('envoyerami-email3').empty())
		{
			offres.formulaire.isMail('envoyerami-email3')
		}
		
		if(offres.formulaire.validate())
		{		
			 
			$('envoyerami-envoyer').hide();
			$('envoyerami-chargement').show();
			
			new Ajax.Request
			("php/index.ajax.php",
			 {
				 method:"post",
				 parameters:
				 {
					action:"offres-sendEnvoyerAmi",
					nomexpediteur:$F('envoyerami-nomexpediteur'),
					mailexpediteur:$F('envoyerami-emailexpediteur'),
					idprogramme:$F('envoyerami-idprogramme'),
					mail1:$F('envoyerami-email1'),
					mail2:$F('envoyerami-email2'),
					mail3:$F('envoyerami-email3')
				 },
				 onComplete:function()
				 {
					 offres.fenetre.destroy();
				 }
			 }
			);
		}
	 }
	);
}

Offres.prototype.init=function()
{
	var offres=this;

	offres.effets.initImageBox();
	var textMarker=$F('googlemap_adresse').replace(/(.*)(\([0-9]+\))(.*)/,"$1<br />$3 $2");
	
	offres.googleMap.goToAddress($F("googlemap_adresse"), "<b>"+$('programme-nom').innerHTML+"</b><br />"+textMarker);
	
	var photosCaroussel=$$('.caroussel-photo');
	
	var compteurMax= Math.floor((photosCaroussel.length-1)/6);
	var compteur=0;
	var largeurConteneur=((photosCaroussel.length+2)/2)*110;
	
	$('caroussel-conteneur-2').setStyle
	(
	 {
		 width:largeurConteneur+"px"
	 }
	);

	Event.observe
	("caroussel-suivant","click",
	 function()
	 {
		 if(compteur<compteurMax && !offres.slideIsMoving)
		 {
			
			 offres.slideIsMoving=true;

			 new Effect.Move($('caroussel-conteneur-2'),
								 {
									 x:-330,
									 afterFinish:function()
									 {
										 offres.slideIsMoving=false;
									 }
								 }
			);
			 
			 compteur++;
		 }
	 }
	);
	
	Event.observe
	("caroussel-precedent","click",
	 function()
	 {
		 if(compteur>0 && !offres.slideIsMoving)
		 {			
			 offres.slideIsMoving=true;
			 
			 new Effect.Move($('caroussel-conteneur-2'),
								 {
									 x:330,
									 afterFinish:function()
									 {
										 offres.slideIsMoving=false;
									 }
								 }
			 );
			 
		 	compteur--;
		 }
	 }
	);

	$$('.envoyer-a-un-ami').each
	(
	 function(e)
	 {
		 Event.observe(e,"click",
					   function()
					   {
		 					offres.displayEnvoyerAmi(e.id.replace(/[^0-9]+/,""))
					   }
		);
	 }
	);

}
var RealisationDetail=function()
{
	this.slideIsMoving=false;
	this.effets=new Effets();
	
	if($("realisation-detail")!=null)
	{
		this.init();
	}
}

RealisationDetail.prototype.init=function()
{

	var realisationDetail=this;
	
	this.effets.initImageBox();
	
	var photosCaroussel=$$('.caroussel-photo');
	
	var compteurMax= Math.floor((photosCaroussel.length-1)/12);
	var compteur=0;
	var largeurConteneur=((photosCaroussel.length+2)/2)*110;
	
	$('caroussel-conteneur-2').setStyle
	(
	 {
		 width:largeurConteneur+"px"
	 }
	);
	
	Event.observe
	("caroussel-suivant","click",
	 function()
	 {
		 if(compteur<compteurMax && !realisationDetail.slideIsMoving)
		 {
			 realisationDetail.slideIsMoving=true;

			 new Effect.Move($('caroussel-conteneur-2'),
								 {
									 x:-660,
									 afterFinish:function()
									 {
										 realisationDetail.slideIsMoving=false;
									 }
								 }
			);
			 
			 compteur++;
		 }
	 }
	);
	
	Event.observe
	("caroussel-precedent","click",
	 function()
	 {
		 if(compteur>0 && !realisationDetail.slideIsMoving)
		 {			
			 realisationDetail.slideIsMoving=true;
			 
			 new Effect.Move($('caroussel-conteneur-2'),
								 {
									 x:660,
									 afterFinish:function()
									 {
										 realisationDetail.slideIsMoving=false;
									 }
								 }
			 );
			 
		 	compteur--;
		 }
	 }
	);
}
var RechercheImmobilier=function()
{
	this.effets=new Effets();
	this.fenetre=new Fenetre();
	this.formulaire=new Formulaire();
	
	if($('recherche-immobilier')!=null)
	{
		this.init();	
	}
	
}

RechercheImmobilier.prototype.initPagination=function()
{
	var uri=document.location.href.replace(/&numPage=[0-9]+/,"");
	
	$$(".pagination").each
	(
	 function(e)
	 {
		 e.setAttribute("href",uri+"&numPage="+e.id.replace(/[^0-9]+/,""));
	 }
	);
	
	var uri=document.location.href.replace(/&orderby=[a-zA-Z0-9_\-]+/,"");
	uri=uri.replace(/&ascending=[a-zA-Z0-9\_\-]+/,"");
	
	$$(".sort").each
	(
	 	function(e)
		{
			$(e).value=uri+"?"+$(e).value;
		}
	);
	
	Event.observe($('sort-annonces'),"change",
					function()
					{
						document.location.href=$F('sort-annonces');
					}
	);
}

RechercheImmobilier.prototype.init=function()
{
	var recherche=this;
	
	this.moteur=new Moteur();
	
	this.initPagination();
}



var RichTextEditor=function()
{

	var richTextEditor=this;
	
	this.exist=false;
	
	setTimeout
	(
		function()
		{
			tinyMCE.init(
				{
					theme : "advanced",
					theme_advanced_buttons1 : "bold,italic,underline,separator,	forecolor,backcolor,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink,image,code,preview",
					theme_advanced_buttons2 : "",
					theme_advanced_buttons3 : "",	
					theme_advanced_toolbar_location : "top",
					theme_advanced_toolbar_align : "left",
					theme_advanced_statusbar_location : "bottom",
					language:"fr",
					forced_root_block: '',
					popup:"modal",
					plugins:"preview,inlinepopups",
					init_instance_callback:function(ed)
					{
						richTextEditor.initMCE(ed);	
					}
				}
			);
			
		}
	,500);
	

}


RichTextEditor.prototype.create=function(element,url,parameters)
{
	if(!this.exist)
	{
		this.exist=true;

		this.url=url;
		this.parameters=parameters;

		tinyMCE.execCommand('mceAddControl', false, element);
	}
}



RichTextEditor.prototype.initMCE=function(ed)
{
	// Creation du button submit
		
	var envoyer=new Element
	("input",
	 {
		 type:"submit",
		 id:ed.id+"_submit",// Id du conteneur qu'on modifie + _submit
		 value:"Envoyer"
	 }
	);
	
	envoyer.setAttribute("class","button_submit_texteditor");
	
	// Insertion du bouton dans le dom aprÃ¨s l'Ã©diteur

	 $(ed.getContainer().id).insert
	 (
	 	{
	 		after:envoyer
		}
	 );	
	
	 // Init le listener du bouton envoyer
  var rte=this;
  
	Event.observe
	(envoyer,"click",
		function()
		{
			ed.setProgressState(1); // On montre que la sauvegarde est en cours de progression
			
			// Requete AJAX
			rte.save(ed,envoyer);
			// Fin requete ajax
		}
	);
	
	$(ed.getElement().id+"_tbl").setStyle
	(
	 {
		 position:"relative"
	 }
	);
	
}

RichTextEditor.prototype.save=function(ed,envoyer)
{
	var rte=this;
	
			new Ajax.Request(rte.url,
				{
					method:rte.parameters["method"],
					parameters:rte.parameters["parameters"]+"&id="+ed.getElement().id+"&content="+encodeURIComponent(ed.getContent()),
					onComplete:function(reponse)
					{
						rte.parameters["onComplete"](reponse);
						ed.setProgressState(0); // On montre que la sauvegarde est terminÃ©e		
						tinyMCE.execCommand('mceRemoveControl', false, ed.id); // On retire du DOM l'editeur
						envoyer.remove(); // On retire du dom le bouton	
						rte.exist=false;
					}
				}
			);
}


var Ville=function()
{
	this.dom=window;
}

Ville.prototype.getVille=function(codepostal,conteneurIdVille,conteneurLibVille)
{
	var ville=this;
	var reg=/^[0-9]{5}$/

	if(reg.test(codepostal))
	{
		conteneurLibVille.innerHTML=ville.dom.loader;
		
		new Ajax.Request
		("php/index.ajax.php",
		 {
			method:"post",
			parameters:"action=get-ville&cp="+codepostal,
			onComplete:function(reponse)
			{
				eval(reponse.responseText);
				// CONTENEUR DE TYPE INPUT HIDDEN
				// ON STOCK L'ID DE LA VILLE EN COURS
				conteneurIdVille.value=ville.idVille;
				
				// CONTENEUR DE TYPE DIV
				// ON AFFICHE LE LIBELLE DE LA VILLE
				conteneurLibVille.innerHTML=ville.ville;

			}
		 }
		);
	}
}
