/*************************************************************************************************
* Fichier js qui fournit des méthodes utilitaires pour la manipulation des champs d'un formulaire
**************************************************************************************************/

/**
* Permet de sauter d'un champ vers un autre 
* lorsqu'un certain nombre de caractère est atteint
*/
function makeSuivant(champ1, champ2, longueur) {
	if (champ1.value.length == longueur)
		champ2.focus();
}

/**
* Permet d'inialiser un champ texte
*/ 
function initialiserChamp(champ){
	champ.value="";
}

/**
* Permet de remettre un checkbox à false
*/ 
function unCheck(checkbox){
	checkbox.checked=false;
}

/** 
* Vérifie si un champ est bien numérique, sinon le mettre à vide
*/ 
function verifierSaisiNum(champ){
 	if(isNaN(champ.value))
		champ.value="";
}

/** 
* Permet de vérifier si le dernier caractère saisie dans le champ spécifié 
* est numérique ou un "." ou un "," sinon il le supprime.
* Méthode à associer à l'événement 'onKeyUp' d'un champ.
* 
* @param champ à mettre à jour automatiquement
*/
function makeNum(champ){
	// Expresion régulière pour les numériques avec une virgule ou un point 
	var RE = /^[0-9\.\,]+$/;  
	
	//récuperer le dernier caractère saisie.
	var caractereSaisie = champ.value.substring(champ.value.length - 1, champ.value.length);	
	
	// le caractère saisie n'est pas chiffre
	if (!RE.test(caractereSaisie)) { 
		champ.value = champ.value.substring(0, champ.value.length-1); 
	
	} 
	// pour controler qui est qu'une seule virgule
	else if (isNaN(champ.value)) { 
		if ((champ.value.lastIndexOf('.') > 0)
			&& (champ.value.lastIndexOf(',') == champ.value.length - 1)) {
			champ.value = champ.value.substring(0, champ.value.length - 1);
		} else if (champ.value.indexOf('.') < champ.value.lastIndexOf('.')) {
			champ.value = champ.value.substring(0, champ.value.length - 1);
		} else{
			champ.value = champ.value.substring(0, champ.value.length - 1) + '.';
		}
		
		//en cas d'erreur dans les contrôles on efface tout.
		if (isNaN(champ.value)) { 
			champ.value = "";
		}
	}	
}

/** 
* Permet de vérifier si le dernier caractère saisie dans le champ spécifié 
* est numérique sinon il le supprime.
* Méthode à associer à l'événement 'onKeyUp' d'un champ.
* 
* @param champ à mettre à jour automatiquement
*/
function makeNumSansPoints(champ){
	// Expresion régulière pour les numériques sans  virgule ou ni point 
	var RE = /^[0-9]+$/;  
	
	//récuperer le dernier caractère saisie.
	var caractereSaisie = champ.value.substring(champ.value.length - 1, champ.value.length);	
	
	// le caractère saisie n'est pas chiffre
	if (!RE.test(caractereSaisie)) { 
		champ.value = champ.value.substring(0, champ.value.length-1); 
	
	} 	
}

/** 
* Permet de vérifier si le dernier caractère saisie dans le champ spécifié 
* est soit un carctère soit une valeur numérique sinon il le supprime.
* Méthode à associer à l'événement 'onKeyUp' d'un champ.
* 
* @param champ à mettre à jour automatiquement
*/
function makeAlphaNum(champ){
	var RE = /^[\s0-9A-Za-z\350\351\342\356\347\352\364\'-]+$/;
	
	var caractereSaisie = champ.value.substring(champ.value.length - 1, champ.value.length);	
	// le caractère saisie n'est ni un chiffre ni une lettre
	if (!RE.test(caractereSaisie)) { 
		champ.value = champ.value.substring(0, champ.value.length-1); 
	
	}
}

/**
* Méthode qui permet de valider la cle insee saisie est correcte ou non. 
*/
function verifCleInsee(insee){
	var restediv=insee%97;
	var longueur=insee.length;
	var varinsee=insee;
	var varcle;
	var clecalc;
	var i=0;
	insee=insee.toLowerCase();
	var a=insee.indexOf('2a', 0);
	var b=insee.indexOf('2b', 0);
	if(a!=-1){
		var debut=insee.substring(0, a-1);
		var fin=insee.substring(a+2,longueur-1);
		varinsee=insee.substring(0, a)+"19"+insee.substring(a+2,longueur);
	}else if(b!=-1 ){
		varinsee=insee.substring(0, b)+"18"+insee.substring(b+2,longueur);	
	}
	//verification de la clé
	varcle=varinsee.substring(longueur-2,longueur);
	clecalc=97-(varinsee.substring(0,longueur-2)%97);
	return (clecalc==varinsee.substring(longueur-2,longueur));	
}

