//********** LIBRAIRIE DE VERIFICATION DE FORMULAIRE **********//
//**********    Copyright Lapoz pour e-Lixir 2005    **********//

 function IsNumeric(sText)
 {
    var ValidChars = "0123456789";
    var IsNumber=true;
    var Char;
  
  
    for (i = 0; i < sText.length && IsNumber == true; i++)
       {
       Char = sText.charAt(i);
       if (ValidChars.indexOf(Char) == -1)
          {
          IsNumber = false;
          alert("Le numéro siren n'est pas correct");
          }
       }
    return IsNumber;
    
 }


function IsNumberSiren(siren)
{
	
	var siren = siren.value;
	if ((siren.length != 9) || (isNaN(siren)) )
	{
		alert("Le numéro siren n est pas correct");
		return false;
	}
	else{
		return true;
	}
}

// Fonction de contrôle du SIREN en fonction du code pays
function IsSiren(siren, pays)
{
	var sirenok=false;
	
	if (pays)
	{
		pays=pays.toLowerCase();

		switch (pays)
		{
			case 'fr' :
				if ((siren.length != 9) || (isNaN(siren)) )
					break;
				var somme = 0;
				var tmp;
				for (var idx=0; idx<siren.length; idx++) 
				{
					// Les positions paires : 2ème, 4ème, 6ème et 8ème chiffre
					if ((idx % 2) == 1) 
					{ 
						tmp = siren.charAt(idx) * 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 = siren.charAt(idx);
			
					somme += parseInt(tmp);
				}
			
				// Si la somme est un multiple de 10 alors le SIREN est valide
				if ((somme % 10) == 0)
					sirenok=true;
				break;
			default :
				break;
		}
	}
	return sirenok;
}


function EstSirenValide(siren) {
   
    var estValide;
    if ( (siren.length != 9) || (isNaN(siren)) )
      estValide = false;
    else {
      // Donc le SIREN est un numérique à 9 chiffres
      var somme = 0;
      var tmp;
      for (var cpt = 0; cpt<siren.length; cpt++) {
        if ((cpt % 2) == 1) { // Les positions paires : 2ème, 4ème, 6ème et 8ème chiffre
          tmp = siren.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 = siren.charAt(cpt);
        somme += parseInt(tmp);
      }
      if ((somme % 10) == 0)
        estValide = true;	// Si la somme est un multiple de 10 alors le SIREN est valide 
      else{
        estValide = false;
    	alert("Le numéro siren n'est pas correct");
   		}
    }
    return estValide;
  }



function verif_remplissage(champs) {
   var i = 0, j;
   for(j=0; j<champs.length; j++) {
      if(!champs[j].value && !i) {
	     alert("Vous n'avez pas rempli tous les champs obligatoires !");
		  i = 1;
		  return false;
	  }
   }
	return true;
}

function verif_liste(champ, descriptif) {
	if(champ.options[champ.selectedIndex].value == "") {
		alert("Vous devez indiquer "+descriptif+" !");
		return false;
	}
	return true;
}

function verif_cases(champs, descriptif) {
	var i = 0, j; 
	for(j=0; j<champs.length; j++)
		if(!champs[j].checked)
			i++;
	if(i==champs.length){
		alert("Vous devez cocher au moins "+descriptif+"...");
		return false;
	}
	return true;
}

function verif_mail(champ) {
	var syntaxe_mail = new RegExp("^[a-zA-Z0-9]{1}[a-zA-Z0-9\-\._]*@[\-a-zA-Z0-9\._]+[\.]{1}[a-zA-Z]{2,4}$", "");
	if(!syntaxe_mail.test(champ.value)) {
		alert("Erreur de syntaxe dans l'adresse mail !");
		return false;
	}
	return true;
}

function verif_tel(champ, descriptif) {
   var pilepoil = 0;
   // var syntaxe_tel = new RegExp("^[0-9.()+ ]*$", ""); // Syntaxe Internationale, pas de vérif poussée
	var syntaxe1 = new RegExp("^0[1-68]{1}[.]{1}[0-9]{2}[.]{1}[0-9]{2}[.]{1}[0-9]{2}[.]{1}[0-9]{2}$", "");
   if(!syntaxe1.test(champ.value)) {
		var syntaxe2 = new RegExp("^0[1-68]{1}[0-9]{8}$", "");
		if(!syntaxe2.test(champ.value)) {
			alert("Erreur de syntaxe dans le numéro de "+descriptif+" !\nModèle : 0x.xx.xx.xx.xx");
			return false;
		}
	}
	else pilepoil = 1;
	if(!pilepoil) {
		champ.value =	champ.value.substring(0, 2)+"."+champ.value.substring(2, 4)+"."+champ.value.substring(4, 6)+"."+
							champ.value.substring(6, 8)+"."+champ.value.substring(8, 10);
	}
	return true;
}

function verif_cp(champ) {
	var syntaxe_cp = new RegExp("^[0-9]{5}$", "");
	if(!syntaxe_cp.test(champ.value)) {
		alert("Erreur de syntaxe dans le code postal !");
		return false;
	}
	return true;
}

function verif_login_pwd(champ) {
	var syntaxe_login_pwd = new RegExp("^[a-zA-Z0-9]{6,}$", "");
	if(!syntaxe_login_pwd.test(champ.value)) {
		alert("Le login comme le mot de passe doivent être composés d'au moins 6 caractères alphanumériques !");
		return false;
	}
	return true;
}

function verif_pwd(champ) {
	var syntaxe_login_pwd = new RegExp("^[a-zA-Z0-9]{6,}$", "");
	if(!syntaxe_login_pwd.test(champ.value)) {
		alert("Le mot de passe doit être composé d'au moins 6 caractères alphanumériques !");
		return false;
	}
	return true;
}

function verif_2_pwd(champ1, champ2) {
	
	if((champ1.value)!=(champ2.value)) {
		alert("Les mots de passe doivent être identiques !");
		return false;
	}
	return true;
}

function verif_2_champs(champ1, champ2) {
	
	if((champ1.value)!=(champ2.value)) {
		alert("Les deux saisies doivent être identiques !");
		return false;
	}
	return true;
}

function verif_jour(champ) {
	if(isNaN(champ.value) || champ.value > 31 || champ.value < 1) {
		alert("Erreur dans la date !");
		return false;
	}
	return true;
}

function verif_mois(champ) {
	if(isNaN(champ.value) || champ.value > 12 || champ.value < 1) {
		alert("Erreur dans la date !");
		return false;
	}
	return true;
}

function verif_annee(champ) {
	if(isNaN(champ.value) || champ.value < 2005) {
		alert("Erreur dans la date !");
		return false;
	}
	return true;
}

function verif_heure(champ) {
	if(isNaN(champ.value) || champ.value > 23 || champ.value < 0) {
		alert("Erreur dans l'heure !");
		return false;
	}
	return true;
}

function verif_minute(champ) {
	if(isNaN(champ.value) || champ.value > 59 || champ.value < 0) {
		alert("Erreur dans les minutes !");
		return false;
	}
	return true;
}

function verif_float(champ, descriptif) {
	var syntaxe_float = new RegExp("^[0-9.]*$", "");
	if(!syntaxe_float.test(champ.value)) {
		alert(descriptif+" doit être un nombre !");
		return false;
   }
	return true;
}

function verif_url(champ) {
	var syntaxe_url = new RegExp("^https?://*", "");
	if(!syntaxe_url.test(champ.value))
		champ.value = "http://" + champ.value;
}

function verif_tof(champ) {
	if(champ) {
		var format_tof = new RegExp("(jpg|jpeg)$", "");
		if(!format_tof.test(champ.value)) {
			alert("La photo doit être au format JPEG !");
			return false;
		}
	}
}

function majuscules(champ) {
	champ.value = champ.value.toUpperCase();
}

function minuscules(champ) {
	champ.value = champ.value.toLowerCase();
}

function majFirst(champ) {
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;
	
	tmpStr = champ.value.toLowerCase();
	strLen = tmpStr.length;
	
	if (strLen > 0)  {
		for (index = 0; index < strLen; index++)  {
			if (index == 0)  {
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
			}
			else {
				tmpChar = tmpStr.substring(index, index+1);
				if ((tmpChar == " " || tmpChar == "-") && 
					  (tmpStr.substring(index+1, index+3) != "le" && tmpStr.substring(index+1, index+3) != "la" && 
						tmpStr.substring(index+1, index+3) != "du" && tmpStr.substring(index+1, index+3) != "de" && 
						tmpStr.substring(index+1, index+4) != "des" && tmpStr.substring(index+1, index+4) != "rue" && index < (strLen-1)))  {
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);
					postString = tmpStr.substring(index+2,strLen);
					tmpStr = preString + tmpChar + postString;
				}
			}
		}
	}
	champ.value = tmpStr;
}

function majFirstOnly(champ) {
	champ.value = champ.value.substring(0, 1).toUpperCase() + champ.value.substring(1);
}
