// Variables statiques
var alphaB = "abcdefghijklmnopqrstuvwxyz";
var courant = 0;
// Première lettre du mot
var prem="ccppaardesmtbfiglvohnjqukzwyx";
// Lettres suivantes
var suiv=new Array("niurstvlmcpbgfyd", "roealuisj", "ehoarilutcs", "eeaiours", "sntrumlcavzipgedfb", "aorfeilus", "eerlnauoit", "eaoiuy", "tlesnrmvocdbqafx", "eoua", "eayoi", "eealoiustd", "eeaobmipu", "tsedocaginfuq", "unirmsltycebp", "aeorliupsht", "u", "eeaoistrudmncgbl", "eoatsuipcq", "eeroasiuthy", "rrsiexntvlpacdfgbbomj", "eoiaru", "aae", "ieptachq", "eearoslmnpdc", "aaeouiz");
// syllabes
var syl=new Array;
syl[0]=new Array("u","u","i","r","p","n","s","l","c","f","t","in","b","y","d","h","m","e","g")
syl[1]=new Array("e","re","a","ou","le","o","i","li","on","ru","ri","ien","u","ra","eau","oi","la","an","ai","lou","leu","eil","reu","ran","ro","y","eu","au","ie","oy","ron","rou","rai","un","rez","roya","ui","lon","rin","en","ez","ho","in","lo","lu","ry","ue","ey","ion")
syl[2]=new Array("e","he","o","i","ou","ha","on","ri","a","han","u","re","la","hi","en","eu","le","hai","ho","roi","lai","ra","hez","ai","hau","ro","an","rou","hoi","lou","lo","un","y","oin","ru","in","hri","li","eau","hon","au","ay","hen","hu","reu","amp","heu","ien","oi","hou","hy","ez","rain","roy","ey","hre","ion","rin","ein","hry","lin","lu","rai","lan","lau","lez","loi","ran","ry")
syl[3]=new Array("e","e","i","an","u","on","eu","a","re","o","en","ou","roi","ra","ai","oi","ez","in","ro","rin","ron","ain","rai","ri","eau","au","ien","rou","y","ay","ei","oy","reu","rus")
syl[4]=new Array("t","t","n","s","m","l","u","f","x","au","r","h","a","p","y","z")
syl[5]=new Array("ai","i","e","a","o","u","on","an","ou","ran","ron","au","re","le","la","ri","eu","oi","leu","ra","lo","reu","roi","in","lanc","ro","et","lai","en","lu","ru","rai","rau","ren","um","uy","len","lez","li","rain","ez")
syl[6]=new Array("e","a","ran","i","ue","re","ou","es","o","le","ea","loi","ra","en","ri","lan","an","u","ueu","eo","lai","la","ui","eu","ro","ai","li","ion","lo","ez","ron","rou","rin","au","lou","ne","oi","et","leu","na","rai","rain","ret","roi","lau","lin","lu","ni","oin","reu","ru","uin","y")
syl[7]=new Array("o","u","i","e","a","on","au","eu","ai","y","ay","ou","an")
syl[8]=new Array("l","l","n","m","g","v","r","f","a","e","s","x")
syl[9]=new Array("e","e","ou","u","a","eu","oi","ean","an","on","o","ai","au","oin","uin","i")
syl[10]=new Array("i","o","e","a","le")
syl[11]=new Array("e","e","a","eu","i","u","ai","o","on","an","ou","et","oi","i","en","ion","ei","ez","y","in","oin","au","heu","oy","ay","eau","ain","ey","ia","ian","io","omb")
syl[12]=new Array("e","e","i","a","en","on","o","ai","ain","an","u","oi","eu","ou","et","au","eil","in","y","oin","ez","y","eau","oy","ol")
syl[13]=new Array("e","i","ou","a","u","o","oi","an","on","ai","om","eu","ez","en","au","et","ei","ain","oy","y","ay","ew","ey","in","ox")
syl[14]=new Array("n","u","nt","m","r","ui","b","i","h","p","f","s","c","ur","uir")
syl[15]=new Array("a","e","ou","re","i","o","ri","eu","u","ro","lu","le","en","la","ai","li","leu","au","eau","on","an","ren","oin","oi","rin","lein","lon","in","he","ain","ay","ha","lait","hi","lain","lei","ei","len","roi","ru","lau","lan","ret","loy","rou","ez","hes","om","loi","ra","reu","uy","ho","lat","run","y","ein","hra","hry","lo","hee","hent","hti","hton","lez","lin","ouil","rein","sau")
syl[16]=new Array("ue","ue","ui","u","uan","uoi","ua","ueu","uin","uai","uo","uon")
syl[17]=new Array("e","e","i","a","o","ai","on","eu","ou","u","an","en","oi","ei","eau","ez","ain","ieu","au","ein","oy","ey","he","hin","ha","in","hu","y")
syl[18]=new Array("e","u","on","a","i","an","ou","o","ai","en","eu","ain","oi","ez","in","au","eau","ei","cu","pe","ce","ple","que","ta","ti","tru","tu","ci","ein","tan","ca","y","tre","cru","ey","oin","pa","ty","te","toi","tro","co","cri","pi","cin","ho","phe","po","cha","chi","tra","tri")
syl[19]=new Array("e","e","re","ou","i","u","a","on","oi","ai","o","en","an","ri","ra","rou","ion","ro","rai","eu","in","ran","y","ez","eau","he","roi","ein","ru","ain","au","oy","rei","rin","ren","ron","eil","ay","reu","ry")
syl[20]=new Array("n","r","l")
syl[21]=new Array("e","i","ou","o","oi","a","an","en","re","ai","eu","re","ain","in","on","au","rai","u","ri","ran","oy","eau","ra","ron","ro")
syl[22]=new Array("a","e")
syl[23]=new Array("e","i","a","an","u")
syl[24]=new Array("eu","o")
syl[25]=new Array("e","a","u","on","an","i","in","o","oi")
// Syllabes de fin de mot
var fin=new Array;
fin[0]=new Array("s","r","it","is","in","int","ng","ut","ins","nt","l","ix","t","ux","ys","c")
fin[1]=new Array("le","re","les","res","out","e","our","li")
fin[2]=new Array("he","e","i","hes","es","re","her","hant","le","un","hez","ean","tre","les","sin","hers","ree","te")
fin[3]=new Array("e","es","ieu","re","eux","ent","is","eur","ain","ee","it","its")
fin[4]=new Array("ur","ux","urs","t","nt","rs","ut","u","mps","r","ns","uil","nts","ul","au","ant","nd","ants","l","uf")
fin[5]=new Array("fre","fle","fe","ond","aud","front")
fin[6]=new Array("e","ne","es","le","res","re","ue","nes","les","out","ues","ands","ion","nan","ner","ard","and","neur")
fin[7]=new Array("ez","er","amp","amps","iens","ors")
fin[8]=new Array("t","eu","eux","en","el","ent","s","l","ls","eds","ens","er","ed","e","n","x","on","ant","ers","nq","ons")
fin[9]=new Array("ours","a","an","at","ets","ouis")
fin[10]=new Array("ir","o")
fin[11]=new Array("le","e","us","s","les","es","a","eurs","dats","as","eur","eon","ler","er","ant","ait","ors","eil","lons","que","lait","on","ein","me","lez","anc","ets","lon","et","leurs","ee","lant","te","ons","ots","ais","ot","iers","ancs","ent","ieu","let","eins","eu","i","ier","is","ez","ie","ous")
fin[12]=new Array("e","ent","es","me","bre","mes","ain","ais","ents","our","er","ble","pe","ant","in","ier","i","is","it","ains","ir")
fin[13]=new Array("e","te","ce","tre","ge","es","ir","ant","ne","de","dre","se","si","neur","dit","des","tes","che","dant","ons","que","nant","i","ait","ger","s","dis","ez","ces","deur","it","see","tend","tent","ches","cor","ner","ton","dent","nent","al","at","drin","er","ie","tez","nes","tant","teau","fin","oux","re","sieur","tons","trer","on","nait","seur","tends","us","ze","gez","ier","ies","son")
fin[14]=new Array("us","n","ur","i","nt","ut","is","ir","rt","it","nd","nc","rts","m","urs","ix","up","irs","ue","int","in","ux","ups","rs","ie","u","ins","rd","l","nts","ts","uet","ng","urd","ms","ns")
fin[15]=new Array("le","e","res","ee","eau","les","re","long","in","pe","as","es","uis","ris","ens","os")
fin[16]=new Array("ue","ues","uin","uins","uant","uet","uais","uel","uer","uets")
fin[17]=new Array("e","te","es","re","is","ont","and","ait","ne","as","me","de","ce","be","ge","ai","eur","oit","ie","ons","reur","che","er","ent","uit","ands","ant","se","ain","ez","ois","on","tre","res","tes","os","mi","nes","dez","it","mes","eux","ir","tout","iant","nier","dre","ment","reaux","tu","bes","bre","mee","cher","ges","i","ieux","quoi","tant","ans","dent","ee","et","tyrs","al","ets","gent","mees","op","ais","des","end","le","oix","tez","tir","gie","oid","tis","aux","dant","oie","pre","tent","don","ends","les","litz","oits","onts","reau","an","at","geois","lant","ous","que")
fin[18]=new Array("se","e","te","sant","ses","es","on","que","ar","tre","ait","prit","sent","ser","ant","ent","sait","ons","tres","us","sants","crits","tes","eaux","sus","ee","tin","eau","er","poir","ard","sa","sis","aient","crit","seur","ert","ion","ions","sin","in")
fin[19]=new Array("e","re","es","te","ait","res","ant","ion","ion","er","tes","it","rie","our","on","eur","eurs","in","tre","eau","an","its","ez","el","ent","ons","tent","at","tant")
fin[20]=new Array("i","e","r","it","x","and","is","t","oi","el","eux","rs","ees","et","ez","es")
fin[21]=new Array("e","re","ant","ec","ait","es","oir","res","ez","ent","er","ons","ers","rant","ais","aux","ient","rait","ail","ants","rier","al","eur","eurs","eux")
fin[22]=new Array("e","er")
fin[23]=new Array("il","e","es","te","a")
fin[24]=new Array("ant","s","ez","on","ons")
fin[25]=new Array("ur","ar","on","e","ons","as")
// Génération de mot de passe: fonctions
function un_mot()
// Placer un mot dans l'INPUT "courant"
{
 if (document.mots.elements[courant].value == "")
 // Premier passage
 {
  if ((navigator.appName!="Netscape") || (navigator.appVersion.charAt(0)!="4"))
  {
   document.mots.elements[courant].style.backgroundColor = "#bacfd6";
  }
  document.mots.elements[courant].value = genere();
  courant++;
  if (courant == document.mots.elements.length) courant = 0;
 }
 else
 // Passage suivant
 {
  document.mots.elements[courant].value = "";
  if ((navigator.appName!="Netscape") || (navigator.appVersion.charAt(0)!="4"))
  {
   document.mots.elements[courant].style.backgroundColor = "#33ccff";
  }
  setTimeout("un_mot()", 99);
 }
 return;
}

function genere()
// Générer un mot
{
 var passe = "";
 var i;
 var a;
 while (passe.length < 5)
 {
  if (passe.length == 0)
  {
   a = choix(prem);
  }
  else
  {
   a = choix(suiv[alphaB.indexOf(passe.charAt(passe.length-1))]);
  }
 i = alphaB.indexOf(a);
 passe += a + syl[i][Math.floor(Math.random()*Math.random()*syl[i].length)];
 }
 a = choix(suiv[alphaB.indexOf(passe.charAt(passe.length-1))]);
 i = alphaB.indexOf(a);
 passe += a + fin[i][Math.floor(Math.random()*Math.random()*fin[i].length)];
 return passe;
}

function choix(lettres)
// Choix dans une chaîne de caractères
{
 return lettres.charAt(Math.floor(Math.random()*Math.random()*lettres.length));
}

function maju(s)
// Ajout aléatoire de majuscule
{
 var t = "";
 for (var i=0; i < s.length; i++)
 {
 if ((Math.floor(Math.random() * 11)) < 1)
  {
   t += s.charAt(i).toUpperCase();
  }
 else
  {
   t += s.charAt(i);
  }
 }
 return t;
}

// Conversion de date
function LaDate(TheDate)
{
var LesJours = new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
var LesMois = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");

TheDate.setYear(Y2K(TheDate.getYear()));

var Retour = LesJours[TheDate.getDay()] + " " + TheDate.getDate();
if (TheDate.getDate()==1)
{
 Retour += "<FONT SIZE=-1><SUP><U>er</U></SUP></FONT>";
}
Retour += " " + LesMois[TheDate.getMonth()] + " " + Y2K(TheDate.getYear());

return Retour;
}

function Y2K(An)
// Correction de l’année avec pivot en 1990
{
 if (An < 90)
 {
  An += 2000;
 }
 else
 {
  if (An < 190)
  {
   An += 1900;
  }
 }
return An;
}
