/*validation de formulaire*/
function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments,lib;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
	if (val) { lib = args[i+1]; if (lib!=""){nm=lib;}else{nm=val.name;};obj=val; if ((val=val.value)!="") {
      if (obj.length>1){
		checked=false;
		for (j=0;j<obj.length && !checked;j++){
			checked = obj[j].checked || obj[j].selected;
		}
		if (!checked){
			lib = lib!=""?lib:args[i].replace("[]","");
			errors+='- Sélectionnez au moins une valeur dans le champ '+lib+'.\n';
		}
	  }
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- Le champ '+nm+' doit contenir une adresse mail valide.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (val!=''+num) errors+='- Le champ '+nm+' doit contenir une valeur numérique.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- Le champ '+nm+' doit contenir une valeur numérique comprise entre '+min+' et '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- Le champ '+nm+' est obligatoire.\n'; }
  } if (errors) alert('Le formulaire n\' a pas pu être validé pour les raisons suivantes :\n'+errors);
  document.MM_returnValue = (errors == '');
}

/*page réalisation*/
function show(id)
{
	if (id=='maisons'){
		document.getElementById('maisons').style.display='block';
		document.getElementById('finitions').style.display='none';
	}
	if (id=='finitions'){
		document.getElementById('maisons').style.display='none';
		document.getElementById('finitions').style.display='block';
	}
}

/* Menu */
var Menu = new Class({
	liens: null,
	initialize: function(menu){
		// Récupérer les liens du menu
		this.liens = $$(menu+' li a');
		// Parcourir les liens, pour chaque, ajouter un span au début, à la fin
		// Ajouter un événement 'mouseover' pour changer le background et mouseout
		this.liens.each(function(lien,index){
			lien.index = index;
			// Récupère les span début et fin
			if (lien.index<this.liens.length-1){
				lien.fin = new Element('span',{styles:{'float':'right'}});
				lien.grab(lien.fin,'top');
			}
			if (lien.index>0){
				lien.debut = this.liens[lien.index-1].fin;
			}
			// Sélectionner le lien si besoin
			if (lien.getParent().hasClass('selected')){
				this.selectionner(lien);
			}			
			// Evénements
			lien.addEvents({
				mouseover:this.selectionner.bind(this,[lien]),
				mouseout:this.deselectionner.bind(this,[lien])
			});
		}.bind(this));
	},
	deselectionner: function(lien){
		if (!lien.getParent().hasClass('selected')){
			lien.setStyle('background-position','0 0');
			// Si lien avant sélectionné
			if (lien.debut){
				var position = 0;
				var precedent = this.liens[lien.index-1];
				if (precedent && precedent.getParent().hasClass('selected')){
					position=80;
				}
				lien.debut.setStyle('background-position','0 -'+position+'px');
			}
			// Si lien après sélectionné
			if (lien.fin){
				var position = 0;
				var suivant = this.liens[lien.index+1];
				if (suivant && suivant.getParent().hasClass('selected')){
					position=120;
				}
				lien.fin.setStyle('background-position','0 -'+position+'px');
			}
		}
	},
	selectionner : function(lien){
		lien.setStyle('background-position','0 40px');
		// Si lien avant sélectionné
		if (lien.debut){
			var position = 120;
			var precedent = this.liens[lien.index-1];
			if (precedent && precedent.getParent().hasClass('selected')){
				position=40;
			}
			lien.debut.setStyle('background-position','0 -'+position+'px');
		}
		// Si lien après sélectionné
		if (lien.fin){
			var position = 80;
			var suivant = this.liens[lien.index+1];
			if (suivant && suivant.getParent().hasClass('selected')){
				position=40;
			}
			lien.fin.setStyle('background-position','0 -'+position+'px');
		}
	}
});

/* Panneau dépliant */
var PanneauDepliant = new Class({
	panneau : null,
	panneauclick : null,
	est_deplie : false,
	initialize : function(panneau){
		this.panneau = $$(panneau);
		this.panneauclick = $$('#abo_news > div p');
		this.panneauclick.addEvents({
			click:this.deplier.bind(this,[panneau])
		});
		
	},
	deplier : function(){
	
		//this.panneau.tween('left',this.est_deplie?-this.panneau.getStyle('width'):0);
		
		if (this.est_deplie)
		{
			this.panneau.tween('left', '0px');
			this.est_deplie = false;
		}
		else
		{
			//this.panneau.tween('left', this.panneau.setStyle('margin-left'),'0px');
			this.panneau.tween('left', '-800px');
			this.est_deplie = true;
		}
	}
});

/*Initialisation de la page */
window.addEvent('domready',function(){
	
	new Menu('#haut ul.menu');
	diaporama.init();
	new PanneauDepliant('#abo_news > div').deplier();
	
	/* Carte des agences */
	var points = $$('#agences #contenu area');
	var agences = $$('#agences #contenu li');
	if (points && agences){
		points.each(function(point,i){
			point.addEvent('mouseover',function(){
				agences.each(function(agence,j){
					agence.removeClass('selected');
					points[j].removeClass('selected');
				});
				point.addClass('selected');
				agences[i].addClass('selected');
			});
		});
	}
	/* Marquees */
	$$('.marquee').each(function(m){
		m.scroller = new Scroller(m, {area: 100, velocity: 0.5});
		m.setAutoScroll = function(isAuto){
			if (isAuto){
				this.autoScroll = (function(){
					m.scrollTo(0, m.getScroll().y + 1);
				}).periodical(50);
			}else{
				$clear(this.autoScroll);
			}
		}
		m.setAutoScroll(true);		
		m.addEvents({
			'mouseenter' : function(){
				this.setAutoScroll(false);
				this.scroller.start();
			},
			'mouseleave' : function(){
				this.scroller.stop();
				this.setAutoScroll(true);
			}
		});
	});
	
	// Initialiser les liens de "géolocalisation" individuels
	var liens = $$('a.GMarker');
	if (liens.length>0){
		var googlemap = new Element('div',{id:'googlemap','class':'popup'});
		var div = new Element('div',{'class':'map'})
		googlemap.adopt([
			new Element('a',{
				'class':'close',
				'text':'FERMER',
				'events':{
					'click':function(){
						googlemap.setStyle('visibility','hidden');
					}
				}
			}),
			div
		]);
		$(document.body).grab(googlemap);
		liens.each(function(lien){
			lien.addEvent('click',function(){
				var params = lien.rel.split(',');
				new GoogleMaps(div,{markers:[{
					lat:params[0],
					lng:params[1],
					address:params[2],
					events:{
						click:function(){
							this.openInfoWindowHtml(params[2]);
						}
					}
				}]});
				googlemap.setStyle('visibility','visible');
			});
		});
	}
	
	// googlemap page groupe cisa		
	//var div2 = new Element('div',{'class':'map2'});
	var div2 = $$('#groupe_cisa #googlemap div.map')[0];
	if (div2){
		new GoogleMaps(div2,{
			url: '/groupe.xml',
			markerDefaultEvents:{
				'click':function(){
					var html = "";
					if(this.marker.link)  html+="<a href=\""+this.marker.link+"\">";
					if(this.marker.img)   html+="<img style=\"float:left;margin: 0 10px 0 0;\" src=\""+this.marker.img+"\" alt=\""+this.marker.texte+"\"/>";
					if(this.marker.link)  html+="</a>";
					if(this.marker.texte) html+=this.marker.texte+"<br/>"+this.marker.address;
					this.openInfoWindowHtml(html);
				}
			}
		});
	}
	//googlemap page terrains
	var div3 = $$('#terrains #googlemap div')[0];
	if(div3){
		var gmap = new GoogleMaps(div3, { url: '/terrains.xml' });
	}
});