/* Définition des comportements javascript du site */  
/* specific sfc var functions */
var insc_window=null;
function close_window( win )
{
	if (win!=null)
	{
		if (win.closed);
		else win.close();
	}
}


function display_return_inscription(num_step,num_insc)
{
	if (num_step==0 && num_insc==-1)
	{
		if (confirm("Voulez_vous abandonner la procédure d'inscription ?")) this.window.close();
	}
	else 
	{			
		if (num_step==0 && num_insc>-1) document.location = 'new-inscription.php?num_step='+num_step+'&num_insc='+(num_insc-1)+'&return_insc=1';
		else document.location = 'new-inscription.php?num_step='+num_step+'&num_insc='+num_insc+'&return_insc=1&dir=down';
	}
}

function MyPopup( url ){
	insc_window = window.open( url,'PopupName','location=no, menubar=no, status=yes, scrollbars=yes');
}



function setCSSBehaviours() {
	$$('.themes select').each( function (s) {
		s.addEvent('change', function () { this.form.submit(); });
	});
	
	
	$$('.retour').each( function (a) {
		a.addEvent('click', function (e) {
			e = new Event(e);
			history.go(-1);
			e.stop();
		});
	});
	
	/*
	$$('.retour_insc').each( function (a) {
		a.addEvent('click', function (e) {
			e = new Event(e);
			alert(-1);
			e.stop();
		});
	});
	*/
	
	$$('a.raccourci').each( function(a) { a.addEvent('click', function(e) { new Event(e).stop(); }); } );
	if ($('flash') && $$('#flash div').length > 0) {
		var f = function() { nextflash(); }
		t = f.periodical(3000);
		$$('#flash div').each( function (div) {
			div.addEvent('mouseover', function(e) { clearTimeout(t); });
			div.addEvent('mouseout', function(e) { t = f.periodical(3000); });
		});
	}

/*	$$('div#row_coureur input').addEvent('click', function(c) {
		alert(c.getValue());
	
			if (c.getValue() == 'oui') {
				$$('fieldset.coureur').each(function(f) { f.setStyle('display', 'block'); });
			} else {
				$$('fieldset.coureur').each(function() { f.setStyle('display', 'none'); });
			}
	} );
*/
	$$('form div.row').each( function (field) {
		src = field.getProperty('id');
		depends = new Array();
		depends = document.getElements('div.row[id^='+src+'_]');
		if (src && depends.length > 0) {
			depends.each( function (depend) { depend.setStyle('display', 'none'); } );
			$ES('input', src).each( function(select) {
				//console.log(select);
				select.depends = depends;
				select.addEvent('click', 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'); } );
					}
				} );
			} );
		}
	} );
}

window.addEvent('domready', setCSSBehaviours);
var current = 0;
function nextflash() {
	f = new Fx.Style('flashinfo'+current, 'opacity');
	f.start(1, 0);
	current++;
	if (!$('flashinfo'+current)) { current = 0; }
	f = new Fx.Style('flashinfo'+current, 'opacity');
	f.start(0, 1);
}


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) {
			// Avant de continuer, déterminer si l'un des parents du champ est affiché ou non
			if (is_displayed(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) {
						if (val.search(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/) == -1) {
							error='- '+nm+' doit être une date au format JJ/MM/AAAA\n';
						}
					} 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;
}

// Renvoie faux si l'objet ou l'un de ses parents est masqué (display=='none')
function is_displayed(obj) {
	if (obj.style && obj.style.display == 'none') {
		return false;
	}
	if (obj.parentNode) {
		return is_displayed(obj.parentNode);
	} else {
		return true;
	}
}
function alert_validation() {
	args = new Array();
	for (var i=0; i<alert_validation.arguments.length; i++) {
		args[i] = "'"+alert_validation.arguments[i].replace("'","\\'")+"'";
	}
	eval("errors = validation("+args.join(',')+")");
	if (errors != '') alert('Les erreurs suivantes sont apparues\n'+errors);
	return (errors == '');
}
