//D'autres scripts sur http://www.toutjavascript.com
//Si vous utilisez ce script, merci de m'avertir !  < <voir adresse mail sur site> >
//Auteur original :Olivier Hondermarck  <<voir adresse mail sur site>>
//Modifs compatibilité Netscape 6/Mozilla : Cédric Lamalle 09/2001 <cedric\@cpac.embrapa.br>
//Correction Mac IE5 (Merci Fred)

var IB=new Object;
var posX=0;posY=0;
var xOffset=10;yOffset=10;
function AffBulle(texte) {
  contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE>&nbsp;";
  var finalPosX=posX-xOffset;
  if (finalPosX<0) finalPosX=0;
  if (document.layers) {
    document.layers["bulle"].document.write(contenu);
    document.layers["bulle"].document.close();
    document.layers["bulle"].top=posY+yOffset;
    document.layers["bulle"].left=finalPosX;
    document.layers["bulle"].visibility="show";}
  if (document.all) {
    //var f=window.event;
    //doc=document.body.scrollTop;
    bulle.innerHTML=contenu;
    document.all["bulle"].style.top=posY+yOffset;
    document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
    document.all["bulle"].style.visibility="visible";
  }
  //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  else if (document.getElementById) {
    document.getElementById("bulle").innerHTML=contenu;
    document.getElementById("bulle").style.top=posY+yOffset;
    document.getElementById("bulle").style.left=finalPosX;
    document.getElementById("bulle").style.visibility="visible";
  }
}
function getMousePos(e) {
  if (document.all) {
  posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
  posY=event.y+document.body.scrollTop;
  }
  else {
  posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
  posY=e.pageY; 
  }
}
function HideBulle() {
	if (document.layers) {document.layers["bulle"].visibility="hide";}
	if (document.all) {document.all["bulle"].style.visibility="hidden";}
	else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";}
}

function InitBulle(ColTexte,ColFond,ColContour,NbPixel) {
	IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
	if (document.layers) {
		window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
		document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>");
	}
	if (document.all) {
		document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
		document.onmousemove=getMousePos;
	}
	//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
	else if (document.getElementById) {
	        document.onmousemove=getMousePos;
	        document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
	}

}

function configpro(croix) {
if (!croix) {
div_ircops.style.display= 'none';
div_vhosts.style.display= 'none';
div_pseudos.style.display= 'none';
div_chans.style.display= 'none';
div_wana.style.display= 'none';
div_mots.style.display= 'none';
div_reseau.style.display= 'none';

ircops.circops.checked=false;
vhosts.cvhosts.checked= false;
pseudos.cpseudos.checked= false;
chans.cchans.checked= false;
wana.cwana.checked= false;
mots.cmots.checked= false;
reseau.creseau.checked= false;

ircops.circops.disabled= true;
vhosts.cvhosts.disabled= true;
pseudos.cpseudos.disabled= true;
chans.cchans.disabled= true;
wana.cwana.disabled= true;
mots.cmots.disabled= true;
reseau.creseau.disabled= true;
}
else {
ircops.circops.disabled= false;
vhosts.cvhosts.disabled= false;
pseudos.cpseudos.disabled= false;
chans.cchans.disabled= false;
wana.cwana.disabled= false;
mots.cmots.disabled= false;
reseau.creseau.disabled= false;
 }

}

var NomHost=new Array();
var Port=new Array();
var PassCo=new Array();
var PassRe=new Array();
var Vhost=new Array();
var min,max;

function ShowHide(Div)
 {
  Div.style.display= Div.style.display=='none'? 'InLine' : 'none';
 }
 
 function show(Div,yes) {
 Div.style.display= yes? 'Inline' : 'none';
 }

 function reloader() {
 if (confirm("Attention, vous allez effacer tout ce que vous avez écrit\nou modifié dans ce formulaire.\n\nEst-ce bien ce que vous souhaitez?")) document.location.reload();
 }

function ajoute_ircop() {
var exp=/^[\w-]+$/;
var override= ircops.override.checked? 1 : 0;
var reboot= ircops.reboot.checked? 1 : 0;

if (!exp.exec(ircops.login.value)) { alert("Caractères interdits dans le login!"); ircops.login.focus(); return; }
if (!exp.exec(ircops.passe.value)) { alert("Caractères interdits dans le passe!"); ircops.passe.focus(); return; }

if (ircops.login.value==serveur.login.value) { alert("Ce login est déjà celui de l'administrateur root!"); ircops.login.focus(); return; }

for (var i=0; i<ircops.liste.length; i++) 
 if (ircops.liste.options[i].text==ircops.login.value) { 
   alert("Le login '"+ircops.login.value+"' est déjà défini!"); return; }
 
i=ircops.liste.length++; 
ircops.liste.options[i].text=ircops.login.value;
ircops.liste.options[i].value=ircops.passe.value;
ircops.liste.options[i].id=ircops.type.selectedIndex + 8 * override + 16 * reboot;

ircops.liste.selectedIndex=ircops.liste.length-1;
}

function enleve_ircop(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<ircops.liste.length-1; i++) {
 ircops.liste.options[i].text=ircops.liste.options[i+1].text; 
 ircops.liste.options[i].value=ircops.liste.options[i+1].value; 
 ircops.liste.options[i].id=ircops.liste.options[i+1].id; 
  }
ircops.liste.length--;
if (flag==1) change_ircop(ircops.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_ircop(id) {
if (id==-1) ircops.login.value=ircops.passe.value='';
 else { 
ircops.login.value= ircops.liste.options[id].text;
ircops.passe.value= ircops.liste.options[id].value;
ircops.type.selectedIndex= ircops.liste.options[id].id & 7;
ircops.override.checked = (ircops.liste.options[id].id & 8) != 0;
ircops.reboot.checked = (ircops.liste.options[id].id & 16) != 0;
 }
}

function maj_ircop(id) {
var exp=/^[\w-]+$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }
if (!exp.exec(ircops.login.value)) { alert("Caractères interdits dans le login!"); ircops.login.focus(); return; }
if (!exp.exec(ircops.passe.value)) { alert("Caractères interdits dans le passe!"); ircops.passe.focus(); return; }

enleve_ircop(id,0); ajoute_ircop();
}

function ajoute_vhost() {
var exp=/^[\w-]+$/;
var host=/^[\w-.]+$/;

if (!exp.exec(vhosts.login.value)) { alert("Caractères interdits dans le login!"); vhosts.login.focus(); return; }
if (!exp.exec(vhosts.passe.value)) { alert("Caractères interdits dans le passe!"); vhosts.passe.focus(); return; }
if (!host.exec(vhosts.vhost.value)) { alert("Caractères interdits dans le vhost!"); vhosts.vhost.focus(); return; }

for (var i=0; i<vhosts.liste.length; i++) 
 if (vhosts.liste.options[i].text==vhosts.login.value) { 
   alert("Le login '"+vhosts.login.value+"' est déjà défini!"); return; }
 
i=vhosts.liste.length++; 
vhosts.liste.options[i].text=vhosts.login.value;
vhosts.liste.options[i].value=vhosts.passe.value;
Vhost[vhosts.login.value]=vhosts.vhost.value;

vhosts.liste.selectedIndex=vhosts.liste.length-1;
}

function enleve_vhost(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<vhosts.liste.length-1; i++) {
 vhosts.liste.options[i].text=vhosts.liste.options[i+1].text; 
 vhosts.liste.options[i].value=vhosts.liste.options[i+1].value; 
// vhosts.liste.options[i].id=vhosts.liste.options[i+1].id; 
  }
vhosts.liste.length--;
if (flag==1) change_vhost(vhosts.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_vhost(id) {
if (id==-1) vhosts.login.value=vhosts.passe.value='';
 else { 
vhosts.login.value= vhosts.liste.options[id].text;
vhosts.passe.value= vhosts.liste.options[id].value;
vhosts.vhost.value=Vhost[vhosts.login.value];
// vhosts.type.selectedIndex= vhosts.liste.options[id].id;
 }
}

function maj_vhost(id) {
var exp=/^[\w-]+$/;
var host=/^[\w-.]+$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }
if (!exp.exec(vhosts.login.value)) { alert("Caractères interdits dans le login!"); vhosts.login.focus(); return; }
if (!exp.exec(vhosts.passe.value)) { alert("Caractères interdits dans le passe!"); vhosts.passe.focus(); return; }
if (!host.exec(vhosts.vhost.value)) { alert("Caractères interdits dans le vhost!"); vhosts.vhost.focus(); return; }

enleve_vhost(id,0); ajoute_vhost();
}
 
function ajoute_pseudo() {
var exp=/^[A-Za-z\[\]{}|`^\\][\w-\[\]{}|`^\\*]*$/;

if (!exp.exec(pseudos.pseudo.value)) { alert("Caractères interdits dans le masque!"); pseudos.pseudo.focus(); return; }

for (var i=0; i<pseudos.liste.length; i++) 
 if (pseudos.liste.options[i].text==pseudos.pseudo.value) { 
   alert("Le masque '"+pseudos.pseudo.value+"' est déjà défini!"); return; }
 
i=pseudos.liste.length++; 
pseudos.liste.options[i].text=pseudos.pseudo.value;
pseudos.liste.options[i].value=pseudos.raison.value;

pseudos.liste.selectedIndex=pseudos.liste.length-1;
}

function enleve_pseudo(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<pseudos.liste.length-1; i++) {
 pseudos.liste.options[i].text=pseudos.liste.options[i+1].text; 
 pseudos.liste.options[i].value=pseudos.liste.options[i+1].value; 
  }
pseudos.liste.length--;
if (flag==1) change_pseudo(pseudos.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_pseudo(id) {
if (id==-1) pseudos.pseudo.value=pseudos.raison.value='';
 else { 
pseudos.pseudo.value= pseudos.liste.options[id].text;
pseudos.raison.value= pseudos.liste.options[id].value;
 }
}

function maj_pseudo(id) {
var exp=/^[A-Za-z\[\]{}|`^\\][\w-\[\]{}|`^\\*]*$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }
if (!exp.exec(pseudos.pseudo.value)) { alert("Caractères interdits dans le masque!"); pseudos.pseudo.focus(); return; }

enleve_pseudo(id,0); ajoute_pseudo();
}

function ajoute_chan() {
var exp=/^(#|\*)[^, ]+$/;

if (!exp.exec(chans.chan.value)) { alert("Masque de chan non conforme!"); chans.chan.focus(); return; }

for (var i=0; i<chans.liste.length; i++) 
 if (chans.liste.options[i].text==chans.chan.value) { 
   alert("Le masque '"+chans.chan.value+"' est déjà défini!"); return; }
 
i=chans.liste.length++; 
chans.liste.options[i].text=chans.chan.value;
chans.liste.options[i].value=chans.raison.value;

chans.liste.selectedIndex=chans.liste.length-1;
}

function enleve_chan(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<chans.liste.length-1; i++) {
 chans.liste.options[i].text=chans.liste.options[i+1].text; 
 chans.liste.options[i].value=chans.liste.options[i+1].value; 
  }
chans.liste.length--;
if (flag==1) change_chan(chans.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_chan(id) {
if (id==-1) chans.chan.value=chans.raison.value='';
 else { 
chans.chan.value= chans.liste.options[id].text;
chans.raison.value= chans.liste.options[id].value;
 }
}

function maj_chan(id) {
var exp=/^(#|\*)[^, ]+$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }

if (!exp.exec(chans.chan.value)) { alert("Masque de chan non conforme!"); chans.chan.focus(); return; }
enleve_chan(id,0); ajoute_chan();
}

function ajoute_offi() {
var exp=/^#![^,! ]+!$/;

if (!exp.exec(wana.chan.value)) { alert("Masque de chan non conforme!\nUn channel officiel doit être sous la forme: #!chan!"); wana.chan.focus(); return; }

for (var i=0; i<wana.liste.length; i++) 
 if (wana.liste.options[i].text==wana.chan.value) { 
   alert("Le masque '"+wana.chan.value+"' est déjà défini!"); return; }
 
i=wana.liste.length++; 
wana.liste.options[i].text=wana.chan.value;
wana.liste.options[i].value=wana.topic.value;

wana.liste.selectedIndex=wana.liste.length-1;
}

function enleve_offi(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<wana.liste.length-1; i++) {
 wana.liste.options[i].text=wana.liste.options[i+1].text; 
 wana.liste.options[i].value=wana.liste.options[i+1].value; 
  }
wana.liste.length--;
if (flag==1) change_offi(wana.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function maj_offi(id) {
var exp=/^#![^,! ]+!$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }

if (!exp.exec(wana.chan.value)) { alert("Masque de chan non conforme!"); wana.chan.focus(); return; }
enleve_offi(id,0); ajoute_offi();
}

function change_offi(id) {
if (id==-1) wana.chan.value='';
 else {
wana.chan.value= wana.liste.options[id].text;
wana.topic.value= wana.liste.options[id].value;
 }
}

function ajoute_mot() {

for (var i=0; i<mots.liste.length; i++) 
 if (mots.liste.options[i].text==mots.mot.value) { 
   alert("Le masque '"+mots.mot.value+"' est déjà défini!"); return; }
 
i=mots.liste.length++; 
mots.liste.options[i].text=mots.mot.value;
mots.liste.options[i].value=mots.remplace.value;

mots.liste.selectedIndex=mots.liste.length-1;
}

function enleve_mot(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<mots.liste.length-1; i++) {
 mots.liste.options[i].text=mots.liste.options[i+1].text; 
 mots.liste.options[i].value=mots.liste.options[i+1].value; 
  }
mots.liste.length--;
if (flag==1) change_mot(mots.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_mot(id) {
if (id==-1) mots.mot.value=mots.remplace.value='';
 else { 
mots.mot.value= mots.liste.options[id].text;
mots.remplace.value= mots.liste.options[id].value;
 }
}

function maj_mot(id) {

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }

enleve_mot(id,0); ajoute_mot();
}

function ajoute_serv() {
var exp=/^[\w-.]+$/;
var phrase=/^[^,]*$/;

if (!exp.exec(serveurs.serveur.value)) { alert("Caractères interdits dans le nom du serveur!"); serveurs.serveur.focus(); return; }

if (serveurs.serveur.value.indexOf(".")<0) { alert("Un nom de serveur doit obligatoirement comporter au moins un point!");
serveurs.serveur.focus(); return;
}

for (var i=0; i<serveurs.liste.length; i++) 
 if (serveurs.liste.options[i].text==serveurs.serveur.value) { 
   alert("Le serveur '"+serveurs.serveur.value+"' est déjà défini!"); return; }
 
i=serveurs.liste.length++; 
serveurs.liste.options[i].text=serveurs.serveur.value;

var X1= serveurs.hub.checked? 2 : 0;
var X2= serveurs.auto.checked? 1 : 0;

serveurs.liste.options[i].id= X1+X2;
NomHost[serveurs.serveur.value]=serveurs.hostname.value;
Port[serveurs.serveur.value]=serveurs.port.value;
PassCo[serveurs.serveur.value]=serveurs.passco.value;
PassRe[serveurs.serveur.value]=serveurs.passre.value;

serveurs.liste.selectedIndex=serveurs.liste.length-1;
}

function enleve_serv(id,flag) { 
if (id==-1) { alert("Il n'y a rien à enlever!"); return; }
for (var i=id; i<serveurs.liste.length-1; i++) {

 serveurs.liste.options[i].text=serveurs.liste.options[i+1].text; 
 serveurs.liste.options[i].id=serveurs.liste.options[i+1].id; 
  }
serveurs.liste.length--;
if (flag==1) change_serv(serveurs.liste.selectedIndex,1); // On ne le fait pas si M.A.J.
}

function change_serv(id) {
if (id==-1) serveurs.serveur.value=serveurs.hostname.value=serveurs.port.value=serveurs.passre.value=serveurs.passco.value='';
 else { 
serveurs.serveur.value= serveurs.liste.options[id].text;
serveurs.hostname.value=NomHost[serveurs.serveur.value];
serveurs.port.value=Port[serveurs.serveur.value];
serveurs.passco.value=PassCo[serveurs.serveur.value];
serveurs.passre.value=PassRe[serveurs.serveur.value];
serveurs.hub.checked= (serveurs.liste.options[id].id & 2)==2;
serveurs.auto.checked= (serveurs.liste.options[id].id & 1)==1;
 }
}

function maj_serv(id) {
var exp=/^[\w-.]+$/;
var phrase=/^[^,]*$/;

if (id==-1) { alert("Sélectionnez un élément à mettre à jour!"); return; }

if (!exp.exec(serveurs.serveur.value)) { alert("Caractères interdits dans le nom du serveur!"); serveurs.serveur.focus(); return; }

if (serveurs.serveur.value.indexOf(".")<0) { alert("Un nom de serveur doit obligatoirement comporter au moins un point!");
serveurs.serveur.focus(); return;
}

enleve_serv(id,0); ajoute_serv();
}

function generer() {
var keys='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var i,ckey1,ckey2,ckey3;

if (document.reseau.ckey1.value!='' && document.reseau.ckey2.value!='' && document.reseau.ckey3.value!='' && 
 !confirm("Attention, vous allez écraser les anciennes cloak keys.\nEst-ce bien ce que vous souhaitez?")) 
   return false;

for (i=0,ckey1=''; i<15; i++)
 ckey1 += keys.charAt(62*Math.random());

 for (i=0,ckey2=''; i<15; i++)
 ckey2 += keys.charAt(62*Math.random());
 
 for (i=0,ckey3=''; i<15; i++)
 ckey3 += keys.charAt(62*Math.random());
 
 document.reseau.ckey1.value= ckey1;
 document.reseau.ckey2.value= ckey2;
 document.reseau.ckey3.value= ckey3;
   
return false;
}

function verifports(x) {
var p=/^(\d+)(-\d+)?$/;
var a,b;

if (!p.exec(x)) return false;
a=RegExp.$1;
if (a>65535) return false;
min=max=a;
if (RegExp.$2 != '') { b= RegExp.$2;
b=-b;
if (b>65535 || b<a) return false;
max=b;
}
return true;
}

function valider() {
var email=/^[\w-.]+@[\w-.]+$/;
var exp=/^[\w-]+$/;
var pseudo=/^[A-Za-z\[\]{}|`^\\][\w-\[\]{}|`^\\]*$/;
var serveur=/^[\w-.]+$/;
var ip=/^[0-9.]+$/;
var entier=/^\d+$/;
var canal=/^(#[^, ]+)?$/;
var ckey=/^[a-zA-Z0-9]+$/;
var userho=/^[\w-]+@[\w-.]+$/;
var officiel=/^#![^,! ]+!$/;

if (!serveur.exec(document.serveur.servername.value)) { alert("Caractères interdits dans le nom du serveur!");
document.serveur.servername.focus(); return false;
}
if (document.serveur.servername.value.indexOf(".")<0) { alert("Un nom de serveur doit obligatoirement comporter au moins un point!");
document.serveur.servername.focus(); return false;
}
if (ip.exec(document.serveur.servername.value)) { alert("Mettez un VRAI NOM de serveur, pas une adresse ip.\nExemple: rototo.ratata.com.");
document.serveur.servername.focus(); return false;
}
if (!entier.exec(document.serveur.clones.value)) { alert("Mettez un nombre entier dans le champ 'clones'!");
document.serveur.clones.focus(); return false;
}
if (!exp.exec(document.serveur.login.value)) { alert("Caractères interdits dans le login admin!");
document.serveur.login.focus(); return false;
}
if (!exp.exec(document.serveur.passe.value)) { alert("Caractères interdits dans le passe admin!");
document.serveur.passe.focus(); return false;
}
if (!pseudo.exec(document.serveur.pseudo.value)) { alert("Pseudo de l'admin non conforme!");
document.serveur.pseudo.focus(); return false;
}
if (!email.exec(document.serveur.email.value)) { alert("L'adresse e-mail de l'administrateur est incorrecte!"); 
document.serveur.email.focus(); return false; 
}
if (!verifports(document.serveur.ports.value)) { alert("Port ou liste de ports incorrects!"); 
document.serveur.ports.focus(); return false; 
}
if (document.ircops.liste.length>0 && document.serveur.passe.value=='admin') { alert("Si vous êtes plusieurs à gérer le serveur, il n'est pas recommandé\nde laisser 'admin' comme passe administrateur!");
document.serveur.passe.focus(); return false;
} 
if (!exp.exec(document.serveur.passrestart.value)) { alert("Caractères interdits dans le passe de restart!");
document.serveur.passrestart.focus(); return false;
}
if (!exp.exec(document.serveur.passdie.value)) { alert("Caractères interdits dans le passe de die!");
document.serveur.passdie.focus(); return false;
}
if (!canal.exec(document.serveur.accueil.value)) { alert("Erreur dans la syntaxe du canal d'accueil!\nMettez un # devant le nom");
document.serveur.accueil.focus(); return false;
}
if (officiel.exec(document.serveur.accueil.value) && wana.liste.length>0) { 

for (var i=0,bonwana=false; i<wana.liste.length; i++) 
 bonwana |= (wana.liste.options[i].text==document.serveur.accueil.value); 

if (!bonwana) {
alert("Le canal d'accueil '"+document.serveur.accueil.value+"' ne figure pas\ndans la liste des canaux officiels!");
document.serveur.accueil.focus(); return false;
 }
}
if (!exp.exec(document.serveur.prefix.value)) { alert("Erreur dans la syntaxe du préfixe!");
document.serveur.prefix.focus(); return false;
}
if (!entier.exec(document.reseau.numeric.value)) { alert("Mettez un nombre entier dans le champ 'numeric'!");
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.numeric.focus(); return false;
} 
if (!serveur.exec(document.reseau.network.value)) { alert("Nom de votre réseau pas conforme!");
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.network.focus(); return false;
} 
if (document.reseau.service.value!='' && (!serveur.exec(document.reseau.service.value) || document.reseau.service.value.indexOf('.')==-1)) { alert("Nom de vos services d'enregistrement pas conforme (doit contenir un point au moins)!");
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.service.focus(); return false;
} 
if (document.reseau.stats.value!='' && (!serveur.exec(document.reseau.stats.value) || document.reseau.stats.value.indexOf('.')==-1)) { alert("Nom de vos services de stats pas conforme (doit contenir un point au moins)!");
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.stats.focus(); return false;
} 
if (serveurs.liste.length>0 && !ckey.exec(document.reseau.ckey1.value)) { alert("Cloak key 1 non conforme!"); 
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.ckey1.focus(); return false;
}
if (serveurs.liste.length>0 && !ckey.exec(document.reseau.ckey2.value)) { alert("Cloak key 2 non conforme!"); 
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.ckey2.focus(); return false;
}
if (serveurs.liste.length>0 && !ckey.exec(document.reseau.ckey3.value)) { alert("Cloak key 3 non conforme!"); 
show(div_reseau,document.reseau.creseau.checked=true); document.reseau.ckey3.focus(); return false;
}

if (document.anope.canope.checked) {

if (document.reseau.service.value=='') { alert("Veuillez déclarer le nom de votre service de channel!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.reseau.service.focus(); return false;
 }
 if (!userho.exec(document.anope.userhost.value)) { alert("Le userhost des robots de service n'est pas conforme!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.userhost.focus(); return false;
 }

if (!entier.exec(document.anope.port.value)) { alert("Le port de link doit être un entier!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.port.focus(); return false;
 }

if (document.anope.port.value<min || document.anope.port.value>max) { alert("Le port de link doit être compris entre "+min+" et "+max+"!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.port.focus(); return false;
 }

if (!exp.exec(document.anope.passe.value)) { alert("Le passe de link n'est pas conforme!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.passe.focus(); return false;
 }

if (!pseudo.exec(document.anope.root1.value)) { alert("Vous devez mettre un pseudo conforme en root1 (obligatoire)"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.root1.focus(); return false;
 }

if (document.anope.root2.value!='' && !pseudo.exec(document.anope.root2.value)) { alert("Vous devez mettre un pseudo conforme en root2!"); 
 show(div_reseau,document.reseau.creseau.checked=true); document.anope.root2.focus(); return false;
 }
}

if (document.wana.raison.value.indexOf('"')>-1) { alert("Pas de guillemets SVP!!");  show(div_wana,document.wana.cwana.checked=true); document.wana.raison.focus(); return false; }

document.f.serveur.value=document.f.ircops.value=document.f.vhosts.value=document.f.pseudos.value=document.f.chans.value=document.f.wana.value=document.f.mots.value=document.f.serveurs.value=document.f.anope.value='';

document.f.serveur.value=document.serveur.servername.value+'; '+escape(document.serveur.description.value)+'; '+document.serveur.clones.value+'; '+document.serveur.login.value+'; '+document.serveur.passe.value+'; '+document.serveur.pseudo.value+'; '+document.serveur.email.value+'; '+document.serveur.passrestart.value+'; '+document.serveur.passdie.value+'; '+document.serveur.accueil.value+'; '+escape(document.serveur.quitmes.value)+'; '+document.serveur.prefix.value+'; '+document.serveur.ports.value;
// servername description clones login passe pseudo email passrestart passdie accueil quitmes prefix ports
var S,i;

for (i=0; i<document.ircops.liste.length; i++) {
 S= document.ircops.liste.options[i].text+':'+document.ircops.liste.options[i].value+':'+document.ircops.liste.options[i].id;
 if (document.f.ircops.value!='') document.f.ircops.value+='; ';
 document.f.ircops.value+=S;
 }

for (i=0; i<document.vhosts.liste.length; i++) {
var vh=document.vhosts.liste.options[i].text;
 S= vh+':'+document.vhosts.liste.options[i].value+':'+Vhost[vh];
 if (document.f.vhosts.value!='') document.f.vhosts.value+='; ';
 document.f.vhosts.value+=S;
 }
 
for (i=0; i<document.pseudos.liste.length; i++) {
 S= document.pseudos.liste.options[i].text+':'+escape(document.pseudos.liste.options[i].value);
 if (document.f.pseudos.value!='') document.f.pseudos.value+='; ';
 document.f.pseudos.value+=S;
 } 
 
for (i=0; i<document.chans.liste.length; i++) {
 S= escape(document.chans.liste.options[i].text)+':'+escape(document.chans.liste.options[i].value);
 if (document.f.chans.value!='') document.f.chans.value+='; ';
 document.f.chans.value+=S;
 } 

document.f.raison.value=escape(document.wana.raison.value);
 
for (i=0; i<document.wana.liste.length; i++) {
 S= escape(document.wana.liste.options[i].text)+':'+escape(document.wana.liste.options[i].value);
 if (document.f.wana.value!='') document.f.wana.value+='; ';
 document.f.wana.value+=S;
 } 
 
for (i=0; i<document.mots.liste.length; i++) {
 S= escape(document.mots.liste.options[i].text)+':'+escape(document.mots.liste.options[i].value);
 if (document.f.mots.value!='') document.f.mots.value+='; ';
 document.f.mots.value+=S;
 } 

document.f.reseau.value=document.reseau.network.value+'; '+document.reseau.numeric.value+'; '+document.reseau.service.value+'; '+document.reseau.stats.value+'; '+document.reseau.ckey1.value+'; '+document.reseau.ckey2.value+'; '+document.reseau.ckey3.value;
 // network numeric service stats ckey1 ckey2 ckey3

for (i=0; i<document.serveurs.liste.length; i++) {
var x=document.serveurs.liste.options[i].text;
 S= x+':'+NomHost[x]+':'+Port[x]+':'+PassCo[x]+':'+PassRe[x]+':'+document.serveurs.liste.options[i].id;
 if (document.f.serveurs.value!='') document.f.serveurs.value+='; ';
 document.f.serveurs.value+=S;
 } 
 
if (document.anope.canope.checked) document.f.anope.value= escape(document.anope.description.value)+'; '+document.anope.userhost.value+'; '+document.anope.port.value+'; '+document.anope.passe.value+'; '+document.anope.root1.value+'; '+document.anope.root2.value;
// else document.f.anope.value='';
 // description userhost port passe root1 root2

if (document.linux.oui.checked) document.f.linux.value=1; else document.f.linux.value='';

return true;
}

