/* Définition des comportements javascript du site */
function setCSSBehaviours() {
	$$('.themes select').each( function (node) {
		node.addEvent('change', function() { this.form.submit(); });
	} );
	var num = 0;
	$$('.fiches h3').each( function(h3) { num++; new Element('img').setProperties({ 'src': 'images/plus.gif', 'alt': 'Déplier/Replier'}).injectInside(h3); } );
	if (num > 0) { num = num-1; }
	new Accordion($$('.fiches h3'), $$('.fiches .fiche'), { alwaysHide: true, display: num });
	
	$$('form div.row').each( function (field) {
		src = field.getProperty('id');
		depends = new Array();
		if (src && $(src+'_en_cours')) { depends.push($(src+'_en_cours')); }
		if (src && $(src+'_posologie')) { depends.push($(src+'_posologie')); }
		if (src && $(src+'_autre')) { depends.push($(src+'_autre')); }
		if (src && $(src+'_desc')) { depends.push($(src+'_desc')); }
		//if (src && $(src+'_posologie')) { depends.push($(src+'_posologie')); }
		if (src && depends.length > 0) {
			depends.each( function (depend) { depend.setStyle('display', 'none'); } );
			$ES('select', src).each( function(select) {
				select.depends = depends;
				select.addEvent('change', function() {
					if (this.getValue() == 'oui' || this.getValue() == 'autre') {
						this.depends.each( function (depend) { depend.setStyle('display', 'block'); } );
					} else {
						this.depends.each( function (depend) { depend.setStyle('display', 'none'); } );
					}
				} );
				select.fireEvent('change');
			} );
		}
	} );
	$$('a.del').each( function (field) {
		field.addEvent('click', function(e) { e = new Event(e); if(!confirm('Etes-vous sûr(e) ?')) e.preventDefault(); } );
	} );

}

Window.onDomReady(setCSSBehaviours);

function augmenter(field) { $(field).value++; }
function reduire(field) { if ($(field).value > 1) { $(field).value--; } }


// Validation des formulaires
function validation() { //v4.0
	var i,p,q,nm,test,num,min,max,errors='',args=validation.arguments;
	for (i=0; i<(args.length-2); i+=3) {
		test=args[i+2];
		var obj=document.getElementById(args[i]);
		var error = '';
		if (obj) {
				var error = '';
				nm=args[i+1];
				if (!nm) nm=obj.name;
				if ((val=obj.value)!="") {
					if (test.indexOf('isEmail')!=-1) {
						if (val.search(/^[\w\d\._-]+@[\w\d\._-]+$/) == -1) {
							error='- '+nm+' doit être une adresse email valide\n';
						}
					} else if (test.indexOf('isDate')!=-1) {
					} else if (test!='R') {
						num = parseFloat(val);
						if (isNaN(val)) error='- '+nm+' doit être un nombre.\n';
						if (test.indexOf('inRange') != -1) {
							p=test.indexOf(':');
							min=test.substring(8,p); max=test.substring(p+1);
							if (num<min || max<num) error='- '+nm+'  doit être un nombre entre '+min+' et '+max+'.\n';
						}
					}
				} else if (test.charAt(0) == 'R') { 
					if (obj.type == 'checkbox') {
						if (!obj.checked) error= '- '+nm+' est requis\n';
					} else {
						error= '- '+nm+' est requis\n';
					}
				}
				className = new String(obj.className);
				if (error != '') {
					errors += error;
					if (className.indexOf('missing') == -1) obj.className += ' missing';
				} else {
					obj.className = className.replace(/missing/, '');
				}
		}
	}
	return errors;
}

function alert_validation() {
	args = new Array();
	for (var i=0; i<alert_validation.arguments.length; i++) {
		args[i] = "'"+alert_validation.arguments[i].replace(/'/g,"\\'")+"'";
	}
	eval("errors = validation("+args.join(',')+")");
	if (errors != '') alert('Les erreurs suivantes sont apparues\n'+errors);
	return (errors == '');
}
