/* Définition des comportements javascript du site */
function setCSSBehaviours() {
	$$('.themes select').each( function(node) {
		node.addEvent('change', function() { this.form.submit(); } );
	} );
	new Accordion($$('.consultations h4'), $$('.consultations .detail'), { alwaysHide: true, display: -1 });
	$$('.actions a').each( function(node) {
		node.addEvent('click', function() { return confirm('Etes-vous sûr(e) ?'); } );
	} );
	// Gestion des timers si il y en a
	$$('.timer').each( function(node) {
		setTimeLeft(node);
	} );
}

Window.onDomReady(setCSSBehaviours);

// Format: <span><span>start_stamp|end_stamp</span></span>
// node = 1e span
function setTimeLeft(node) {
	stamps = node.lastChild.innerHTML.split('|');
	console.dir(stamps);
	today = new Date(stamps[0]*1000);
	count = new Date(stamps[1]*1000);   // enter date to count down to
	Expire = (count.getTime() - today.getTime())
	if (Expire < 0) {
		node.lastChild.remove();
		new Element('a').setProperty('href', location.href).appendText('Cliquez ici / Click here').injectInside(node);
		return;
	}			
	setTimeLeft.delay(1000, null, node);
	secsPerDay = 1000 ;
	minPerDay = 60 * 1000 ;
	hoursPerDay = 60 * 60 * 1000;
	PerDay = 24 * 60 * 60 * 1000;
	
	/*Seconds*/
	secsLeft = (Expire) / minPerDay;
	secsRound = Math.round(secsLeft);
	secsRemain = secsLeft - secsRound;
	secsRemain = (secsRemain < 0) ? secsRemain = 60 - ((secsRound - secsLeft) * 60) : secsRemain = (secsLeft - secsRound) * 60;
	secsRemain = Math.round(secsRemain);
	/*Minutes*/
	minLeft = (Expire / hoursPerDay);
	minRound = Math.round(minLeft);
	minRemain = minLeft - minRound;
	minRemain = (minRemain < 0) ? minRemain = 60 - ((minRound - minLeft)  * 60) : minRemain = ((minLeft - minRound) * 60);
	minRemain = Math.round(minRemain - 0.495);
	/*Hours*/
	hoursLeft = (Expire / PerDay);
	hoursRound = Math.round(hoursLeft);
	hoursRemain = hoursLeft - hoursRound;
	hoursRemain = (hoursRemain < 0) ? hoursRemain = 24 - ((hoursRound - hoursLeft)  * 24) : hoursRemain = ((hoursLeft - hoursRound) * 24);
	hoursRemain = Math.round(hoursRemain - 0.5);
	/*Days*/
	daysLeft = (Expire / PerDay);
	daysRound = Math.round(daysLeft);
	daysRemain = daysRound;
	
	/*Fixes*/
	if (daysRemain == 1) daysRemain = daysRemain + " jour, ";
	else if (daysRemain != 0) daysRemain = daysRemain + " jours, ";
	else daysRemain = '';
	if (hoursRemain == 1) hoursRemain = hoursRemain + " heure,  ";
    else if (hoursRemain != 0) hoursRemain = hoursRemain + " heures,  ";
	else hoursRemain = '';
	if (minRemain == 1) minRemain = minRemain + " minute,  ";
    else if (minRemain != 0) minRemain = minRemain + " minutes,  ";
	else minRemain = '';
	if (secsRemain == 1) secsRemain = secsRemain + " seconde";
    else if (secsRemain != 0) secsRemain = secsRemain + " secondes";
	else secsRemain = '';
	/*Time*/
	timeRemain = daysRemain + hoursRemain + minRemain + secsRemain;

	node.setHTML(timeRemain);
	new Element('span').setStyle('display', 'none').setHTML(count.getTime()/1000+'|'+today.getTime()/1000).injectInside(node);
}


// 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 == '');
}
