// JavaScript Document



////////////////////////////////////  TEST FORMULAIRE ///////////////////////
function verifFormPanier()
{
		
		$('error_company').hide();
		$('error_address').hide();
		$('error_zipcode').hide();
		$('error_city').hide();
		$('error_phone').hide();
		$('error_email').hide();

		$('error_delivery_name').hide();
		$('error_delivery_address').hide();
		$('error_delivery_zip').hide();
		$('error_delivery_city').hide();
		$('error_delivery_telephone').hide();
		$('error_delivery_email').hide();



	testOK		=	true;	
		
	//////////////////////////////////////
	//
	//////////////////////////////////////
	/*if(!testChamps('last_name')){
		$('error_nom').innerHTML = "Veuillez indiquer votre nom.";
		$('error_nom').show();
		//Effect.BlindDown('error_nom',1);
		testOK=false;
	}else{
		//Effect.BlindUp('error_nom',1);
		var nb = $('last_name').value.length;
		for(i=0;i<nb;i++){
			var verif = isNaN($('last_name').value.substr(i,1)); 
			if(verif==false){
				$('error_nom').innerHTML = "Veuillez taper uniquement des lettres.";
				//Effect.BlindDown('error_nom',1);
				$('error_nom').show();
				testOK=false;			
			}
		}
	}*/
	
	//////////////////////////////////////
	//
	//////////////////////////////////////
	/*if(!testChamps('first_name')){
		$('error_prenom').innerHTML = "Veuillez indiquer votre pr&eacute;nom.";
		//Effect.BlindDown('error_prenom',1);
		$('error_prenom').show();
		testOK=false;
	}else{
		//Effect.BlindUp('error_prenom',1);
		var nb = $('first_name').value.length;
		for(i=0;i<nb;i++){
			var verif = isNaN($('first_name').value.substr(i,1)); 
			if(verif==false){
				$('error_prenom').innerHTML = "Veuillez taper uniquement des lettres.";
				//Effect.BlindDown('error_prenom',1);
				$('error_prenom').show();
				testOK=false;			
			}
		}
	}*/

	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_name')){
		$('error_company').innerHTML = "Veuillez indiquer votre soci&eacute;t&eacute;.";
		//Effect.BlindDown('error_company',1);
		$('error_company').show();
		testOK=false;
	}
	/*else{
		Effect.BlindUp('error_company',1);
	}*/
	/*else{
		var nb = $('company').value.length;
		for(i=0;i<nb;i++){
			var verif = isNaN($('company').value.substr(i,1)); 
			if(verif==false){
				$('error_company').innerHTML = "Veuillez taper uniquement des lettres.";
				$('error_company').show();
				testOK=false;			
			}
		}
	}*/

	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_address')){
		$('error_address').innerHTML = "Veuillez indiquer votre adresse.";
		//Effect.BlindDown('error_address',1);
		$('error_address').show();
		testOK=false;
	}
	/*else{
		Effect.BlindUp('error_address',1);	
	}*/
	

	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_zip')){
		$('error_zipcode').innerHTML = "Veuillez indiquer votre code postal.";
		$('error_zipcode').show();
		//Effect.BlindDown('error_zipcode',1);
		testOK=false;
	}else{
		//Effect.BlindUp('error_zipcode',1);
		var verif = isNaN($F('billing_zip'));
		if(verif==true){
			$('error_zipcode').innerHTML = "Veuillez indiquer un code &agrave; 5 chiffres.";
			//Effect.BlindDown('error_zipcode',1);
			$('error_zipcode').show();
			testOK=false;		
		}else{
			//Effect.BlindUp('error_zipcode',1);
			var test = $F('billing_zip').length;
			if(test!==5){
				$('error_zipcode').innerHTML = "Veuillez indiquer un code &agrave; 5 chiffres.";
				//Effect.BlindDown('error_zipcode',1);
				$('error_zipcode').show();
				testOK=false;			
			}
		}
	}

	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_city')){
		$('error_city').innerHTML = "Veuillez indiquer votre ville.";
		//Effect.BlindDown('error_city',1);
		$('error_city').show();
		testOK=false;
	}else{
		//Effect.BlindUp('error_city',1);
		var nb = $('billing_city').value.length;
		for(i=0;i<nb;i++){
			var verif = isNaN($('billing_city').value.substr(i,1)); 
			if(verif==false){
				$('error_city').innerHTML = "Veuillez taper uniquement des lettres.";
				//Effect.BlindDown('error_city',1);
				$('error_city').show();
				testOK=false;			
			}
		}
	}

	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_telephone')){

	}else{
		var verif = isNaN($F('billing_telephone'));
		if(verif==true){
			$('error_phone').innerHTML = "Veuillez indiquer un code &agrave; 10 chiffres au format 0000000000.";
			//Effect.BlindDown('error_phone',1);
			$('error_phone').show();
			testOK=false;		
		}else{	
			var test = $F('billing_telephone').length;
			if(test!==10){
				$('error_phone').innerHTML = "Veuillez indiquer un code &agrave; 10 chiffres au format 0000000000";
				$('error_phone').show();
				testOK=false;			
			}
		}
	}


	//////////////////////////////////////
	//
	//////////////////////////////////////
	if(!testChamps('billing_email')){
		$('error_email').innerHTML = "Veuillez indiquer votre adresse e-mail.";
		$('error_email').show();
		//Effect.BlindDown('error_email',1);
		//testOK=false;
	}else{
		var verif = check_email($F('billing_email'));
		if(verif==true){
		}else{
			$('error_email').innerHTML = "Vous avez indiqu&eacute; une adresse mail erron&eacute;e.";
			$('error_email').show();			
			testOK=false;	
		}
	}





				 
	if (!testOK){
		return false;
	}else{
		return true;
	}
}

function check_email(e) {
ok = "/1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
for(i=0; i < e.length ;i++){ if(ok.indexOf(e.charAt(i))<0){ return (false); } } 
      re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;

      re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

      if (!e.match(re) && e.match(re_two)) { return true; } else { return false; }
}


function testChamps(idChamp)
{
	return $(idChamp).present();	
}



function testchecked(typeInput,nameInput,formName)
	{

		
		var test	=	$(formName).getInputs(typeInput, nameInput).find(function(re) { return re.checked; });
		
		if(!$(test))
		{		
			return false;
		}else{
			return true;	
		}
	}










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)
	{
		//alert(labelChamps);
		if(!$(idChamps).present())
		{
			this.errorMessage			+=	labelChamps+"<br />";
			this.afficheErrorMessage	=	true;	
			$('error_' + idChamps).show();
		}
	},

	/***
	*	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;
//		alert(labelChamps);
//		ok = "/1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
//		for(i=0; i < $F(idChamps).length ;i++)
//		{ 
//			if(ok.indexOf($F(idChamps).charAt(i))<0)
//			{ 
//				erreur	=	true;
//			} 
//		} 
//		test	=	$F(idChamps);
//		re 		= 	/(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
//		re_two 	= 	/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{2,6})(\]?)$/;
		//alert(test.match(re_two));
		
		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;
			$('error_' + idChamps).show();
			
		}
		
	},

	/***
	*	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)
	{
//		alert(labelChamps);
		var test	=	$('form').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;	
			$('error_' + idChamps).show();
		}
	},

	
	/***
	*	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;

			$('error_lastname').hide();
			$('error_firstname').hide();
			$('error_address').hide();
			$('error_zipcode').hide();
			$('error_company').hide();
			$('error_city').hide();
			$('error_phone').hide();
			$('error_email').hide();
			$('error_salutation').hide();


		this.verifSaisie('lastname', 'Nom');
		this.verifSaisie('firstname', 'Prénom');
		//$('name').value	=	$F('lastname') + " " +$F('firstname');
		//this.verifSaisie('company', 'company');
		this.verifSaisie('address', 'adresse');
		this.verifNumber('zipcode', 'zipcode',5);
		this.verifSaisie('city', 'city');
		this.verifNumber('phone', 'phone',10);
		this.verifMail('email', 'email');
		
		
		//alert('rrr');
		//this.verifDate('votrenaissance', 'Votre date de naissance');
		//this.verifSaisie('votrestatut', 'Votre statut');
		
		//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;
		}
	}
}




///////////////////////////////
// Mise à zéro d'un produit
////////////////////////////////////
function produitzero(id){
	$(id).disabled = false;
	$(id).value = 0;
  	document.panierliste.submit();
	
}