/* - - - - - - - - - - - - - - - - - - - - - - -
 JavaScript
 Dernière MAJ : 11/04/2004 par DDE
 - - - - - - - - - - - - - - - - - - - - - - - */

function isFieldEmpty(formRef,fieldType, fieldName, fieldAlert,fieldLink)
{ var tmpBool = false;
  switch(fieldType)
  {  case "text":
       if(isTextEmpty(formRef,fieldName))
       {  alert(fieldAlert);
          formRef.elements[fieldName].value = "";
          formRef.elements[fieldName].focus();
          tmpBool = true;
       }
       break;
     case "textarea":
       if(isTextEmpty(formRef,fieldName))
       {  alert(fieldAlert);
          formRef.elements[fieldName].value = "";
          formRef.elements[fieldName].focus();
          tmpBool = true;
       }
       break;
     case "list":
      if(!isSelected(formRef,fieldName))
       {  alert(fieldAlert);
          tmpBool = true;
       }
       break;
     case "checkbox":
       if(!isChecked(formRef,fieldName))
       {  alert(fieldAlert);
          tmpBool = true;
       }
       break;
     case "radio":
       if(!isChecked(formRef,fieldName))
       {  alert(fieldAlert);
          if (fieldLink != '') {
            var strFullUri=window.location.href;
            var strUri=strFullUri.split("#");
            window.location=strUri[0]+"#"+fieldLink;
          }
          tmpBool = true;
       }
       break;
     case "file":
       if(isTextEmpty(formRef,fieldName))
       {  alert(fieldAlert);
          formRef.elements[fieldName].value = "";
          formRef.elements[fieldName].focus();
          tmpBool = true;
       }
       break;
     default:
       alert('ERR : Type indéfini');
       tmpBool = true;
       break;
  }
  return tmpBool;
}
/* isMail :
*/
function isMail(varString)
{  var tmpBool = false ;
   for (var j=1 ; j<(varString.length) ; j++)
   {  if (varString.charAt(j)=='@')
      {  if (j<(varString.length-4))
         {  for (var k=j ; k<(varString.length-2) ; k++)
            {   if (varString.charAt(k)=='.') tmpBool = true;
            }
         }
      }
   }
     return tmpBool;
}
/* isTextEmpty
- formRef : pointeur sur le formulaire
- fieldName : nom du champ dans le formulaire
*/
function isTextEmpty(formRef,fieldName)
{  var tmpBool = true;
   var tmpString = formRef.elements[fieldName].value;
   tmpString = strTrim(strReplaceCtrlChar(tmpString));
   if(tmpString.length > 0) tmpBool = false;
   return tmpBool;
}
/* strTrim
*/
function strTrim(varString)
{  var tmpString = "";
   for(i=0;i < varString.length;i++)
     if(varString.charAt(i) != " ")
     {  tmpString += varString.charAt(i)
     }
   return tmpString;
}
/* strReplaceCtrlChar
*/
function strReplaceCtrlChar(varString)
{  var tmpString = "";
   for (i=0; i < varString.length; i++)
   {  if (varString.charAt(i) != '\n' && varString.charAt(i) != '\r' && varString.charAt(i) != '\t')
      {  tmpString += varString.charAt(i);
      }
   }
   return tmpString;
}
/* isChecked
- formRef : pointeur sur le formulaire
- fieldName : nom du champ dans le formulaire
*/
function isChecked(formRef,fieldName)
{  var tmpBool=false;
   var tmpRadioBox = formRef.elements[fieldName];
   for (var i=0; i< tmpRadioBox.length;i++)
   {   if (tmpRadioBox[i].checked) tmpBool = true;
   }
   return tmpBool;
}
/* isSelected
- formRef : pointeur sur le formulaire
- fieldName : nom du champ dans le formulaire
*/
function isSelected(formRef,fieldName)
{  var tmpBool=false;
   var tmpList = formRef.elements[fieldName];
   if (tmpList.value != "") tmpBool = true;
   return tmpBool;
}
/* getFieldValue (MAJ 15/03/2004 par DDE)
Entrée :
- formRef : pointeur sur le formulaire
- fieldName : nom du champ dans le formulaire
- fieldType : type du champ
Sortie :
- returValue : valeur du champ (string)
*/
function getFieldValue(formRef,fieldName,fieldType) {
  var returnValue;
  switch(fieldType)
  {  case "text":
  	 case "textarea":
  	 case "file":
		returnValue = formRef.elements[fieldName].value;
       break;
     case "list":
        break;
     case "checkbox":
       break;
     case "radio":
        if (formRef.elements[fieldName].length == 1){
            returnValue = formRef.elements[fieldName].value;
        } else {
            for (i=0;i<formRef.elements[fieldName].length;i++){
                if (formRef.elements[fieldName][i].checked==true) {
                    returnValue = formRef.elements[fieldName][i].value;
                }
            }
        }
       break;
     default:
  }
return returnValue;
}
/* setFieldValue
- formRef : pointeur sur le formulaire
- fieldName : nom du champ dans le formulaire
- varTmp : nouvelle valeur du champ
*/
function setFieldValue(formRef,fieldName,varTmp)
{  formRef.elements[fieldName].value = varTmp;
   return;
}
/* checkDateNaiss
Vérifie si une date est correcte et si elle est passée ou future.
*/
function checkDateNaiss(formRef,fieldDay,fieldMonth,fieldYear)
{ var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  var day = parseInt(formRef.elements[fieldDay].value);
  var month = parseInt(formRef.elements[fieldMonth].value);
  var year = parseInt(formRef.elements[fieldYear].value);
  //Contrôle de la saisie des champs
  if (!day) {
    alert("Veuillez saisir le jour de la date de naissance");
    formRef.elements[fieldDay].focus();
    return false;
  }
  if (!month) {
    alert("Veuillez saisir le mois de la date de naissance");
    formRef.elements[fieldMonth].focus();
    return false;
  }
  if (!year) {
    alert("Veuillez saisir l'année de la date de naissance");
    formRef.elements[fieldYear].focus();
    return false;
  }
  else {
    if(formRef.elements[fieldYear].value.length != 4 || year/1000 < 1) {
         alert("Veuillez saisir l'année de la date de naissance avec 4 chiffres");
         formRef.elements[fieldYear].focus();
         return false;
    }
  }
  //Contrôle de la validité du mois de naissance
  if (month > 12) {
    alert("Mois de naissance invalide");
    formRef.elements[fieldMonth].focus();
    return false;
  }
  //Contrôle de la validité du jour de naissance
  if (year/4 == parseInt(year/4))
    monthLength[1] = 29;
  if (day > monthLength[month-1]) {
    alert("Jour de naissance invalide");
    formRef.elements[fieldDay].focus();
    return false;
  }
  monthLength[1] = 28;
  //Contrôle de la validité de la date de naissance
  var now = new Date();
  now = now.getTime();
  var dateToCheck = new Date();
  dateToCheck.setYear(year);
  dateToCheck.setMonth(month-1);
  dateToCheck.setDate(day);
  var checkDate = dateToCheck.getTime();
  var futureDate = (now < checkDate);
  var pastDate = (now > checkDate);
  //Si date future non valide
  if (futureDate) {
    alert("Date de naissance invalide");
    formRef.elements[fieldYear].focus();
    return false;
  }
  //Mise au format des champs jour, mois et année.
  //Formatage du jour
  if(day < 10) {
    formRef.elements[fieldDay].value = "0"+day.toString();
  }
  else {
    formRef.elements[fieldDay].value = day.toString();
  }
  //Formatage du mois
  if(month < 10) {
    formRef.elements[fieldMonth].value = "0"+month.toString();
  }
  else {
    formRef.elements[fieldMonth].value = month.toString();
  }
  //Formatage de l'annèe : aucun
  return true;
}

/* isDigit
Vérifie si une chaîne de caractères est composée de chiffres
DTCRT : 06/12/2004
DTMAJ: 06/12/2004 */
function isDigit(num) {
  var len = num.length;
  for (var i=0; i < len; i++) {
    if ( isNaN(parseInt(num.charAt(i))) ) return false;
  }
  return true;
}

/* valide_numerique
Vérifie le nombre de chiffres dans une chaîne
DTCRT : 06/12/2004
DTMAJ: 06/12/2004 */
function valide_numerique(formRef,fieldName,size,fieldAlert) {
  if ( formRef.elements[fieldName].value.length!=size || !isDigit(formRef.elements[fieldName].value) ) {
    alert(fieldAlert);
    formRef.elements[fieldName].focus();
    return false
  }
  return true;
}

/* valide_numerique
Vérifie le nombre de chiffres dans une chaîne
DTCRT : 06/12/2004
DTMAJ: 06/12/2004 */
function isNumCard(data) {
  var returnValue;
  data="data="+data
  if(window.ActiveXObject) {
  	//Internet Explorer
    var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
  }
  else {
  	//Mozilla
  	var XhrObj = new XMLHttpRequest();
  }
  //Ouverture du fichier en methode POST
  var rootScript=window.location.pathname;
  rootScript=rootScript.split("/");
  rootScript=rootScript[1];
  XhrObj.open("POST", "/"+rootScript+"/common/php/validnumcartem.php",false);

  //Ok pour la page cible
  XhrObj.onreadystatechange = function() {
    if (XhrObj.readyState == 4 && XhrObj.status == 200)
    	returnValue=XhrObj.responseText;
  }
  XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  XhrObj.send(data);

  return eval(returnValue);
}
/* toNext
Change le focus dès que la taille maximale d'un champ texte est atteinte
DTCRT : 12/04/2005
DTMAJ: 12/04/2005 */
function toNext(me, next) {
 var moi = document.getElementById(me);
 var taillemax = moi.getAttribute("maxlength","false");
 var suivant = document.getElementById(next);

 if (moi.value.length >= taillemax)
  suivant.focus();
}

//Input type text | password | checkbox | radio | submit | reset | file | hidden | image | button