
var IE = (document.all) ? 1 : 0;
var DOM = 0; 
if (parseInt(navigator.appVersion) >=5) {DOM=1};

        function txtShow( cId, txt2show ) {
            
            // Detect Browser

            if (DOM) {
		var viewer = document.getElementById(cId);
                viewer.innerHTML=txt2show;
            }
            else if(IE) {
                document.all[cId].innerHTML=txt2show;
            }
        }//txtshow
        
        function getTxt( cId ) {
            var output = "";
            // Detect Browser
            if (DOM) {
		var viewer = document.getElementById(cId);
		output = viewer.value;
            }
            else if(IE) {
                output = document.all[cId].value;
            }
            return output;
        }//getTxt

function countChars(cBoxName, cTxtName, maxKeys) 
{
  var str = new String(getTxt(cBoxName));
  var len = str.length;
  var showstr = len + " caractères  sur " + maxKeys + " de saisis";
  if (len > maxKeys) showstr += '<br>Des informations peuvent être perdues.';
  txtShow( cTxtName, showstr );
}

/*     Fonctions de contrôle de champs de formulaires coté client   */

//Diverses expressions régulières utiles

// Expressions régulières de test de longueur
var regExpEmpty=/^$/g;					// Accepte une chaine vide
var regExp8Chars=/^[0-9a-zA-Z]{8,}$/g;			// Accepte une chaine d'au moins 8 carctères alphanumeriques (pour un mot de passe par exemple).

// Expressions régulières de test de type de caractère
var regExpAlphanumeric=/[0-9a-zA-Z]+/g;			// Accepte une chaine alphanumérique
var regExpAlphanumericWithWhitespace=/[0-9a-zA-Z ]+/g;	// Accepte une chaine alphanumérique + ' '
var regExpAlphabetic=/[a-zA-Z]+/g;			// Accepte une chaine alphabétique
var regExpNumeric=/[0-9]+/g;				// Accepte une chaine numérique

// Expressions régulières de test de type
var regExpInt=/^[0-9]+$/g;				// Accepte une chaine de type 'int'
var regExpDouble=/^[-+]?[0-9]+(\.[0-9]+)?$/g;		// Accepte une chaine de type 'double'
var regExpFloat=/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/g;	// Accepte une chaine de type 'float'
var regExpTime=/^([01][0-9]|2[0123])\:([012345][0-9])(\:([012345][0-9])(.([0-9]{3})+)?)?$/g;		 // Accepte une chaine de type 'time'. Ex : 12:51 ou 21:45:35.654
var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.
var regExpEnglishDate=/^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/g; // idem ci-dessus mais format anglais (Ex : aaaa/mm/jj)
var regExpBoolean=/^true|false$/g;			// Accepte une chaine de type 'boolean'

// Expressions régulières de test de types administratifs français
var regExpCodePostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/g;							// Accepte une chaine de type 'code postal'. Ex : F-33370 ou 33 370 ou 33370 ou F-1 370
var regExpTelephoneFixe=/^(01|02|03|04|05|08|09)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230
var regExpTelephoneFixePF=/^(01|02|03|04|05|08|09|06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230

var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.
var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.
var regExpTelephoneInternational=/^(\(\+[0-9]{2}\))[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g; 	// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30

var regExpNumeroSecuriteSociale=/^[12][ \.\-]?[0-9]{2}[ \.\-]?(0[1-9]|[1][0-2])[ \.\-]?([0-9]{2}|2A|2B)[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{2}$/g; // Accepte un numero de sécurité sociale français. Ex : 1 85 34 33 354 450 45

var regExpTVAIntracommunautaire=/^[A-Z]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;		// Accepte un numero de TVA Intra-communautaire. Ex : FR 02 254 254 254
var regExpNumeroSiren=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;							// Accepte un numero SIREN. Ex : 254 254 254
var regExpNumeroSiret=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}$/g;					// Accepte un numero SIRET. Ex : 254 254 254 12345
var regExpCodeApe=/^[0-9]{2}[ \.\-]?[0-9]{1} ?[a-zA-Z]$/g;								// Accepte un code APE. Ex : 25.4Z

// Expressions régulières de test de types liés à internet

var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;										// Accepte une adresse email. Ex : toto@toto.com
var regExpIpAdress=/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g;	// Accepte une adresse ip. Ex : 192.168.0.1
var regExpDomainName=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/g;													// Accepte un nom de domaine. Ex : toto.com
var regExpUrl=/^(((ht|f)tp(s?))\:\/\/)?(([a-zA-Z0-9]+([@\-\.]?[a-zA-Z0-9]+)*)(\:[a-zA-Z0-9\-\.]+)?@)?(www.|ftp.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})(\:[0-9]+)?\/?/g;			// Accepte une url ftp, http ou https, avec ou sans login/mot de passe, avec ou sans numero de port. Ex : http://www.toto.com, ftp://toto:toto@ftp.toto.com:21/

var regExpHexColor=/^#[0-9A-Fa-f]{6}$/g; // Accepte une couleur hexadécimale

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression)
{
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function doesntMatchRegularExpression(valeur, regularExpression)
{
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

/*
les fonctions de contrôle suivantes prennent toutes comme argument la valeur de l'attribut "value" d'un champ de formulaire de type "text" ou "password"
*/
function isEmpty(valeur)
{ 
	return matchRegularExpression(valeur, regExpEmpty);
}

function isNotEmpty(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmpty);
}

function isNot8CharsLength(valeur)
{
	return doesntMatchRegularExpression(valeur, regExp8Chars);
}

function isNotAlphanumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumeric);
}

function isNotAlphanumericWithWhitespace(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphanumericWithWhitespace);
}

function isNotAlphabetic(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpAlphabetic);
}

function isNotNumeric(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeric);
}

function isNotInt(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotDouble(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDouble);
}

function isNotFloat(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpInt);
}

function isNotBoolean(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpBoolean);
}

function isNotTime(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTime);
}

function isNotDate(valeur, mode)
{
	switch (mode)
	{
		case "fr" : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
		case "en" :
			return doesntMatchRegularExpression(valeur, regExpEnglishDate);
			break;
		default : 
			return doesntMatchRegularExpression(valeur, regExpFrenchDate);
			break;
	}
}

function isNotCodePostal(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodePostal);
}

function isNotTelephone(valeur, mode)
{
}

function isNotNumeroSecuriteSociale(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSecuriteSociale);
}

function isNotTVAIntracommunautaire(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpTVAIntracommunautaire);
}

function isNotNumeroSiren(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiren);
}

function isNotNumeroSiret(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpNumeroSiret);
}

function isNotCodeApe(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpCodeApe);
}

function isNotEmailAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmailAdress);
}

function isNotIpAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpIpAdress);
}

function isNotDomainName(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpDomainName);
}

function isNotUrl(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpUrl);
}

function isNotHexColor(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpHexColor);
}

function isNotHexspecifique(valeur, regspecifique)
{
	return doesntMatchRegularExpression(valeur, regspecifique);
}

function valide_cbx(champ){
var x;
var nbre=0;
for (x=0;x< champ.length;x++){
 
   if((champ[x].checked)==true){
        nbre++;		 
    } 
	
}

return nbre;
}

function valide_cbx_un(champ){
var x;
var nbre=0;
if (champ.checked==true){
        nbre++;		 
    } 	
return nbre;
}

function valeur_cbx(champ){
var x;
var str='';
for (x=0;x< champ.length;x++){
 
   if((champ[x].checked)==true){
        str = str +  champ[x].value+',';  	 
    } 
	
}

return str;
}

function getCheckedValue(radioObj,nb) {
coche=false;	

for(var i = 0; i < nb; i++) {
  if(radioObj[i].checked) {
			return true;
		}
}

	return coche;
}

function getElementsByClass(className) {
	var elems = document.getElementById(className);
	elems.className = "error";
}
function init_error(className) {
	var elems = document.getElementById(className);
	elems.className = 'format';
}
function init_error_ff(className) {
	var elems = document.getElementsByTagName(className);
	elems.className = 'format';
}
function getElementsByClass_ff(className) {
	var elems = document.getElementsByTagName(className);
	elems.className = "error";
}
function ValidForm() {
	init_error('id_2');
	if (document.formulaire.id_2.value.length == 0) {
		alert('Vous devez saisir le champ Nom : ! ');
		getElementsByClass('id_2');
		document.formulaire.id_2.focus();
		return false;
	}
	if (document.formulaire.id_2.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_2');
		document.formulaire.id_2.focus();
		return false;
	}
	init_error('id_34');
	if (document.formulaire.id_34.value.length == 0) {
		alert('Vous devez saisir le champ Prénom : ! ');
		getElementsByClass('id_34');
		document.formulaire.id_34.focus();
		return false;
	}
	if (document.formulaire.id_34.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_34');
		document.formulaire.id_34.focus();
		return false;
	}
	init_error('id_36');
	if (document.formulaire.id_36.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_36');
		document.formulaire.id_36.focus();
		return false;
	}
	init_error('id_42');
	if (document.formulaire.id_42.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_42');
		document.formulaire.id_42.focus();
		return false;
	}
	init_error('id_39');
	if (document.formulaire.id_39.value.length == 0) {
		alert('Vous devez saisir le champ Adresse : ! ');
		getElementsByClass('id_39');
		document.formulaire.id_39.focus();
		return false;
	}
	if (document.formulaire.id_39.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_39');
		document.formulaire.id_39.focus();
		return false;
	}
	init_error('id_40');
	if (document.formulaire.id_40.value.length == 0) {
		alert('Vous devez saisir le champ Code postal : ! ');
		getElementsByClass('id_40');
		document.formulaire.id_40.focus();
		return false;
	}
	if (document.formulaire.id_40.value.length > 10) {
		alert('Vous ne pouvez pas saisir plus de 10 caractères.! ');
		getElementsByClass('id_40');
		document.formulaire.id_40.focus();
		return false;
	}
	init_error('id_41');
	if (document.formulaire.id_41.value.length == 0) {
		alert('Vous devez saisir le champ Ville : ! ');
		getElementsByClass('id_41');
		document.formulaire.id_41.focus();
		return false;
	}
	if (document.formulaire.id_41.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_41');
		document.formulaire.id_41.focus();
		return false;
	}
	init_error('id_38');
	if (document.formulaire.id_38.value.length == 0) {
		alert('Vous devez saisir le champ Votre e-mail : ! ');
		getElementsByClass('id_38');
		document.formulaire.id_38.focus();
		return false;
	}
	if (document.formulaire.id_38.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_38');
		document.formulaire.id_38.focus();
		return false;
	}
	if (isNotEmpty(document.formulaire.id_38.value)
			&& isNotEmailAdress(document.formulaire.id_38.value)) {
		alert("L'email n'est pas correcte");
		;
		getElementsByClass('id_38');
		document.formulaire.id_38.focus();
		return false;
	}
	init_error('id_37');
	if (document.formulaire.id_37.value.length > 50) {
		alert('Vous ne pouvez pas saisir plus de 50 caractères.! ');
		getElementsByClass('id_37');
		document.formulaire.id_37.focus();
		return false;
	}
	if (isNotEmpty(document.formulaire.id_37.value)
			&& isNotTelephone(document.formulaire.id_37.value, 'fixe')) {
		alert("Le tÃƒÂ©lÃƒÂ©phone n'est pas correct");
		;
		getElementsByClass('id_37');
		document.formulaire.id_37.focus();
		return false;
	}
	init_error('id_7');
	if (document.formulaire.id_7.value.length > 15000) {
		alert('Vous ne pouvez pas saisir plus de 15000! ');
		getElementsByClass('id_7');
		document.formulaire.id_7.focus();
		return false;
	}
	if (document.formulaire.id_7.value.length < 2) {
		alert('Vous devez saisir au moins 2 caractères.! ');
		getElementsByClass('id_7');
		document.formulaire.id_7.focus();
		return false;
	}
	init_error('id_43');
}

