
// ROLLOVERS ET PRECHARGEMENTS
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

// Scroll oveflow auto ds firefox
function fixScroll(div) 
{
 try{
 var s = div.scrollTop;
 if(document.getElementById('ScrollPos'))
 {
  document.getElementById('ScrollPos').focus();
  div.scrollTop = s;
 }
 }
 catch(e){}
}

// AUTRES FONCTIONS
// Retourne la valeur selectionnée d'une liste de boutons radios

// c un trim quoi
function Trim(chaine) 
{
while (chaine.substring(0,1) == ' ')
{
chaine = chaine.substring(1, chaine.length);
}
while (chaine.substring(chaine.length-1, chaine.length) == ' ')
{
chaine = chaine.substring(0,chaine.length-1);
}
return chaine;
}

function GetRadioVal(radiolist)
{
  SelectedRadio = false;
  for(var i=0;i<radiolist.length;i++)
  {
    if(radiolist[i].checked)
    {
      SelectedRadio=radiolist[i].value;
    }
  }
  return SelectedRadio;
}

// Obtient l'index d'un élément de formulaire
function GetFormIndex (Form, Champ) {
 
 Name = Champ.name;
 var ChampIndex;
 for(var i=0;i<Form.length;i++)
 {
   if(Form.elements[i].name==Name)
   {
     ChampIndex=i;
   }
 }
 return ChampIndex;
}


// Passe à l'élément suivant si maxlength au cours de la frappe
function JumpNextFormElmt(Elmt)
{
  frm = Elmt.form;
  ContentLength = Elmt.value.length;
  MaxLength = Elmt.maxLength;
  ElmtIndex = GetFormIndex (frm, Elmt);
  NextElmtIndex  = ElmtIndex+1;
  
  if (ContentLength==MaxLength)
  {
	 frm.elements[NextElmtIndex].focus();
	}
}

// Vire la valeur par defaut d'un champs
function InputClean(obj){
if(obj.value==obj.defaultValue)
obj.value="";
}

//Fonction servant a remettre la valeur par defaut dans une zone de texte si la valeur de celle-ci a ete videe 
function InputDefaut(obj){ 
obj.value=(obj.value=='')?obj.defaultValue:obj.value; 
} 

// Valide une date  Accèpte JJ/MM/YYYY ou JJ-MM-YYYY
function IsValidDate(dateStr) {

var datePat = /^(\d{2})(\/|-)(\d{2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // teste le format.
// Si le format n'est pas bon
if (matchArray == null) {return false;}

// parse la date dans les variables
day = matchArray[1];
month = matchArray[3];
year = matchArray[4];
// teste le mois
if (month < 1 || month > 12){return false;}
//teste le jour
if (day < 1 || day > 31) {return false;}
// teste 31 du mois
if ((month==4 || month==6 || month==9 || month==11) && day==31) 
  {return false;}
  
if (month == 2) 
  { // 29 février
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day>29 || (day==29 && !isleap)) {
    return false;
  }
}
return true;  // la date est valide
}

// Verifie la validite d'un mail
function IsMail(adresse){
  if (adresse.search(/^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$/)==-1)
  {return false;}
  else 
  {return true;}
}
// Alerte en cas d'e-mail invalide
function VerifEmail(adresse){
         if(!IsMail(adresse))
         {alert("L\'adresse de courriel n\'est pas valide");return false;}
         else return true;
}

//Vérification sommaire d'url
function IsValidUrl(url)
{
  var pattern=/^(http|https):\/\/(www)?[a-zA-Z0-9\/\-\.]{1,}$/;
  return pattern.test(url);
}

// Test si une chaine a une longueur comprise entre x et y
function IsBetween(chaine,min,max)
{
  lg = chaine.length;
  if(lg<min || lg>max)
  return false;
  else return true
}
//Test un code postal Français, Belge, Luxembourgeois
function IsValidCP(CP)
{
  pattern=/^[A-Za-z\d-]{4,6}$/;
  return pattern.test(CP);
}
// Test si un Nom/Prenom est valide
function IsValidNom(chaine)
{
  var pattern = /^[\'a-zA-ZéèàùâêîôûäëïöüçÉÈÀÙÂÊÎÔÛÄËÏÖÜ-]*$/;
  return (pattern.test(chaine));
}
// La chaîne est-elle alphanumérique ?
function IsAlphaNum(chaine)
{
if (chaine.search(/^[0-9A-Za-z]+$/)!= -1)
  return true;
  else return false;
}

// La chaîne est-elle numérique ?
function IsNum(chaine)
{
if (chaine.search(/^[0-9]+$/)!= -1)
  return true;
  else return false;
}

// Contrôle qu'un bouton radio est bien selectionné dans une liste
function IsRadioChecked(radiolist) {
   ok = false;
   for (i=0;i<radiolist.length;i++) {
       if (radiolist[i].checked==true)
       {
           ok=true;
       }
   }
   return ok;
}

// Redirige les utilisateurs qui ont désactivé les cookies de session
function NoCookieRedirect(Url)
{
	try
	{
		var g_oD=new Date(),g_sCK="CkTst=G"+g_oD.getTime();
		document.cookie=g_sCK;
		if(document.cookie.indexOf(g_sCK)==-1)
		{window.location=Url;}
	}
	catch(e){}
}

// Limite le nombre de caractères pour un element de form
function LimitChar(Element,MaxChar)
{
  if(Element.value.length>=MaxChar)
  Element.value = Element.value.substr(0,MaxChar); 
  //Element.focus();
}

// Affiche le nb de caractères d'un élément dans un autre
function ShowCountChar(Element,ElementDest)
{
    ElementDest.value = Element.value.length;
}

// Rollover de ligne
function TrRollover(ligne,classe)
{
  ligne.className = classe;
}

// Fenêtre de confirmation
function ConfirmSubmit(message)
{
  if(message=="")message="êtes-vous sûr de vouloir continuer ?";
  var agree=confirm(message);
  if (agree)
	return true ;
  else
	return false ;
}

//Popup
function Popup(url,width,height,resizable,scrollbars) 
{ 
 xpos=((screen.width - width)/2);
 ypos=((screen.height - height)/2);
 window.open(url,null, "resizable="+resizable+", width="+width+", height="+height+",left="+xpos+",top="+ypos+",scrollbars="+scrollbars);
} 

 
// interdire clic droit
function NoRightClick()
{
	return(false);
}

// masquage liens barre de status
function hidestatus(){
 window.status='';
 return true
}

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)
document.onmouseover=hidestatus;
document.onmouseout=hidestatus;
