// ----- FORT MULLE HERE

this.verifFormulaire = function(){
	$$('.formulaireForm').addEvent('submit', function(form){
		var error = 0;
		var errorMessage = '';
		var tmp = {};
		$$('.formulaire_line').each(function(el){
			el.erase('style');
		});
		$$('.formulaire_error').destroy();
		for(var i=0; i<form.target.length; i++){
			
			if(form.target[i].get('type') != 'submit' && form.target[i].get('type') != 'hidden' && form.target[i].isDisplayed()){
				
				$tmp_error = error;
				
				if(form.target[i].get('type') == 'text'){
					if(form.target[i].getNext('input[name="'+form.target[i].get('name')+'_mail"]')){
						var mail = form.target[i].value;
						if(mail.length > 0){
							if(!verifMail(mail)){
								error++;
								errorMessage = "Ce champ doit être une adresse mail valide.";
							}
						}
					}
				}
				
				
				
				if(form.target[i].getParent('.formulaire_field_value').getPrevious('.formulaire_field_name').getChildren('.formulaire_field_cross')[0] || errorMessage != ''){
					
					
					
					if(form.target[i].get('type') == 'text' || form.target[i].get('type') == 'file' || form.target[i].nodeName == 'TEXTAREA'){
						if(form.target[i].get('value').length == 0){
							error++;
						}
					}else if(form.target[i].get('type') == 'radio' || form.target[i].get('type') == 'checkbox'){
						if(form.target[i].getParent('.formulaire_field_value')){
							if(!tmp[form.target[i].get('name')]){
								var checked = 0;
								$$('input[name="'+form.target[i].get('name')+'"]').each(function(el){
									
									tmp[form.target[i].get('name')] = true;
									
									if(el.get('checked'))
										checked++;
								});
								if(checked == 0)
									error++;
							}
						}
					}
					
					
					if($tmp_error != error){
						var errorMessage = (errorMessage == '') ? "Ce champ est obligatoire, veuillez le renseigner s'il vous plaît." : errorMessage;
						form.target[i].getParent('.formulaire_field_value').adopt(new Element('div', {
							'class': 'formulaire_error',
							'html': errorMessage
						}));
						
						
						//! Pour Ekinoxe, on décommente la partie stylée du highlight
						/*
						if(form.target[i].getParent('.formulaire_line').hasClass('highlight'))
							form.target[i].getParent('.formulaire_line').setStyles({'color': '#fff', 'background-color': '#6c6a68'});
						else
							form.target[i].getParent('.formulaire_line').setStyles({'color': '#fff', 'background-color': '#5c5a58'});
						*/
						
						errorMessage = '';
					}
				}
			}
		}
		if(error == 0)
			return true;
		/*window.scrollTo(form.target.getPosition().x, form.target.getPosition().y);*/
		return false;
	});
}

 
 // --------- DATEPICKER

 
 this.refreshDatepicker = function(){
	//Gestion des calendrier DatePicker
	if($$('.calendarDatepicker')){
		var vare = new Array();
	    $$('.calendarDatepicker').each(function(el){
	      	var time = (el.get('value') == 1) ? "j F Y à H:i" : "j F Y";
	      	
	      	var view = 'decades';
	      	if(el.getNext('.calendarDatepickerView')){
		      	var view = el.getNext('.calendarDatepickerView').get('value');
		      	
		      	if(view != 'year' && view != 'month' && view != 'time' && view != 'decades')
		      		view = 'decades';
	      	}
	      	
			vare.push(new DatePicker("#"+el.getPrevious('input[type=text]').get('id'), {
				startView: view,
				timePicker: parseInt(el.get('value')),
				format: time,
				pickerClass: "datepicker_vista",
				allowEmpty: true,
				days : ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
				months : ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]
			}));
			
			
		});
	}
 }
 
  // --------- SLIDER
  
  this.refreshSlider = function(){
 	$$('.formSlider').each(function(slider){
 		var min = parseInt(slider.getNext('.sliderMin').get('value'));
 		var max = parseInt(slider.getNext('.sliderMax').get('value'));
 		var val_default = parseInt(slider.getNext('.sliderDefault').get('value'));
 		
		var mySlider = new Slider(slider, slider.getElement('.knob'), {
			range: [min, max],
			wheel: true,
			snap: true,
			onChange: function(value){
				slider.getPrevious('.genSlider').set('value', value);
			},
			onComplete: function(value){
				slider.getPrevious('.genSlider').set('value', value);
			}
		});
		slider.store('slider', mySlider).store('min', min).store('max', max);
		mySlider.set(val_default);
	});
	$$('.genSlider').addEvent('keyup', function(el){
		el = el.target;
		var slider = el.getNext('.formSlider');
		
		if($type(parseFloat(el.get('value'))) != 'number')
			el.set('value', '');
		else
			el.set('value', parseFloat(el.get('value')));
		
		if(el.get('value') < slider.retrieve('min'))
			el.set('value', slider.retrieve('min'))
		else if(el.get('value') > slider.retrieve('max'))
			el.set('value', slider.retrieve('max'))
		
		slider.retrieve('slider').set(parseFloat(el.get('value')));
	});
 }


window.addEvent('domready', refreshDatepicker.bind(this));
window.addEvent('domready', refreshSlider.bind(this));
window.addEvent('domready', verifFormulaire.bind(this));
