
function EstSiretValide(siret) {
var estValide;
	
	if (siret.length==14 && !isNaN(siret)) {
		// Donc le SIRET est un numérique à 14 chiffres
		// Les 9 premiers chiffres sont ceux du SIREN (ou RCS), les 4 suivants
		// correspondent au numéro d'établissement
		// et enfin le dernier chiffre est une clef de LUHN. 
		var somme = 0;
		var tmp;
		for (var cpt = 0; cpt<siret.length; cpt++)	{
			if ((cpt % 2) == 0) {
				// Les positions impaires : 1er, 3è, 5è, etc... 
				tmp = siret.charAt(cpt) * 2; // On le multiplie par 2
				if (tmp > 9) 
					tmp -= 9;  // Si le résultat est supérieur à 9, on lui soustrait 9
			}
			else
				tmp = siret.charAt(cpt);
			
			somme += parseInt(tmp);
		}
		if ((somme % 10) == 0)
			estValide=true;
		else
			estValide=false;
	}
	else
		estValide=false;
			
	
	return estValide;
}

function EstNumeroSecu(numero) {
	if (numero == '999999999999999') return '';
	if (numero.length != 15) return '\n Un numéro de sécurité sociale correct';
		
	nir = numero.substr(0,13);
	// traitement particulier de la corse...
	nir = nir.replace(/[a-zA-Z]/gi, "0");
	cle = numero.substr(13,2);
	
	x = nir % 97;
	cleCalculee = 97 - x;
	
	if (cle != cleCalculee) {
		return '\n Un numéro de sécurité sociale correct (clé non valide)';
	}
	return '';
}

// validation de champ
function RequiredField(FormName, FieldName, Type, Msg) {
var returnMessage='';
	
	switch (Type) {
		case 'text' :
			var TextBox = eval('document.'+FormName+'.'+FieldName);
			if (TextBox.value.replace(/ /gi,'')=='') { returnMessage=Msg; };
			break;
		
		case 'select' :
			var Select = eval('document.'+FormName+'.'+FieldName);
			if (Select.selectedIndex==0) { returnMessage=Msg; };
			break;
			
		case 'check' :
			var CheckBox = eval('document.'+FormName+'.'+FieldName);	
			if (! CheckBox.checked) { returnMessage=Msg; };
			break;
			
		case 'radio' :
			var nbRadio = eval('document.'+FormName+'.'+FieldName+'.length');
			var checked=false;
			for (i=0; i<nbRadio; i++) {
				var RadioButton = eval('document.'+FormName+'.'+FieldName+'['+i+']');
				checked = (checked || RadioButton.checked);
			}
			if (! checked) { returnMessage=Msg; };
			break;
	}
	
	return returnMessage;
}

function RegularExpression(FormName, FieldName, Type, Required, ErrorMsg) {
var returnMessage='';
	
	var Expression = eval('document.'+FormName+'.'+FieldName).value;
	
	if (!Required && (Expression=='')) {return '';}
	
	switch (Type) {
		case 'tel' : 
			var filter = new RegExp("([+]33[ ])([0-9]{3}[ ])([0-9]{3}[ ])([0-9]{3})",'');
			break;			
		case 'mail' :
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			break;		
		case 'address' :
			var filter = new RegExp("([A-Z]|[a-z]|[0-9]|[ ]|[-]|[']|[&quot;]|[,]|[;]|[.]|[@]|)*",'');
			break;
		case 'cp' :
			var filter = new RegExp("^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$", ''); 
			break;
		case 'numeric' :
			var filter = new RegExp("([0-9]|[ ])*",'');
			break;
		case 'integer' :
			var filter = /^\d+$/;
			break;
		case 'NAF' :
			var filter = new RegExp("([0-9]{4})([A-Z]|[a-z]{1})",'');
			break;
		case 'date' :
			var filter = new RegExp("([0-9]{2})/([0-9]{2})/([0-9]{4})",'');
			break;
	}

	if (Expression=='') {
		returnMessage=ErrorMsg;
	}
	else if (!filter.test(Expression)) {
		returnMessage=ErrorMsg;
	}
		
	return returnMessage;
}

function CheckNum(txtBox){
	if (event.keyCode==9) return;
	var chars = "0123456789";
	var len = txtBox.value.length;
	var sReturn='';
	var car='';

		for (i=0;i<len;i++) {
			car = txtBox.value.charAt(i);
			if(chars.indexOf(car)>=0) {
				sReturn+=car;
			}
		}
		txtBox.value=sReturn;
}
