// JavaScript Document
function displayLogin(){
	$('form-login').show();
}

function calculfiscal(){
	montant		=	$('calcmontant').value;
	avantage	=	0.66;
	fiscal		=	(montant * avantage).toFixed(2);
	//alert(montant);
	$('fiscal').value = fiscal;
}


calendrier = {
	displayEvent:	function(classEvent){
			classEvent	=	classEvent.strip();
			classEvent	=	classEvent.replace('&nbsp;','r');
			//alert('e-'+classEvent);
			$$('.event-one').invoke('hide');
			$$('.'+classEvent).invoke('show');
			
	}
}

don = {
	send : function(formulaire){
		mois		=	this.verifChecked('radio','typeDon','test','faire_don');
		if(mois == 'month'){
			urlProd	=	'http://don.orpheopolis.fr/netful-presentation-association/site/orp/default/fr/donationPrv.html';
			$('prodref').value = 'ORP.2.00001';
		}else{
			urlProd	=	'http://don.orpheopolis.fr/netful-presentation-association/site/orp/default/fr/donation.html';
			$('prodref').value = 'ORP.1.00001';
		}
		$('faire_don').action	=	urlProd;
		//alert(urlProd);
	},
	verifChecked : function(typeInput, nameChamps, labelChamps, idForm)
	{
		var test	=	$(idForm).getInputs(typeInput, nameChamps).find(function(re) { 
																				 			if(re.checked){
																				 				month	=	 re.value;
																				 			}
																		 });
		return month;
	}
}


controlFormulaire = {
	/***
	*	function	initilalise les variables de l'objet
	***/
	load	: function()
	{
	},

	/***
	*	function	control qu'un contenu existe pour un élément et prépare le message d'erreur
	*	@param		String		idChamps : l'id du champs à controler.
	*	@param		String		labelChamps : le label du champs.
	***/
	verifSaisie	: function(idChamps, labelChamps, messageChamps)
	{
//		alert(labelChamps);
		if(!$(idChamps).present())
		{
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;	
			afficheError				=	true;	
			if(messageChamps == true){
				//alert('error_'+idChamps);
				$('error_'+idChamps).show();
			}
		}else{
			if(messageChamps == true){
				$('error_'+idChamps).hide();
			}
		}
	},

	/***
	*	function	control qu'une date est valide
	*	@param		String		idChamps : l'id du champs à controler.
	*	@param		String		labelChamps : le label du champs.
	***/
	verifDate	: function(idChamps, labelChamps)
	{
//		alert(labelChamps);
		var dateRegEx = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
		
		if(!$F(idChamps).match(dateRegEx))
		{
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;			
		}
	},

	/***
	*	function	control que l'e-mail est valide
	*	@param		String		idChamps : l'id du champs à controler.
	*	@param		String		labelChamps : le label du champs.
	***/
	verifMail	: function(idChamps, labelChamps)
	{
		erreur	=	false;
		var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,}$/;
		var verifEmail = regEmail.test($F(idChamps));

		if (!verifEmail)
		{
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;			
		}
		
	},

	/***
	*	function	control que l'un des champs radio ou checkbox est coché et prépare le message d'erreur
	*	@param		String		typeInput : le type de l'input (radio/checkbox)
	*	@param		String		nameChamps : le name du champs input
	*	@param		String		labelChamps : le label du champs.
	***/
	verifChecked : function(typeInput, nameChamps, labelChamps, idForm)
	{
//		alert(labelChamps);
		var test	=	$(idForm).getInputs(typeInput, nameChamps).find(function(re) { return re.checked; });
		if(!$(test))
		{		
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;			
		}
	},
	
	/***
	*	function	control que la saisie soit numérique et de la taille attendu et prépare le message d'erreur
	*	@param		String		nbChiffre : le nombre de chiffre que doit comporter la saisie si > 0.
	*	@param		String		idChamps : idChamps : l'id du champs à controler.
	*	@param		String		labelChamps : le label du champs.
	***/
	verifNumber : function(idChamps, labelChamps, nbChiffre)
	{
		if(isNaN($F(idChamps)) || Math.round($F(idChamps)) != $F(idChamps) || $F(idChamps).length != nbChiffre )
		{		
//			alert(labelChamps);
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;			
		}
	},

	
	/***
	*	function	effectue divers controles sur les champs du formulaire
	*	@return		Boolean		retourne true, si tous les controles sont passés / False : affiche un message d'erreur indiquant les champs erronés
	***/
	verifFormulaire	: function(event)
	{
		this.errorMessage			=	'<span class="titre">Les champs suivants ne sont pas correctement saisis:</span><br /><br />';
		this.afficheErrorMessage	=	false;

		this.verifSaisie('magasin', 'Magasin');
		this.verifSaisie('nom', 'Nom');
		this.verifSaisie('prenom', 'Prénom');
		this.verifMail('email', 'Adresse email');
		this.verifSaisie('postal', 'Adresse postale');
		this.verifNumber('codepostal', 'CP',5);
		this.verifSaisie('ville', 'Ville');
		//this.verifDate('votrenaissance', 'Votre date de naissance');
		//this.verifSaisie('votrestatut', 'Votre statut');
		this.verifChecked('radio', 'q1' , 'Question 1');
		this.verifChecked('radio', 'q2', 'Question 2');
		this.verifChecked('radio', 'q3', 'Question 3');
		
		this.verifChecked('checkbox', 'reglement', 'Règlement');
		
		
		/** Si une erreur est rencontré, affichage du message d'erreur et on ne valid pas le formulaire **/
		if(this.afficheErrorMessage)
		{
			$('formulaireerreur').update(this.errorMessage);
			$('formulaireerreur').show();
			return false;
		}
	}
}