//<![CDATA[
var A_ERREUR_TF=new Array();var S_ERR_TEMP_TF='';var I_OUV_TEMP_TF='';function envoieFormMb(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur)
{if(envoieForm(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur))
{modalBox("Transfert des données",'<p>Chiffrement et envoie des données du formulaire ...</p><p id="mbTempo"></p>',140)
setTimeout(function(){document.forms[s_nomForm].submit();},1500);}
return false;}
function envoieFormProspect(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur)
{if(document.forms['formIns'].elements['nomBateau'].value!=''||document.forms['formIns'].elements['port'].value!=''||document.forms['formIns'].elements['typeBat'].value!=''||document.forms['formIns'].elements['tirant'].value!=''||document.forms['formIns'].elements['pavillon'].value!=''||document.forms['formIns'].elements['largeurCoque'].value!=''||document.forms['formIns'].elements['longueurCoque'].value!='')
document.getElementById('infoBat').style.display='block';if(testForm(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur))
return true;modalBox('Erreur de saisie',S_ERR_TEMP_TF,I_OUV_TEMP_TF);return false;}
function envoieForm(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur)
{if(testForm(s_nomForm,a_s_champ,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur))
return true;modalBox('Erreur de saisie',S_ERR_TEMP_TF,I_OUV_TEMP_TF);return false;}
function testForm(s_nomForm,a_testChamp,a_s_logMdp,a_s_Mdp1Mdp2,a_cleCrypt,s_fctErreur)
{if(typeof A_ERREUR_TF[s_nomForm]==='undefined')
A_ERREUR_TF[s_nomForm]=new Array();var s_messErr='',i_lgErr=0,i_nbErr=0;for(i=0,nb=a_testChamp.length;i<nb;i++)
{if(!(a_testChamp[i][1]in A_ERREUR_TF[s_nomForm]))
testChamp(s_nomForm,a_testChamp[i]);}
if(s_nomForm=='formIns'&&document.getElementById('infoBat').style.display=='block')
{p_champVide('formIns','nomBateau',document.forms['formIns'].elements['nomBateau'].value,true);p_champVide('formIns','port',document.forms['formIns'].elements['port'].value,true);p_champVide('formIns','typeBat',document.forms['formIns'].elements['typeBat'].value,true);p_champVide('formIns','tirant',document.forms['formIns'].elements['tirant'].value,true);p_champVide('formIns','pavillon',document.forms['formIns'].elements['pavillon'].value,true);p_champVide('formIns','largeurCoque',document.forms['formIns'].elements['largeurCoque'].value,true);p_champVide('formIns','longueurCoque',document.forms['formIns'].elements['longueurCoque'].value,true);}
for(var cle in A_ERREUR_TF[s_nomForm])
{s_messErr+='- '+A_ERREUR_TF[s_nomForm][cle]+'<br />';i_nbErr++;if(A_ERREUR_TF[s_nomForm][cle].length>150||A_ERREUR_TF[s_nomForm][cle].indexOf('<br />')!==-1)
i_lgErr++;}
if(i_nbErr===0)
{if(a_s_logMdp)
{var s_valLogin=document.forms[s_nomForm].elements[a_s_logMdp[0]].value,s_valMdp=document.forms[s_nomForm].elements[a_s_logMdp[1]].value;if(s_valMdp==s_valLogin)
{p_setStatut(s_nomForm,a_s_logMdp[0],"incorrect");p_setStatut(s_nomForm,a_s_logMdp[1],"incorrect");s_messErr+="Pour des raisons de sécurité, les champs <strong>"+document.getElementsByTagName('label')[a_s_logMdp[0]+'Label'].innerHTML+"</strong> et <strong>"+document.getElementsByTagName('label')[a_s_logMdp[1]+'Label'].innerHTML+"</strong> doivent être différents.<br />";i_lgErr++;i_nbErr++;}
else if(!p_distLev(s_valMdp,s_valLogin))
{p_setStatut(s_nomForm,a_s_logMdp[0],"incorrect");p_setStatut(s_nomForm,a_s_logMdp[1],"incorrect");s_messErr+="Pour des raisons de sécurité, les champs <strong>"+document.getElementsByTagName('label')[a_s_logMdp[0]+'Label'].innerHTML+"</strong> et <strong>"+document.getElementsByTagName('label')[a_s_logMdp[1]+'Label'].innerHTML+"</strong> doivent être davantages différenciés.<br />";i_lgErr++;i_nbErr++;}}
if(a_s_Mdp1Mdp2&&document.forms[s_nomForm].elements[a_s_Mdp1Mdp2[0]].value!=document.forms[s_nomForm].elements[a_s_Mdp1Mdp2[1]].value)
{p_setStatut(s_nomForm,a_s_Mdp1Mdp2[0],"incorrect");p_setStatut(s_nomForm,a_s_Mdp1Mdp2[1],"incorrect");s_messErr+="Les champs <strong>"+document.getElementsByTagName('label')[a_s_Mdp1Mdp2[0]+'Label'].innerHTML+"</strong> et <strong>"+document.getElementsByTagName('label')[a_s_Mdp1Mdp2[1]+'Label'].innerHTML+"</strong> sont différents.<br />";i_nbErr++;i_nbErr++;}}
if(i_nbErr===0)
{document.forms[s_nomForm].elements['js'].value='1';if(a_cleCrypt)
p_cryptForm(s_nomForm,a_cleCrypt);return true;}
else
{if(i_nbErr===1)
var s_mess="l'erreur suivante";else
var s_mess="les erreurs suivantes";I_OUV_TEMP_TF=180+((i_nbErr+i_lgErr)*18);S_ERR_TEMP_TF='<p><strong>Vous devez corriger '+s_mess+' avant de poursuivre :</strong><br /><br />'+s_messErr
+'</p><form><p><input class="btnCnx" type="button" value="Corriger" onClick="fermerMb('+s_fctErreur+')" /></p></form>';return false;}}
function p_cryptForm(s_nomForm,a_i_cle)
{var o_form=document.forms[s_nomForm],a_o_crypt=new Array(),k=0;for(i=1,nb=o_form.elements.length;i<nb;i++)
{if(o_form.elements[i].type=='text'||o_form.elements[i].type=='password'||o_form.elements[i].type=='textarea')
{var s_crypt='',i_tab=0,s_champ=o_form.elements[i].value;for(j=0,n=s_champ.length;j<n;j++)
{if(i_tab>2)
i_tab=0;var i_crypt=0;i_crypt=s_champ.charCodeAt(j)+a_i_cle[i_tab];s_crypt+=i_crypt;i_tab++;}
o_form.elements[i].value=s_crypt;}}}
function p_setStatut(s_nomForm,s_champ,statut)
{switch(statut)
{case"correct":delete A_ERREUR_TF[s_nomForm][s_champ];document.getElementsByTagName('label')[s_champ+'Label'].className='labelCorrect';break;case"incorrect":document.getElementsByTagName('label')[s_champ+'Label'].className='labelIncorrect';break;case"supStatut":delete A_ERREUR_TF[s_nomForm][s_champ];document.getElementsByTagName('label')[s_champ+'Label'].className='';break;}}
function p_champVide(s_nomForm,s_champ,s_val,b_obligatoire)
{if(typeof A_ERREUR_TF[s_nomForm]==='undefined')
A_ERREUR_TF[s_nomForm]=new Array();if(s_val==='')
{if(b_obligatoire==true)
{p_setStatut(s_nomForm,s_champ,'incorrect');A_ERREUR_TF[s_nomForm][s_champ]='Le champ <strong>'+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+'</strong> doit-être renseignié.';}
else
p_setStatut(s_nomForm,s_champ,'supStatut');return true;}
else
return false;}
function p_distLev(a,b)
{var len1=a.length+1,len2=b.length+1,d=[[0]],I=0,i=0,c='',j=0,J=0;while(++i<len2)d[0][i]=i;i=0;while(++i<len1){J=j=0;c=a[I];d[i]=[i];while(++j<len2){d[i][j]=Math.min(d[I][j]+1,d[i][J]+1,d[I][J]+(c!=b[J]));++J;}
++I;}
if(d[len1-1][len2-1]<3)
return false;return true;}
function p_testVide(s_nomForm,s_val,a_param)
{p_setStatut(s_nomForm,a_param[1],"correct");}
function p_testChaineLg(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMin=a_param[3],i_tailleMax=a_param[4];var pos=0,cpt=0;while((pos=s_val.indexOf("\n",pos))>-1)
{pos=pos+1;cpt=cpt+1;}
var s_valLength=s_val.length+cpt;if(s_valLength<i_tailleMin||s_valLength>i_tailleMax)
{p_setStatut(s_nomForm,s_champ,"incorrect");if(i_tailleMin===0)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit se limiter à "+i_tailleMin+" caractères.";else if(i_tailleMin===i_tailleMax)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit compter "+i_tailleMin+" caractères.";else
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit compter entre "+i_tailleMin+" et "+i_tailleMax+" caractères.";}
else
p_setStatut(s_nomForm,s_champ,"correct");}
function p_testChaine(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMin=a_param[3],i_tailleMax=a_param[4];var s_valLength=s_val.length;if(s_valLength<i_tailleMin||s_valLength>i_tailleMax)
{p_setStatut(s_nomForm,s_champ,"incorrect");if(i_tailleMin===0)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit se limiter à "+i_tailleMin+" caractères.";else if(i_tailleMin===i_tailleMax)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit compter "+i_tailleMin+" caractères.";else
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit compter entre "+i_tailleMin+" et "+i_tailleMax+" caractères.";}
else
{p_setStatut(s_nomForm,s_champ,"correct");return true;}
return false;}
function p_testMail(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_taille=a_param[3];if(s_val.length>i_taille)
{p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]='Le champ <strong>'+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+'</strong> doit se limiter à '+i_taille+' caractères.';}
else if(!s_val.match(/^[a-z0-9_.-]+\@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/))
{p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Le format du champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> est incorrect.";}
else
p_setStatut(s_nomForm,s_champ,"correct");}
function p_testTel(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2];if(s_val.replace(/\./g,'').match(/^0[1-9][0-9]{8}$/))
p_setStatut(s_nomForm,s_champ,"correct");else
{p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Le format du champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> est incorrect.";}}
function p_testDate(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMin=a_param[3],i_tailleMax=a_param[4];if(s_val.replace(/\//g,'').match(/^[0-9]{8}$/))
p_setStatut(s_nomForm,s_champ,"correct");else
{p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Le champ format du champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> est incorrect.";}}
function p_testEntier(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMin=a_param[3],i_tailleMax=a_param[4];if(s_val.match(eval('/^[0-9]{'+i_tailleMin+','+i_tailleMax+'}$/')))
p_setStatut(s_nomForm,s_champ,"correct");else
{p_setStatut(s_nomForm,s_champ,"incorrect");if(i_tailleMin==i_tailleMax)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit être un nombre de "+i_tailleMin+" chiffres maximum.";else if(i_tailleMin==i_tailleMax)
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit être un nombre de "+i_tailleMin+" chiffres.";else
A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit être un nombre compris entre "+i_tailleMin+" et "+i_tailleMax+" chiffres.";}}
function p_testDecimal(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleTotale=a_param[3],i_tailleDec=a_param[4];i_tailleTotale=i_tailleTotale-i_tailleDec;if(s_val.replace(/ /g,'').match(eval('/^[0-9]{1,'+i_tailleTotale+'}(?:[\.|,][0-9]{1,'+i_tailleDec+'})?$/')))
p_setStatut(s_nomForm,s_champ,"correct");else
{p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong> doit compter "+i_tailleTotale+" chiffres maximun<br>suivi ou non de "+i_tailleDec+" chiffres après le séparateur qui peut être un point ou une virgule.";}}
function p_testMdp(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMin=a_param[3],i_tailleMax=a_param[4];if(testChaine(s_nomForm,s_val,a_param))
{var a_i_carTeste=new Array();i_cpt=s_val.length;var i_nbEntier=0,i_nbMaj=0,i_nbMin=0,i_nbAutre=0;for(i=0;i<i_cpt;i++)
{var i_chr=s_val.charCodeAt(i),b_existe=false,j=0,i_nb=a_i_carTeste.length;while(b_existe==false&&j<i_nb)
{if(a_i_carTeste&&i_chr==a_i_carTeste[j])
b_existe=true;j++;}
if(b_existe==false)
{a_i_carTeste[a_i_carTeste.length]=i_chr;if(i_chr>96&&i_chr<123)
i_nbMin++;else if(i_chr>64&&i_chr<91)
i_nbMaj++;else if(i_chr>47&&i_chr<58)
i_nbEntier++;else
i_nbAutre++;}}
i_nbSecu=i_cpt+i_nbMaj+i_nbMin+i_nbEntier+i_nbAutre+i_nbAutre;var i_min;if(i_nbMin<i_nbMaj)
i_min=i_nbMin;else
i_min=i_nbMaj;i_nbSecu+=i_min;if(i_min>i_nbEntier)
i_min=i_nbEntier;i_nbSecu+=(i_min*2);if(i_nbSecu<20)
{var s_messageErr="<strong>La sécurité de votre mot de passe est faible.</strong><br /><br />"
+"Pour des raisons de sécurité il est conseillé :<br />"
+"- de varier minuscules, majuscules, chiffres et autres caractères spéciaux,<br />"
+"- d'augmenter le nombre de caractères.<br /><br />"
+"<input type='button' style='cursor: pointer;' value='&nbsp; Fermer &nbsp;' onClick='fermerMb();' />";ModalBox('Niveau de sécurité du mot de passe',s_messageErr,150);}}}
function p_testFichier(s_nomForm,s_val,a_param)
{var s_champ=a_param[1],b_obligatoire=a_param[2],i_tailleMax=a_param[3],b_listeBlanche=a_param[4],a_fomat=a_param[5];var b_erreur=false;if(a_fomat!==null)
{var b_format=false,i=0,n=a_fomat.length;while(b_format===false&&i<n)
{if(s_val.indexOf(a_fomat[i])!==-1)
b_format=true;i++;}
if(b_format===false&&b_listeBlanche===true)
{b_erreur=true;p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Ce type de fichier n'est pas autorisé pour le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong>. Format autorisé :"+a_fomat+".";}
else if(b_format===true&&b_listeBlanche===false)
{b_erreur=true;p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="Ce type de fichier n'est pas autorisé pour le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong>. Format non autorisé :"+a_fomat+".";}}
if(b_erreur===false&&(o_fileSize=document.forms[s_nomForm].elements[s_champ].files))
{if(o_fileSize.item(0).fileSize>((i_tailleMax*1024)*1024))
{b_erreur=true;p_setStatut(s_nomForm,s_champ,"incorrect");A_ERREUR_TF[s_nomForm][s_champ]="la taille du fichier est limité à "+i_tailleMax+" Mo pour le champ <strong>"+document.getElementsByTagName('label')[s_champ+'Label'].innerHTML+"</strong>.";}}
if(b_erreur===false)
p_setStatut(s_nomForm,s_champ,"correct");}
function p_effaceForm(s_nomForm)
{var o_form=document.forms[s_nomForm];for(i=0,n=o_form.length;i<n;i++)
{var s_type=o_form[i].type;if(s_type==="text")
o_form[i].value="";else if(s_type==="select-one")
o_form[i].selectedIndex=0;else if(s_type==="checkbox")
document.searchForm[i].checked=false;}}
function p_formatTel(s_nomForm,s_idChamp)
{var s_valChamp=document.forms[s_nomForm].elements[s_idChamp].value.replace(/\./g,''),s_valChampF='',n=s_valChamp.length,j=0;if(n>2)
{e=parseInt(n/2);for(i=0;i<e;i++)
{s_valChampF+=s_valChamp.substr(j,2)+'.';j=j+2;}
if(n%2==0)
s_valChampF=s_valChampF.substr(0,n+e-1);else
s_valChampF+=s_valChamp.substr(n-1,1);document.forms[s_nomForm].elements[s_idChamp].value=s_valChampF;}}
function p_ajoutEvenTF(o_dom,s_even,s_fct,m_param1,m_param2)
{if(o_dom.addEventListener)
o_dom.addEventListener(s_even,function(){s_fct(m_param1,m_param2)},false);else
o_dom.attachEvent('on'+s_even,function(){s_fct(m_param1,m_param2)});}
function initTF(s_nomForm,s_typeEnvoi,a_onChange,a_logMdp,a_mdp1Mdp2,a_cleCrypt,s_fctErreur)
{A_ERREUR_TF[s_nomForm]=new Array();var o_form=document.forms[s_nomForm];o_form.onsubmit=function(){return s_typeEnvoi(s_nomForm,a_onChange,a_logMdp,a_mdp1Mdp2,a_cleCrypt,s_fctErreur)};for(i=0,nb=a_onChange.length;i<nb;i++)
{p_ajoutEvenTF(o_form.elements[a_onChange[i][1]],'change',testChamp,s_nomForm,a_onChange[i]);}}
function initOutilTF(s_even,s_idForm,s_fct,s_idChamp)
{p_ajoutEvenTF(document.forms[s_idForm].elements[s_idChamp],s_even,s_fct,s_idForm,s_idChamp);}
function testChamp(s_nomForm,a_param)
{var s_val=document.forms[s_nomForm].elements[a_param[1]].value.replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/\s{2,}/g,' ');if(!p_champVide(s_nomForm,a_param[1],s_val,a_param[2]))
a_param[0](s_nomForm,s_val,a_param);}
function setCorrect(s_nomForm,s_champ)
{if(typeof A_ERREUR_TF[s_nomForm]=='undefined')
A_ERREUR_TF[s_nomForm]=new Array();A_ERREUR_TF[s_nomForm][s_champ]='';p_setStatut(s_nomForm,s_champ,"correct");}
function testStatut()
{var s_val=document.forms['formIns'].elements['idS'].value;p_champVide('formIns','libelleS',s_val,true);if(s_val!=1)
document.getElementById('infoBat').style.display='none';else
testMan();}
function testMan()
{var b_check=false,j=1;while(document.forms['formIns'].elements['man'+j])
{if(document.forms['formIns'].elements['man'+j].checked)
{b_check=true;break;}
j++;}
if(b_check==true&&document.forms['formIns'].elements['idS'].value==1)
document.getElementById('infoBat').style.display='block';else
document.getElementById('infoBat').style.display='none';}
//]]>
