var noRadio = new Array();noRadio["fr"] = "Vous n'avez pas répondu à la question ";noRadio["en"] = "You have not answered the question ";var noCheckBox = new Array();noCheckBox["fr"] = "Vous n'avez pas coché ";noCheckBox["en"] = "You have not checked ";var noText = new Array();noText["fr"] = "Vous n'avez pas saisi ";noText["en"] = "You have not filled ";var EMAIL   =0;var INTEGER =1;var DATE    =2;var regex = new Array();regex[EMAIL]   = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;regex[INTEGER] = /^(\d)*$/;regex[DATE] = /^(\d){1,2}(\/|\-)(\d){1,2}(\/|\-)(\d){2,4}$/;function submitFormIfValid(formName, language, errorDiv, formCommonName)//======================================================================{  if( validateForm(formName, language, errorDiv, formCommonName) )    document.forms[formName].submit();  return false;}function validateForm(formName, language, errorDiv, formCommonName)//================================================================={  /* for example we have several forms : myForm_1, myForm_2, ... myForm_3   with all the same rules associated with formCommonName equal to myForm  */  if( !formCommonName )    formCommonName = formName;  var theForm = document.forms[formName];    //=== Check the mandatory fields  var mandatoryFields = mandatory[formCommonName];  if( mandatoryFields )  {    for( var i=0; i<mandatoryFields.length; i++)    {      var fieldName = mandatoryFields[i];      var field = theForm[fieldName];              if ( field.parentNode ) {     //=== will work but not for radio and checkbox with same name         if( field.parentNode.nodeName.toLowerCase() == "td" &&             field.parentNode.parentNode.className == "hidden" )        continue;      }      else {                        //=== test if radio or checkbox are not into an hidden row        if( field.length && field.length>0 && field[0].parentNode &&              field[0].parentNode.nodeName.toLowerCase() == "td" &&             field[0].parentNode.parentNode.className == "hidden" )        continue;      }            if (typeof field == "object" && field.nodeName &&           (field.nodeName.toLowerCase() == "input" || field.nodeName.toLowerCase() == "textarea") )      {        var type = field.type.toLowerCase();        if( type == "text" || type == "textarea" || type == "password" || type == "file" || field.nodeName.toLowerCase() == "textarea" )        {          if( trimAll(field.value) == '' && !field.disabled )          {            displayError( noText[language] + items[language][fieldName] , errorDiv);            field.focus();            return false;          }        }        else if( type == "checkbox" )        {          if( !field.checked && !field.disabled )          {            displayError( noCheckBox[language] + items[language][fieldName] , errorDiv);            field.focus();            return false;          }        }      }      else  //this is a select or a radio button       {        if( field.nodeName && field.nodeName.toLowerCase() == "select" )        {          if( field.options.selectedIndex == 0 )          {            displayError( noRadio[language] + items[language][fieldName] , errorDiv);            field.focus();            return false;          }        }        else if( !isRadioValueChecked(field) )        {          displayError( noRadio[language] + items[language][fieldName] , errorDiv);          field[0].focus();          return false;        }      }      //check select...    }      }   //=== Check the format of the fields  var formatFields = format[formCommonName];  if( formatFields )  {    for( var i=0; i<formatFields.length; i++)    {      var theFormat = formatFields[i];       var fieldName = theFormat[0];      var field = theForm[fieldName];      if( field.value != '' && !field.disabled )      {        if( field.value.search( regex[theFormat[1]] ) == -1 )         {          var errorString = getStringFromDictionary( theFormat[2], language );          displayError( errorString , errorDiv);          field.focus();          return false;        }      }    }      }    var specFunction = specificFunction[formCommonName];  if( specFunction )  {    var ok = specFunction(theForm, language, errorDiv);    if( !ok )      return false;  }  clearError(errorDiv);    return true;}function getStringFromDictionary( aString, language )//==================================================={  var str = labelsDictionary[language][aString];  if( !str )    return aString;  return str;}function displayError( errorText, errorZone )//==========================================={  if( errorZone && errorZone != "" && errorZone != "_" )  {       var d = document.getElementById(errorZone);    if (d)    {		  setTextContent(d, errorText);	        d.className = "indicError";		  if ( d.parentNode )      {        var errorTR = d.parentNode;        if( errorTR && errorTR.tagName == "TR" && errorTR.className == "hidden" )          setRowHidden( errorTR, false );      }		  return;    }  }  alert(errorText);}function displayErrorHTML( errorText, errorZone )//==============================================={  if( errorZone && errorZone != "" && errorZone != "_" )  {    var d = document.getElementById(errorZone);    if (d)    {		  d.innerHTML = errorText;		  d.className = "indicError";		  if( d.parentNode )      {        var errorTR = d.parentNode.parentNode;        if( errorTR && errorTR.tagName == "TR" && errorTR.className == "hidden" )          setRowHidden( errorTR, false );      }		  return;    }  }  alert(errorText);}function clearError( errorZone )//=============================={  if( errorZone && errorZone != "" && errorZone != "_" )  {    var d = document.getElementById(errorZone);    if (d)    {		  clearTextContent(d);		  d.className = "hidden";		  if( d.parentNode )      {        var errorTR = d.parentNode;        if( errorTR && errorTR.tagName == "TR" && errorTR.className == "" )          setRowHidden( errorTR, true );      }		  return;    }  }}function displaySuccess( successText, successZone )//================================================={  if( successZone && successZone != "" && successZone != "_" )  {    var d = document.getElementById(successZone);    if (d)    {		  setTextContent(d, successText);      d.className = "indicSuccess";		  if( d.parentNode )      {        var succesTR = d.parentNode;        if(  succesTR &&  succesTR.tagName == "TR" &&  succesTR.className == "hidden" )          setRowHidden(  succesTR, false );      }		  return;    }  }}var processRunning = false;var processRunningErrorDiv = null;var processRunningSpinnerRow = null;function startLongProcess(spinnerRow, errorDiv) {  if (processRunning) {    displayError( errorsLabels_fr["ERROR_PROCESS_RUNNING"] , errorDiv );  }   else {    processRunning = true;    processRunningErrorDiv = errorDiv;    processRunningSpinnerRow = spinnerRow;    setRowHidden( document.getElementById(spinnerRow), false);  }}function stopLongProcess() {  processRunning = false;  if( document.getElementById(processRunningSpinnerRow) )    setRowHidden( document.getElementById(processRunningSpinnerRow), true);  clearError(processRunningErrorDiv);}
