/* Scripts utilisés sur l'ensemble du site www.ribs-epi.fr */

/* Macromedia Dreamweaver functions V3 */
function MM_findObj(n, d, f) {
  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]; if (f) x=f[n]; else 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;
}
// TODO IE FIX phone validation + multiple checkbox
function MM_validateForm() {
  var i,p,q,nm,test,num,min,max,label,val,checked,errors='',args=MM_validateForm.arguments,form=typeof(args[0])=='object'?args[0]:null;
  for (i=form?1:0; i<(args.length-2); i+=3) { label=args[i+1]; test=args[i+2]; val=MM_findObj(args[i],null,form);
	if (val) {
		nm=label!=''?label:val.name;
		if (val.options){
			if (val.options[val.selectedIndex].value=='')	errors+='- Le champ '+nm+' est obligatoire.\n';
		}else if (val.type=='checkbox' || val.type=='radio'){ // || val.length>1){
			//if (val.length>1){checked=false;for (j=0;j<val.length && !checked;j++) checked = val[j].checked || val[j].selected;}else checked = val.checked;
			checked = val.checked;
			if (!checked)	errors+='- La case '+nm+' doit être cochée.\n';
    }else if ((val=val.value)!="") {
      if (test.indexOf('isPhone')!=-1) {
        //if (!/^[0-9]{10}$/.test(val)) errors+='- Le champ '+nm+' doit contenir un numéro de téléphone valide (10 chiffres sans espace).\n';
			}else 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 */
window.addEvent('domready', function() {

	/* Sous Menu en Accordéon */
	var toggle = $$('li.toggle');
	var szSmall  = 40, szFull   = 340;
	var fx = new Fx.Elements(toggle, {wait: false, duration: 500,transition:Fx.Transitions.Cubic.easeOut});
	var display = function(i){
		var o = {};
		o[i] = {height: [toggle[i].getStyle("height").toInt(), szFull]}
		toggle.each(function(other, j) {
			if(i != j) {
				var h = other.getStyle("height").toInt();
				if(h != szSmall) o[j] = {height: [h, szSmall]};
			}
		});
		fx.start(o);
	}
	toggle.each(function(t, i) {
		t.addEvent("mouseenter", function(event) {
			display(i);
		});
	});
	toggle.getChildren('a').each(function(a,i){
		if (a.hasClass('active') == 'true'){
			toggle[i].setStyle("height",szFull);
		}
	});

	/* Form Validator */
	MooTools.lang.setLanguage("fr-FR");
	$$('form.enable-validator').each(function(form){
		new Form.Validator.Inline(form, {
			stopOnFailure: true,
			useTitles: true,
			errorPrefix: '',
			onFormValidate: function(passed, form, event) {
				if (passed) {
					form.submit();
				}
			},
			onElementValidate: function(passed, element, validator, is_warn) {
				/*if (element.get('name') == 'agb' && !passed) {
					alert('Hey, the terms are really important!');
				}*/
			}
		});
	});
});

