var unicode0a9="\u002d\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039";  // - et 0 a 9
var unicodeAZ="\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a" // de a a z  ;
var extensions= new Array();
var requeteNDD= new  requeteDomaine('requeteNDD') ;
var msg1="Le nom de domaine doit être composé de 2 à 63 caractères maximum.";
var msg1b="Le nom de domaine ou sa forme ACE string doivent &ecirc;tre compos&eacute;s 2 &agrave; 63 caract&egrave;res maximum.";
var msg2="Les seuls caract&egrave;res autoris&eacute;s sont ceux de l'un des alphabets latin, grec, ou cyrillique, ainsi que le tiret '-', et les chiffres 0 &agrave; 9. Les alphabets ne peuvent &ecirc;tre combin&eacute;s entre eux." ;
var msgAlphabetAZ09="Les seuls caract&egrave;res autoris&eacute;s pour l'extension choisie sont [a-z][0-9] et le tiret '-'." ;
var msgXN = "le nom idn ne doit pas commencer par xn--";
var msgtiret = "Aucun nom ne peut commencer ni se terminer par un tiret.";
var msgtiret34 = "Les noms de domaine ne peuvent pas contenir de trait d'union (-) en 3e et 4e position simultan&eacute;ment, &agrave; moins qu'ils contiennent &eacute;galement un trait d'union en seconde position";
var msgtiret34b = "Les noms de domaine ne peuvent pas contenir de trait d'union (-) en 3e et 4e position simultan&eacute;ment.";

var rulesStandard = new Array();  //r�gles de syntaxe les plus courantes
rulesStandard[0]= new rule("regexp","^.{2,63}$",false,msg1,true);  // v?fication de la longueur de la chaine entre 2 et 63
rulesStandard[1]= new rule("regexp","^-|-$",false,msgtiret,false);  // le nom ne doit pas commencer ou se terminer par un tiret -
rulesStandard[2]= new rule("regexp","^..--",false,msgtiret34b,false);  // le nom ne doit pas contenir un tiret en 3e et 4e position 0

var rulesAlphabetStandard = new Array();  //r�gles de syntaxe les plus courantes pour l'alphabet
rulesAlphabetStandard[0] = new rule("regexp","^["+unicode0a9+unicodeAZ+"]{2,63}$",false,msgAlphabetAZ09,true);  // contient l'un des alphabets sur la chaine source

var rulesNotairesFR = new Array();
rulesNotairesFR[0] = new rule("regexp","(^[a-z\-\.]{1,30}[.]{1}[a-zA-Z\-\.]{1,30})$",false,false,true);  // exemple: toto-toto.toto.notaires.fr

extensions["fr"] = new extensionNNR("fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["com"] = new extensionNNR("com",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["eu"] = new extensionNNR("eu",true,false);
extensions["eu"].alphabets[0] = new charsetTable("Latin (Europe Occidentale)",unicode0a9+unicodeAZ+"\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF"+"\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0135\u0137\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u0161\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u0219\u021B");
extensions["eu"].alphabets[1] = new charsetTable("Grec",unicode0a9+"\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE"+"\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7");
extensions["eu"].alphabets[2] = new charsetTable("Cyrillique (Europe de l'Est)",unicode0a9+"\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F");
extensions["eu"].rules[0]= new rule("regexp","^.{2,63}$",false,msg1b,true);  // v?fication de la longueur de la chaine entre 2 et 63
extensions["eu"].rules[1]= new rule("regexp","^.{2,63}$",true,msg1b,true);  // v?fication de la longueur de la chaine encod?en ACE entre 2 et 63
extensions["eu"].rules[2]= new rule("regexp","^xn--",false,msgXN,false);  // le nom idn ne doit pas commencer par xn--
extensions["eu"].rules[3]= new rule("regexp","^-|-$",false,msgtiret,false);  // le nom ne doit pas commencer ou se terminer par un tiret -
extensions["eu"].rules[4]= new rule("regexp","^.[^-]--",false,msgtiret34,false);  // le nom ne doit pas contenir un tiret en 3e et 4e position sauf si tiret en 2e
extensions["eu"].alphabets[0].rules[0]= new rule("regexp","^(["+extensions["eu"].alphabets[0].chars+"]){2,63}$",false,msg2,true);  // verif sur l'aphabet
extensions["eu"].alphabets[1].rules[0]= new rule("regexp","^(["+extensions["eu"].alphabets[1].chars+"]){2,63}$",false,msg2,true);  // verif sur l'aphabet
extensions["eu"].alphabets[2].rules[0]= new rule("regexp","^(["+extensions["eu"].alphabets[2].chars+"]){2,63}$",false,msg2,true);  // verif sur l'aphabet
extensions["net"] = new extensionNNR("net",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["org"] = new extensionNNR("org",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["biz"] = new extensionNNR("biz",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["info"] = new extensionNNR("info",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["asso.fr"] = new extensionNNR("asso.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["re"] = new extensionNNR("re",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["be"] = new extensionNNR("be",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["mobi"] = new extensionNNR("mobi",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["tel"] = new extensionNNR("tel",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);

extensions["asia"] = new extensionNNR("asia",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["tm.fr"] = new extensionNNR("tm.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["com.fr"] = new extensionNNR("com.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["nom.fr"] = new extensionNNR("nom.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["chirurgiens-dentistes.fr"] = new extensionNNR("chirurgiens-dentistes.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["com.re"] = new extensionNNR("com.re",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);

/* Noms de domaine sectoriels */
extensions["aeroport.fr"] = new extensionNNR("aeroport.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["avocat.fr"] = new extensionNNR("avocat.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["experts-comptables.fr"] = new extensionNNR("experts-comptables.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["geometre-expert.fr"] = new extensionNNR("geometre-expert.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["veterinaire.fr"] = new extensionNNR("veterinaire.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
extensions["notaires.fr"] = new extensionNNR("notaires.fr",false,true,unicode0a9+unicodeAZ,rulesStandard,rulesAlphabetStandard);
