/**
 * Script client commun à toutes les pages du site
 */

// Fonctions Standard Macromedia Dreamweaver
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
  	test=args[i+2];
  	val=MM_findObj(args[i]);
    	if (val) {
    		nm=val.name;
			//alert(nm);
    		if (val.options){
    			if (val.options[val.selectedIndex].value=="")
    				errors+='- Vous devez choisir une valeur dans la boite de sélection '+nm+'.\n';
    		}else{
				if ((val=val.value)!="") {
					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 == '');
}

// Initialisation  de la page
window.addEvent("domready", function(){
	var milieu = $('milieu');
	var sousMenu = milieu.getElement('ul.menu');
	if (sousMenu) {
		/* Faire suivre les sous menus avec le défilement vertical de la fenêtre */
		var marginOffset = sousMenu.getStyle('margin-top').toInt();
		var topOffset = sousMenu.getPosition().y;
		var bottomOffset = milieu.getStyle('height').toInt();
		var screenHeight = window.getSize().y;
		var debug = new Element('div',{styles:{position:'fixed',background:'white',top:0,left:0}});
		debug.inject(document.body);
		sousMenu.slide = function(toTop){
			// V1
			//sousMenu.tween('margin-top',Math.max(window.getScrollTop()-topOffset,0)+marginOffset);
			// V2			
			//sousMenu.tween('margin-top',Math.max(Math.min(window.getScrollTop()-topOffset,bottomOffset-sousMenu.getStyle('height').toInt()),0)+marginOffset);
			// V3
			// TODO Simplifier...
			var menuHeight = sousMenu.getStyle('height').toInt();
			var screenTop = window.getScrollTop()-topOffset;
			var screenBottom = screenTop+screenHeight;
			var menuTop = sousMenu.getStyle('margin-top').toInt();
			//debug.innerHTML = 'marginOffset='+marginOffset+', topOffset='+topOffset+', bottomOffset='+bottomOffset+', screenHeight='+screenHeight+', menuTop='+menuTop+', menuHeight='+menuHeight+',screenTop='+screenTop+',screenBottom='+screenBottom;
			if (toTop || menuHeight<screenHeight || menuTop>screenTop){
				sousMenu.tween('margin-top',Math.max(Math.min(screenTop,bottomOffset-menuHeight),0)+marginOffset);
			}else if (menuTop<screenBottom-menuHeight && menuTop<bottomOffset-menuHeight){
				sousMenu.tween('margin-top',Math.max(Math.min(screenBottom-menuHeight,bottomOffset-menuHeight),0)+marginOffset);
			}
		}
		window.addEvent('scroll',sousMenu.slide);
	}
	// Modifie la source le lien et le titre de l'image principale au survol d'une image dans la liste (fiche article)
	var image = $$('div.image');
	image = (image.length>0)?image[0]:null;
	if (image){
		$$('ul.images li').each(function(i){
			i.addEvent('mouseover',function(){
				image.getElement('img').set('src',i.getElement('a').get('href'));
				image.getElement('a').set('href',i.getElement('a').get('href'));
				image.getElement('a').set('title',i.getElement('a').get('title'));
			});
		});
	}
});
