

/* *************************************
Ce fichier JS contient les eventuels parametres qu'il faudrait mettre a jour d'un serveur a un autre
************************************* */

var include_path = "+" + window.location.href;
if (include_path.indexOf("/file_xplorer/") != -1) include_path = "../..";
else if ((include_path.indexOf("/easyweb/") != -1) || (include_path.indexOf("/php/") != -1) || (include_path.indexOf("/js/") != -1) || (include_path.indexOf("/html/") != -1)) include_path = "..";
else include_path = ".";


var language_array = new Array();
				function language_msg(code_msg)
				{
					/* *************************************
					NAME :
						language_msg
					INPUT :
						code_msg			=> code demande
					OUTPUT :
						chaine correspondante au code
					************************************* */
					while (code_msg.substr(0,1) == '0' && code_msg.length>1)
					{
						code_msg = code_msg.substr(1,9999);
					}
					return language_array[parseInt(code_msg)];
				}
language_array[1] = "Valider";
language_array[2] = "Annuler";
language_array[3] = "Oui";
language_array[4] = "Non";
language_array[5] = "Adresse";
language_array[6] = "Map";
language_array[7] = "Enchainement de pages";
language_array[8] = "E-mail";
language_array[9] = "Modifier";
language_array[10] = "Liste thématique";
language_array[11] = "Envoyer";
language_array[12] = "EasyWeb";
language_array[13] = "Supprimer la liste thématique ?";
language_array[14] = "Il faut spécifier un thème !";
language_array[15] = "Sélectionner une cellule !";
language_array[16] = "Lien de la cellule";
language_array[17] = "Cliquer pour rajouter des points, ou rechercher une adresse (rue,ville,pays)";
language_array[18] = "Impossible de trouver ce lieu !";
language_array[19] = "Date";
language_array[20] = "Impossible de procéder à l'enregistrement... Merci de réessayer ultérieurement !";
language_array[21] = "Fermer";
language_array[22] = "Se déconnecter";
language_array[23] = "Suppression des fichiers source inutiles";
language_array[24] = "Mes pages";
language_array[25] = "Cliquer ici pour ouvrir le journal !";
language_array[26] = "Mes listes thématiques";
language_array[27] = "Mes documents";
language_array[28] = "Mon compte";
language_array[29] = "Gestion du site";
language_array[30] = "Se connecter";
language_array[31] = "- Cliquer ici-";
language_array[32] = "Sauvegarder";
language_array[33] = "Supprimer";
language_array[34] = "Retour";
language_array[35] = "Thème";
language_array[36] = "Cliquer ici !";
language_array[37] = "Général";
language_array[38] = "Liste thématique actuelle";
language_array[39] = "Options de filtre";
language_array[40] = "Contact";
language_array[41] = "Entreprise";
language_array[42] = "Lien (prioritaire)";
language_array[43] = "Il faut spécifier une adresse !";
language_array[44] = "Texte riche";
language_array[45] = "Votre navigateur ne supporte pas les objets XMLHTTPRequest...";
language_array[46] = "Erreur";
language_array[47] = "Merci de déplacer le nouveau menu sur la zone dédiée avant de pouvoir modifier ses propriétés";
language_array[48] = "Supprimer le(s) faaroodget(s) sélectionné(s) de la page ?";
language_array[49] = "Une erreur s'est produite lors de l'enregistrement du faaroodget";
language_array[50] = "Compteur de visites";
language_array[51] = "Merci de saisir le nom de la nouvelle page";
language_array[52] = "Nouvelle page";
language_array[53] = "Faire défiler les onglets";
language_array[54] = "Supprimer la page ?";
language_array[55] = "Afficher le compteur de visites distinctes";
language_array[56] = "Afficher le compteur de visites total";
language_array[57] = "Dupliquer";
language_array[58] = "Prévisualiser";
language_array[59] = "Propriétés de la page";
language_array[60] = "Sauvegarder la base de données";
language_array[61] = "Nom";
language_array[62] = "Taille finale estimée (octets)";
language_array[63] = "Page limitée en largeur ?";
language_array[64] = "Page limitée en hauteur ?";
language_array[65] = "Nom de la page modèle";
language_array[66] = "Avancées";
language_array[67] = "Mot de passe oublié ?";
language_array[68] = "Type MIME";
language_array[69] = "Résumé (200 caractères autorisés)";
language_array[70] = "Résumé";
language_array[71] = "Centrage de la page en lecture";
language_array[72] = "Impossible de retrouver la page enregistrée !";
language_array[73] = "Impossible de supprimer la page !";
language_array[74] = "Il faut spécifier un nom de page !";
language_array[75] = "Merci de saisir un mot de passe d'au moins 4 caractères";
language_array[76] = "Mon site Web !";
language_array[77] = "Merci de suivre le lien ci-dessous pour accéder à mon site";
language_array[78] = "Transformation d'une adresse en coordonnées";
language_array[79] = "Afficher des images d'une liste thématique<br/>(1e colonne=images, autres=commentaires)";
language_array[80] = "Impossible de se connecter au serveur de bases de données !";
language_array[81] = "Impossible de se connecter à la base de données !";
language_array[82] = "Page";
language_array[83] = "E-mail non valide !";
language_array[84] = "Web service (client)";
language_array[85] = "Formateur";
language_array[86] = "Paramètres du web service";
language_array[87] = "Lancer le web service";
language_array[88] = "Il faut spécifier un e-mail de connexion !";
language_array[89] = "Le mot de passe n'est pas identique !";
language_array[90] = "Connexion";
language_array[91] = "Voulez-vous fermer l'onglet ?";
language_array[92] = "Une erreur s'est produite lors de l'envoi de l'e-mail";
language_array[93] = "Contact";
language_array[94] = "Votre message a été correctement envoyé";
language_array[95] = "Fermer la fenêtre";
language_array[96] = "Impossible de retrouver la liste thématique enregistrée !";
language_array[97] = "Impossible de supprimer la liste thématique !";
language_array[98] = "Accroche";
language_array[99] = "Cette page est en cours de modification !";
language_array[100] = "Texte d'aide";
language_array[101] = "1e étape";
language_array[102] = "Assistant";
language_array[103] = "Zone de texte libre";
language_array[104] = "Comment mettre en ligne ?";
language_array[105] = "Menu";
language_array[106] = "Positionnement";
language_array[107] = "En haut";
language_array[108] = "A gauche";
language_array[109] = "Carte géographique";
language_array[110] = "Créer un compte fAArOO gratuit";
language_array[111] = "Description (alt)";
language_array[112] = "Votre compte Twitter peut recevoir les messages envoyés par les faaroodgets 'Contact' et 'Commentaires utilisateurs' de vos pages";
language_array[113] = "Type d'affichage";
language_array[114] = "Vue cartographie";
language_array[115] = "Vue satellite";
language_array[116] = "Vue mixte";
language_array[117] = "Type de points";
language_array[118] = "Simple (points indépendants)";
language_array[119] = "Parcours (points reliés en cercle)";
language_array[120] = "Trajet (points reliés en ligne)";
language_array[121] = "Zoom par défaut";
language_array[122] = "Automatique";
language_array[123] = "Pays";
language_array[124] = "Continental";
language_array[125] = "Régional";
language_array[126] = "Départemental";
language_array[127] = "Image";
language_array[128] = "Liens des images";
language_array[129] = "Indique le nombre de visites uniques de la page et le nombre total de lectures de la page (hits)";
language_array[130] = "Position de l'image";
language_array[131] = "Haut";
language_array[132] = "Bas";
language_array[133] = "Gauche";
language_array[134] = "Droite";
language_array[135] = "Visualiser";
language_array[136] = "Mode fAArOO";
language_array[137] = "Remplir votre site web en quelques clics";
language_array[138] = "Comportement";
language_array[139] = "Délai (en millisecondes, entre 2 mouvements, ex: 500 = 1/2 s)";
language_array[140] = "Direction";
language_array[141] = "Zone 'en savoir plus...'";
language_array[142] = "Texte libre descriptif qui peut être agrandit pour découvrir la suite";
language_array[143] = "Fenêtre";
language_array[144] = "Lien";
language_array[145] = "Délimitation de la zone à afficher (en partant du haut)";
language_array[146] = "Délimitation de la zone à afficher (en partant de la gauche)";
language_array[147] = "Délimitation de la zone à afficher (hauteur)";
language_array[148] = "Délimitation de la zone à afficher (largeur)";
language_array[149] = "Impossible de supprimer le faaroodget !";
language_array[150] = "Page d'accueil du site";
language_array[151] = "E-mail de connexion";
language_array[152] = "Une erreur s'est produite lors de l'enregistrement de la page";
language_array[153] = "Resaisir le mot de passe";
language_array[154] = "Contact";
language_array[155] = "Supprimer tous les styles";
language_array[156] = "Dernières connexions";
language_array[157] = "Référencement";
language_array[158] = "Mot de passe";
language_array[159] = "Changer d'identité utilisateur";
language_array[160] = "Qu'est-ce qu'un favicon ?";
language_array[161] = "L'e-mail n'est pas correctement formé !";
language_array[162] = "Tester la complexité du mot de passe ci-dessus";
language_array[163] = "Valider";
language_array[164] = "La page a été enregistrée mais pas mise en ligne !";
language_array[165] = "Effacer tous les styles du faaroodget";
language_array[166] = "Zone de saisie : couleur de fond";
language_array[167] = "Zone de saisie : style de bordure";
language_array[168] = "Zone de saisie : largeur de bordure";
language_array[169] = "Zone de saisie : couleur de bordure";
language_array[170] = "Couleur des blocs";
language_array[171] = "Merci de désactiver le bloqueur de popups pour ce site web !";
language_array[172] = "Ajouter du contenu";
language_array[173] = "Détails de la page";
language_array[174] = "<u><b>Toutes les informations saisies sont potentiellement visibles par n'importe qui sur Internet !</b></u>";
language_array[175] = "Nom de l'enchainement de pages";
language_array[176] = "Diaporama DewSlider";
language_array[177] = "Couleur du texte recherché";
language_array[178] = "Dupliquer tout un site";
language_array[179] = "<img src='http://static2.faaroo.com/site/img/icon-warning.gif' border='0' hspace='5' align='absmiddle' alt=''/>Le rendu d'une page peut varier en fonction du navigateur choisi !<br/>Nous vous conseillons de vérifier vos pages sur plusieurs navigateurs (Internet Explorer, Mozilla Firefox, Safari...).";
language_array[180] = "Liste thématique choisie";
language_array[181] = "Une erreur s'est produite :<br/>- taille du fichier dépassant la taille maximale autorisée<br/>- ...";
language_array[182] = "Récupérer les caractéristiques des fichiers des utilisateurs";
language_array[183] = "Outils";
language_array[184] = "Rechercher les mots sensibles";
language_array[185] = "Site";
language_array[186] = "Objet";
language_array[187] = "Faaroodget de page";
language_array[188] = "Utilisateur";
language_array[189] = "Inverser la couleur de fond";
language_array[190] = "Rechercher";
language_array[191] = "Uniquement les faaroodgets";
language_array[192] = "Les faaroodgets et l'image de fond";
language_array[193] = "Aucun";
language_array[194] = "Actions";
language_array[195] = "Changer la taille de la grille";
language_array[196] = "Suppression des statistiques obsolètes";
language_array[197] = "Activer le mode 'Expert'";
language_array[198] = "Activer le mode 'Simple'";
language_array[199] = "Langue";
language_array[200] = "Français";
language_array[201] = "Anglais";
language_array[202] = "Problème d'authentification (compte ou mot de passe non-valide) !";
language_array[203] = "Redimensionner = clic droit + déplacement souris";
language_array[204] = "Aucune donnée disponible !";
language_array[205] = "Couleur de fond";
language_array[206] = "Créer";
language_array[207] = "Afficher les contenus externes ?";
language_array[208] = "Contenu externe inactif (voir 'Details de la page')";
language_array[209] = "Sites disponibles";
language_array[210] = "Taille de la grille";
language_array[211] = "Aucune";
language_array[212] = "Mise à jour";
language_array[213] = "Dans quelle page copier le faaroodget ?";
language_array[214] = "Texte du menu";
language_array[215] = "Description des menus";
language_array[216] = "Annuler toutes les modifications";
language_array[217] = "Sauvegarder l'enchainement de pages avant de quitter ?";
language_array[218] = "Page liée à ce menu";
language_array[219] = "Adresse complémentaire";
language_array[220] = "Mots-clés de la page (500 caractères autorisés)";
language_array[221] = "Analyse de hacks possibles";
language_array[222] = "Nouveau menu";
language_array[223] = "Créer";
language_array[224] = "3D 'groove'";
language_array[225] = "3D 'ridge'";
language_array[226] = "3D entrant";
language_array[227] = "3D sortant";
language_array[228] = "Alignement horizontal";
language_array[229] = "Alignement vertical";
language_array[230] = "Au centre à droite";
language_array[231] = "Au centre à gauche";
language_array[232] = "Au centre";
language_array[233] = "Aucune";
language_array[234] = "Barré";
language_array[235] = "Bas";
language_array[236] = "Bordures";
language_array[237] = "Carré";
language_array[238] = "Centré";
language_array[239] = "Cercle plein";
language_array[240] = "Cercle";
language_array[241] = "Clignotement";
language_array[242] = "Image de fond - Comportement";
language_array[243] = "Gauche";
language_array[244] = "Haut";
language_array[245] = "Emplacement du bandeau publicitaire fAArOO";
language_array[246] = "Couleur bordure";
language_array[247] = "Couleur de fond";
language_array[248] = "Couleur";
language_array[249] = "Dans le texte";
language_array[250] = "Droite";
language_array[251] = "Décalage horizontal de la première ligne";
language_array[252] = "Décoration";
language_array[253] = "En bas au centre";
language_array[254] = "En bas à droite";
language_array[255] = "En bas à gauche";
language_array[256] = "En dehors du texte";
language_array[257] = "En haut au centre";
language_array[258] = "En haut à droite";
language_array[259] = "En haut à gauche";
language_array[260] = "Espace entre les lettres";
language_array[261] = "Espace entre les lignes";
language_array[262] = "Espace entre les mots";
language_array[263] = "Fin";
language_array[264] = "Gauche";
language_array[265] = "Gras";
language_array[266] = "Haut";
language_array[267] = "Horizontalement et verticalement";
language_array[268] = "Horizontalement";
language_array[269] = "Idéographique";
language_array[270] = "Fond";
language_array[271] = "Italique";
language_array[272] = "Justifié";
language_array[273] = "Emetteur en copie de l'e-mail ?";
language_array[274] = "(nécessite de se reconnecter)";
language_array[275] = "Page enregistrées";
language_array[276] = "Largeur bordure";
language_array[277] = "Largeur marge externe droite";
language_array[278] = "Largeur marge externe gauche";
language_array[279] = "Largeur marge externe inférieure";
language_array[280] = "Largeur marge externe supérieure";
language_array[281] = "Largeur marge interne droite";
language_array[282] = "Largeur marge interne gauche";
language_array[283] = "Largeur marge interne inférieure";
language_array[284] = "Largeur marge interne supérieure";
language_array[285] = "Image de fond - Lien";
language_array[286] = "Lien d'une image";
language_array[287] = "Ligne au travers";
language_array[288] = "Ligne double";
language_array[289] = "Ligne pleine";
language_array[290] = "Marges";
language_array[291] = "Milieu";
language_array[292] = "Normal";
language_array[293] = "Normal";
language_array[294] = "Oblique";
language_array[295] = "Paragraphe";
language_array[296] = "Petites majuscules";
language_array[297] = "Pointillés longs";
language_array[298] = "Pointillés";
language_array[299] = "Police";
language_array[300] = "Image de fond - Position";
language_array[301] = "Première lettre en majuscule";
language_array[302] = "Puces/Numéros";
language_array[303] = "Reste fixe dans la page";
language_array[304] = "Image de fond - Répétition";
language_array[305] = "Sans répétition";
language_array[306] = "Sans";
language_array[307] = "Se déplace avec la page";
language_array[308] = "Souligné";
language_array[309] = "Comment ouvrir le lien du faaroodget";
language_array[310] = "Dans la fenêtre courante";
language_array[311] = "Dans une nouvelle fenêtre";
language_array[312] = "Style bordure";
language_array[313] = "Style";
language_array[314] = "Taille";
language_array[315] = "Tout en majuscules";
language_array[316] = "Tout en minuscules";
language_array[317] = "Traditionnel arménien";
language_array[318] = "Traditionnel géorgien";
language_array[319] = "Traditionnel hébreu";
language_array[320] = "Aucun commentaire n'a encore été saisi !";
language_array[321] = "Transformation";
language_array[322] = "Très gras";
language_array[323] = "Type";
language_array[324] = "Verticalement";
language_array[325] = "Statistiques";
language_array[326] = "Site";
language_array[327] = "ID";
language_array[328] = "Pages du site";
language_array[329] = "Votre écran";
language_array[330] = "Nom du site souhaité";
language_array[331] = "Copier";
language_array[332] = "Avancé";
language_array[333] = "Modifier le contenu";
language_array[334] = "Aucune page d'accueil n'a été définie pour le site ! (voir 'Gestion du compte')";
language_array[335] = "Modifier le style";
language_array[336] = "Mettre au premier plan";
language_array[337] = "Mettre à l'arrière plan";
language_array[338] = "Filtre anti-spam";
language_array[339] = "Saisir le code ici";
language_array[340] = "Les pages sont les éléments de base de votre site web ! Elles permettent de disposer vos textes, photos, vidéos...<br/><img onclick='open_link(\"../php/page-param.php\", \"tab\");' src='http://static2.faaroo.com/site/img/barre-help-page-left-fr.gif' title='Créer une nouvelle page' style='cursor:pointer;' border='0' hspace='5' vspace='2' alt=''/>";
language_array[341] = "Impossible de supprimer les statistiques de connexion !";
language_array[342] = "Le compte a été verrouillé par fAArOO !";
language_array[343] = "Lundi";
language_array[344] = "Mardi";
language_array[345] = "Mercredi";
language_array[346] = "Jeudi";
language_array[347] = "Vendredi";
language_array[348] = "Samedi";
language_array[349] = "Dimanche";
language_array[350] = "Prénom";
language_array[351] = "Nom";
language_array[352] = "Adresse";
language_array[353] = "Code postal";
language_array[354] = "Ville";
language_array[355] = "Téléphone";
language_array[356] = "Fax";
language_array[357] = "Raison sociale";
language_array[358] = "SIRET";
language_array[359] = "SIREN";
language_array[360] = "N° de TVA intracommunautaire";
language_array[361] = "Activité";
language_array[362] = "Emetteur de l'e-mail";
language_array[363] = "Destinataires de l'e-mail (si plusieurs, séparer avec des virgules)";
language_array[364] = "Sujet";
language_array[365] = "Message";
language_array[366] = "Texte du bouton";
language_array[367] = "Il faut spécifier un sous-domaine !";
language_array[368] = "Mettre à jour";
language_array[369] = "<b>Prévisualisation de l'adresse</b>";
language_array[370] = "Code anti-spam non valide !";
language_array[371] = "Rebondissement sur les cotés";
language_array[372] = "Disparition d'un coté et réapparition de l'autre";
language_array[373] = "Arrêt sur le coté (comme disparition/réapparition sous Firefox)";
language_array[374] = "Lien du faaroodget";
language_array[375] = "Afficher le logo fAArOO";
language_array[376] = "Erreur : ce thème de liste thématique est déjà pris !";
language_array[377] = "Erreur : ce nom de page est déjà pris !";
language_array[378] = "Erreur : une de ces valeurs est déjà prise !<br/>- sous-domaine souhaité<br/>- e-mail de connexion";
language_array[379] = "Administration fAArOO";
language_array[380] = "Flux RSS/Atom";
language_array[381] = "Eléments par page";
language_array[382] = "L'assistant vous permet d'obtenir un site à votre image, en fournissant quelques réponses simples";
language_array[383] = "Type d'affichage";
language_array[384] = "Liste";
language_array[385] = "Enchainement en boucle";
language_array[386] = "Fondu enchainé";
language_array[387] = "Durée entre chaque transition (ms)";
language_array[388] = "Désolé, le flux RSS est vide !";
language_array[389] = "Impossible d'ouvrir le flux RSS ";
language_array[390] = "Date de création du compte";
language_array[391] = "Merci d'effectuer les gestes techniques pour associer le nom de domaine suivant, dont je suis le proprietaire :";
language_array[392] = "Comptes utilisateurs";
language_array[393] = "Propriété à modifier (!! ATTENTION !!)";
language_array[394] = "Valeur";
language_array[395] = "Multimédia (Vidéo/Album...)";
language_array[396] = "Merci de saisir un mot de passe";
language_array[397] = "Suivant";
language_array[398] = "Precedent";
language_array[399] = "Désolé, affichage du flux RSS impossible !";
language_array[400] = "Valeurs multiples = CTRL+Entrée";
language_array[401] = "Il faut sélectionner une colonne à publier !";
language_array[402] = "contient";
language_array[403] = "Raz";
language_array[404] = "Filtrer";
language_array[405] = "Votre titre ici";
language_array[406] = "Double-cliquer ici pour modifier";
language_array[407] = "Rechargement de la liste thématique";
language_array[408] = "Supprimer la ligne courante";
language_array[409] = "Supprimer la colonne courante";
language_array[410] = "Insérer une ligne après la ligne courante";
language_array[411] = "Insérer une colonne après la colonne courante";
language_array[412] = "Déplacer la ligne courante vers le haut";
language_array[413] = "Déplacer la ligne courante vers le bas";
language_array[414] = "Déplacer la colonne courante à droite";
language_array[415] = "Déplacer la colonne courante à gauche";
language_array[416] = "trier";
language_array[417] = "abc";
language_array[418] = "123";
language_array[419] = "date";
language_array[420] = "filtrer";
language_array[421] = "*VIDE*";
language_array[422] = "*NON_VIDE*";
language_array[423] = "La source de donnée liste thématique est introuvable !";
language_array[424] = "Ville";
language_array[425] = "Quartier";
language_array[426] = "Rue";
language_array[427] = "Habitation";
language_array[428] = "Identifiants des médias";
language_array[429] = "Activité des utilisateurs";
language_array[430] = "Type de média";
language_array[431] = "Conditions Générales d'Utilisation (CGU)";
language_array[432] = "Recherche";
language_array[433] = "Aucune page n'a été trouvée !";
language_array[434] = "Libellé du bouton de recherche";
language_array[435] = "Recherche par défaut";
language_array[436] = "Merci de spécifier une recherche de plus de 3 lettres !";
language_array[437] = "octets";
language_array[438] = "ko";
language_array[439] = "Mo";
language_array[440] = "Go";
language_array[441] = "Espace utilisé";
language_array[442] = "Disponible";
language_array[443] = "Diaporama";
language_array[444] = "Taille totale des documents";
language_array[445] = "Adresse permettant d'accéder à mon site";
language_array[446] = "Table";
language_array[447] = "File d'attente des transferts";
language_array[448] = "Complexité du mot de passe";
language_array[449] = "Mot de passe incorrect : ";
language_array[450] = " tentatives restantes avant blocage du compte !";
language_array[451] = "Mot de passe incorrect : le compte a été bloqué !";
language_array[452] = "Filtre de liste thématique";
language_array[453] = "Sélectionner les fichiers à transférer";
language_array[454] = "Annuler les transferts en cours";
language_array[455] = "en savoir plus...";
language_array[456] = "Afficher 1 ligne aléatoire";
language_array[457] = "Quota";
language_array[458] = "Je n'accepte pas";
language_array[459] = "J'accepte";
language_array[460] = "Merci d'accepter les Conditions Générales d'Utilisation (CGU)";
language_array[461] = "Lien vers la page d'accueil";
language_array[462] = "Aucun nom de site n'a été défini ! (voir 'Gestion du compte')";
language_array[463] = "Identifiant";
language_array[464] = " attendu";
language_array[465] = "Copier";
language_array[466] = "Supprimer";
language_array[467] = "Racine";
language_array[468] = "Déplacer / Renommer";
language_array[469] = "Rechercher";
language_array[470] = "Précédent";
language_array[471] = "Rajouter des fichiers";
language_array[472] = "Editer";
language_array[473] = "Télécharger";
language_array[474] = "Choisir la nouvelle version";
language_array[475] = "!! Lancer la montée de version !!";
language_array[476] = "Décompression";
language_array[477] = "Suppression";
language_array[478] = "Copie des nouveaux fichiers";
language_array[479] = "Suppression du répertoire temporaire";
language_array[480] = "Suppression des fichiers existants";
language_array[481] = "Nombre total de documents";
language_array[482] = "Identification";
language_array[483] = "Remplacer la version existante ?";
language_array[484] = "Commentaires utilisateurs";
language_array[485] = "Votre nom (facultatif)";
language_array[486] = "Votre e-mail (facultatif)";
language_array[487] = "Votre commentaire";
language_array[488] = "Commentaires utilisateurs";
language_array[489] = "Ajouter un commentaire";
language_array[490] = "Libellé du bouton d'ajout";
language_array[491] = "Libellé du bouton pour voir tous les commentaires";
language_array[492] = "Tous les commentaires";
language_array[493] = "Merci de saisir un commentaire";
language_array[494] = "Supprimer les commentaires sélectionnés";
language_array[495] = "Merci de sélectionner les commentaires à supprimer";
language_array[496] = "Une erreur s'est produite lors de l'enregistrement des commentaires";
language_array[497] = "Annulation";
language_array[498] = "Faaroodget : déplacement";
language_array[499] = "Faaroodget : suppression";
language_array[500] = "Faaroodget : création";
language_array[501] = "Faaroodget : modification";
language_array[502] = "Faaroodget : changement de profondeur";
language_array[503] = "Page : chargement";
language_array[504] = "Annuler";
language_array[505] = "Refaire";
language_array[506] = "Voir les statistiques de consultation des pages";
language_array[507] = "Gérer votre compte (connexion, coordonnées...)";
language_array[508] = "Barre de navigation";
language_array[509] = "Paramètres pour importer des données dans la liste thématique";
language_array[510] = "Gérer les commentaires des utilisateurs";
language_array[511] = "Couleur du texte des menus en survol";
language_array[512] = "Choisir le lien de cette cellule";
language_array[513] = "Saisir des points issus d'une carte géographique";
language_array[514] = "Afficher une image ou un fichier dans cette cellule";
language_array[515] = "[+] Créer un nouveau menu";
language_array[516] = "Supprimer le menu et ses descendants ?";
language_array[517] = "Votre commentaire a été correctement envoyé";
language_array[518] = "Diffuser";
language_array[519] = "Tous les fichiers";
language_array[520] = "Merci de préciser votre e-mail de connexion (un nouveau mot de passe vous sera envoyé)";
language_array[521] = "Aide en ligne";
language_array[522] = "Prévisualiser les modifications";
language_array[523] = "fAArOO : réinitialisation du mot de passe";
language_array[524] = "Voici le nouveau mot de passe permettant d'accéder à votre site";
language_array[525] = "Votre nouveau mot de passe a correctement été envoyé à l'e-mail suivant";
language_array[526] = "Cordialement,<br/>L'équipe fAArOO (<a href='http://www.faaroo.com'>http://www.faaroo.com</a>)";
language_array[527] = "Faaroodget <b><u>Zone de texte libre</u></b><br/><br/>Texte libre avec possibilité de mise en forme (taille, couleur, police, alignement...)";
language_array[528] = "Faaroodget <b><u>Zone 'en savoir plus...'</u></b><br/><br/>Texte libre avec possibilité de mise en forme, visible par l'intermédiaire d'un résumé";
language_array[529] = "Une erreur s'est produite lors de l'enregistrement";
language_array[530] = "Aucune (structure vierge)";
language_array[531] = "Faaroodget <b><u>Barre de navigation</u></b><br/><br/>Elément paramétrable permettant de passer d'une page à une autre via des menus";
language_array[532] = "Faaroodget <b><u>Compteur de visites</u></b><br/><br/>Bloc indiquant le nombre de visiteurs uniques ou total sur la page";
language_array[533] = "Faaroodget <b><u>Image</u></b><br/><br/>Affichage d'image(s)/photo(s) stockée(s) dans votre espace Faaroo ou ailleurs sur Internet";
language_array[534] = "Faaroodget <b><u>Multimédia (Vidéo/Album...)</u></b><br/><br/>Affichage d'un film stocké dans votre espace Faaroo, ou sur Internet (YouTube, DailyMotion...)";
language_array[535] = "Faaroodget <b><u>Fenêtre</u></b><br/><br/>Affichage d'une autre page web au sein de la page courante (météo...)";
language_array[536] = "Faaroodget <b><u>Flux RSS/Atom</u></b><br/><br/>Affichage des données d'un autre site web fournies sous la forme de flux RSS";
language_array[537] = "Faaroodget <b><u>Carte géographique</u></b><br/><br/>Affichage d'une carte sous la forme de vue satellite, plan ou mixée des deux";
language_array[538] = "Faaroodget <b><u>Contact</u></b><br/><br/>Bouton qui permet au visiteur de vous envoyer un e-mail très simplement";
language_array[539] = "Faaroodget <b><u>Commentaires utilisateurs</u></b><br/><br/>Bouton qui permet aux visiteurs de laisser un message ou de voir ceux posés par d'autres";
language_array[540] = "Faaroodget <b><u>Recherche</u></b><br/><br/>Bouton qui permet faire une recherche sur les pages en ligne";
language_array[541] = "Faaroodget <b><u>Diaporama</u></b><br/><br/>Présentation d'images/photos sous la forme d'un diaporama, avec possibilité d'utiliser une liste thématique";
language_array[542] = "Faaroodget <b><u>Diaporama DewSlider</u></b><br/><br/>Identique au diaporama classique, mais le résultat est visuellement très épuré (pas de cadre ni texte)";
language_array[543] = "Faaroodget <b><u>Table</u></b><br/><br/>Affichage du contenu d'une liste thématique sous la forme d'un tableau";
language_array[544] = "Nombre total de fichiers transférés :";
language_array[545] = "Nombre de commentaires affichés";
language_array[546] = "Atelier";
language_array[547] = "<b><u>Remarques :</u></b><br/><ul><li>Pour les images sans redimensionnement, attention à la taille occupée à l'écran et au temps d'affichage</li><li>Les accents seront enlevés et les espaces remplacés par des soulignements ( _ )</li><li>Les fichiers .zip seront automatiquement décompressés dans un répertoire du même nom</li><li>La taille maximale d'un document est limitée à 10M</li><li>Les fichiers stockés sont potentiellement visibles par n'importe qui sur Internet !</li></ul>";
language_array[548] = "ici le resume du diaporama";
language_array[549] = "ici les commentaires des images";
language_array[550] = "ici les images du diaporama (masquees en modification de page mais affichees en lecture ou previsualisation)";
language_array[551] = "ici les miniatures des images du diaporama";
language_array[552] = " image(s)";
language_array[553] = "Se connecter pour une démonstration";
language_array[554] = "Afficher les ascenseurs de défilement";
language_array[555] = "Mettre en ligne toutes les pages";
language_array[556] = "Mettre en ligne cette page uniquement";
language_array[557] = "Réinitialiser mon mot de passe";
language_array[558] = "Cet e-mail de connexion n'a pas été trouvé !";
language_array[559] = "Assistance";
language_array[560] = "Position";
language_array[561] = "ligne(s)";
language_array[562] = "Aucune sauvegarde récente !";
language_array[563] = "Mes fichiers";
language_array[564] = "Mes images";
language_array[565] = "Mes vidéos";
language_array[566] = "Impossible de rattacher ce fichier, le quota a été atteint !";
language_array[567] = "Suppression des faaroodgets inutiles du compte de démonstration";
language_array[568] = "suppression terminée avec succès";
language_array[569] = "une erreur s'est produite lors de la suppression !";
language_array[570] = "Taille du texte affiché";
language_array[571] = "DailyMotion (Vidéo)";
language_array[572] = "YouTube (Vidéo)";
language_array[573] = "Impossible d'ouvrir le fichier de logs Apache !";
language_array[574] = "Activité principale";
language_array[575] = "Activité secondaire";
language_array[576] = "Slideshare (Présentation)";
language_array[577] = "Dew Player (mp3)";
language_array[578] = "Générer les fichiers JavaScript des libellés";
language_array[579] = "Création des fichiers JavaScript";
language_array[580] = "Une erreur s'est produite lors du transfert !";
language_array[581] = "Légende des images";
language_array[582] = "Supprimer le compte utilisateur";
language_array[583] = "La suppression du compte a été correctement effectuée";
language_array[584] = "Une erreur s'est produite lors de la suppression du compte";
language_array[585] = "Retourner à la liste des fichiers";
language_array[586] = "Supprimer les fichiers mis en cache";
language_array[587] = "fichier(s) supprimé(s) !";
language_array[588] = "Sauvegarder et mettre en ligne";
language_array[589] = "Panier";
language_array[590] = "A partir de quelle source souhaitez-vous créer le lien ?";
language_array[591] = "Impossible de trouver la page spécifiée, elle n'a certainement pas été mise en ligne !";
language_array[592] = "ttc";
language_array[593] = "/mois";
language_array[594] = "Commentaires";
language_array[595] = "La page a été mise en ligne : vous pouvez la retrouver en ";
language_array[596] = "cliquant ici";
language_array[597] = "Votre compte n'a jamais été validé avec l'e-mail qui vous a été envoyé lors de sa création !";
language_array[598] = "Module de restauration";
language_array[599] = "Les pages suivantes seront également mises à jour car la page courante leur sert de modèle !<br/>";
language_array[600] = "(utiliser la touche Ctrl pour sélectionner plusieurs valeurs)";
language_array[601] = "Augmenter l'espace disponible";
language_array[602] = "Le quota a été atteint !<br/>Merci de :<br/>- augmenter l'espace disponible (voir 'Gestion du compte')<br/>- et/ou supprimer des fichiers<br/>- et/ou supprimer des listes thématiques<br/>- et/ou supprimer des pages<br/>- et/ou mettre des pages hors-ligne";
language_array[603] = "Erreur : cet e-mail de connexion est déjà pris !";
language_array[604] = "Faaroodget copié !";
language_array[605] = "Mettre en ligne";
language_array[606] = "hits";
language_array[607] = "Une opération de maintenance est en cours.<br/>Merci de vous reconnecter ultérieurement !";
language_array[608] = "Une erreur s'est produite lors du redimensionnement de l'image mais elle a été transférée !";
language_array[609] = "Copier le faaroodget dans la page actuelle";
language_array[610] = "Largeur des bordures";
language_array[611] = "Aucune liste thematique disponible !";
language_array[612] = "Afficher la ligne de titre";
language_array[613] = "Propriétés";
language_array[614] = "Type de colonne";
language_array[615] = "Saisie libre";
language_array[616] = "Liste de valeurs";
language_array[617] = "Documents (images, fichiers,...)";
language_array[618] = "Ordre des images aléatoire";
language_array[619] = "Valeurs possibles (une par ligne) ";
language_array[620] = "Valeur par défaut";
language_array[621] = "Propriétés de la colonne";
language_array[622] = "Acces au detail de la ligne";
language_array[623] = "[Plus...]";
language_array[624] = "Détail de la ligne précédente";
language_array[625] = "Détail de la ligne suivante";
language_array[626] = "Pagination : lignes par 'page' (toutes = -1)";
language_array[627] = "Accès au détail de la ligne";
language_array[628] = "Couleur du lien 'En savoir plus...'";
language_array[629] = "Couleur du lien des éléments";
language_array[630] = "Couleur des commentaires";
language_array[631] = "Alignement des commentaires";
language_array[632] = "Couleur du lien 'Plus...'";
language_array[633] = "Couleur de la grille";
language_array[634] = "Largeur d'entrée de menu";
language_array[635] = "Couleur de la police du fil d'ariane";
language_array[636] = "Couleur de fond des sous-menus";
language_array[637] = "Couleur de fond des sous-menus en survol";
language_array[638] = "Afficher le fil d'ariane";
language_array[639] = "Afficher les séparateurs de libellés";
language_array[640] = "Décoration spécifique du lien 'En savoir plus...'";
language_array[641] = "Fichier .csv à importer dans la liste thématique (Max : 40Ko/200 lignes/15 colonnes)";
language_array[642] = "Import CSV";
language_array[643] = "Remplacer le contenu de la liste thématique courante et importer le fichier .csv ?<br>Taille max = 200 lignes x 15 colonnes";
language_array[644] = "Vous devez sélectionner un fichier à importer";
language_array[645] = "La première ligne contient les titres de colonnes";
language_array[646] = "!!! Fichier trop volumineux - taille max = 40Ko !!!";
language_array[647] = "Le nombre de colonnes est limité à 15";
language_array[648] = "Le nombre de lignes est limité à 200 (ligne de titre incluse)";
language_array[649] = "Eclater les documents sur des lignes distinctes";
language_array[650] = "- Sélectionner un assistant -";
language_array[651] = "http://static2.faaroo.com/site/img/snap-test-fr.gif";
language_array[652] = "Aucune adresse sélectionnée !";
language_array[653] = "Latitude";
language_array[654] = "Longitude";
language_array[655] = "Description en detail";
language_array[656] = "Gérer les ressources et fichiers du site !";
language_array[657] = "Page temporaire sans page source : ";
language_array[658] = "<b>Couleurs déjà utilisées dans la page :</b>";
language_array[659] = "fAArOO - ";
language_array[660] = "Dew Tube (Lecteur Video Flash .flv)";
language_array[661] = "Le mot de passe du site n'est pas identique !";
language_array[662] = "Mot de passe à fournir pour lire les pages du site (Google Maps désactivées)";
language_array[663] = "Accès en lecture aux pages du site";
language_array[664] = "Autorisé pour tous";
language_array[665] = "Restreint par le mot de passe ci-dessous";
language_array[666] = "Mot de passe";
language_array[667] = "La page n'a pas encore été mise en ligne !";
language_array[668] = "Proportion de l'image par rapport à l'objet entier (en %)";
language_array[669] = "Page statique sans page source : ";
language_array[670] = "Date de restauration";
language_array[671] = "Type";
language_array[672] = "Objet";
language_array[673] = "Les Google Maps ne sont pas compatibles avec la demande d'authentification du site !";
language_array[674] = "Lien vers le 'favicon' du site";
language_array[675] = "Restaurer l'objet sélectionné";
language_array[676] = "Merci de choisir un type, une date de restauration et un objet";
language_array[677] = "L'objet sera écrasé si il existe !<br/><br/>";
language_array[678] = "Restauration terminée avec succès";
language_array[679] = "Aucune information !";
language_array[680] = "Options";
language_array[681] = "2e étape";
language_array[682] = "3e étape";
language_array[683] = "Vers le haut";
language_array[684] = "Vers le bas";
language_array[685] = "Vers la gauche";
language_array[686] = "Vers la droite";
language_array[687] = "Changement d'image automatique (en secondes) - 0 pour manuel";
language_array[688] = "Liens des images";
language_array[689] = "Vous pouvez effectuer cette opération en modifiant la page, puis en choisissant le menu 'mettre en ligne'";
language_array[690] = "Détail";
language_array[691] = "Saisir le résumé du diaporama";
language_array[692] = "Choisir les images affichées dans le diaporama";
language_array[693] = "Choisir la couleur de fond du diaporama";
language_array[694] = "Utiliser l'assistant pour sélectionner le contenu affiché dans la table";
language_array[695] = "Choisir l'affichage ou non de la ligne de titre de la liste thématique";
language_array[696] = "Choisir de permettre ou non à l'utilisateur final d'accéder au détail de chaque ligne";
language_array[697] = "Saisir le texte qui sera affiché sur le bouton";
language_array[698] = "Saisir le contenu par défaut de l'e-mail";
language_array[699] = "Optimisation de la base de données";
language_array[700] = "Couleur du titre du flux";
language_array[701] = "Taille du titre du flux";
language_array[702] = "";
language_array[703] = "";
language_array[704] = "Mots-clés";
language_array[705] = "Choisir la position des images par rapport au texte explicatif";
language_array[706] = "";
language_array[707] = "Saisir les identifiants des médias";
language_array[708] = "Saisir le texte à afficher";
language_array[709] = "Saisir les libellés des boutons permettant d'ajouter un nouveau commentaire ou de tous les voir";
language_array[710] = "Choisir le nombre de commentaires affichés dans la page";
language_array[711] = "Choisir d'afficher ou non le compteur de visites distinctes (1 par heure et par utilisateur max)";
language_array[712] = "Choisir d'afficher ou non le compteur de visites total";
language_array[713] = "Choisir d'afficher ou non le fil d'ariane";
language_array[714] = "Saisir le lien du flux RSS/Atom";
language_array[715] = "Choisir le nombre d'éléments affichés par défaut";
language_array[716] = "Saisir le libellé du bouton permettant de lancer la recherche";
language_array[717] = "Saisir le texte recherché par défaut";
language_array[718] = "Saisir le texte complet qui sera affiché après clic sur le lien 'en savoir plus'";
language_array[719] = "Saisir l'accroche résumant le texte complet";
language_array[720] = "Saisir le lien vers la page à afficher (ou utiliser un assistant de choix)";
language_array[721] = "Supprimer l'enchainement de pages ?";
language_array[722] = "Impossible de supprimer l'enchainement de pages !";
language_array[723] = "Il faut spécifier un nom d'enchainement de pages !";
language_array[724] = "Erreur : ce nom d'enchainement de pages est déjà pris !";
language_array[725] = "Reporting fAArOO";
language_array[726] = "Choisir le type d'affichage de la carte";
language_array[727] = "Utiliser l'assistant pour saisir la liste de points de la carte";
language_array[728] = "Choisir les images affichées et saisir leur texte explicatif";
language_array[729] = "Suppression des pages temporaires obsolètes";
language_array[730] = "Sélectionner l'enchainement de pages";
language_array[731] = "http://static2.faaroo.com/site/img/page-new-save_fr.gif";
language_array[732] = "Titre de la page (affiché dans la barre de titre du navigateur)";
language_array[733] = "<b>Un e-mail vous a été envoyé : pour terminer la création de votre compte, merci de suivre les instructions de celui-ci !<br/>Vous avez 7 jours pour effectuer cette opération.</b>";
language_array[734] = "Activer votre compte fAArOO";
language_array[735] = "Opacité";
language_array[736] = "Paramètres fAArOO";
language_array[737] = "Votre compte a été activé, vous pouvez maintenant utiliser le bouton 'Se connecter' !";
language_array[738] = "Code du paramètre";
language_array[739] = "La création de nouveaux utilisateurs est restreinte, merci de nous contacter avec le bouton ci-dessous :";
language_array[740] = "- S&eacute;lectionnez la ressource -";
language_array[741] = "Export CSV";
language_array[742] = "Exporter la liste thématique courante ?";
language_array[743] = "Création d'un nouveau compte";
language_array[744] = "Bonjour, je souhaiterais obtenir un compte utilisateur fAArOO. Comment puis-je faire ?";
language_array[745] = "Une erreur s'est produite lors de la restauration de l'objet";
language_array[746] = "Ouvrir la page d'aide en ligne";
language_array[747] = "Il est possible d'ajouter des commentaires aux images, en passant par le bouton '+' disponible à côté des noms des images";
language_array[748] = "Adresse IP";
language_array[749] = "Impossible de retrouver la sauvegarde !";
language_array[750] = "Astuce ! Convertissez vos vidéos en ligne à l'aide de <a href='http://www.zamzar.com' target='_blank'>Zamzar</a> !";
language_array[751] = "Les listes thématiques, un moyen efficace d'organiser des données !";
language_array[752] = "Objet Flash";
language_array[753] = "Texte affiché pour en savoir plus";
language_array[754] = "Texte affiché pour accéder au détail";
language_array[755] = "Texte affiché pour accéder aux lignes suivantes";
language_array[756] = "Texte affiché pour accéder aux lignes précédentes";
language_array[757] = "Texte affiché pour accéder aux news suivantes";
language_array[758] = "Texte affiché pour accéder aux news précédentes";
language_array[759] = "Demander l'association d'un nom de domaine externe (ex: mon_domaine.com)";
language_array[760] = "Lister toutes les pages de votre site web";
language_array[761] = "Création d'une nouvelle page dans votre site web";
language_array[762] = "Modification des paramètres de votre compte fAArOO";
language_array[763] = "Dans la carte";
language_array[764] = "En dehors de la carte";
language_array[765] = "";
language_array[766] = "Changer le mode d'affichage";
language_array[767] = "Comment afficher les commentaires";
language_array[768] = "Hors-ligne";
language_array[769] = "<img src='http://static2.faaroo.com/site/img/icon-warning.gif' border='0' hspace='5' align='absmiddle' alt=''/>fAArOO n'est en aucun cas responsable du contenu que vous mettez en ligne : vous seul l'êtes !<br/>fAArOO se reserve le droit d'invalider les publications portant atteinte.";
language_array[770] = "Voulez-vous continuer ?";
language_array[771] = "";
language_array[772] = "Inserez et mettez en forme votre texte ici...<br/>Vous pouvez egalement inserer des images...";
language_array[773] = "";
language_array[774] = "Afficher les propriétés de gestion du site (page d'accueil, nom de domaine associé...)";
language_array[775] = "Afficher les paramètres de connexion (e-mail, mot de passe...)";
language_array[776] = "Différentes actions possibles";
language_array[777] = "Contenu de la liste thématique";
language_array[778] = "Mes musiques";
language_array[779] = "Couleur de fond du texte complet, quand il est affiché par le lien 'en savoir plus'";
language_array[780] = "Couleur de fond du détail";
language_array[781] = "Glissé à droite";
language_array[782] = "Glissé en bas";
language_array[783] = "Transition";
language_array[784] = "Vitesse de transition (ms)";
language_array[785] = "Délai d'affichage (s), 0=infini";
language_array[786] = "Afficher les boutons";
language_array[787] = "Afficher les titres";
language_array[788] = "Démarrage aléatoire";
language_array[789] = "Seesmic (conversation video)";
language_array[790] = "";
language_array[791] = "Deezer (juke box)";
language_array[792] = "Comptes externes";
language_array[793] = "Vérification du compte Twitter";
language_array[794] = "Merci de saisir un mot de passe Twitter";
language_array[795] = "Le mot de passe Twitter n'est pas identique !";
language_array[796] = "Succès";
language_array[797] = "Echec";
language_array[798] = "Envoyer les commentaires sur mon compte Twitter";
language_array[799] = "<img src='http://static2.faaroo.com/site/img/media-twitter.png' border='0' hspace='5' align='absmiddle' alt=''/>Compte Twitter";
language_array[800] = "fr-fr";
language_array[801] = "";
language_array[802] = "";
language_array[803] = "";
language_array[804] = "- En attente de recherche -";
language_array[805] = "";
language_array[806] = "Choisir votre liste thématique et filtrer les lignes";
language_array[807] = "Ouvrir la palette de couleurs";
language_array[808] = "Choisir une url";
language_array[809] = "";
language_array[810] = "Imprimer";
language_array[811] = "Conserver";
language_array[812] = "Sélection en cours";
language_array[813] = "Rechercher dans";
language_array[814] = "Liste des pages disponibles (glisser/déposer)";
language_array[815] = "Faaroodget <b><u>Objet Flash</u></b><br/><br/>Affichage d'un composant Flash";
language_array[816] = "Sans";
language_array[817] = "320x200 pixels";
language_array[818] = "640x400 pixels";
language_array[819] = "1280x800 pixels";
language_array[820] = "<img src='http://static2.faaroo.com/site/img/pages-links-help-fr.gif' border='0' hspace='5' vspace='2' alt=''/>";
language_array[821] = "En attente...";
language_array[822] = "Vous avez demandé le transfert de trop de fichiers.";
language_array[823] = "Vous avez atteint la limite de transfert.";
language_array[824] = "Vosu devriez choisir ";
language_array[825] = "jusqu'à ";
language_array[826] = " fichiers.";
language_array[827] = "un fichier.";
language_array[828] = "Erreur : fichier trop volumineux";
language_array[829] = ". Taille : ";
language_array[830] = ". Message : ";
language_array[831] = ". Nom : ";
language_array[832] = "Erreur : fichier vide";
language_array[833] = "Erreur : type de fichier incorrect";
language_array[834] = "Transfert en cours...";
language_array[835] = "Transfert terminé.";
language_array[836] = "Transfert annulé (le fichier peut quand même avoir été transmis).";
language_array[837] = "Transfert stoppé.";
language_array[838] = "Couleur de la police du détail";
language_array[839] = "";
language_array[840] = "En cas de problème, basculer vers un mode de transfert classique";
language_array[841] = "M'envoyer un e-mail lors de l'ajout d'un commentaire";
language_array[842] = "Choisir de recevoir un e-mail lorsqu'un commentaire est ajouté";
language_array[843] = "[fAArOO] Nouveau commentaire sur la page : ";
language_array[844] = "Un commentaire a été ajouté sur la page suivante :";
language_array[845] = "Maintenance";
language_array[846] = "!! Le quota a été atteint !!";
language_array[847] = "Pour améliorer le transfert, basculer vers un mode flash";
language_array[848] = "Nombre de pages mises en ligne : ";
language_array[849] = "";
language_array[850] = "La page a été mise en ligne dans sa dernière version";
language_array[851] = "La version enregistrée est plus récente que celle mise en ligne !";
language_array[852] = "La page n'a jamais été mise en ligne !";
language_array[853] = "Mettre la page hors-ligne ?";
language_array[854] = "Restaurer la base de données";
language_array[855] = "Ecraser la base de données existante ?";
language_array[856] = "Remplacement effectué avec succès";
language_array[857] = "Une erreur s'est produite lors de la restauration !";
language_array[858] = "Redimensionner la zone de saisie à la taille de l'objet";
language_array[859] = "Choisir un enchainement de pages existant";
language_array[860] = "Créer un nouvel enchainement de pages";
language_array[861] = "Modifier l'enchainement de pages sélectionné";
language_array[862] = "Enregistrement";
language_array[863] = "Mise en ligne";
language_array[864] = "Saisir le lien vers le fichier swf à afficher (ou utiliser l'assistant de choix)";
language_array[865] = "Erreur : le nombre de codes et de valeurs des arguments ne correspond pas !";
language_array[866] = "Ligne par ligne, codes des arguments à passer au Flash<br/>(ex: code_1 sur la 1e ligne, puis code_2 sur la 2e...)";
language_array[867] = "Ligne par ligne, valeurs des arguments à passer au Flash<br/>(ex: valeur_1 sur la 1e ligne, puis valeur_2 sur la 2e...)";
language_array[868] = "Module d'importation des images d'une page web";
language_array[869] = "Lancer l'importation des images";
language_array[870] = "Aucune image !";
language_array[871] = "Saisir le nom du répertoire qui contiendra les images";
language_array[872] = "L'image suivante a été stockée dans le répertoire ";
language_array[873] = "Les images suivantes ont été stockées dans le répertoire ";
language_array[874] = "Saisir l'url de la page contenant les images";
language_array[875] = "Générer le sitemap";
language_array[876] = "Sitemap mis à jour !<br/>(soumission par 'robots.txt')";
language_array[877] = "Dernière connexion";
language_array[878] = "Dernières pages enregistrées";
language_array[879] = "Dernières pages enregistrées automatiquement (activité utilisateur)";
language_array[880] = "Dernières connexions";
language_array[881] = "Importer des images";
language_array[882] = "Une erreur s'est produite lors de la sauvegarde du mode de passe !";
language_array[883] = "Limites visuelles de la page";
language_array[884] = "Accéder à mon site";
language_array[885] = "Pour en créer une, utilisez le menu 'Mes pages'";
language_array[886] = "La page d'accueil du site n'a pas été mise en ligne ! Pour le faire, utilisez le menu 'Mes pages'";
language_array[887] = "Tous les comptes";
language_array[888] = "Nombre de pages";
language_array[889] = "Compte bloqué";
language_array[890] = "Nombre de faaroodgets";
language_array[891] = "";
language_array[892] = "Quel service souhaitez-vous ?";
language_array[893] = "J'autorise l'équipe fAArOO à me donner, gratuitement, des astuces et conseils sur mon site construit avec EasyWeb";
language_array[894] = "Je ne souhaite aucune astuce ni conseil de la part de l'équipe fAArOO";
language_array[895] = "Gestion des processus";
language_array[896] = "Modèles de processus";
language_array[897] = "Processus";
language_array[898] = "Libellé du processus";
language_array[899] = "Etapes du modèle";
language_array[900] = "Mise à jour";
language_array[901] = "Erreur : une entrée de ce type existe déjà";
language_array[902] = "Une erreur s'est produite lors de la suppression";
language_array[903] = "Processus en cours";
language_array[904] = "Supprimer ?";
language_array[905] = "Etape actuelle";
language_array[906] = "Modèle";
language_array[907] = "???";
language_array[908] = "Processus soldés";
language_array[909] = "Processus terminé";
language_array[910] = "Libellé du modèle";
language_array[911] = "Mon ordinateur";
language_array[912] = "Actions";
language_array[913] = "Changer la couleur de bordure";
language_array[914] = "Changer la couleur de fond";
language_array[915] = "Dupliquer le style";
language_array[916] = "Dupliquer le style sur le prochain faaroodget sélectionné";
language_array[917] = "Redimensionnement des images";
language_array[918] = "!! Probleme de securite !!";
language_array[919] = "Suppression des incohérences de la base de données";
language_array[920] = "Origine";
language_array[921] = "Destination";
language_array[922] = "La duplication du site a été correctement effectuée";
language_array[923] = "Une erreur s'est produite lors de la duplication : ";
language_array[924] = "impossible de dupliquer l'enchainement de pages";
language_array[925] = "impossible de dupliquer la page";
language_array[926] = "impossible de dupliquer les objets de la page";
language_array[927] = "impossible de sauvegarder la page";
language_array[928] = "impossible de sauvegarder l'enchainement de pages";
language_array[929] = "impossible de dupliquer la liste thématique";
language_array[930] = "Sauvegarder le brouillon";
language_array[931] = "Prévisualisation informative du redimensionnement sélectionné ci-dessus, sur différentes résolutions d'écran<br/>(ne tient pas compte des particularités d'affichage telles que barres d'outils, barres de tâches etc...)";
language_array[932] = "Mot de passe incorrect !";
language_array[933] = "Accès sécurisé.<br/>Veuillez entrer le mot de passe pour continuer.";
language_array[934] = "Impossible de trouver la table !";
language_array[935] = "<img src='http://www.faaroo.com/site/img/faaroo_logo.png' alt=''/><br/><br/>Bonjour !<br/><br/>Votre nouveau compte fAArOO ";
language_array[936] = " est prêt. Pour le valider, merci de cliquer sur le lien suivant :<br/>";
language_array[937] = "<br/><br/>Ensuite pour créer votre site, vous devrez vous connecter sur <a href='http://www.faaroo.com'>http://www.faaroo.com</a> (en utilisant le bouton 'se connecter' en haut à gauche sous le logo) avec les informations suivantes :<br/>- e-mail de connexion : ";
language_array[938] = "<br/><br/>Une fois vos pages créées et mises en ligne, vous pourrez accéder à votre site en suivant le lien <a href='http://";
language_array[939] = ".faaroo.com'>http://";
language_array[940] = ".faaroo.com</a>.<br/><br/>L'équipe fAArOO vous souhaite la bienvenue, et n'hésitez pas à nous contacter (contact@faaroo.com) pour vous aider lors de la construction de votre site.<br/><br/><i>Si ce n'est pas vous qui avez demandé la création du compte, ignorez simplement cet e-mail.</i><br/><br/>";
language_array[941] = "<br/>- mot de passe : ";
language_array[942] = "Répertoire/Fichier";
language_array[943] = "Extension";
language_array[944] = "Modification";
language_array[945] = "Droits";
language_array[946] = "Contenu";
language_array[947] = "(correction effectuée)";
language_array[948] = "(correction impossible)";
language_array[949] = "Structure de site à créer";
language_array[950] = "Mettre en ligne la page";
language_array[951] = "Seulement enregistrer la page";
language_array[952] = "Fermer sans enregistrer la page";
language_array[953] = "";
language_array[954] = "";
language_array[955] = "";
language_array[956] = "";
language_array[957] = "";
language_array[958] = "";
language_array[959] = "";
language_array[960] = "";
language_array[961] = "Titre + article complet";
language_array[962] = "Titre + résumé";
language_array[963] = "Titre seul";
language_array[964] = "Organiser efficacement des données !";
language_array[965] = "<br/><img onclick='open_link(\"../php/catalog-param.php\", \"tab\");' src='http://static2.faaroo.com/site/img/barre-help-catalog-left-fr.gif' title='Créer une nouvelle liste thématique' style='cursor:pointer;' border='0' hspace='2' vspace='2' alt=''/>";
language_array[966] = "";
language_array[967] = "";
language_array[968] = "";
language_array[969] = "";
language_array[970] = "";
language_array[971] = "";
language_array[972] = "";
language_array[973] = "";
language_array[974] = "";
language_array[975] = "";
language_array[976] = "";
language_array[977] = "";
language_array[978] = "";
language_array[979] = "";
language_array[980] = "";
language_array[981] = "";
language_array[982] = "";
language_array[983] = "";
language_array[984] = "";
language_array[985] = "";
language_array[986] = "";
language_array[987] = "";
language_array[988] = "";
language_array[989] = "";
language_array[990] = "";
language_array[991] = "";
language_array[992] = "";
language_array[993] = "";
language_array[994] = "";
language_array[995] = "";
language_array[996] = "";
language_array[997] = "";
language_array[998] = "";
language_array[999] = "";


/* *************************************
Ce fichier JS contient les methodes necessaires a l'utilisation des cookies pour retourner a une page precedente...
************************************* */

function go_back(use_history)
{
	/* *************************************
	NAME :
		go_back
	INPUT :
		use_history	=> true si on se base sur l'historique et false sinon
	OUTPUT :
		- (fonction de retour)
	************************************* */
	if (String(use_history) == "undefined")
		use_history = false;

	/* si on est dans un onglet de l'interface alors on le ferme */
	if (window.parent != window && window.parent.document.location.href.indexOf("index.php") != -1)
	{
		window.parent.index_open_tab(window, true, true, true);
		return true;
	}

	if (use_history)
	{
		history.go(-1);
		return true;
	}

	/* retour selon la page de laquelle on vient (plus de gestion des cookies, aleatoire) */
	var tmp_string	= window.location.href;
	/* extraction du nom du fichier */
	tmp_string			= tmp_string.substr(0, tmp_string.indexOf(".php")) + ".php";
	tmp_string			= tmp_string.split("").reverse().join("");
	tmp_string			= tmp_string.substr(0, tmp_string.indexOf("/"));
	tmp_string			= tmp_string.split("").reverse().join("");

	var new_url;
	switch(tmp_string)
	{
		case "administration.php" :
		case "catalog-param.php" :
		case "catalog-process.php" :
		case "page-param.php" :
		case "page-process.php" :
		case "pages-links-param.php" :
		case "pages-links-process.php" :
		case "reporting.php" :
		case "user-create.php" :
		case "user-param.php" :
		case "user-process.php" :
			new_url	= "../php/workshop.php";
			break;
		case "process.php" :
			new_url	= "../../site/php/workshop.php";
			break;
		default :
			new_url	= "../";
			break;
	}
	window.location.href = new_url;
	return true;
}

function go_home()
{
	/* *************************************
	NAME :
		go_home
	INPUT :
		-
	OUTPUT :
		- (fonction de retour via le logo)
	************************************* */
	/* si on est dans un onglet de l'interface alors on le ferme */
	if (window.parent != window && window.parent.document.location.href.indexOf("index.php") != -1)
	{
		window.parent.index_open_tab(window, true, true);
		return true;
	}
	window.location.href	= "/site/";
	return true;
}


/* *************************************
Ce fichier JS contient diverses methodes necessaires aux fichiers "form??.xsl" (surtout pour eviter de les repeter au sein d'une meme page HTML)
************************************* */

function color_update_background(oInput)
{
	/* *************************************
	NAME :
		color_update_background
	INPUT :
		oInput : objet représentant le champ de saisi d'un formulaire
	OUTPUT :
		- (mise à jour du background de la cellule d'un champ de formulaire)
	************************************* */
	var tmp_color = "";
	if(oInput) {
		tmp_color = oInput.value;
		var oCell = oInput.parentNode;
		if(oCell) {
			oDivs = oCell.getElementsByTagName("div");
			if(oDivs[0] && oDivs[0].className=="css_form_visu_color"){
				oDivs[0].style.backgroundColor = tmp_color;
			}
		}
	}
	return true;
}

function file_assistant_update(object_textarea_id, object_input_id, object_previsualisation_id)
{
	/* *************************************
	NAME :
		file_assistant_update
	INPUT :
		object_textarea_id					=> objet textarea contenant les valeurs saisies
		object_input_id							=> objet input à mettre à jour
		object_previsualisation_id	=> objet de prévisualisation à mettre à jour
	OUTPUT :
		- (mise à jour du champ caché)
	************************************* */
	var object_previsualisation_id	= document.getElementById("previsualisation_img_" + object_input_id);
	var object_textarea_id					= document.getElementById(object_textarea_id);
	var object_input_id							= document.getElementById(object_input_id);
	var textarea_value							= object_textarea_id.value;
	var input_value									= object_input_id.value;

	/* récupération du curseur et détection de la ligne en cours (par les sauts de ligne) */
	cursor_position_save(object_textarea_id, false);
	var current_image								= object_textarea_id.value.substr(0, cursor_position[0]).split(/\n/gi).length - 1;

	/* remplacement dans le champ courant : virgules, points-virgules, pipes */
	textarea_value									= textarea_value.replace(/\,/gi, "\n");
	textarea_value									= textarea_value.replace(/\;/gi, "\n");
	textarea_value									= textarea_value.replace(/\|/gi, "\n");

	/* remplacement dans le champ de destination : sauts de ligne par virgule */
	input_value											= textarea_value.replace(/\n/gi, ",");

	/* suppression des lignes vides (en milieu puis début et fin) */
	while(input_value.indexOf(",,") != -1)
		input_value										= input_value.replace(/,,/gi, ",");
	input_value											= input_value.replace(/(^,)|(,$)/gi, "");

	/* mise à jour de la valeur */
	object_input_id.value						= input_value;

	/* mise à jour de la previsualisation des images */
	preview_img_from_textarea(object_previsualisation_id, input_value, current_image);

	/* mise en valeur de l'image correspondante en parcourant toutes les miniatures */
	var thumbs = object_previsualisation_id.getElementsByTagName("a");
	for (var i=0 ; i<thumbs.length ; i++)
	{
		if (i == current_image)
		{	/* mise en valeur de l'image et focus */
			thumbs[i].className					= "css_form_visu_thumb_selected";
			thumbs[i].focus();
		}
		else
		{	/* enlever la mise en valeur */
			thumbs[i].className					= "css_form_visu_thumb";
		}
	}
	/* remise du focus dans le champ */
	cursor_position_restore(object_textarea_id, false);
	return true;
}

function form_change_class(object, state)
{
	/* *************************************
	NAME :
		form_change_class
	INPUT :
		object	=> objet que l'on va mettre à jour
		state		=> état souhaité ("on" <=> mise en valeur, "off" <=> pas de mise en valeur)
	OUTPUT :
		- (modifie la mise en forme de l'objet)
	************************************* */
	var tmp_string									= object.className;
	if (state == "on")	tmp_string	= tmp_string + " css_on";
	if (state == "off")	tmp_string	= tmp_string.replace(" css_on", "");
	object.className								= tmp_string;
	return true;
}

function img_update_thumb(img_id, src_value)
{
	/* *************************************
	NAME :
		img_update_thumb
	INPUT :
		img_id		=> ID de l'image à mettre à jour
		src_value	=> valeur source de l'image
	OUTPUT :
		- (met à jour une miniature de l'image)
	************************************* */
	var previsualisation_img								= document.getElementById(img_id);
	if (src_value == "")
	{	/* masquage de la miniature */
		previsualisation_img.style.visibility	= "hidden";
	}
	else
	{	/* affichage de la miniature */
		previsualisation_img.style.visibility	= "visible";
		previsualisation_img.setAttribute("src", src_value);
	}
	return true;
}

function preview_gmap_from_textarea(object_div)
{
	/* *************************************
	NAME :
		preview_gmap_from_textarea
	INPUT :
		object_div	=> objet cible qui sera mis à jour pour intégrer une prévisualisation de la map
	OUTPUT :
		- (affiche la carte en prévisualisation dans l'assistant)
	************************************* */
	object_div.innerHTML = dragndrop_selected[dragndrop_selected.length-1].innerHTML;
	return true;
}

function preview_img_from_textarea(object_div, urls)
{
	/* *************************************
	NAME :
		preview_img_from_textarea
	INPUT :
		object_div	=> objet cible pour construire les images
		urls				=> urls des ressources separees par des virgules
	OUTPUT :
		- (affiche les images correspondant aux urls)
	************************************* */
	var rgIsImg 		= new RegExp("\.png|\.bmp|\.jpg|\.jpeg|\.gif", "gi");
	var urls_array 	= (urls.toLowerCase()).split(/,/gi);
	var bIsImg 			= false;
	var tmp_html 		= "";
	for(var i=0;i<urls_array.length;i++){
			bIsImg = urls_array[i].match(rgIsImg);
			tmp_html += "<a class='css_form_visu_thumb' href='#' title='" + urls_array[i] + "'><img border='0' src='";
			tmp_html += (urls_array[i]!= "" && bIsImg)? urls_array[i] : "../img/formateur-diaporama-empty.gif";
			tmp_html += "'";
			tmp_html += (urls_array[i]!= "" && bIsImg)? " class='css_form_visu_img'" : "";
			tmp_html += " alt=''/></a>";
	}
	if(object_div) object_div.innerHTML = tmp_html;
	return true;
}

function tab_display(tab_id, tab_order)
{
	/* *************************************
	NAME :
		tab_display
	INPUT :
		tab_id		=> id de l'onglet que l'on veut afficher (-1 pour le 1e onglet de la page)
		tab_order	=> si tab_id == -1 alors permet de specifier quel est le numero d'ordre de l'onglet dans le formulaire (0 par defaut)
	OUTPUT :
		- (deselection de l'objet courant)
	************************************* */
	var tab_root, current_root;
	var tab_label_tmp;
	var tab_fields_tmp;
	var tmp_collection;

	/* cas special : on a demande d'afficher le 1e tab de la page => il faut recuperer cet id */
	if (tab_id == "-1")
	{
		if (String(tab_order) == "undefined") tab_order = 0;
		tmp_collection	= document.getElementsByName("tab_label");
		tab_id					= tmp_collection[tab_order].getAttribute("id_special");
		tab_id					= tab_id.substr(String("tab_label_").length, tab_id.length);
	}

	/* recuperation de la table courante pour ne pas mettre a jour les onglets des autres tables */
	if (b_ie)
	{
		tmp_collection = document.getElementsByName("tab_label");
		if (String(tmp_collection.length) == "undefined")
			tmp_collection = new Array(tmp_collection);
	}
	if (b_ff)
		tmp_collection = document.getElementsByName("tab_label");
	for (var i=0 ; i<tmp_collection.length ; i++)
	{
		tab_label_tmp = tmp_collection[i];
		if (String(tab_root) == "undefined" && tab_label_tmp.getAttribute("id_special") == "tab_label_" + tab_id)
		{
			if (b_ie)
				tab_root = tab_label_tmp.parentNode.parentNode.parentNode.parentNode;
			if (b_ff)
				tab_root = tab_label_tmp.parentNode.parentNode.parentNode;
		}
	}

	/* affichage de la ligne de titre correspondante */
	if (b_ie)
	{
		tmp_collection = document.getElementsByName("tab_label");
		if (String(tmp_collection.length) == "undefined")
			tmp_collection = new Array(tmp_collection);
	}
	if (b_ff)
		tmp_collection = document.getElementsByName("tab_label");
	for (var i=0 ; i<tmp_collection.length ; i++)
	{
		tab_label_tmp = tmp_collection[i];
		/* on ne change rien sur les onglets qui ne sont pas dans la table courante */
		current_root = b_ie ? tab_label_tmp.parentNode.parentNode.parentNode.parentNode : tab_label_tmp.parentNode.parentNode.parentNode;
		if (current_root == tab_root)
		{
			if (tab_label_tmp.getAttribute("id_special") == "tab_label_" + tab_id)
			{
				tab_label_tmp.className	= "css_form_tab_selected";
			}
			else
			{
				/* on ne touche pas aux onglets de type "help" */
				if (tab_label_tmp.className	== "css_form_tab_selected")
					tab_label_tmp.className	= "css_form_tab_normal";
			}
		}
	}

	/* affichage des champs correspondants et masquage des autres */
	if (b_ie)
	{
		tmp_collection = document.getElementsByName("tab_fields");
		if (String(tmp_collection.length) == "undefined")
			tmp_collection = new Array(tmp_collection);
	}
	if (b_ff)
		tmp_collection = document.getElementsByName("tab_fields");
	for (var i=0 ; i<document.getElementsByName("tab_fields").length ; i++)
	{
		tab_fields_tmp = document.getElementsByName("tab_fields")[i];
		/* on ne change rien sur les onglets qui ne sont pas dans la table courante */
		current_root = b_ie ? tab_fields_tmp.parentNode.parentNode.parentNode.parentNode : tab_fields_tmp.parentNode.parentNode.parentNode;
		if (current_root == tab_root)
		{
			if (tab_fields_tmp.getAttribute("id_special") == "tab_fields_" + tab_id)
				tab_fields_tmp.style.display	= "block";
			else
				tab_fields_tmp.style.display	= "none";
		}
	}

	/* deplacement complet de l'objet pour eviter tout depassement */
	msg_display_redraw("", tab_root, 2, null);

	/* réaffichage de l'assistant d'interface le cas échéant */
	if (interface_assistant_mode) interface_assistant_update(interface_assistant_mode);

	return true;
}

function tab_set_focus(object_ref)
{
	/* *************************************
	NAME :
		tab_set_focus
	INPUT :
		object_ref	=> objet de reference sur lequel on souhaite mettre le focus
	OUTPUT :
		- (focus sur l'objet selectionne, meme si il est dans des onglets masques)
	************************************* */
	var parents = new Array;

	/* parcours de tous les peres de l'objet courant pour determiner si il y a des onglets */
	current_parent = object_ref.parentNode;
	while (current_parent != null)
	{
		if (current_parent.getAttribute && current_parent.getAttribute("name") == "tab_fields")
		{	/* onglet parent de l'objet */
			parents = parents.concat(current_parent);
		}
		current_parent = current_parent.parentNode;
	}

	/* parcours inverse de tous les parents */
	for (var i=parents.length-1 ; i>=0 ; i--)
	{
		current_parent	= parents[i];

		/* position de l'onglet parmi tous les autres onglets */
		var nodes_collection	= getChildrenByTagName(current_parent.parentNode, "table");
		var node_index				= null;
		for (var k=0 ; k<nodes_collection.length ; k++)
		{
			if (nodes_collection[k] == current_parent)
				node_index = k;
		}
		if (node_index == null)
		{	/* impossible de retrouver le menu */
			return false;
		}

		/* recuperation de l'onglet de titre pour activation */
		var table_parent	= current_parent.parentNode.parentNode.parentNode.parentNode;
		var tab						= table_parent.getElementsByTagName("span")[node_index];
		if (String(tab) != "undefined")
		{
			/* affichage de l'onglet */
			var id_special		= tab.getAttribute("id_special");
			id_special				= id_special.substr(String("tab_label_").length, id_special.length);
			tab_display(id_special);
		}
	}

	/* focus sur le champ */
	try
	{
		object_ref.focus();
	}
	catch(e){};
	return true;
}

/* *************************************
Ce fichier JS contient diverses methodes necessaires aux formateurs
************************************* */

function formateur_catalog_diaporama_comment(catalog_id, row_id, image_src)
{
	/* *************************************
	NAME :
		formateur_catalog_diaporama_comment
	INPUT :
		catalog_id	=> ID du catalogue a afficher
		row_id			=> numero de la ligne a afficher
		image_src		=> chemin de l'image
	OUTPUT :
		- (affichage des commentaires)
		!! ATTENTION FONCTION UTILISEE PAR LE DIAPORAMA (FICHIER SWF) !!
	************************************* */
	if (String(catalog_id) != "undefined" && String(row_id) != "undefined")
	{
		fog_manage(true);
		window.setTimeout("msg_view_catalog_row('', '" + catalog_id + "', '" + row_id + "', '', '', '', '', '', true);", 100);
	}
	else
	{
		/* on ouvre uniquement l'image */
		open_link(image_src, "new");
	}
}

function formateur_contact_antispam(input_id, input_current_id)
{
	/* *************************************
	NAME :
		formateur_contact_antispam
	INPUT :
		input_id					=> ID de référence
		input_current_id	=> ID courant
	OUTPUT :
		- (regénération du code antispam)
	************************************* */
	var object	= document.getElementById("antispam_" + input_id + "_" + input_current_id);
	var url			=	"../php/img-antispam.php";
	url					= url.replace(/#.*/gi, "");
	url					+= "#" + Math.random();
	object.setAttribute("src", url);
	return true;
}

function formateur_contact_me_onload(rnd)
{
	/* *************************************
	NAME :
		formateur_contact_me_onload
	INPUT :
		rnd	=> identifiant aléatoire fourni par l'appelant
	OUTPUT :
		- (recuperation des proprietes du formulaire)
	************************************* */
	var div_contact_me_opener	= window.parent.document.getElementById('div_contact_me_' + rnd);
	var div_contact_me				= document.getElementById("div_contact_me");
	div_contact_me.innerHTML	= div_contact_me_opener.innerHTML;
	/* regeneration de l'image antispam pour que la session soit a jour */
	window.setTimeout("document.getElementById('div_contact_me').getElementsByTagName('img')[1].onclick()", 100);
	return true;
}

function formateur_gmap_display(rnd)
{
	/* *************************************
	NAME :
		formateur_gmap_display
	INPUT :
		rnd	=> nombre aleatoire permettant de retrouver la zone contenant les points
	OUTPUT :
		- (affichage d'une map avec les points)
	************************************* */
	fog_manage(true);
	window.setTimeout("msg_gmap('', 'gmap_script_" + rnd + "', '', false, '', true);", 100);
}

function page_comments_add()
{
	/* *************************************
	NAME :
		page_comments_add
	INPUT :
		-
	OUTPUT :
		- (lancement de l'ajout du commentaire saisi)
	************************************* */
	var doc									= document.getElementById("form_main");

	/* sauvegarde du formulaire actuel */
	window_preparesubmit();

	doc.param_action.value	= "comments_add";
	doc.submit();
}

function page_comments_remove()
{
	/* *************************************
	NAME :
		page_comments_remove
	INPUT :
		-
	OUTPUT :
		- (lancement de la suppression des commentaires selectionnes)
	************************************* */
	var doc										= document.getElementById("form_main");
	var has_checked						= false;
	var page_comments_delete	= doc.page_comments_delete;
	/* aucun commentaire */
	if (String(page_comments_delete) == "undefined") return false;
	if (String(page_comments_delete.length) == "undefined")
	{	/* 1 ou 0 element */
		if (page_comments_delete.checked)
			has_checked = true;
	}
	else
	{	/* 2 ou + elements */
		for (var i=0 ; i<page_comments_delete.length ; i++)
			if (page_comments_delete[i].checked)
				has_checked = true;
	}
	if (!has_checked)
	{
		fog_manage(true);
		msg_alert("", language_msg("00495"), "", true);
		return false;
	}

	/* sauvegarde du formulaire actuel */
	window_preparesubmit();

	doc.param_action.value	= "comments_remove";
	doc.submit();
}

function formateur_media_change(reference_url, reference_metier_id)
{
	/* *************************************
	NAME :
		formateur_media_change
	INPUT :
		reference_url				=> url du média à recharger
		reference_metier_id	=> ID de l'objet métier
	OUTPUT :
		- (affichage d'un média selon son type)
	************************************* */

	/* paramètres personnalisés selon le type de média */
	var tmp_swf_version							= "";
	var tmp_swf_pattern_allowed			= "";
	var tmp_swf_pattern_not_allowed	= "\\\.";
	var tmp_swf_width								= "100%";
	var tmp_swf_height							= "100%";
	var tmp_flash_version						= "7.0.0";
	var tmp_flashvars								= {};
	var tmp_params									= { quality: 'high', wmode: 'transparent', allowScriptAccess: 'sameDomain', allowFullScreen : 'true'};
	var tmp_attributes							= {id:'swfmovie' + reference_metier_id, name:'swfmovie' + reference_metier_id};
	var tmp_url											= "";

	if (reference_url.indexOf(".mp3") != -1)
	{	/* dewplayer - xxxxxxxx.mp3 */
		tmp_swf_version								= "/site/swf/dewplayer.swf?mp3=";
		tmp_swf_pattern_allowed				= "\\\.mp3";
		tmp_swf_pattern_not_allowed		= "";
		tmp_flashvars									= {mp3: reference_url};

		tmp_url 								 			= reference_url;
		tmp_url 								 			= tmp_url.replace("&amp;", "&");
		tmp_url 								 			= tmp_url.split("&");

		/* url */
		var tmp_url_1								 	= tmp_url[0];
		tmp_url_1											= tmp_url_1.replace(/(,|;| )/gi, "|"); /* url */
		/* options */
		var tmp_url_2									= tmp_url.slice(1);
		tmp_url_2											= tmp_url_2.join("&amp;amp;");
		tmp_url_2											= (tmp_url_2 != "" ? "&amp;amp;" + tmp_url_2 : "");
		tmp_url												= tmp_url_1 + tmp_url_2;
	}

	if (reference_url.indexOf(".flv") != -1)
	{	/* dewplayer - xxxxxxxx.flv */
		tmp_swf_version								= "/site/swf/dewtube.swf?movie=";
		tmp_swf_pattern_allowed				= "\\\.flv";
		tmp_swf_pattern_not_allowed		= "";
		tmp_flashvars									= {movie: reference_url};

		tmp_url 								 			= reference_url;
		tmp_url 								 			= tmp_url.replace("&amp;", "&");
		tmp_url 								 			= tmp_url.split("&");

		/* url */
		var tmp_url_1								 	= tmp_url[0];
		tmp_url_1											= tmp_url_1.replace(/(,|;| )/gi, "|"); /* url */
		/* options */
		var tmp_url_2									= tmp_url.slice(1);
		tmp_url_2											= tmp_url_2.join("&amp;amp;");
		tmp_url_2											= (tmp_url_2 != "" ? "&amp;amp;" + tmp_url_2 : "");
		tmp_url												= tmp_url_1 + tmp_url_2;
	}

	if (reference_url.indexOf("dailymotion.com") != -1)
	{	/* dailymotion - http://www.dailymotion.com/video/xxxxxxxx_????? */
		tmp_swf_version								= "http://www.dailymotion.com/swf/";

		tmp_url 								 			= reference_url;
		tmp_url												= tmp_url.substr(0, tmp_url.indexOf("_"));
		tmp_url												= tmp_url.substr(tmp_url.lastIndexOf("/") + 1, tmp_url.length);
	}

	if (reference_url.indexOf("deezer.com") != -1)
	{	/* deezer - http://www.deezer.com/listen-xxxxxxxx */
		tmp_swf_version								= "http://www.deezer.com/embedded/small-widget-v2.swf?idSong=";
		tmp_flash_version							= "8.0.0";

		tmp_url 								 			= reference_url;
		tmp_url												= tmp_url.substr(tmp_url.lastIndexOf("listen-") + 7, tmp_url.length);
	}

	if (reference_url.indexOf("slideshare") != -1)
	{	/* slideshare - [slideshare id=xxxxxxxx&doc=yyyyyyyy] */
		tmp_swf_version								= "http://s3.amazonaws.com/slideshare/ssplayer2.swf?";

		tmp_url 								 			= reference_url;
		tmp_url												= tmp_url.replace("[slideshare ", "").replace("]", "");
	}

	if (reference_url.indexOf("youtube.com") != -1)
	{	/* youtube - http://fr.youtube.com/watch?v=xxxxxxxx */
		tmp_swf_version								= "http://www.youtube.com/v/";
		tmp_swf_pattern_not_allowed		= "\\\.";

		tmp_url 								 			= reference_url;
		tmp_url												= tmp_url.substr(tmp_url.indexOf("?v=") + 3, tmp_url.length);
	}

	/* rechargement du Flash */
	swf_reload_media(tmp_swf_pattern_allowed, tmp_swf_pattern_not_allowed, reference_metier_id, tmp_swf_version, tmp_url, 'swfmovie' + reference_metier_id, tmp_swf_width, tmp_swf_height, tmp_flash_version, '/site/swf/expressInstall.swf', tmp_flashvars, tmp_params, tmp_attributes);

	return true;
}

/* [Gestion de l'agregateur RSS]*/
function formateur_rss_ajax(oDivConteneur)
{
	/* *************************************
	NAME :
		formateur_rss_ajax (classe gestion RSS)
	INPUT :
		oRss						=> objet du DOM a remplir
		feed						=> url du fil RSS
		feedrow					=> nombre d'item a afficher sur une page
		viewer					=> mode de visualisation ('defaut'=liste; 'cnn', 'bbc' ...)
	OUTPUT :
		fonction formateur_rss_retour : retour du XML a afficher
		fonction formateur_rss_load		: requete Ajax au serveur
	************************************* */
	try
	{
		this.oJsRss								= this;
		this.oRss									= oDivConteneur;
		this.oDivTargetContent		= null;
		this.oULTargetContent			= null;
		this.feed 								= null;
		this.feedrow 							= 5;
		this.detail 							= "1";
		this.viewer 							= "0";
		this.fadetransition				= "0";
		this.timertransition			= 5000;
		this.mozopacityisdefined	= (window.getComputedStyle)? ((window.getComputedStyle(oDivConteneur, "").getPropertyValue("-moz-opacity")==1)? 1 : 0) : null;
		this.fadetimer						= null;
		this.opacitysetting				= 0.2;
		this.mouseOverRSS					= false;
		if(this.oRss)
		{
			this.feed 						= oDivConteneur.getElementsByTagName("input")[0].value;
			this.feedrow 					= oDivConteneur.getElementsByTagName("input")[1].value;
			this.detail 					= oDivConteneur.getElementsByTagName("input")[2].value;
			this.viewer 					= oDivConteneur.getElementsByTagName("input")[3].value;
			this.fadetransition 	= oDivConteneur.getElementsByTagName("input")[4].value;
			this.timertransition 	= oDivConteneur.getElementsByTagName("input")[5].value;
		}
	}
	catch(e) {};
	return true;
}

formateur_rss_ajax.prototype.formateur_rss_retour = function(xmlhttp)
{
	/* *************************************
	NAME :
		formateur_rss_ajax.prototype.formateur_rss_retour
	INPUT :
		xmlhttp					=> flux xml
	OUTPUT :
		 retour du XML a afficher
	************************************* */
	var oJsRss							= this.oJsRss;
	if (String(this.oRss) == "null") return false;
	this.oDivTargetContent	= this.oRss.getElementsByTagName("div")[0];
	this.oULTargetContent		= (this.oDivTargetContent)? this.oDivTargetContent.getElementsByTagName("ul")[0] : null;
	var sTmpResponse				= (xmlhttp)? xmlhttp.responseText : null;

	if(this.oDivTargetContent && sTmpResponse) this.oDivTargetContent.innerHTML = sTmpResponse;

	var aListeItems = this.oDivTargetContent.getElementsByTagName("li");
	var iMax = (!isNaN(this.feedrow) && this.feedrow>0)? this.feedrow :  aListeItems.length;
	/* dernier item = navigation */
	for(var i=0;i<aListeItems.length - 1;i++)
	{
		if(aListeItems[i] && i>iMax-1)
		{
			aListeItems[i].style.display = "none";
		}
	}

	/* detection du curseur de la souris */
	if (this.oDivTargetContent) addEvent(this.oDivTargetContent, "mouseover", function(event){ oJsRss.mouseOverRSS = true;}, false);
	if (this.oDivTargetContent) addEvent(this.oDivTargetContent, "mouseout", function(event){ oJsRss.mouseOverRSS = false;}, false);

	/* generation de la navigation */
	var aLastChild	= aListeItems[aListeItems.length-1].getElementsByTagName("div"),
	oDivPrecedent		= (aLastChild.length>0)? aLastChild[0] : null;
	oDivSuivant			= (aLastChild.length>1)?aLastChild[1] : null;
	if (oDivPrecedent) addEvent(oDivPrecedent, "click", function(event){ oJsRss.formateur_rss_navigate(event,  -iMax);} , false);
	if (oDivSuivant)	 addEvent(oDivSuivant, "click", function(event){ oJsRss.formateur_rss_navigate(event, iMax );} , false);

	/* si le nombre total de ligne est inferieur ou egal au pas, on n'affiche pas la navigation */
	if((aListeItems.length-1)<=iMax)
	{
		if (oDivPrecedent) oDivPrecedent.className	= "rss_formateur_precedent_ko";
		if (oDivSuivant)   oDivSuivant.className		= "rss_formateur_next_ko";
  }

	/* application du viewer CNN le cas echeant */
	if(this.viewer!="0")
	{
		this.oDivTargetContent.className = this.oDivTargetContent.className + " rss_formateur_cnn";
		setTimeout(function(){oJsRss.formateur_rss_rotate(iMax);}, this.timertransition);
	}
};

formateur_rss_ajax.prototype.formateur_rss_rotate = function(iMax)
{
	/* *************************************
	NAME :
		formateur_rss_ajax.prototype.formateur_rss_rotate
	INPUT :
		iMax					=> nombre d'item max a afficher
	OUTPUT :
		 affichage des items suivants ou precedents
	************************************* */
	var oJsRss = this.oJsRss;
	if (this.mouseOverRSS)
	{
		setTimeout(function(){oJsRss.formateur_rss_rotate(iMax);}, 100);
	}
	else
	{
		if(this.fadetransition=="1") oJsRss.formateur_rss_fadetransition("reset");
		oJsRss.formateur_rss_navigate(null, iMax);
		if(this.fadetransition=="1") this.fadetimer=setInterval(function(){oJsRss.formateur_rss_fadetransition('up', 'fadetimer');}, 150);
		setTimeout(function(){oJsRss.formateur_rss_rotate(iMax);}, this.timertransition);
	}
};

formateur_rss_ajax.prototype.formateur_rss_navigate = function(event , iSteps)
{
	/* *************************************
	NAME :
		formateur_rss_ajax.prototype.formateur_rss_navigate
	INPUT :
		event					=> evenement a l'origine du declenchement
		iSteps				=> nombre d'item a decaler (+ ou -)
	OUTPUT :
		 affichage des items suivants ou precedents
	************************************* */
	/* [on remonte au ul contenant les items] */
	var oContent = this.oULTargetContent;

	if(oContent && oContent.tagName && oContent.tagName.toLowerCase() == "ul")
	{
		var aListeItems = oContent.getElementsByTagName("li");
		var oDivNag = aListeItems[aListeItems.length-1].getElementsByTagName("div");
		/* raz du display et recherche de l'indice du premier et dernier item affiche */
		var iFirstIndice 	= 0;
		var iLastIndice 	= 0;
		var bTrouveFirst	= false;
		for(var i=0;i<aListeItems.length - 1;i++)
		{
			if(aListeItems[i].style.display == "")
			{
				if(!bTrouveFirst)
				{
					iFirstIndice = i;
					bTrouveFirst = true;
				}
				iLastIndice = i;
			}
			aListeItems[i].style.display = "none";
		}

		/* si le dernier item est affiche, on ne doit pas pouvoir poursuivre dans le cas d'une liste sinon on boucle */
		if((iLastIndice == aListeItems.length - 2) && iSteps>0)
		{
			if(this.viewer!="0")
			{
				for(var i=0;i<iSteps;i++)
				{
					aListeItems[i].style.display = "";
				}
			}
			else
			{
				for(var i = iFirstIndice;i<=iLastIndice;i++)
				{
					aListeItems[i].style.display = "";
				}
				if (oDivNag && oDivNag[1]) oDivNag[1].className = "rss_formateur_next_ko";
			}
		}
		/* si le premier item est affiche, on ne doit pas pouvoir aller en arriere */
		else if(iFirstIndice == 0 && iSteps<0)
		{
			for(var i = iFirstIndice;i<=iLastIndice;i++)
			{
				aListeItems[i].style.display = "";
			}
			if (oDivNag && oDivNag[0]) oDivNag[0].className = "rss_formateur_precedent_ko";
		}
		else
		{
			if(iSteps>0)
			{
				var iBorneMax = ((iLastIndice + parseInt(iSteps))> aListeItems.length - 1) ? aListeItems.length - 1 : iLastIndice + parseInt(iSteps);
				for(var i = iLastIndice + 1;i<=iBorneMax;i++)
				{
					aListeItems[i].style.display = "";
				}
			}
			else
			{
				var iBorneMin = ((iFirstIndice + parseInt(iSteps) )< 1) ?  0 : iFirstIndice + parseInt(iSteps);
				for(var i = iBorneMin ;i<iFirstIndice;i++)
				{
					aListeItems[i].style.display = "";
				}
			}

			if(iBorneMax - 1 == aListeItems.length - 2)
			{
				if (oDivNag && oDivNag[0]) oDivNag[0].className = "rss_formateur_precedent";
				if (oDivNag && oDivNag[1]) oDivNag[1].className = "rss_formateur_next_ko";
			}
			else if(iBorneMin == 0)
			{
				if (oDivNag && oDivNag[0]) oDivNag[0].className = "rss_formateur_precedent_ko";
				if (oDivNag && oDivNag[1]) oDivNag[1].className = "rss_formateur_next";
			}
			else
			{
				if (oDivNag && oDivNag[0]) oDivNag[0].className = "rss_formateur_precedent";
				if (oDivNag && oDivNag[1]) oDivNag[1].className = "rss_formateur_next";
			}
		}
	}
};

formateur_rss_ajax.prototype.formateur_rss_load = function()
{
	/* *************************************
	NAME :
		formateur_rss_ajax.prototype.formateur_rss_load
	INPUT :
		-
	OUTPUT :
		 cahrgement d'une url RSS
	************************************* */
	/* [on remonte au ul contenant les items] */
	if(this.feed && this.feed!="")
	{
		loadXMLDoc('../php/formateur-rss-proxy.php', 'POST', 'rssurl=' + escape(this.feed) + '&rssdetail=' + escape(this.detail), false, 'o' + this.oRss.id + '.formateur_rss_retour');
	}
};

formateur_rss_ajax.prototype.formateur_rss_fadetransition = function(fadetype, timerid)
{
	/* *************************************
	NAME :
		formateur_rss_ajax.prototype.formateur_rss_fadetransition
	INPUT :
		fadetype		=> up pour avancer ou reset pour redemarrer
		timerid			=> id du timer d'intervalle
	OUTPUT :
		 cahrgement d'une url RSS
	************************************* */
	if (fadetype=="reset") this.opacitysetting=0;
	if (this.oDivTargetContent.filters && this.oDivTargetContent.filters[0])
	{
		if (typeof this.oDivTargetContent.filters[0].opacity=="number") /* IE6+ */
			this.oDivTargetContent.filters[0].opacity=this.opacitysetting*100;
		else /* IE 5.5 */
			this.oDivTargetContent.style.filter="alpha(opacity="+this.opacitysetting*100+")";
	}
	else if(this.mozopacityisdefined)
	{
		this.oDivTargetContent.style.MozOpacity=this.opacitysetting;
	}

	if (fadetype=="up") this.opacitysetting+=0.2;
	if (fadetype=="up" && this.opacitysetting>=1)	clearInterval(this[timerid]);
};

/* [Gestion de la navigation du formateur catalogue]*/
function formateur_catalogue_paginate(iRandom, iTitle, randomRow)
{
	/* *************************************
	NAME :
		formateur_catalogue_paginate
	INPUT :
		oTableCatalogue	=> objet du DOM a remplir
		tablerow				=> nombre d'item a afficher sur une page
	OUTPUT :
		objet formateur_catalogue_paginate
	************************************* */
	this.oJsTableCataloguePaginate	= this;
	this.Id													= (iRandom!="")?iRandom : "";
	this.oTableCatalogue						= (iRandom!="")? document.getElementById("table_catalogue" + String(iRandom)) : null;
	this.oInputTablerow 						= (iRandom!="")? document.getElementById("formateur_table_catalogue_num_row" + String(iRandom)) : null;
	this.random_row									= randomRow == 1 ? true : false;
	this.tablerow										= this.random_row ? 1 : ((this.oInputTablerow)?	this.oInputTablerow.value : 5);
	this.titlerow										= (iTitle=="1")?	false : true;
	this.oDivPrecedent							= null;
	this.oDivSuivant								= null;
}

formateur_catalogue_paginate.prototype.formateur_catalogue_paginate_retour = function()
{
	/* *************************************
	NAME :
		formateur_catalogue_paginate.prototype.formateur_catalogue_paginate_retour
	INPUT :
		-
	OUTPUT :
		changement de page dans le catalogue
	************************************* */
	var oJsTableCataloguePaginate	= this.oJsTableCataloguePaginate;

	/* mode aléatoire : masquage pendant le calcul */
	if (this.random_row) this.oTableCatalogue.style.display = "none";

	if(this.oTableCatalogue)
	{
		var aListeItems = this.oTableCatalogue.getElementsByTagName("tr");
		var iMax = (!isNaN(this.tablerow) && this.tablerow>0)? this.tablerow :  aListeItems.length;
		var iFirstIndice 	= (this.titlerow)? 0 : 1;
		var iOffsetIndice = (this.titlerow)? 1 : 0;
		for(var i=iFirstIndice;i<aListeItems.length;i++)
			if((aListeItems[i] && i>iMax-iFirstIndice))
				aListeItems[i].style.display = "none";
	}

	/* generation de la navigation */
	this.oDivPrecedent = (this.Id!="")? document.getElementById("previous" + String(this.Id)) : null;
	this.oDivSuivant 	= (this.Id!="")? document.getElementById("next" + String(this.Id)) : null;
	if (this.oDivPrecedent) addEvent(this.oDivPrecedent , "click" , function(event){ oJsTableCataloguePaginate.formateur_catalogue_navigate(event, -iMax);} , false);
	if (this.oDivSuivant)	 addEvent(this.oDivSuivant		, "click" , function(event){ oJsTableCataloguePaginate.formateur_catalogue_navigate(event, iMax );} , false);

	/* si le nombre total de ligne est inferieur ou egal ou pas, on n'affiche pas la navigation */
	if((aListeItems.length-iOffsetIndice)<=iMax)
	{
		if (this.oDivPrecedent) this.oDivPrecedent.className	= "table_formateur_precedent_ko";
		if (this.oDivSuivant)   this.oDivSuivant.className		= "table_formateur_next_ko";
  }

	if (this.random_row)
	{	/* mode aléatoire sur 1 ligne => on se déplace sur la bonne ligne */
		var tmp_rnd = Math.round(Math.random()*(aListeItems.length - 1));
		/* non-optimisé => déplacement jusqu'à la ligne souhaitée */
		for(var i=0 ; i < tmp_rnd ; i++)
			oJsTableCataloguePaginate.formateur_catalogue_navigate("", 1);
		/* mode aléatoire : affichage après le calcul */
		if (this.random_row) this.oTableCatalogue.style.display = "";
	}
};

formateur_catalogue_paginate.prototype.formateur_catalogue_navigate = function(event, iSteps)
{
	/* *************************************
	NAME :
		formateur_catalogue_paginate.prototype.formateur_catalogue_navigate
	INPUT :
		event		=> evenement a l'origine de la navigation
		iSteps	=> nombre d'items a decaler (+ ou -)
	OUTPUT :
		changement de page dans le catalogue
	************************************* */
	var aListeItems = (this.oTableCatalogue)? this.oTableCatalogue.getElementsByTagName("tr") : null;
	if(aListeItems)
	{
		/* raz du display et recherche de l'indice du premier et dernier item affiche */
		var iFirstIndiceBk 	= (this.titlerow)? 1 : 0;
		var iFirstIndice 		= (this.titlerow)? 1 : 0;
		var iLastIndice 		= 0;
		var bTrouveFirst		= false;
		for(var i=iFirstIndice;i<aListeItems.length;i++)
		{
			if(aListeItems[i].style.display == "")
			{
				if(!bTrouveFirst)
				{
					iFirstIndice = i;
					bTrouveFirst = true;
				}
				iLastIndice = i;
			}
			aListeItems[i].style.display = "none";
		}

		/* si le dernier item est affiche, on ne doit pas pouvoir poursuivre dans le cas d'une liste sinon on boucle */
		if((iLastIndice == aListeItems.length - 1) && iSteps>0)
		{
			for(var i = iFirstIndice;i<=iLastIndice;i++)
			{
				aListeItems[i].style.display = "";
			}
			if (this.oDivSuivant) this.oDivSuivant.className = "table_formateur_next_ko";
		}
		/* si le premier item est affiche, on ne doit pas pouvoir aller en arriere */
		else if((iFirstIndice == iFirstIndiceBk) && iSteps<0)
		{
			for(var i = iFirstIndice;i<=iLastIndice;i++)
			{
				aListeItems[i].style.display = "";
			}
			if (this.oDivPrecedent) this.oDivPrecedent.className = "table_formateur_precedent_ko";
		}
		else
		{
			if(iSteps>0)
			{
				var iBorneMax = ((iLastIndice + parseInt(iSteps))> aListeItems.length - 1) ? aListeItems.length - 1  : iLastIndice + parseInt(iSteps);
				for(var i = iLastIndice + 1;i<=iBorneMax;i++)
				{
					aListeItems[i].style.display = "";
				}
			}
			else
			{
				var iBorneMin = ((iFirstIndice + parseInt(iSteps) )< iFirstIndiceBk) ?  iFirstIndiceBk : iFirstIndice + parseInt(iSteps);
				for(var i = iBorneMin ;i<iFirstIndice;i++)
				{
					aListeItems[i].style.display = "";
				}
			}

			if(iBorneMax == aListeItems.length - 1 )
			{
				if (this.oDivSuivant)		this.oDivSuivant.className		= "table_formateur_next_ko";
				if (this.oDivPrecedent)	this.oDivPrecedent.className	= "table_formateur_precedent";
			}
			else if(iBorneMin == iFirstIndiceBk)
			{
					if (this.oDivSuivant)		this.oDivSuivant.className		= "table_formateur_next";
					if (this.oDivPrecedent)	this.oDivPrecedent.className	= "table_formateur_precedent_ko";
			}
			else
			{
					if (this.oDivSuivant)		this.oDivSuivant.className		= "table_formateur_next";
					if (this.oDivPrecedent)	this.oDivPrecedent.className	= "table_formateur_precedent";
			}
		}
	}
};

function formateur_search(rnd)
{
	/* *************************************
	NAME :
		formateur_search
	INPUT :
		rnd	=> nombre aleatoire permettant de retrouver les champs de la recherche
	OUTPUT :
		- (lancement d'une recherche)
	************************************* */
	/* verification des informations saisies */
	var doc							= document.getElementById('form_main');
	var search_keywords	= document.getElementById('search_keywords_' + rnd);
	var search_site			= document.getElementById('search_site_' + rnd);
	search_site.value		= document.getElementById('idsite').value;
	if (search_keywords.value == '')
		return false;
	open_link("../php/formateur-search-process.php?search_keywords=" + search_keywords.value + "&idsite=" + search_site.value, "iframe" , "", "480" , "530");
	return true;
}

function formateur_see_more_text_display(object_reference, color_popup_bg)
{
	/* *************************************
	NAME :
		formateur_see_more_text_display
	INPUT :
		object_reference	=> objet contenant ce qu'il faut afficher
		color_popup_bg		=> éventuelle couleur de fond à afficher dans la popup
	OUTPUT :
		- (affichage de l'integralite d'un objet de ce type)
	************************************* */
	if (object_reference)
	{
		/* cas spécial qui peut se produire sous IE */
		if (b_ie && String(object_reference.innerHTML) == "undefined")
			object_reference = object_reference.nextSibling;

		/* affichage du texte complet */
		fog_manage(true);
		msg_alert("", object_reference.innerHTML, "", true, false, true, color_popup_bg);
	}
	return true;
}

function formateur_see_more_text_display_validate(result)
{
	/* *************************************
	NAME :
		formateur_see_more_text_display_validate
	INPUT :
		result => nouveau nom saisi par l'utilisateur
	OUTPUT :
		- (affichage/masquage de l'integralite d'un objet de ce type)
	************************************* */
	formateur_see_more_text_display();
	return true;
}

/* timeout du menu */
var timeout 		= 1000;
var iNbMaxItem	= 100;
/* variables de timout pour les item du menu */
for(var i = 0; i < iNbMaxItem; i++) eval("var timeoutli" + i + " = false;");
function formateur_menu_init(sID)
{
	/* *************************************
	NAME :
		formateur_menu_init
	INPUT :
		sID	=> ID de l'objet <UL> de la barre de navigation
	OUTPUT :
		-  construction de la barre de navigation et affectation des evenements
	************************************* */
	/* les navigateurs comme I, Opera 6 et IE MAC ne sont pas pris en compte */
	if ( browser.isDOM1
		&& !( browser.isMac && browser.isIE )
		&& !( browser.isOpera && browser.versionMajor < 7 )
		&& !( browser.isIE && browser.versionMajor < 5 ) )
	{
		var oMenu 	= document.getElementById(sID);
		var oItems 	= oMenu.getElementsByTagName('li');

		/* recherche des sous-menus */
		for (var i=0; i<oItems.length; i++)
		{
			if ( oItems[i].getElementsByTagName('ul').length > 0 )
			{
				/* event sur les items */
				addEvent(oItems[i],'mouseover',formateur_menu_show);
				addEvent(oItems[i],'mouseout',formateur_menu_hide);
				addEvent(oItems[i],'blur',formateur_menu_hide);
				addEvent(oItems[i],'focus',formateur_menu_show);

				/* creation d'un id pour les items */
				oItems[i].setAttribute( 'id', "li"+i );
			}
			else
			{
				/* menu sans sous-menu */
				addEvent(oItems[i],'mouseover',formateur_menu_show);
				addEvent(oItems[i],'mouseout',formateur_menu_hide);
				addEvent(oItems[i],'blur',formateur_menu_hide);
				addEvent(oItems[i],'focus',formateur_menu_show);
			}
		}
	}
}

function formateur_menu_hide()
{
	/* *************************************
	NAME :
		formateur_menu_hide
	INPUT :
		-
	OUTPUT :
		-  cache le premier noeud UL de l'element courant avec timeout
	************************************* */
	/* utilisation d'un timeout */
	eval( "timeout" + this.id + " = window.setTimeout('formateur_menu_hideUl( \"" + this.id + "\" )', " + timeout + " );");
}

function formateur_menu_hideUl( id )
{
	/* *************************************
	NAME :
		formateur_menu_hideUl
	INPUT :
		-
	OUTPUT :
		-  cache le premier noeud UL de l'element courant
	************************************* */
	try
	{
		document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
		document.getElementById(id).getElementsByTagName('a')[0].className = '';
	}
	catch(e) {}; /* erreur lorsque menu principal sans sous-menu */
}


function formateur_menu_show()
{
	/* *************************************
	NAME :
		formateur_menu_show
	INPUT :
		-
	OUTPUT :
		-  affiche le sous-menu
	************************************* */
	try
	{
		this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
	}
	catch(e) {}; /* erreur lorsque menu principal sans sous-menu */
	var currentNode	=	this;
	while(currentNode)
	{
		if( currentNode.nodeName.toLowerCase() == 'li')
		{
			currentNode.getElementsByTagName('a')[0].className = 'linkOver';

			/* récupération de la hauteur de l'objet métier */
			var tmp_boolean	= true;
			var tmp_parent	= currentNode;
			var tmp_integer	= 0;

			try
			{
				while (tmp_boolean)
				{
					if (b_ie)
					{
						if (tmp_parent.id != "" && tmp_parent.getAttribute("id").substr(0, 9) == "readonly_")
							tmp_boolean		= false;
						else
							tmp_parent		= tmp_parent.parentNode;
					}
					else
					{
						if (tmp_parent.hasAttribute("id") && tmp_parent.getAttribute("id").substr(0, 9) == "readonly_")
							tmp_boolean		= false;
						else
							tmp_parent		= tmp_parent.parentNode;
					}
				}
				if (parseInt(tmp_parent.offsetWidth) > parseInt(tmp_parent.offsetHeight))
				{		/* menu horizontal : modification de la hauteur fixe pour avoir celle de l'objet métier */
					tmp_integer						= parseInt(tmp_parent.offsetHeight) - (tmp_parent.style.borderTopWidth == "" ? 0 : parseInt(tmp_parent.style.borderTopWidth)) - (tmp_parent.style.borderBottomWidth == "" ? 0 : parseInt(tmp_parent.style.borderBottomWidth));
					var tmp_array		 = currentNode.getElementsByTagName('a');
					for (var i=0 ; i<tmp_array.length ; i++)
						tmp_array[i].style.height = tmp_integer + "px";
				}
				/* modification du déplacement vertical des sous-menus */
				var tmp_array		 = currentNode.getElementsByTagName('ul');
				for (var i=1 ; i<tmp_array.length ; i++)
				{
					tmp_array[i].style.marginTop = (0 - 3 * tmp_integer / 4) + "px";
				}
			}
			catch(e) {};

		}
		currentNode = currentNode.parentNode;
	}
	eval("clearTimeout( timeout"+ this.id +");");
	formateur_menu_hideAllUls(this);
}

function formateur_menu_hideAllUls(currentLi)
{
	/* *************************************
	NAME :
		formateur_menu_hideAllUls
	INPUT :
		currentLi = objet LI courant
	OUTPUT :
		-  cache tous les noeus UL au meme niveau que l'item courant
	************************************* */
	var oLis = currentLi.parentNode;
	for ( var i=0; i<oLis.childNodes.length; i++ )
	{
		if ( oLis.childNodes[i].nodeName.toLowerCase() =='li' && oLis.childNodes[i].id != currentLi.id )
		{
			formateur_menu_hideUlUnderLi( oLis.childNodes[i] );
		}
	}
}

function formateur_menu_hideUlUnderLi(li)
{
	/* *************************************
	NAME :
		formateur_menu_hideUlUnderLi
	INPUT :
		currentLi = objet LI courant
	OUTPUT :
		-  cache tous les noeus UL enfant de l'item courant
	************************************* */
	var oAs = li.getElementsByTagName('a');
	var oUls = li.getElementsByTagName('ul');
	for ( var i=0; i<oAs.length; i++ ) oAs[i].className="";
	for ( var i=0; i<oUls.length; i++ ) oUls[i].style['visibility'] = 'hidden';
}

function formateur_catalog_heritage_conteneur(oConteneur, sTag)
{
	/* *************************************
	NAME :
		formateur_catalog_heritage_conteneur
	INPUT :
		oConteneur = objet du conteneur du catalog
		sTag			 = nom du premier tag a traiter
	OUTPUT :
		-  affectation du style color, font-size ,font-weight, font-style, text-decoration text-align
	************************************* */
	/* recuperation du style du conteneur */
	var tmp_style							= (oConteneur && oConteneur.getAttribute("style"))? object_style_get(oConteneur).toLowerCase() : "";
	var reg										= null;
	if(tmp_style != "")
	{
		reg											= /;\s*color[^;]*;/gi;
		var tmp_color						= reg.exec(tmp_style);
		tmp_color								= (tmp_color)? tmp_color : "";
		reg											= /;\s*font\-size[^;]*;?/gi;
		var tmp_font_size				= reg.exec(tmp_style);
		tmp_font_size						= (tmp_font_size)? tmp_font_size : "";
		reg											= /;\s*text\-align[^;]*;?/gi;
		var tmp_text_align			= reg.exec(tmp_style);
		tmp_text_align					= (tmp_text_align)? tmp_text_align : "";
		reg											= /;\s*font\-weight[^;]*;?/gi;
		var tmp_font_weight			= reg.exec(tmp_style);
		tmp_font_weight					= (tmp_font_weight)? tmp_font_weight : "";
		reg											= /;\s*font\-style[^;]*;?/gi;
		var tmp_font_style			= reg.exec(tmp_style);
		tmp_font_style					= (tmp_font_style)? tmp_font_style : "";
		reg											= /;\s*text\-decoration[^;]*;?/gi;
		var tmp_text_decoration	= reg.exec(tmp_style);
		tmp_text_decoration			= (tmp_text_decoration)? tmp_text_decoration : "";
		reg											= /;\s*font\-family[^;]*;?/gi;
		var tmp_font_family 		= reg.exec(tmp_style);
		tmp_font_family					= (tmp_font_family)? tmp_font_family : "";
		switch (sTag)
		{
			case "table" :
				var tmp_table 	= (oConteneur) ? oConteneur.getElementsByTagName(sTag)[0] : null;
				var tmp_th 		 	= (oConteneur) ? oConteneur.getElementsByTagName("th")[0] : null;
				var tmp_td 		 	= (oConteneur) ? oConteneur.getElementsByTagName("td")[0] : null;
				if(tmp_table)		object_style_set(tmp_table, tmp_color + tmp_font_size + tmp_text_align + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
				if(tmp_th)	  	object_style_set(tmp_th, tmp_color + tmp_font_size + tmp_text_align + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
				if(tmp_td)	  	object_style_set(tmp_td, tmp_color + tmp_font_size + tmp_text_align + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
				break;
			case "input" :
				var tmp_input 	= (oConteneur) ? oConteneur.getElementsByTagName(sTag) : null;
				var tmp_herit		= null;
				for(var i=0 ; i<tmp_input.length ; i++)
				{
					tmp_herit = (tmp_input[i].getAttribute("herit") && tmp_input[i].getAttribute("herit")=="0")? false : true;
					if(tmp_input[i] && tmp_herit) object_style_set(tmp_input[i], tmp_font_family + tmp_color + tmp_font_size  + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
				}
				break;
			case "select" :
				var tmp_select 	= (oConteneur) ? oConteneur.getElementsByTagName(sTag) : null;
				var tmp_herit		= null;
				for(var i=0 ; i<tmp_select.length ; i++)
				{
					tmp_herit = (tmp_select[i].getAttribute("herit") && tmp_select[i].getAttribute("herit")=="0")? false : true;
					if(tmp_select[i] && tmp_herit) object_style_set(tmp_select[i], tmp_font_family + tmp_color + tmp_font_size  + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
				}
				break;
			case "a" :
				var tmp_a 			= (oConteneur) ? oConteneur.getElementsByTagName(sTag) : null;
				for(var i=0;i<tmp_a.length;i++)
				{
					tmp_mode_herit = (tmp_a[i].getAttribute("mode_herit"))? tmp_a[i].getAttribute("mode_herit") : "-1";
					switch (tmp_mode_herit)
					{
						/* par defaut, heritage complet */
						case "-1" :
					if(tmp_a[i] && tmp_a[i].className.indexOf("css_formateur_menu_position") == -1) object_style_set(tmp_a[i], tmp_font_family + tmp_color + tmp_font_size + tmp_text_align + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
						break;
						/* heritage complet sauf size, color, decoration  et weight(item RSS) */
						case "0" :
							if(tmp_a[i]) object_style_set(tmp_a[i], "font-size:1.1em;" + tmp_font_family + tmp_text_align  , false, false);
						break;
						/* heritage font-family seulement(titre RSS) */
						case "1" :
							if(tmp_a[i]) object_style_set(tmp_a[i], tmp_font_family +";"  , false, false);
						break;
						default :
							if(tmp_a[i] && tmp_a[i].className.indexOf("css_formateur_menu_position") == -1) object_style_set(tmp_a[i], tmp_font_family + tmp_color + tmp_font_size + tmp_text_align + tmp_font_weight + tmp_font_style + tmp_text_decoration, false, false);
						break;
					}
				}
				break;
			default :
				break;
		}
	}
}

function object_update_after_display(current_object)
{
	/* *************************************
	NAME :
		object_update_after_display
	INPUT :
		current_object	=> objet à mettre à jour
	OUTPUT :
		-  (mise à jour spéciale de chaque objet après son affichage)
	************************************* */
	/* insérer ici le code pour gérer les différences d'affichage entre navigateurs (ex: marge interne IE/FF) */
	/* tester le cas où on modifie le style de margin d'un objet géré par cette fonction, puis qu'on retourne dans l'assistant de style */

	/* pour IE, on retablit la visu hauteur/largeur si presence de border, padding ou margin car le modele de box est special */
	if (b_ie && current_object)
	{
		/* calcul de l'offset hauteur/largeur pour le modele de box IE */
		var tmp_css_array_detail	= (current_object.style.cssText.toLowerCase()).split(";");
		var tmp_css_width4ie  		= 0;
		var tmp_css_height4ie			= 0;
		var tmp_int								= "";
		for (var k=0 ; k<tmp_css_array_detail.length ; k++)
		{
			if(tmp_css_array_detail[k].indexOf("padding-left:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("padding-left:", "");
				if(tmp_int!="") tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("padding-right:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("padding-right:", "");
				if(tmp_int!="") tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-left-width:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("border-left-width:", "");
				if(tmp_int!="") tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-left:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].match(/\d+px/gi);
				if(tmp_int) tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-right-width:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("border-right-width:", "");
				if(tmp_int!="") tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-right:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].match(/\d+px/gi);
				if(tmp_int) tmp_css_width4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("padding-top:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("padding-top:", "");
				if(tmp_int!="") tmp_css_height4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("padding-bottom:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("padding-bottom:", "");
				if(tmp_int!="") tmp_css_height4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-top-width:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("border-top-width:", "");
				if(tmp_int!="") tmp_css_height4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-top:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].match(/\d+px/gi);
				if(tmp_int) tmp_css_height4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-bottom-width:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].replace("border-bottom-width:", "");
				if(tmp_int!="") tmp_css_height4ie += parseInt(tmp_int);
			}
			if(tmp_css_array_detail[k].indexOf("border-bottom:")>-1)
			{
				tmp_int = tmp_css_array_detail[k].match(/\d+px/gi);
				if(tmp_int) tmp_css_height4ie += parseInt(tmp_int);
			}
			tmp_int = "";
		}

		current_object.setAttribute("offsetwidth4ie" , tmp_css_width4ie);
		current_object.setAttribute("offsetheight4ie" , tmp_css_height4ie);

		/* mise à jour de l'objet */
		var tmp_width		= current_object.style.width;
		var tmp_height	= current_object.style.height;
		if (tmp_width!="")
			current_object.style.width																													= String(tmp_css_width4ie + parseInt(tmp_width))+ "px";
		if (tmp_height!="")
			current_object.style.height																													= String(tmp_css_height4ie + parseInt(tmp_height))+ "px";
	}

	/* mise à jour de l'affichage du div affiché par-dessus (en mode design) */
	try
	{
		dragndrop_over_adjust(current_object, false, null);
	}
	catch(e){};
}


/* *************************************
Ce fichier JS contient diverses methodes
************************************* */

function addslashes(input_string)
{
	/* *************************************
	NAME :
		addslashes
	INPUT :
		input_string => chaine dont on va faire un "escape" sur les guillemets et apostrophes
	OUTPUT :
		- (fait preceder les guillemets et apostrophes d'un slash)
	************************************* */
	return input_string.replace(/\"/g,"\\\"").replace(/\'/g,"\\\'");
}

/* detection du browser */
var b_ie			= false; /* Internet Explorer */
var b_ff			= false; /* Netscape/Firefox */
var b_sf			= false; /* Safari */
var b_chrome	= false; /* Chrome */

switch (navigator.appName.toLowerCase()) /* possibilite d'affiner avec "navigator.appVersion" */
{
	case "microsoft internet explorer":
	case "adobe svg viewer": /* pour l'affichage svg sous IE */
		b_ie = true;
		break;
	case "netscape":
		b_ff = true;
		if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1)b_chrome = true;
		if(navigator.userAgent.toLowerCase().indexOf("safari")>-1)b_sf = true;
		break;
	case "safari":
		b_sf = true;
}

/* Browser Detect Lite  v2.1.4 */
/* http://www.dithered.com/javascript/browser_detect/index.html */
/* modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)*/
/* detection du browser complete */
function BrowserDetectLite() {
   var ua = navigator.userAgent.toLowerCase();

   /* browser name */
   this.isGecko     = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isMozilla   = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isNS        = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   this.isIE        = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) );
   this.isSafari    = (ua.indexOf('safari') != - 1);
   this.isOpera     = (ua.indexOf('opera') != -1);
   this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari);
   this.isIcab      = (ua.indexOf('icab') != -1);
   this.isAol       = (ua.indexOf('aol') != -1);

   /* spoofing and compatible browsers */
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);

   /* browser version */
   this.versionMinor = parseFloat(navigator.appVersion);

   /* correct version number */
   if (this.isNS && this.isGecko) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
   }
   else if (this.isOpera) {
      if (ua.indexOf('opera/') != -1) {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
      }
      else {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
      }
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isIcab) {
      if (ua.indexOf('icab/') != -1) {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
      }
      else {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
      }
   }

   this.versionMajor = parseInt(this.versionMinor);
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );

   /* dom support */
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);

   /* css compatibility mode */
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   /* platform */
   this.isWin   = (ua.indexOf('win') != -1);
   this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac   = (ua.indexOf('mac') != -1);
   this.isUnix  = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1);
   this.isLinux = (ua.indexOf('linux') != -1);

   /* specific browser shortcuts */
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);

   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);

   this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetectLite();

function cancelbubble_event(e)
{
	/* *************************************
	NAME :
		cancelbubble_event
	INPUT :
		e => evenement
	OUTPUT :
		- (applique le cancelbubble)
	************************************* */
	if (b_ie) e.cancelBubble	= true;
	if (b_ff || b_chrome) e.stopPropagation();
}

function dec2hex(input)
{
	/* *************************************
	NAME :
		dec2hex
	INPUT :
		input	=> décimal à convertir en héxadécimal
	OUTPUT :
		héxadécimal du décimal donné en paramètres
	************************************* */
	return input.toString(16);
}
function hex2dec(input)
{
	/* *************************************
	NAME :
		hex2dec
	INPUT :
		input	=> hexadécimal à convertir en décimal
	OUTPUT :
		décimal de l'héxadécimal donné en paramètres
	************************************* */
	return parseInt(input, 16);
}
function color_invert(input)
{
	/* *************************************
	NAME :
		color_invert
	INPUT :
		input	=> couleur à inverser (ex: #ff0000)
	OUTPUT :
		inverse de la couleur spécifiée (ex: #ff0000 => #00ffff)
	************************************* */
	/* cas spéciaux */
	if (input == "transparent") return "#000000";
	if (input == "") return "#000000";

	if (input.length == 4 && input.substr(0, 1) == "#")
	{	/* format #xyz => à mettre au format #xxyyzz */
		input = "#" + input.substr(1, 1) + input.substr(1, 1) + input.substr(2, 1) + input.substr(2, 1) + input.substr(3, 1) + input.substr(3, 1);
	}

	if (input.length != 7 || input.substr(0, 1) != "#")
	{	/* format invalide */
		return "#000000";
	}

	var tmp_string	= rgb_to_hex(input);
	tmp_string			= tmp_string.replace("#", "");
	var r						= dec2hex(255 - hex2dec(tmp_string.substr(0,2)));
	r								= (r.length > 1) ? r : "0" + r;
	var g						= dec2hex(255 - hex2dec(tmp_string.substr(2,2)));
	g								= (g.length > 1) ? g : "0" + g;
	var b						= dec2hex(255 - hex2dec(tmp_string.substr(4,2)));
	b								= (b.length > 1) ? b : "0" + b;
	return "#" + r + g + b;
}

/* tableau contenant la position de départ (et de fin en cas de sélection) du curseur dans l'input/textarea */
var cursor_position = new Array(0, 0);
function cursor_position_restore(object_reference, iframe_mode)
{
	/* *************************************
	NAME :
		cursor_position_restore
	INPUT :
		object_reference	=> objet de référence
		iframe_mode				=> true si on veut la position dans une iframe en mode "designMode"
	OUTPUT :
		- (restauration de la position du curseur dans l'objet)
	************************************* */
	/* remise en place du curseur à la position à laquelle il était lors de la sauvegarde */
	var position_start	= cursor_position[0];
	var position_end		= cursor_position[1];

	if (b_ie)
	{
		object_reference.focus();
		/* même code en mode iframe ou pas */
		var range = object_reference.document.selection.createRange();
		range.collapse(true);
		range.moveEnd('character',  position_end);
		range.moveStart('character', position_start);
	}

	if (b_ff)
	{
		if (iframe_mode)
		{
			/* la sauvegarde de la position n'a pas été fiable => ne rien faire */
		}
		else
		{
			object_reference.focus();
			object_reference.setSelectionRange(position_start, position_end);
		}
	}

	return true;
}

function cursor_position_save(object_reference, iframe_mode)
{
	/* *************************************
	NAME :
		cursor_position_save
	INPUT :
		object_reference	=> objet de référence
		iframe_mode				=> true si on veut la position dans une iframe en mode "designMode"
	OUTPUT :
		- (sauvegarde de la position du curseur dans l'objet)
	************************************* */
	cursor_position = new Array(0, 0);

	if (b_ie)
	{
		object_reference.focus();
		/* même code en mode iframe ou pas */
		var selection_range	= document.selection.createRange().duplicate();
		var before_range		= document.body.createTextRange();
		before_range.moveToElementText(object_reference);					/* sélection de tout le texte */
		before_range.setEndPoint("EndToStart", selection_range);	/* déplacement de la fin où on en a besoin */
		var after_range			= document.body.createTextRange();
		after_range.moveToElementText(object_reference);					/* sélection de tout le texte */
		after_range.setEndPoint("StartToEnd", selection_range);		/* déplacement du début où on en a besoin */
		var before_text, selection_text, after_text;
		/* charge la valeur du texte que l'on veut comparer */
		before_text					= before_range.text;
		selection_text			= selection_range.text;
		after_text					= after_range.text;
		cursor_position[0]	= before_text.length;
		cursor_position[1]	= before_text.length + selection_text.length;
	}

	if (b_ff)
	{
		if (iframe_mode)
		{
			/* startOffset et endOffset renvoient la position relative à la ligne courante, et pas absolue... => on ne peut rien en faire */
			/*
			var sel							= object_reference.getSelection();
			var range						= sel.getRangeAt(0);
			var container				= range.startContainer;
			cursor_position[0]	= range.startOffset;
			cursor_position[1]	= range.endOffset;
			*/
		}
		else
		{
			cursor_position[0]	= object_reference.selectionStart;
			cursor_position[1]	= object_reference.selectionEnd;
		}
	}

	return true;
}

function doc_exe_js(object_document, id_script, timeout)
{
	/* *************************************
	NAME :
		doc_exe_js
	INPUT :
		object_document	=> document de reference contenant le code a executer
		id_script				=> id de l'objet contenant (au sens "value") le code a executer
		timeout					=> eventuel delai avant execution (ex: 1000, 2000...)
	OUTPUT :
		- (le code javascript situe dans l'objet "object_document" au niveau d'une balise <textarea id=id_script> ou <script id=id_script> est execute)
	************************************* */
	/* retour a l'accueil ou derniere vue affichee ou page en cours de modification */
	try
	{
		/* gestion du cas ou plusieurs scripts existent (par exemple pour formateur_page_menu) */
		if (String(timeout) == "undefined" || timeout == null)
			timeout = 0;
		if (object_document.getElementsByName(id_script).length)
		{
			for (var i=0 ; i<object_document.getElementsByName(id_script).length ; i++)
			{
				var script_tags = object_document.getElementsByName(id_script)[i];
				if (script_tags != null)
				{
					/* en priorité on prend le "value" (par exemple pour un "<textarea>..."), sinon le "innerHTML" (par exemple pour un "<script>...") */
					var js_code	= String(script_tags.value) != "undefined" ? script_tags.value : script_tags.innerHTML;
					/* exécution */
					if (String(js_code) != "undefined")
						window.setTimeout(js_code, timeout);
				}
			}
		}
		else
		{
			var script_tags = object_document.getElementById(id_script);

			if (script_tags != null)
			{
				/* en priorité on prend le "value" (par exemple pour un "<textarea>..."), sinon le "innerHTML" (par exemple pour un "<script>..." */
				var js_code	= String(script_tags.value) != "undefined" ? script_tags.value : script_tags.innerHTML;
				/* exécution */
				if (String(js_code) != "undefined")
					window.setTimeout(js_code, timeout);
			}
		}
	}
	catch(erreur) {}
	return true;
}

function dom_remove_newline_nodes(ref_dom)
{
	/* *************************************
	NAME :
		dom_remove_newline_nodes
	INPUT :
		ref_dom => DOM de reference
	OUTPUT :
		- (suppression des nodes "\n" du DOM fourni en argument)
	************************************* */
	var tmp_node = null;
	for (var i=ref_dom.childNodes.length-1 ; i>=0 ; i--)
	{
		tmp_node = ref_dom.childNodes[i];
		if (tmp_node.nodeType == 3 && (tmp_node.nodeValue.match(/ *\n */gi) != null))
		{
			ref_dom.removeChild(tmp_node);
		}
		else
		{
			dom_remove_newline_nodes(tmp_node);
		}
	}
	return true;
}

function export_table_to_xls(input_table, export_type)
{
	/* *************************************
	NAME :
		export_table_to_xls
	INPUT :
		input_table	=> table à exporter
		export_type	=> "excel" pour télécharger vers Excel
								=> sinon téléchargement classique
	OUTPUT :
		- (export de la table sous une forme ou une autre, par appel serveur)
	************************************* */
	var result = "";

	if (String(input_table.tagName).toLowerCase() != "table")
	{
		fog_manage(true);
		window.setTimeout("msg_alert('', language_msg('00934'), '', true);", 100);
		return false;
	}

	if (export_type == "excel")
	{	/* Excel : conserver une table HTML classique */
		var tmp_string	= get_outerHTML(input_table);
		/* suppression des attributs HTML inutiles*/
		tmp_string			= tmp_string.replace(/ class=".*"/gi, "");
		tmp_string			= tmp_string.replace(/ header=".*"/gi, "");
		tmp_string			= tmp_string.replace(/ onclick=".*"/gi, "");
		tmp_string			= tmp_string.replace(/ style=".*"/gi, "");
		/* remplacement des sauts de ligne incohérents pour Excel */
		tmp_string			= tmp_string.replace(/<br\/>/gi, "<br>");
		result					= tmp_string;
	}
	else
	{
		var x						= input_table.rows
		for (i=0 ; i<x.length ; i++)
		{
			var y					= x[i].cells
			for (j=0 ; j<y.length ; j++)
			{
				/* épuration des tags */
				result			+= remove_html_tags(y[j].innerHTML) + String.fromCharCode(9)
			}
			result				+= String.fromCharCode(13)
		}
	}

	/* soumission dans une autre fenêtre (iframe) */
	var rnd																								= String(Math.random());
	var export_table_to_xls_iframe												= document.createElement("iframe");
	export_table_to_xls_iframe.style.display							= "none";
	export_table_to_xls_iframe.setAttribute("src", "about:blank");
	export_table_to_xls_iframe.setAttribute("id", "export_table_to_xls_iframe_" + rnd);
	document.body.appendChild(export_table_to_xls_iframe);
	var window_document																		= (b_ie ? export_table_to_xls_iframe.contentWindow.document : export_table_to_xls_iframe.contentDocument);
	window_document.write("<form id='form_main' action='../php/miscellaneous.php' method='post' onSubmit='return false;'>");
	window_document.write("<input type='text' name='export_data' id='export_data'/>");
	window_document.write("<input type='text' name='export_type' id='export_type'/>");
	window_document.write("<input type='text' name='param_action' id='param_action'/>");
	window_document.getElementById("export_data").value		= result;
	window_document.getElementById("export_type").value		= export_type;
	window_document.getElementById("param_action").value	= "export_table";
	window_document.write("<script type='text/javascript'>document.getElementById('form_main').submit();</script>");
	window_document.write("</form>");

	/* suppression de l'iframe */
	window.setTimeout("document.getElementById('export_table_to_xls_iframe_" + rnd + "').parentNode.removeChild(document.getElementById('export_table_to_xls_iframe_" + rnd + "'));", 30000);

	return true;
}

function fields_get(ref_object, value_or_field, separator, separator_multiple, escape_it)
{
	/* *************************************
	NAME :
		fields_get
	INPUT :
		ref_object					=> objet de reference dans lequel on recherche (ex: document)
		value_or_field			=> 'value' ou 'field', permet de dire si on souhaite renvoyer la liste des valeurs ou la liste des objets
		separator						=> separateur a utiliser pour separer les valeurs
		separator_multiple	=> separateur de valeurs multiples
		escape_it						=> true/false selon que l'on souhaite ou non faire un "escape" sur les valeurs ou non
	OUTPUT :
		Si value_or_field = 'value' => name_field1=value_field1&name_field2=value_field2&... (recuperation de tous les champs et de leurs valeurs)
		Si value_or_field = 'field' => tableau contenant les objets
	************************************* */
	var result_values = "";
	var result_fields = new Array();
	var object_type		= "";
	var tmp_string		= "";
	var tmp_value			= "";
	var object				= "";
	if (separator == null) separator = "&";

	var alltags = ref_object.getElementsByTagName("*");
	for (var i=0 ; i<alltags.length ; i++)
	{
		object				= alltags[i];
		try
		{
			object_type = object.type;
		}
		catch(e)
		{
			object_type	= "";
		}

		if (object.name != "")
		{
			switch(String(object_type).toLowerCase())
			{
				case "file" :
				case "hidden" :
				case "password" :
				case "text" :
				case "textarea" :
					result_fields[result_fields.length] = object;
					result_values += separator + object.name + "=" + field_get_value(object, separator_multiple, escape_it);
					break;
				case "select" :
				case "select-one" :
				case "select-multiple" :
					tmp_value = "";
					result_fields[result_fields.length] = object;
					result_values += separator + object.name + "=" + field_get_value(object, separator_multiple, escape_it);
					break;
				case "radio" :
					result_fields[result_fields.length] = object;
					result_values += separator + object.name + "=" + field_get_value(object, separator_multiple, escape_it);
					break;
				default :
			}
		}
	}
	result_values = result_values.substr(1, result_values.length);
	if (value_or_field == "value") return (result_values);
	if (value_or_field == "field") return (result_fields);
	return (false);
}

function field_get_value(ref_object, separator_multiple, escape_it)
{
	/* *************************************
	NAME :
		field_get_value
	INPUT :
		ref_object					=> objet de reference dont on veut récupérer la valeur
		separator_multiple	=> separateur de valeurs multiples
		escape_it						=> true/false selon que l'on souhaite ou non faire un "escape" sur les valeurs ou non
	OUTPUT :
		valeur de l'objet
	************************************* */
	if (String(ref_object) == "undefined" || ref_object == null) return "";

	if (String(separator_multiple) == "undefined")	separator_multiple	= "";
	if (String(escape_it) == "undefined")						escape_it						= false;

	var result_value	= "";
	var object_type		= ref_object.type;
	/* gestion du cas "bouton radio" */
	if (object_type == "" || String(object_type) == "undefined")
		if (String(ref_object.length) != "undefined")
			object_type		= ref_object[0].type;

	switch(String(object_type).toLowerCase())
	{
		case "file" :
		case "hidden" :
		case "password" :
		case "text" :
		case "textarea" :
			/* encodage du signe '+' a la source pour eviter les pbs ajax */
			result_value = (escape_it ? escape((ref_object.value).replace(/\+/gi , "%2B")) : ref_object.value);
			break;
		case "select" :
		case "select-one" :
		case "select-multiple" :
			result_value = "";
			for (var k=0 ; k<ref_object.options.length ; k++)
				if (ref_object.options[k].selected)
				{
					var tmp_string = (ref_object.options[k].value != "" ? ref_object.options[k].value : ref_object.options[k].text);
					if (result_value != "")
						result_value += separator_multiple;
					result_value += (escape_it ? escape(tmp_string) : tmp_string);
				}
			break;
		case "radio" :
			for (var k=0 ; k<ref_object.length ; k++)
				if (ref_object[k].checked)
					result_value = (escape_it ? escape(ref_object[k].value) : ref_object[k].value);
			break;
		default :
	}
	return result_value;
}

function field_set_value(ref_object, value)
{
	/* *************************************
	NAME :
		field_set_value
	INPUT :
		ref_object => objet de reference dont on met a jour la valeur (ex: document.getElementById("input_texte")
		value => valeur que l'on souhaite donner au champ
	OUTPUT :
		- (true si tout a bien fonctionne et false sinon)
	************************************* */
	if (String(ref_object) == "undefined" || ref_object == null) return false;

	tmp_string = ref_object.type;
	switch(String(tmp_string).toLowerCase())
	{
		case "hidden" :
		/* on ne met pas a jour un champ de type password */
		/*case "password" :*/
		case "text" :
			ref_object.value = value;
			break;
		case "textarea" :
			if (b_ie)
				ref_object.value = value;
			if (b_ff)
				ref_object.innerHTML = value;
			break;
		case "select" :
		case "select-one" :
		case "select-multiple" :
			for (var k=0 ; k<ref_object.length ; k++)
				if (ref_object[k].value == value)
					ref_object[k].selected = true;
			break;
		case "radio" :
			for (var k=0 ; k<ref_object.length ; k++)
				if (ref_object[k].value == value)
					ref_object[k].checked = true;
			break;
		default :
	}
	return (false);
}

function fnIs_coordinate(tmp_string)
{
	/* *************************************
	NAME :
		fnIs_coordinate
	INPUT :
		tmp_string	=> chaine a verifier
	OUTPUT :
		true si la chaine est de type coordonnees gmap et false sinon
	************************************* */
	var pattern = new RegExp(".*<x>.*<\/x><y>.*<\/y>.*", "gi");
	return pattern.test(tmp_string);
}

function fnIs_coordinate_light(tmp_string)
{
	/* *************************************
	NAME :
		fnIs_coordinate_light
	INPUT :
		tmp_string	=> chaine a verifier
	OUTPUT :
		true si la chaine est de type coordonnees gmap et false sinon (test plus simple que fnIs_coordinate)
	************************************* */
	var pattern = new RegExp("<point><x>.*<\/x>.*", "gi");
	return pattern.test(tmp_string);
}

/* [Reload de la page] */
function fnReload(){
	/* *************************************
	NAME :
		fnReload
	INPUT :
		-
	OUTPUT :
		- (recharge la fenetre courante)
	************************************ */
	tmpUrl								= window.location.href;
	tmpUrl2								= (unescape(tmpUrl)).replace(/(req>)[^<]*(<\/req>)/gi, "$1$2");
	window.location.href	= tmpUrl2;
	return true;
}

/*
a mettre dans la page utilisant le fog si fog active par defaut (pour gerer le 1er affichage de la page)
<iframe id='iframe_fog' src='../html/fog.html' class='css_fog' frameborder='0' style='z-index:400000;' zIndexDefault='400000'></iframe>
*/
function fog_get_status()
{
	/* *************************************
	NAME :
		fog_get_status
	INPUT :
		-
	OUTPUT :
		- (renvoie true si le fog est active et false sinon)
	************************************ */
	return document.getElementById('iframe_fog').style.display == "block";
}

function fog_manage(activate)
{
	/* *************************************
	NAME :
		fog_manage
	INPUT :
		activate => true ou false selon que l'on veut voir afficher ou non le voile qui masque tout
	OUTPUT :
		- (true si tout a bien fonctionne et false sinon)
	************************************ */
	var fog = document.getElementById('iframe_fog');
	if (String(fog) != "undefined" && fog != null)
	{
		fog.style.display	= activate ? "none" : "block";
		fog.className			= "css_fog"; /* il faut le forcer car probleme sinon en cas de reaffichage via msg_error */

		/* calcul des nouvelles dimensions */
		var new_width			= window_get_sizes(window, "max_x");
		if (b_ff)
		{	/* largeur de l'ascenseur à prendre en compte si scroll actif */
			if (window_get_sizes(window, "height") != window_get_sizes(window, "max_y"))
				new_width			-= 16;
		}
		var new_height		= window_get_sizes(window, "max_y");
		if (b_ff)
		{	/* hauteur de l'ascenseur à prendre en compte si scroll actif */
			if (window_get_sizes(window, "width") != window_get_sizes(window, "max_x"))
				new_height		-= 16;
		}

		if (activate)
		{	/* activation : on prend l'ancien zIndex + 2 (car a +1 on peut par exemple avoir l'affiche d'un msg_xxx) */
			fog.style.width		= new_width;
			fog.style.height	= new_height;
			fog.style.zIndex	= parseInt(fog.style.zIndex) + 2;
			fog.style.display	= "block";
		}
		else
		{	/* désactivation : on prend le zIndex - 2 et, si on est arrive a la valeur initiale on le desaffiche */
			/* (cela permet de gerer l'affichage successif de plusieurs msg_xxx) */
			fog.style.width		= new_width;
			fog.style.height	= new_height;
			fog.style.zIndex	= parseInt(fog.style.zIndex) - 2;
			if (fog.style.zIndex <= parseInt(fog.getAttribute("zIndexDefault")))
			{
				fog.style.zIndex	= parseInt(fog.getAttribute("zIndexDefault"));
				fog.style.display	= "none";
			}
		}
	}
	return (true);
}

function _getElementsByClassName(el)
{
	/* *************************************
	NAME :
		_getElementsByClassName
	INPUT :
		el	=> classe souhaitée
	OUTPUT :
		collection d'objets
	************************************* */
	if (document.getElementsByClassName)
		return document.getElementsByClassName(el);

	var ret		= new Array();
	var allEl	= document.getElementsByTagName('*');
	var i = 0;
	while(elm = allEl[i++])
	{
		if(elm.className == el)
		{
			ret[ret.length] = elm;
		}
	}
	return ret;
}

function get_outerHTML(object)
{
	/* *************************************
	NAME :
		get_outerHTML
	INPUT :
		object => objet dont on veut le "outerHTML" (qui fonctionne en natif sous IE mais pas FF)
	OUTPUT :
		- (outerHTML de l'objet)
	************************************* */
	var tmp_string = "";
	if (b_ie)
		tmp_string = object.outerHTML;
	if (b_ff)
	{
		tmp_string = "<" + object.nodeName;
		for (var i=0 ; i<object.attributes.length ; i++)
		{
			if (object.attributes.item(i).nodeValue != null)
			{
				tmp_string += " ";
				tmp_string += object.attributes.item(i).nodeName;
				tmp_string += "=\"";
				tmp_string += object.attributes.item(i).nodeValue;
				tmp_string += "\"";
			}
		}
		tmp_string += ">" + object.innerHTML + "</" + object.nodeName + ">";
	}
	return tmp_string;
}

function getChildrenByTagName(root_element, tag)
{
	/* *************************************
	NAME :
		getChildrenByTagName
	INPUT :
		root_element	=> objet de reference
		tag						=> string representant le tag
	OUTPUT :
		- (equivalent a la fonction getElementsByTagName mais ne renvoie que les enfants)
	************************************* */
	if (root_element == null) return null;
  var kids = root_element.childNodes;
  var kids_w_tag = new Array();

  for (var i=0; i<kids.length; i++)
    if (kids.item(i).tagName == tag.toUpperCase())
      kids_w_tag.push(kids.item(i));

  return kids_w_tag;
}

function html_entity_decode(texte, iCycle) {
		/* *************************************
	NAME :
		html_entity_decode
	INPUT :
		texte => chaine a decoder
		iCycle => nombre de cycle a passer sur la chaine
	OUTPUT :
		valeur decodee
	************************************* */
	if(texte!=""){
		for(var i=0;i<iCycle;i++){
			texte = texte.replace(/&quot;/g,'"'); /* 34 22 */
			texte = texte.replace(/&amp;/g,'&'); /* 38 26	 */
			texte = texte.replace(/&#39;/g,"'"); /* 39 27 */
			texte = texte.replace(/&apos;/g,"'"); /* 39 27 */
			texte = texte.replace(/&lt;/g,'<'); /* 60 3C */
			texte = texte.replace(/&gt;/g,'>'); /* 62 3E */
			texte = texte.replace(/&circ;/g,'^'); /* 94 5E */
			texte = texte.replace(/&lsquo;/g,'‘'); /* 145 91 */
			texte = texte.replace(/&rsquo;/g,'’'); /* 146 92 */
			texte = texte.replace(/&ldquo;/g,'“'); /* 147 93 */
			texte = texte.replace(/&rdquo;/g,'”'); /* 148 94 */
			texte = texte.replace(/&bull;/g,'•'); /* 149 95 */
			texte = texte.replace(/&ndash;/g,'–'); /* 150 96 */
			texte = texte.replace(/&mdash;/g,'—'); /* 151 97 */
			texte = texte.replace(/&tilde;/g,'˜'); /* 152 98 */
			texte = texte.replace(/&trade;/g,'™'); /* 153 99 */
			texte = texte.replace(/&scaron;/g,'š'); /* 154 9A */
			texte = texte.replace(/&rsaquo;/g,'›'); /* 155 9B */
			texte = texte.replace(/&oelig;/g,'œ'); /* 156 9C */
			texte = texte.replace(/&#357;/g,''); /* 157 9D */
			texte = texte.replace(/&#382;/g,'ž'); /* 158 9E */
			texte = texte.replace(/&Yuml;/g,'Ÿ'); /* 159 9F */
			texte = texte.replace(/&nbsp;/g,' '); /* 160 A0 */
			texte = texte.replace(/&iexcl;/g,'¡'); /* 161 A1 */
			texte = texte.replace(/&cent;/g,'¢'); /* 162 A2 */
			texte = texte.replace(/&pound;/g,'£'); /* 163 A3 */
			texte = texte.replace(/&curren;/g,' '); /* 164 A4 */
			texte = texte.replace(/&yen;/g,'¥'); /* 165 A5 */
			texte = texte.replace(/&brvbar;/g,'¦'); /* 166 A6 */
			texte = texte.replace(/&sect;/g,'§'); /* 167 A7 */
			texte = texte.replace(/&uml;/g,'¨'); /* 168 A8 */
			texte = texte.replace(/&copy;/g,'©'); /* 169 A9 */
			texte = texte.replace(/&ordf;/g,'ª'); /* 170 AA */
			texte = texte.replace(/&laquo;/g,'«'); /* 171 AB */
			texte = texte.replace(/&not;/g,'¬'); /* 172 AC */
			texte = texte.replace(/&shy;/g,'­'); /* 173 AD */
			texte = texte.replace(/&reg;/g,'®'); /* 174 AE */
			texte = texte.replace(/&macr;/g,'¯'); /* 175 AF */
			texte = texte.replace(/&deg;/g,'°'); /* 176 B0 */
			texte = texte.replace(/&plusmn;/g,'±'); /* 177 B1 */
			texte = texte.replace(/&sup2;/g,'²'); /* 178 B2 */
			texte = texte.replace(/&sup3;/g,'³'); /* 179 B3 */
			texte = texte.replace(/&acute;/g,'´'); /* 180 B4 */
			texte = texte.replace(/&micro;/g,'µ'); /* 181 B5 */
			texte = texte.replace(/&para/g,'¶'); /* 182 B6 */
			texte = texte.replace(/&middot;/g,'·'); /* 183 B7 */
			texte = texte.replace(/&cedil;/g,'¸'); /* 184 B8 */
			texte = texte.replace(/&sup1;/g,'¹'); /* 185 B9 */
			texte = texte.replace(/&ordm;/g,'º'); /* 186 BA */
			texte = texte.replace(/&raquo;/g,'»'); /* 187 BB */
			texte = texte.replace(/&frac14;/g,'¼'); /* 188 BC */
			texte = texte.replace(/&frac12;/g,'½'); /* 189 BD */
			texte = texte.replace(/&frac34;/g,'¾'); /* 190 BE */
			texte = texte.replace(/&iquest;/g,'¿'); /* 191 BF */
			texte = texte.replace(/&Agrave;/g,'À'); /* 192 C0 */
			texte = texte.replace(/&Aacute;/g,'Á'); /* 193 C1 */
			texte = texte.replace(/&Acirc;/g,'Â'); /* 194 C2 */
			texte = texte.replace(/&Atilde;/g,'Ã'); /* 195 C3 */
			texte = texte.replace(/&Auml;/g,'Ä'); /* 196 C4 */
			texte = texte.replace(/&Aring;/g,'Å'); /* 197 C5 */
			texte = texte.replace(/&AElig;/g,'Æ'); /* 198 C6 */
			texte = texte.replace(/&Ccedil;/g,'Ç'); /* 199 C7 */
			texte = texte.replace(/&Egrave;/g,'È'); /* 200 C8 */
			texte = texte.replace(/&Eacute;/g,'É'); /* 201 C9 */
			texte = texte.replace(/&Ecirc;/g,'Ê'); /* 202 CA */
			texte = texte.replace(/&Euml;/g,'Ë'); /* 203 CB */
			texte = texte.replace(/&Igrave;/g,'Ì'); /* 204 CC */
			texte = texte.replace(/&Iacute;/g,'Í'); /* 205 CD */
			texte = texte.replace(/&Icirc;/g,'Î'); /* 206 CE */
			texte = texte.replace(/&Iuml;/g,'Ï'); /* 207 CF */
			texte = texte.replace(/&ETH;/g,'Ð'); /* 208 D0 */
			texte = texte.replace(/&Ntilde;/g,'Ñ'); /* 209 D1 */
			texte = texte.replace(/&Ograve;/g,'Ò'); /* 210 D2 */
			texte = texte.replace(/&Oacute;/g,'Ó'); /* 211 D3 */
			texte = texte.replace(/&Ocirc;/g,'Ô'); /* 212 D4 */
			texte = texte.replace(/&Otilde;/g,'Õ'); /* 213 D5 */
			texte = texte.replace(/&Ouml;/g,'Ö'); /* 214 D6 */
			texte = texte.replace(/&times;/g,'×'); /* 215 D7 */
			texte = texte.replace(/&Oslash;/g,'Ø'); /* 216 D8 */
			texte = texte.replace(/&Ugrave;/g,'Ù'); /* 217 D9 */
			texte = texte.replace(/&Uacute;/g,'Ú'); /* 218 DA */
			texte = texte.replace(/&Ucirc;/g,'Û'); /* 219 DB */
			texte = texte.replace(/&Uuml;/g,'Ü'); /* 220 DC */
			texte = texte.replace(/&Yacute;/g,'Ý'); /* 221 DD */
			texte = texte.replace(/&THORN;/g,'Þ'); /* 222 DE */
			texte = texte.replace(/&szlig;/g,'ß'); /* 223 DF */
			texte = texte.replace(/&agrave;/g,'à'); /* 224 E0 */
			texte = texte.replace(/&aacute;/g,'á'); /* 225 E1 */
			texte = texte.replace(/&acirc;/g,'â'); /* 226 E2 */
			texte = texte.replace(/&atilde;/g,'ã'); /* 227 E3 */
			texte = texte.replace(/&auml;/g,'ä'); /* 228 E4 */
			texte = texte.replace(/&aring;/g,'å'); /* 229 E5 */
			texte = texte.replace(/&aelig;/g,'æ'); /* 230 E6 */
			texte = texte.replace(/&ccedil;/g,'ç'); /* 231 E7 */
			texte = texte.replace(/&egrave;/g,'è'); /* 232 E8 */
			texte = texte.replace(/&eacute;/g,'é'); /* 233 E9 */
			texte = texte.replace(/&ecirc;/g,'ê'); /* 234 EA */
			texte = texte.replace(/&euml;/g,'ë'); /* 235 EB */
			texte = texte.replace(/&igrave;/g,'ì'); /* 236 EC */
			texte = texte.replace(/&iacute;/g,'í'); /* 237 ED */
			texte = texte.replace(/&icirc;/g,'î'); /* 238 EE */
			texte = texte.replace(/&iuml;/g,'ï'); /* 239 EF */
			texte = texte.replace(/&eth;/g,'ð'); /* 240 F0 */
			texte = texte.replace(/&ntilde;/g,'ñ'); /* 241 F1 */
			texte = texte.replace(/&ograve;/g,'ò'); /* 242 F2 */
			texte = texte.replace(/&oacute;/g,'ó'); /* 243 F3 */
			texte = texte.replace(/&ocirc;/g,'ô'); /* 244 F4 */
			texte = texte.replace(/&otilde;/g,'õ'); /* 245 F5 */
			texte = texte.replace(/&ouml;/g,'ö'); /* 246 F6 */
			texte = texte.replace(/&divide;/g,'÷'); /* 247 F7 */
			texte = texte.replace(/&oslash;/g,'ø'); /* 248 F8 */
			texte = texte.replace(/&ugrave;/g,'ù'); /* 249 F9 */
			texte = texte.replace(/&uacute;/g,'ú'); /* 250 FA */
			texte = texte.replace(/&ucirc;/g,'û'); /* 251 FB */
			texte = texte.replace(/&uuml;/g,'ü'); /* 252 FC */
			texte = texte.replace(/&yacute;/g,'ý'); /* 253 FD */
			texte = texte.replace(/&thorn;/g,'þ'); /* 254 FE */
			texte = texte.replace(/&yuml;/g,'ÿ'); /* 255 FF */
		}
	}
	return texte;
}

function html_entity_decode_light(texte)
{
	/* *************************************
	NAME :
		html_entity_decode_light
	INPUT :
		texte => chaine a decoder
	OUTPUT :
		valeur decodee
	************************************* */
	if(texte!=""){
			texte = texte.replace(/&amp;/g,'&'); /* 38 26	 */
			texte = texte.replace(/&#39;/g,"'"); /* 39 27 */
			texte = texte.replace(/&apos;/g,"'"); /* 39 27 */
			texte = texte.replace(/&lt;/g,'<'); /* 60 3C */
			texte = texte.replace(/&gt;/g,'>'); /* 62 3E */
	}
	return texte;
}

function htmlentities(texte) {
	/* *************************************
	NAME :
		htmlentities
	INPUT :
		texte => chaine a coder
	OUTPUT :
		valeur decodee
	************************************* */
	if(texte!=""){
		texte = texte.replace(/"/g,'&quot;'); /* 34 22*/
		texte = texte.replace(/&/g,'&amp;'); /* 38 26 */
		texte = texte.replace(/\'/g,'&#39;'); /* 39 27 */
		texte = texte.replace(/</g,'&lt;'); /* 60 3C */
		texte = texte.replace(/>/g,'&gt;'); /* 62 3E */
		texte = texte.replace(/\^/g,'&circ;'); /* 94 5E */
		texte = texte.replace(/‘/g,'&lsquo;'); /* 145 91 */
		texte = texte.replace(/’/g,'&rsquo;'); /* 146 92 */
		texte = texte.replace(/“/g,'&ldquo;'); /* 147 93 */
		texte = texte.replace(/”/g,'&rdquo;'); /* 148 94 */
		texte = texte.replace(/•/g,'&bull;'); /* 149 95 */
		texte = texte.replace(/–/g,'&ndash;'); /* 150 96 */
		texte = texte.replace(/—/g,'&mdash;'); /* 151 97 */
		texte = texte.replace(/˜/g,'&tilde;'); /* 152 98 */
		texte = texte.replace(/™/g,'&trade;'); /* 153 99 */
		texte = texte.replace(/š/g,'&scaron;'); /* 154 9A */
		texte = texte.replace(/›/g,'&rsaquo;'); /* 155 9B */
		texte = texte.replace(/œ/g,'&oelig;'); /* 156 9C */
		texte = texte.replace(//g,'&#357;'); /* 157 9D */
		texte = texte.replace(/ž/g,'&#382;'); /* 158 9E */
		texte = texte.replace(/Ÿ/g,'&Yuml;'); /* 159 9F */
		texte = texte.replace(/ /g,'&nbsp;'); /* 160 A0 */
		texte = texte.replace(/¡/g,'&iexcl;'); /* 161 A1 */
		texte = texte.replace(/¢/g,'&cent;'); /* 162 A2 */
		texte = texte.replace(/£/g,'&pound;'); /* 163 A3 */
		texte = texte.replace(/ /g,'&curren;'); /* 164 A4 */
		texte = texte.replace(/¥/g,'&yen;'); /* 165 A5 */
		texte = texte.replace(/¦/g,'&brvbar;'); /* 166 A6 */
		texte = texte.replace(/§/g,'&sect;'); /* 167 A7 */
		texte = texte.replace(/¨/g,'&uml;'); /* 168 A8 */
		texte = texte.replace(/©/g,'&copy;'); /* 169 A9 */
		texte = texte.replace(/ª/g,'&ordf;'); /* 170 AA */
		texte = texte.replace(/«/g,'&laquo;'); /* 171 AB */
		texte = texte.replace(/¬/g,'&not;'); /* 172 AC */
		texte = texte.replace(/­/g,'&shy;'); /* 173 AD */
		texte = texte.replace(/®/g,'&reg;'); /* 174 AE */
		texte = texte.replace(/¯/g,'&macr;'); /* 175 AF */
		texte = texte.replace(/°/g,'&deg;'); /* 176 B0 */
		texte = texte.replace(/±/g,'&plusmn;'); /* 177 B1 */
		texte = texte.replace(/²/g,'&sup2;'); /* 178 B2 */
		texte = texte.replace(/³/g,'&sup3;'); /* 179 B3 */
		texte = texte.replace(/´/g,'&acute;'); /* 180 B4 */
		texte = texte.replace(/µ/g,'&micro;'); /* 181 B5 */
		texte = texte.replace(/¶/g,'&para'); /* 182 B6 */
		texte = texte.replace(/·/g,'&middot;'); /* 183 B7 */
		texte = texte.replace(/¸/g,'&cedil;'); /* 184 B8 */
		texte = texte.replace(/¹/g,'&sup1;'); /* 185 B9 */
		texte = texte.replace(/º/g,'&ordm;'); /* 186 BA */
		texte = texte.replace(/»/g,'&raquo;'); /* 187 BB */
		texte = texte.replace(/¼/g,'&frac14;'); /* 188 BC */
		texte = texte.replace(/½/g,'&frac12;'); /* 189 BD */
		texte = texte.replace(/¾/g,'&frac34;'); /* 190 BE */
		texte = texte.replace(/¿/g,'&iquest;'); /* 191 BF */
		texte = texte.replace(/À/g,'&Agrave;'); /* 192 C0 */
		texte = texte.replace(/Á/g,'&Aacute;'); /* 193 C1 */
		texte = texte.replace(/Â/g,'&Acirc;'); /* 194 C2 */
		texte = texte.replace(/Ã/g,'&Atilde;'); /* 195 C3 */
		texte = texte.replace(/Ä/g,'&Auml;'); /* 196 C4 */
		texte = texte.replace(/Å/g,'&Aring;'); /* 197 C5 */
		texte = texte.replace(/Æ/g,'&AElig;'); /* 198 C6 */
		texte = texte.replace(/Ç/g,'&Ccedil;'); /* 199 C7 */
		texte = texte.replace(/È/g,'&Egrave;'); /* 200 C8 */
		texte = texte.replace(/É/g,'&Eacute;'); /* 201 C9 */
		texte = texte.replace(/Ê/g,'&Ecirc;'); /* 202 CA */
		texte = texte.replace(/Ë/g,'&Euml;'); /* 203 CB */
		texte = texte.replace(/Ì/g,'&Igrave;'); /* 204 CC */
		texte = texte.replace(/Í/g,'&Iacute;'); /* 205 CD */
		texte = texte.replace(/Î/g,'&Icirc;'); /* 206 CE */
		texte = texte.replace(/Ï/g,'&Iuml;'); /* 207 CF */
		texte = texte.replace(/Ð/g,'&ETH;'); /* 208 D0 */
		texte = texte.replace(/Ñ/g,'&Ntilde;'); /* 209 D1 */
		texte = texte.replace(/Ò/g,'&Ograve;'); /* 210 D2 */
		texte = texte.replace(/Ó/g,'&Oacute;'); /* 211 D3 */
		texte = texte.replace(/Ô/g,'&Ocirc;'); /* 212 D4 */
		texte = texte.replace(/Õ/g,'&Otilde;'); /* 213 D5 */
		texte = texte.replace(/Ö/g,'&Ouml;'); /* 214 D6 */
		texte = texte.replace(/×/g,'&times;'); /* 215 D7 */
		texte = texte.replace(/Ø/g,'&Oslash;'); /* 216 D8 */
		texte = texte.replace(/Ù/g,'&Ugrave;'); /* 217 D9 */
		texte = texte.replace(/Ú/g,'&Uacute;'); /* 218 DA */
		texte = texte.replace(/Û/g,'&Ucirc;'); /* 219 DB */
		texte = texte.replace(/Ü/g,'&Uuml;'); /* 220 DC */
		texte = texte.replace(/Ý/g,'&Yacute;'); /* 221 DD */
		texte = texte.replace(/Þ/g,'&THORN;'); /* 222 DE */
		texte = texte.replace(/ß/g,'&szlig;'); /* 223 DF */
		texte = texte.replace(/à/g,'&agrave;'); /* 224 E0 */
		texte = texte.replace(/á/g,'&aacute;'); /* 225 E1 */
		texte = texte.replace(/â/g,'&acirc;'); /* 226 E2 */
		texte = texte.replace(/ã/g,'&atilde;'); /* 227 E3 */
		texte = texte.replace(/ä/g,'&auml;'); /* 228 E4 */
		texte = texte.replace(/å/g,'&aring;'); /* 229 E5 */
		texte = texte.replace(/æ/g,'&aelig;'); /* 230 E6 */
		texte = texte.replace(/ç/g,'&ccedil;'); /* 231 E7 */
		texte = texte.replace(/è/g,'&egrave;'); /* 232 E8 */
		texte = texte.replace(/é/g,'&eacute;'); /* 233 E9 */
		texte = texte.replace(/ê/g,'&ecirc;'); /* 234 EA */
		texte = texte.replace(/ë/g,'&euml;'); /* 235 EB */
		texte = texte.replace(/ì/g,'&igrave;'); /* 236 EC */
		texte = texte.replace(/í/g,'&iacute;'); /* 237 ED */
		texte = texte.replace(/î/g,'&icirc;'); /* 238 EE */
		texte = texte.replace(/ï/g,'&iuml;'); /* 239 EF */
		texte = texte.replace(/ð/g,'&eth;'); /* 240 F0 */
		texte = texte.replace(/ñ/g,'&ntilde;'); /* 241 F1 */
		texte = texte.replace(/ò/g,'&ograve;'); /* 242 F2 */
		texte = texte.replace(/ó/g,'&oacute;'); /* 243 F3 */
		texte = texte.replace(/ô/g,'&ocirc;'); /* 244 F4 */
		texte = texte.replace(/õ/g,'&otilde;'); /* 245 F5 */
		texte = texte.replace(/ö/g,'&ouml;'); /* 246 F6 */
		texte = texte.replace(/÷/g,'&divide;'); /* 247 F7 */
		texte = texte.replace(/ø/g,'&oslash;'); /* 248 F8 */
		texte = texte.replace(/ù/g,'&ugrave;'); /* 249 F9 */
		texte = texte.replace(/ú/g,'&uacute;'); /* 250 FA */
		texte = texte.replace(/û/g,'&ucirc;'); /* 251 FB */
		texte = texte.replace(/ü/g,'&uuml;'); /* 252 FC */
		texte = texte.replace(/ý/g,'&yacute;'); /* 253 FD */
		texte = texte.replace(/þ/g,'&thorn;'); /* 254 FE */
		texte = texte.replace(/ÿ/g,'&yuml;'); /* 255 FF */
	}
	return texte;
}

function htmlentities_light(texte) {
	/* *************************************
	NAME :
		htmlentities_light
	INPUT :
		texte => chaine a coder
	OUTPUT :
		valeur decodee
	************************************* */
	if(texte!=""){
		texte = texte.replace(/"/g,'&quot;');	/* 34 22*/
		texte = texte.replace(/&/g,'&amp;');	/* 38 26 */
		texte = texte.replace(/\'/g,'&#39;');	/* 39 27 */ /* &#39; car la fonction PHP "htmlentities" encode l'apostrophe sous cette forme */
		texte = texte.replace(/</g,'&lt;');		/* 60 3C */
		texte = texte.replace(/>/g,'&gt;');		/* 62 3E */
		}
	return texte;
}

function iframe_has_scrolls(iframe)
{
	/* *************************************
	NAME :
		iframe_has_scrolls
	INPUT :
		iframe	=> iframe a tester
	OUTPUT :
		0 si l'iframe n'a pas de scrolls
		1 si scroll horizontal uniquement
		2 si scroll horizontal vertical
		3 si tous les scrolls sont actifs (par defaut si erreur "permission denied")
	************************************* */
	var scroll_x	= true;
	var scroll_y	= true;
	try
	{
		scroll_x	= (window_get_sizes(iframe.contentWindow, "max_x") > window_get_sizes(iframe.contentWindow, "width"));
		scroll_y	= (window_get_sizes(iframe.contentWindow, "max_y") > window_get_sizes(iframe.contentWindow, "height"));
	}
	catch(e){};
	if (scroll_x && scroll_y) return 3;
	if (scroll_y) return 2;
	if (scroll_x) return 1;
	return 0;
}

var ip_address_info_string = "";
function ip_address_info(ip_address)
{
	/* *************************************
	NAME :
		ip_address_info
	INPUT :
		ip_address => adresse IP dont on veut des informations
	OUTPUT :
		- (ouvre une popup contenant les informations de l'adresse IP)
	************************************* */
	ip_address_info_string = ip_address;
	var T_answer	= new Array();
	T_answer[0]		= "ipinfodb";
	T_answer[1]		= "ipchecking";
	T_answer[2]		= "ip2location";
	msg_prompt("", "select", "", language_msg("00892"), T_answer, false, "ip_address_info_validate", true);
	return true;
}

function ip_address_info_validate(result)
{
	/* *************************************
	NAME :
		ip_address_info_validate
	INPUT :
		result => choix de l'utilisateur
	OUTPUT :
		- (ouvre une popup contenant les informations de l'adresse IP)
	************************************* */
	if (!result) return false;

	var tmp_string;
	switch (result)
	{
		case "ipchecking" :
			tmp_string	= "http://www.ipchecking.com/?ip=" + ip_address_info_string;
			break;
		case "ip2location" :
			tmp_string	= "http://www.ip2location.com/" + ip_address_info_string;
			break;
		case "ipinfodb" :
			tmp_string	= "http://ipinfodb.com/ip_query.php?output=raw&ip=" + ip_address_info_string;
			break;
		default :
			break;
	}
	if (tmp_string != "" && String(tmp_string) != "undefined")
		open_link(tmp_string, "iframe" , "", "400" , "900");

	return true;
}

function is_date(valeur, mode)
{
	/* *************************************
	NAME :
		is_date
	INPUT :
		valeur	=> valeur input
		mode		=> type de date (fr, en...)
	OUTPUT :
		true si la chaine est de type date (selon le mode), et false sinon
	************************************* */
	var regExpFrenchDate	= /^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  /* date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099 */
	var regExpEnglishDate	= /^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/g; /* idem ci-dessus mais format anglais (Ex : aaaa/mm/jj) */
	switch (mode)
	{
		case "fr" :
			return matchRegularExpression(valeur, regExpFrenchDate);
			break;
		case "en" :
			return matchRegularExpression(valeur, regExpEnglishDate);
			break;
		default :
			return matchRegularExpression(valeur, regExpFrenchDate);
			break;
	}
}

function is_email(mail_address)
{
	/* *************************************
	NAME :
		is_email
	INPUT :
		mail_address	=> chaine de caracteres
	OUTPUT :
		true si la chaine est de type e-mail, et false sinon
	************************************* */
	var word		= "[-!#-'*+/-9=?A-Z^-~\x80-\xFF]+";
	var pattern	= "^(" + word + "\.)*" + word + "@(" + word + "\.)+\." + word + "$";
	var reg			= new RegExp(pattern, '');
	return reg.test(mail_address);
}

function is_number(input_string)
{
	/* *************************************
	NAME :
		is_number
	INPUT :
		input_string	=> chaine de caracteres
	OUTPUT :
		true si la chaine est de type nombre, et false sinon
	************************************* */
	var exp = new RegExp("^[0-9-.]*$","g");
	return exp.test(input_string);
}

function language_change(new_language)
{
	/* *************************************
	NAME :
		language_change
	INPUT :
		new_language	=> nouvelle langue souhaitee
	OUTPUT :
		- (changement de la langue courante)
	************************************* */
	var doc													= document.getElementById('form_main');
	doc.input_language_change.value	= new_language;
	doc.action											= '../php/user-process.php';
	doc.param_action.value					= 'language_change';
	doc.submit();
}

function matchRegularExpression(valeur, regularExpression)
{
	/* *************************************
	NAME :
		matchRegularExpression
	INPUT :
		valeur						=> valeur input
		regularExpression	=> expression reguliere
	OUTPUT :
		true si la valeur correspond a l'expression reguliere et false sinon
	************************************* */
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function msg_prompt_close(){
/* *************************************
NAME :
	msg_prompt_close
INPUT :
	-
OUTPUT :
	- (simulation de click pour fermer une fenetre assistant)
************************************* */
	var oParentTable = this.frameElement.parentNode.parentNode.parentNode.parentNode;
	if(oParentTable && oParentTable.getElementsByTagName("input")){
		var oParentInput = oParentTable.getElementsByTagName("input");
		if(oParentInput[0])oParentInput[0].click();
	}
}

function node_get_position(node)
{
	/* *************************************
	NAME :
		node_get_position
	INPUT :
		node	=> noeud dans une arborescence
	OUTPUT :
		position du noeud par rapport a ses freres (ex: c'est le frere n°0, c'est le frere n°4...)
	************************************* */
	/* renvoie la position du node parmi ses freres (premier = 0) */
	for (var i=0 ; i<node.parentNode.childNodes.length ; i++)
	{
		if (node.parentNode.childNodes[i] == node)
			return i;
	}
	return -1;
}

function object_is_visible(ref_object)
{
	/* *************************************
	NAME :
		object_is_visible
	INPUT :
		ref_object	=> objet de reference
	OUTPUT :
		true si l'objet est visible et false sinon
	************************************* */
	var to_continue			= true;
	var result					= true;
	var current_object	= ref_object;
	/* parcours de l'objet et des parents */
	while(to_continue)
	{
		if (current_object.style.display.toLowerCase() == "none")					result			= false;
		if (current_object.style.visibility.toLowerCase() == "collapse")	result			= false;
		if (current_object.style.visibility.toLowerCase() == "hidden")		result			= false;
		if (result == false)																							to_continue	= false;

		/* parcours des parents */
		var current_object_parent = current_object.parentNode;
		if (current_object != document.getElementsByTagName('body')[0] && current_object_parent != current_object && String(current_object_parent) != "null"  && String(current_object_parent) != "undefined")
			current_object	= current_object_parent;
		else
			to_continue			= false;
	}
	return result;
}

function object_style_get(ref_object)
{
	/* *************************************
	NAME :
		object_style_get
	INPUT :
		ref_object	=> objet de reference dont on recupere le style
	OUTPUT :
		style de l'objet
	************************************* */
	var result;
	/* avant enregistrement on retablit la hauteur/largeur réelle pour IE */
	if (b_ie) result = ref_object.getAttribute("style").cssText.toLowerCase();
	if (b_ff) result = ref_object.getAttribute("style").toLowerCase();

	/* cas special style "background-img <=> background-image" (on rajoute une entree "background-img" similaire a "background-image") */
	var tmp_string	= result;
	if (tmp_string.indexOf("background-image:") == -1)
	{
		result				= tmp_string;
	}
	else
	{
		tmp_string		= tmp_string.replace(/(.*)(background-image:)(.*)/i, '$3');	/* suppression de tout ce qui est avant 'background-img' (comprise) */
		tmp_string		= tmp_string.replace(/(;.*)/i, '');													/* suppression de tout ce qui est apres */
		/* suppression des guillemets */
		tmp_string		= tmp_string.replace(/"/g, "");
		/* suppression de la valeur "none" qui apparaît parfois */
		tmp_string		= tmp_string.replace("none", "");
		result				+= ";background-img:" + tmp_string + ";";										/* rajout de la nouvelle entree */
	}

	var tmp_string	= result;
	if (tmp_string.indexOf("opacity:") == -1)
	{
		if (tmp_string.indexOf("opacity=") == -1)
		{
			result			= tmp_string;
		}
		else
		{
			/* cas special style "opacity" (on rajoute une entree "opacity:yyy" similaire à "filter:alpha(opacity=xxx)" avec xxx=yyy*100) */
			tmp_string	= tmp_string.replace(/(.*)(opacity=)(.*)/i, '$3');	/* suppression de tout ce qui est avant 'opacity' (comprise) */
			tmp_string	= tmp_string.replace(/(;.*)/i, '');									/* suppression de tout ce qui est apres */
			result			+= ";opacity=" + tmp_string/100 + ";";							/* rajout de la nouvelle entree */
		}
	}
	else
	{
		/* cas special style "opacity" (on rajoute une entree "filter:alpha(opacity=xxx)" similaire a "opacity:yyy" avec xxx=yyy*100) */
		tmp_string		= tmp_string.replace(/(.*)(opacity:)(.*)/i, '$3');		/* suppression de tout ce qui est avant 'opacity' (comprise) */
		tmp_string		= tmp_string.replace(/(;.*)/i, '');										/* suppression de tout ce qui est apres */
		result				+= ";filter:alpha(opacity=" + tmp_string*100 + ");";	/* rajout de la nouvelle entree */
	}

	/* cas spécial : on supprime l'attribut overflow car géré par le formateur directement */
	var tmp_string	= result;
	if (result.indexOf("overflow:") != -1)
	{
		var tmp_before	= result.replace(/(.*)(overflow:)(.*)/i, '$1');												/* conservation de ce qui est avant */
		tmp_string			= result.substr(result.indexOf("overflow:"), result.length);					/* récupération de ce qui reste */
		var tmp_after		= tmp_string.substr(tmp_string.indexOf(";") + 1, tmp_string.length);	/* récupération de ce qui est après */
		result					= tmp_before + tmp_after;
	}
	return (result);
}

function object_style_set(ref_object, ref_value, design_mode, remove_all)
{
	/* *************************************
	NAME :
		object_style_set
	INPUT :
		ref_object	=> objet de reference dont on va modifier le style
		ref_value		=> nouvelle valeur de style
		design_mode	=> true si on est en mode design (dans ce cas certaines proprietes de l'objet sont protegees) et false sinon
		remove_all	=> true si on force tous les styles (même ceux non fournis) et false sinon
	OUTPUT :
		- (true si tout a bien fonctionne et false sinon)
	************************************* */
	if (design_mode)
	{ /* sauvegarde des styles proteges */
		var tmp_height		= ref_object.style.height;
		var tmp_width			= ref_object.style.width;
		var tmp_top				= ref_object.style.top;
		var tmp_left			= ref_object.style.left;
		var tmp_zIndex		= ref_object.style.zIndex;
		var tmp_position	= ref_object.style.position;
		var tmp_overflow	= ref_object.style.overflow;
		var tmp_overflowX	= ref_object.style.overflowX;
		var tmp_overflowY	= ref_object.style.overflowY;
	}

	/* cas special style "background-img <=> background-image" (on rajoute une entree "background-image" similaire a "background-img") */
	if (ref_value.indexOf("background-img:") != -1)
	{
		/* extraction de la valeur exacte */
		var background_value	= ref_value;
		background_value			= ref_value.replace(/(.*)(background-img:)(.*)/i, '$2$3');	/* suppression de tout ce qui est avant 'background-img' (non comprise) */
		background_value			= background_value.replace(/(;.*)/i, '');								/* suppression de tout ce qui est apres */
		background_value			= background_value.replace(/background\-img:/gi, '');		/* suppression de 'background-img' */
		/* suppression de "url(...)" */
		background_value			= background_value.replace(/url\(/g, "");
		background_value			= background_value.replace(/\)$/g, "");
		/* suppression de toute référence à "background-img" qui sera rajouté à la fin */
		var new_value					= ref_value;
		var tmp_integer				= new_value.indexOf("background-img:");
		new_value							= ref_value.substring(0, tmp_integer) + ref_value.substring(tmp_integer + 15 + background_value.length + 1, ref_value.length); /* 15 pour 'background-img" et 1 pour le point-virgule à la fin */
		/* rajout des entrées avec la chaîne "url(...)" autour du lien */
		if (background_value != '""')
		{
			new_value						+= ";background-img:url(" + background_value + ");" + ";background-image:url(" + background_value + ");";
			ref_value						= new_value;
		}
	}

	/* cas special style "opacity" : extraction de la valeur sous la forme "opacity:yyy" */
	if (ref_value.indexOf("opacity:") != -1)
	{
		/* extraction de la valeur exacte */
		var opacity_value	= ref_value;
		opacity_value			= ref_value.replace(/(.*)(opacity:)(.*)/i, '$2$3');	/* suppression de tout ce qui est avant 'opacity' (non comprise) */
		opacity_value			= opacity_value.replace(/(;.*)/i, '');					/* suppression de tout ce qui est apres */
		opacity_value			= opacity_value.replace(/opacity:/gi, '');			/* suppression de 'opacity' */
		if (opacity_value == "")
		{	/* si opacité non-définie : juste supprimer ce style de la liste => ne rien faire */
			var new_value		= ref_value;
		}
		else
		{
			/* suppression de toute référence à "opacity" qui sera rajouté à la fin */
			var new_value		= ref_value;
			tmp_integer			= new_value.indexOf("opacity:");
			new_value				= new_value.substring(0, tmp_integer) + new_value.substring(tmp_integer + 8 + opacity_value.length + 1, new_value.length); /* 8 pour "opacity" et 1 pour le point-virgule à la fin */
			tmp_integer			= new_value.indexOf("filter:alpha(opacity=");
			new_value				= new_value.substring(0, tmp_integer) + new_value.substring(tmp_integer + 21 + opacity_value.length + 2, new_value.length); /* 21 pour "filter:alpha(opacity=" et 2 pour la parenthèse et le point-virgule à la fin */
			/* vérification de la valeur */
			if (opacity_value > 1)
				opacity_value	= opacity_value / 100;
			/* rajout des entrées */
			new_value				+= ";opacity:" + opacity_value + ";" + ";filter:alpha(opacity=" + opacity_value*100 + ");";
		}
		ref_value					= new_value;
	}

	/* cas special style "opacity" : extraction de la valeur sous la forme "filter:alpha(opacity=xxx)" */
	if (ref_value.indexOf("opacity=") != -1)
	{
		/* extraction de la valeur exacte */
		var opacity_value	= ref_value;
		opacity_value			= ref_value.replace(/(.*)(opacity=)(.*)/i, '$2$3');	/* suppression de tout ce qui est avant 'opacity' (non comprise) */
		opacity_value			= opacity_value.replace(/(\);.*)/i, '');				/* suppression de tout ce qui est apres */
		opacity_value			= opacity_value.replace(/opacity=/gi, '');			/* suppression de 'opacity' */
		opacity_value			= opacity_value.replace(/\)/gi, '');						/* suppression de 'opacity' */
		if (opacity_value == "")
		{	/* si opacité non-définie : juste supprimer ce style de la liste => ne rien faire */
			var new_value		= ref_value;
		}
		else
		{
			/* suppression de toute référence à "opacity" qui sera rajouté à la fin */
			var new_value		= ref_value;
			tmp_integer			= new_value.indexOf("opacity:");
			new_value				= new_value.substring(0, tmp_integer) + new_value.substring(tmp_integer + 8 + opacity_value.length + 1, new_value.length); /* 8 pour "opacity" et 1 pour le point-virgule à la fin */
			tmp_integer			= new_value.indexOf("filter:alpha(opacity=");
			new_value				= new_value.substring(0, tmp_integer) + new_value.substring(tmp_integer + 21 + opacity_value.length + 2, new_value.length); /* 21 pour "filter:alpha(opacity=" et 2 pour la parenthèse et le point-virgule à la fin */
			/* vérification de la valeur */
			if (opacity_value > 1)
				opacity_value	= opacity_value / 100;
			/* rajout des entrées */
			new_value				+= ";opacity:" + opacity_value + ";" + ";filter:alpha(opacity=" + opacity_value*100 + ");";
		}
		ref_value					= new_value;
	}

	/* backup des elements de style qui ne sont pas fournis */
	var tmp_array_old = ref_object.style.cssText.toLowerCase().split(/;/gi);
	var tmp_array_new = ref_value.toLowerCase().split(/;/gi);
	var tmp_cssText		= "";
	if (!remove_all)
	{
		for (var i=0 ; i<tmp_array_old.length ; i++)
		{
			var tmp_string_old	= tmp_array_old[i];
			var tmp_bool				= false;
			for (var k=0 ; k<tmp_array_new.length ; k++)
			{
				var tmp_string_new = tmp_array_new[k];
				if (trim(tmp_string_old.split(":")[0]) == trim(tmp_string_new.split(":")[0]))
				{
					tmp_bool = true;
					break;
				}
			}
			if (!tmp_bool)
			{	/* propriete non mise a jour => sauvegarde */
				if (tmp_string_old.indexOf("opacity:") != -1 || tmp_string_old.indexOf("opacity=") != -1 )
				{	/* on ne restaure pas l'opacity => elle n'était pas dans l'assistant visiblement */
				}
				else
				{
					tmp_cssText += trim(tmp_string_old.split(":")[0]) + ":" + trim(tmp_string_old.split(":")[1]) + ";";
				}
			}
		}
	}

	/* nouveaux styles = anciens styles non modifies + nouveaux styles */
	ref_object.style.cssText	= tmp_cssText + ref_value;

	if (design_mode)
	{ /* restauration des styles proteges */
		ref_object.style.height			= tmp_height;
		ref_object.style.width			= tmp_width;
		ref_object.style.top				= tmp_top;
		ref_object.style.left				= tmp_left;
		ref_object.style.zIndex			= tmp_zIndex;
		ref_object.style.position		= tmp_position;
		ref_object.style.overflow		= tmp_overflow;
		ref_object.style.overflowX	= tmp_overflowX;
		ref_object.style.overflowY	= tmp_overflowY;
	}
	return true;
}

function offset_absolute(current_object)
{
	/* *************************************
	NAME :
		offset_absolute
	INPUT :
		current_object	=> objet dont on va ramener [offsetLeft, offsetTop] absolu (<=> même si l'objet est en positionnement relatif)
	OUTPUT :
		[offsetLeft, offsetTop] absolu
	************************************* */
	var current_left	= current_object.offsetLeft;
	var current_top		= current_object.offsetTop;
	while(current_object.offsetParent)
	{
		if(current_object == document.getElementsByTagName('body')[0])
			break;
		else
		{
			current_left		= current_left + current_object.offsetParent.offsetLeft;
			current_top			= current_top + current_object.offsetParent.offsetTop;
			current_object	= current_object.offsetParent;
		}
	}
	return new Array(current_left, current_top);
}

var iframe_open_link				= null;
var open_link_popup_blocker	= false;	/* true si un popup-blocker semble activé et false sinon */
function open_link(new_url, mode, window_name, height, width, tab_save_session)
{
	/* *************************************
	NAME :
		open_link
	INPUT :
		new_url						=> url a ouvrir
		mode							=>	"auto"		: le lien est ouvert dans une nouvelle fenetre ou la meme, automatiquement selon le nom de domaine
													"new"			: le lien est toujours ouvert dans une nouvelle fenetre
													"same"		: le lien est toujours ouvert dans la meme fenetre
													"iframe"	: le lien s'ouvre dans une nouvelle iframe
													"parent"	: le lien s'ouvre dans la fenêtre parente
													"tab"			: le lien s'ouvre dans un nouveau tab en haut de la fenêtre
		window_name				=> titre de la fenêtre le cas échéant (même nom pour pouvoir réutiliser une fenêtre existante)
		height						=> largeur de la fenetre si nouvelle
		width							=> hauteur de la fenetre si nouvelle
		tab_save_session	=> argument utile dans le cas d'un affichage "tab"
	OUTPUT :
		- (ouvre le lien souhaite, dans la meme page ou dans une autre)
	************************************* */
	if (new_url == "") return false;
	if (String(tab_save_session) == "undefined") tab_save_session = true;

	if (mode == "auto")
	{
		/* si le lien est dans le meme domaine => ouverture dans la meme page, sinon dans une autre page */
		/* => on teste l'url de la fenetre parente pour le cas on soit dans une iframe notamment lorsque redirection de nom de domaine vers faaroo */
		/* => de toute facon window.parent = window lorsqu'on n'est pas dans une iframe */
		try
		{
			var current_url	= window.parent.location.href;
		}
		catch(e)
		{	/* probleme de securite */
			var current_url	= window.location.href;
		}

		if (url_is_same_domain(current_url, new_url))
			mode = "same";
		else
			mode = "new";
	}

	/* affichage */
	if (mode == "new")
	{
		/* si le popup blocker est déjà activé on ne fait rien, le message d'erreur a déjà eu lieu */
		if (open_link_popup_blocker) return false;
		var tmp_string	= "";
		if (String(height) != "undefined")	tmp_string	+= "height=" + height + ",";
		if (String(width) != "undefined")		tmp_string	+= "width=" + width + ",";
		/* si on demande à afficher dans la fenêtre courante, alors on évite de l'écraser */
		if (window.name == window_name)			window.name	= "";
		try
		{
			var new_window = window.open(new_url, window_name, tmp_string);
			if (String(new_window) == "undefined" || String(new_window) == "null")
			{	/* popup-blocker probable */
				open_link_popup_blocker = true;
			}
		}
		catch(e)
		{	/* popup-blocker probable */
			open_link_popup_blocker = true;
		};

		if (open_link_popup_blocker)
		{	/* popup-blocker probable */
			fog_manage(true);
			window.setTimeout("msg_alert('', language_msg('00171'), '', true);", 100);
			/* on indique qu'il y a un popup blocker actif */
			return false;
		}
	}

	if (mode == "iframe")
	{
		fog_manage(true);
		if (iframe_open_link != null)
		{	/* suppression de l'iframe le cas echeant */
			iframe_open_link.parentNode.removeChild(iframe_open_link);
			iframe_open_link = null;
		}
		/* taille par defaut */
		if (String(height) == "undefined")	height	= "600px";
		if (String(width) == "undefined")		width		= "940px";
		/* creation de l'iframe */
		iframe_open_link								= document.createElement("iframe");
		/* masquage de la bordure de l'iframe */
		if (b_ie)
			iframe_open_link.setAttribute("frameBorder", "0");
		if (b_ff)
			iframe_open_link.style.border	= "0px solid #000";
		iframe_open_link.style.height		= height;
		iframe_open_link.style.width		= width;
		iframe_open_link.src						= new_url;
		document.body.appendChild(iframe_open_link);
		/* affichage de l'iframe */
		msg_object("", iframe_open_link, "open_link_validate", true, true);
	}

	if (mode == "tab")
	{	/* création du nouvel onglet à taille maximale */
		if (window.parent != window)
		{	/* il faut ajouter l'iframe à partir de l'objet window parent, sinon erreur sous IE */
			window.parent.open_link(new_url, "tab");
			return false;
		}
		/* vérification que l'on peut utiliser le mode onglet */
		var div_index_tab = document.getElementById("div_index_tab");
		if (String(div_index_tab) == "null" || String(div_index_tab) == "undefined")
		{	/* erreur => ouverture de la page d'accueil */
			open_link("../php/index.php", "same");
			return false;
		}
		var rnd															= String(Math.random());
		/* calcul des coordonnées d'affichage */
		height															= window_get_sizes(window, "height") - parseInt(div_index_tab.offsetHeight);
		width																= window_get_sizes(window, "width");
 		/* ajustements pour tenir au plus juste dans la fenêtre */
 		if (b_ie) { height -= 7; width -= 24; }
 		if (b_ff) { height -= 2; width -= 2; }
		/* creation de l'iframe */
		var iframe_open_link_tab						= document.createElement("iframe");
		if (b_ie)
			iframe_open_link_tab.setAttribute("frameBorder", "0");
		iframe_open_link_tab.className			= "css_tab"; /* attention, classe utilisée dans "index.js", fonction "index_open_tab_prepare" */
		iframe_open_link_tab.style.height		= height;
		iframe_open_link_tab.style.top			= parseInt(div_index_tab.offsetHeight);
		iframe_open_link_tab.style.width		= width;
		iframe_open_link_tab.setAttribute("id", "iframe_open_link_tab_" + rnd);
		iframe_open_link_tab.src						= new_url;
		/* ouverture de l'iframe */
		window.document.body.appendChild(iframe_open_link_tab);
		/* préparation de l'onglet */
		var div_open_link_tab								= document.createElement("div");
		div_open_link_tab.className					= "css_tab_selected";
		/* clic sur l'onglet pour appeler la zone souhaitée */
		div_open_link_tab.setAttribute("iframe_open_link_tab_id", iframe_open_link_tab.getAttribute("id"));
		div_open_link_tab.onclick						= function() { index_open_tab(this, false, false); return true; };
		/* affichage de l'onglet en haut */
		div_index_tab.appendChild(div_open_link_tab);
		index_open_tab(div_open_link_tab, false, tab_save_session);
		return true;
	}

	if (mode == "same")
	{
		window.location.href = new_url;
	}

	if (mode == "parent")
	{
		try
		{	/* on essaye d'ouvrir dans la fenetre appelante si possible (ce qui revient a la fenetre courante si elle n'existe pas */
			window.parent.location.href = new_url;
		}
		catch(e)
		{	/* probleme de securite */
			window.location.href = new_url;
		}
	}

	return true;
}

function open_link_validate(result)
{
	/* *************************************
	NAME :
		open_link_validate
	INPUT :
		result => selon retour de msg_object
	OUTPUT :
		- (ouvre le lien souhaite, dans la meme page ou dans une autre)
	************************************* */
	if (iframe_open_link != null)
	{	/* suppression de l'iframe le cas echeant */
		iframe_open_link.parentNode.removeChild(iframe_open_link);
		iframe_open_link	= null;
	}
	if (result == "" || result == null)
		return false;
	else
		return true;
}

function open_page(page_id)
{
	/* *************************************
	NAME :
		open_page
	INPUT :
		page_id	=> ID de la page
	OUTPUT :
		- (ouvre la page souhaitee)
	************************************* */
	if (page_id != "")
	{
		var new_url = '../php/page.php?page_id=' + page_id.substr(0, 32) + 'static';
		try
		{	/* on essaye d'ouvrir dans la fenetre appelante si possible (ce qui revient a la fenetre courante si elle n'existe pas */
			/* et uniquement si on est dans le même domaine (sinon on peut être dans une redirection de nom de domaine) */
			var current_url	= window.parent.location.href;
			if (url_is_same_domain(current_url, new_url))
			{
				window.parent.location.href = new_url;
			}
			else
			{
				window.location.href = new_url;
			}
		}
		catch(e)
		{	/* probleme de securite */
			window.location.href	= new_url;
		}
	}
	return true;
}

function quota_display(percentage_target, object_id)
{
	/* *************************************
	NAME :
		quota_display
	INPUT :
		percentage_target	=> pourcentage a afficher
		object_id					=> objet de reference contenant la jauge
	OUTPUT :
		mise a jour progressive de la jauge de quota
	************************************* */
	var PERCENTAGE_STEP						= 10;
	var PERCENTAGE_MAX						= 100;
	/* recuperation des objets */
	var object_reference					= document.getElementById(object_id);
	var object_reference_parent		= object_reference.parentNode;
	/* calcul de la valeur affichee actuellement */
	if (b_ie)
		var current_percentage			= parseInt(object_reference.offsetWidth) * PERCENTAGE_MAX / parseInt(object_reference_parent.currentStyle.width);
	if (b_ff)
		var current_percentage			= parseInt(object_reference.offsetWidth) * PERCENTAGE_MAX / parseInt(object_reference_parent.offsetWidth);
	/* calcul de la nouvelle valeur a afficher */
	var new_percentage						= current_percentage + PERCENTAGE_STEP;
	/* calcul du depassement */
	if (percentage_target > PERCENTAGE_MAX)
		percentage_target						= PERCENTAGE_MAX;
	if (new_percentage > percentage_target)
		new_percentage							= percentage_target;
	/* affichage (de bas en haut) */
	if (new_percentage == "")
		new_percentage							= 0;
	object_reference.style.width	= (new_percentage) + "%";
	/* relance si l'affichage n'est pas termine */
	if (new_percentage < percentage_target)
		window.setTimeout("quota_display('" + percentage_target + "', '" + object_id + "')", 100);
}

function remove_html_tags(input)
{
	/* *************************************
	NAME :
		remove_html_tags
	INPUT :
		input => chaine dont on va supprimer les tags HTML
	OUTPUT :
		chaine sans les tags HTML
	************************************* */
	var re = /(<([^>]+)>)/gi;
	return input.replace(re, "");
}

function remove_special_characters(input, remove_accents, remove_spaces, remove_dots, remove_at, remove_ponctuation, replaced_by)
{
	/* *************************************
	NAME :
		remove_special_characters (!! EQUIVALENT DE LA MÊME FONCTION DANS LIB-STRING.PHP !!)
	INPUT :
		input								=> chaine dont on va supprimer les accents
		remove_accents			=> true si on supprime les accents, et false sinon
		remove_spaces				=> true si on supprime les espaces, et false sinon
		remove_dots					=> true si on supprime les points
		remove_at						=> true si on supprime les @
		remove_ponctuation	=> true si on supprime la ponctuation
		replaced_by					=> caractères par lequel on remplace
	OUTPUT :
		chaine sans les caractères non-désirés pour un fichier
	************************************* */
	var result	= input;
	if (remove_accents)
	{
		var before	= new Array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
		var after		= new Array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
		for (var i=0 ; i<before.length ; i++)
		{
			var reg		= new RegExp(before[i], "g");
			result		= result.replace(reg, after[i]);
		}
	}
	if (remove_spaces)			result	= result.replace(/ /g, replaced_by);
	if (remove_dots)				result	= result.replace(/\./g, replaced_by);
	if (remove_at)					result	= result.replace(/@/g, replaced_by);
	if (remove_ponctuation)	result	= result.replace(/[^a-zA-Z0-9]/g, replaced_by);
	result													= result.replace(/#/g, replaced_by);
	if (replaced_by != "_")	result	= result.replace(/_/g, replaced_by);
	return result;
}

function rgb_to_hex(str)
{
	/* *************************************
	NAME :
		rgb_to_hex
	INPUT :
		str	=> chaine à convertir
	OUTPUT :
		valeur de couleur sous la forme #xxxxxx au lieu de rgb(yy,yy,yy)
	************************************* */
	if (str.indexOf("#") != -1) return str;
	if (str.toLowerCase() == "transparent") return str;

	str			= str.replace(/rgb\(|\)/g, "").split(",");
	str[0]	= parseInt(str[0], 10).toString(16).toLowerCase();
	str[1]	= parseInt(str[1], 10).toString(16).toLowerCase();
	str[2]	= parseInt(str[2], 10).toString(16).toLowerCase();
	str[0]	= (str[0].length == 1) ? '0' + str[0] : str[0];
	str[1]	= (str[1].length == 1) ? '0' + str[1] : str[1];
	str[2]	= (str[2].length == 1) ? '0' + str[2] : str[2];
	return('#' + str.join(""));
}

function style_border_preview(zone, mode)
{
	/* *************************************
	NAME :
		style_border_preview
	INPUT :
		zone	=> top/bottom/left/right selon la zone a mettre a jour
		mode	=> 1 (mettre a jour la zone par rapport au parametrage souhaite) ou 2 (recuperer le style de la zone et le mettre dans le parametrage souhaite)
	OUTPUT :
		- (mise a jour de la previsualisation visuelle des bordures)
	************************************* */
	var div_style_border				= document.getElementById("div_style_border");
	var div_style_border_color	= document.getElementById("div_style_border_color");
	var div_style_border_style	= document.getElementById("div_style_border_style");
	var div_style_border_width	= document.getElementById("div_style_border_width");

	/* recuperation des valeurs a mettre a jour et affectation d'une valeur par défaut si besoin */
	var new_color	= div_style_border_color.value;
	var new_style	= div_style_border_style.value;
	var new_width	= div_style_border_width.value;

	if (new_color == "" && new_style == "" && new_width == "")
	{	/* tout est vide => autorisé car on peut mettre une bordure à vide */
	}
	else
	{	/* tout n'est pas vide mais certaines le sont => utilisation de valeurs par défaut */
		if (new_color == "")	new_color	= "#000000";
		if (new_style == "")	new_style	= "solid";
		if (new_width == "")	new_width	= "1px";
	}

	/* recuperation des champs caches */
	var style_border_bottom_color	= document.getElementById("style_border-bottom-color");
	var style_border_bottom_style	= document.getElementById("style_border-bottom-style");
	var style_border_bottom_width	= document.getElementById("style_border-bottom-width");
	var style_border_left_color		= document.getElementById("style_border-left-color");
	var style_border_left_style		= document.getElementById("style_border-left-style");
	var style_border_left_width		= document.getElementById("style_border-left-width");
	var style_border_right_color	= document.getElementById("style_border-right-color");
	var style_border_right_style	= document.getElementById("style_border-right-style");
	var style_border_right_width	= document.getElementById("style_border-right-width");
	var style_border_top_color		= document.getElementById("style_border-top-color");
	var style_border_top_style		= document.getElementById("style_border-top-style");
	var style_border_top_width		= document.getElementById("style_border-top-width");

	/* TOP */
	if (zone == "top" || zone == "all")
	{
		if (mode == 1)
		{	/* mise a jour de la bordure */
			var old_color																= div_style_border.style.borderTopColor;
			var old_style																= div_style_border.style.borderTopStyle;
			var old_width																= div_style_border.style.borderTopWidth;
			div_style_border.style.borderTopColor				= new_color;
			div_style_border.style.borderTopStyle				= new_style;
			div_style_border.style.borderTopWidth				= new_width;
			/* cas special : on a applique le meme style => il faut en fait supprimer le style */
			if (old_color == div_style_border.style.borderTopColor && old_style == div_style_border.style.borderTopStyle && old_width == div_style_border.style.borderTopWidth)
			{
				new_color																	= "#000";
				new_style																	= "none";
				new_width																	= "0px";
				div_style_border.style.borderTopColor			= new_color;
				div_style_border.style.borderTopStyle			= new_style;
				div_style_border.style.borderTopWidth			= new_width;
			}
			/* impact sur les champs caches */
			style_border_top_color.value								= new_color;
			style_border_top_style.value								= new_style;
			style_border_top_width.value								= new_width;
		}
		if (mode == 2)
		{	/* recuperation du style de la zone */
			div_style_border_color.value								= div_style_border.style.borderTopColor;
			div_style_border_style.value								= div_style_border.style.borderTopStyle;
			div_style_border_width.value								= div_style_border.style.borderTopWidth;
			try{color_update_background(div_style_border_color);}catch(e){};
		}
	}

	/* BOTTOM */
	if (zone == "bottom" || zone == "all")
	{
		if (mode == 1)
		{	/* mise a jour de la bordure */
			var old_color																= div_style_border.style.borderBottomColor;
			var old_style																= div_style_border.style.borderBottomStyle;
			var old_width																= div_style_border.style.borderBottomWidth;
			div_style_border.style.borderBottomColor		= new_color;
			div_style_border.style.borderBottomStyle		= new_style;
			div_style_border.style.borderBottomWidth		= new_width;
			/* cas special : on a applique le meme style => il faut en fait supprimer le style */
			if (old_color == div_style_border.style.borderBottomColor && old_style == div_style_border.style.borderBottomStyle && old_width == div_style_border.style.borderBottomWidth)
			{
				new_color																	= "#000";
				new_style																	= "none";
				new_width																	= "0px";
				div_style_border.style.borderBottomColor	= new_color;
				div_style_border.style.borderBottomStyle	= new_style;
				div_style_border.style.borderBottomWidth	= new_width;
			}
			/* impact sur les champs caches */
			style_border_bottom_color.value							= new_color;
			style_border_bottom_style.value							= new_style;
			style_border_bottom_width.value							= new_width;
		}
		if (mode == 2)
		{	/* recuperation du style de la zone */
			div_style_border_color.value								= div_style_border.style.borderBottomColor;
			div_style_border_style.value								= div_style_border.style.borderBottomStyle;
			div_style_border_width.value								= div_style_border.style.borderBottomWidth;
			try{color_update_background(div_style_border_color);}catch(e){};
		}
	}

	/* LEFT */
	if (zone == "left" || zone == "all")
	{
		if (mode == 1)
		{	/* mise a jour de la bordure */
			var old_color																= div_style_border.style.borderLeftColor;
			var old_style																= div_style_border.style.borderLeftStyle;
			var old_width																= div_style_border.style.borderLeftWidth;
			div_style_border.style.borderLeftColor			= new_color;
			div_style_border.style.borderLeftStyle			= new_style;
			div_style_border.style.borderLeftWidth			= new_width;
			/* cas special : on a applique le meme style => il faut en fait supprimer le style */
			if (old_color == div_style_border.style.borderLeftColor && old_style == div_style_border.style.borderLeftStyle && old_width == div_style_border.style.borderLeftWidth)
			{
				new_color																	= "#000";
				new_style																	= "none";
				new_width																	= "0px";
				div_style_border.style.borderLeftColor		= new_color;
				div_style_border.style.borderLeftStyle		= new_style;
				div_style_border.style.borderLeftWidth		= new_width;
			}
			/* impact sur les champs caches */
			style_border_left_color.value								= new_color;
			style_border_left_style.value								= new_style;
			style_border_left_width.value								= new_width;
		}
		if (mode == 2)
		{	/* recuperation du style de la zone */
			div_style_border_color.value								= div_style_border.style.borderLeftColor;
			div_style_border_style.value								= div_style_border.style.borderLeftStyle;
			div_style_border_width.value								= div_style_border.style.borderLeftWidth;
			try{color_update_background(div_style_border_color);}catch(e){};
		}
	}

	/* RIGHT */
	if (zone == "right" || zone == "all")
	{
		if (mode == 1)
		{	/* mise a jour de la bordure */
			var old_color																= div_style_border.style.borderRightColor;
			var old_style																= div_style_border.style.borderRightStyle;
			var old_width																= div_style_border.style.borderRightWidth;
			div_style_border.style.borderRightColor			= new_color;
			div_style_border.style.borderRightStyle			= new_style;
			div_style_border.style.borderRightWidth			= new_width;
			/* cas special : on a applique le meme style => il faut en fait supprimer le style */
			if (old_color == div_style_border.style.borderRightColor && old_style == div_style_border.style.borderRightStyle && old_width == div_style_border.style.borderRightWidth)
			{
				new_color																	= "#000";
				new_style																	= "none";
				new_width																	= "0px";
				div_style_border.style.borderRightColor		= new_color;
				div_style_border.style.borderRightStyle		= new_style;
				div_style_border.style.borderRightWidth		= new_width;
			}
			/* impact sur les champs caches */
			style_border_right_color.value							= new_color;
			style_border_right_style.value							= new_style;
			style_border_right_width.value							= new_width;
		}
		if (mode == 2)
		{	/* recuperation du style de la zone */
			div_style_border_color.value								= div_style_border.style.borderRightColor;
			div_style_border_style.value								= div_style_border.style.borderRightStyle;
			div_style_border_width.value								= div_style_border.style.borderRightWidth;
			try{color_update_background(div_style_border_color);}catch(e){};
		}
	}

	style_border_preview_adjust();
}

function style_border_preview_adjust()
{	/*  */
	/* *************************************
	NAME :
		style_border_preview_adjust
	INPUT :
		-
	OUTPUT :
		- (ajustement de la previsualisation pour un affichage correct)
	************************************* */
	var style_border_init_height	= 80;
	var style_border_init_left		= 54;
	var style_border_init_top			= 21;
	var style_border_init_width		= 91;

	var div_style_border	= document.getElementById("div_style_border");

	var borderTopWidth		= div_style_border.style.borderTopWidth == "" ? 0 : parseInt(div_style_border.style.borderTopWidth);
	var borderBottomWidth	= div_style_border.style.borderBottomWidth == "" ? 0 : parseInt(div_style_border.style.borderBottomWidth);
	var borderLeftWidth		= div_style_border.style.borderLeftWidth == "" ? 0 : parseInt(div_style_border.style.borderLeftWidth);
	var borderRightWidth	= div_style_border.style.borderRightWidth == "" ? 0 : parseInt(div_style_border.style.borderRightWidth);
	if (b_ff)
	{
		div_style_border.style.top		= (style_border_init_top - borderTopWidth) + "px";
		div_style_border.style.left		= (style_border_init_left - borderLeftWidth) + "px";
		div_style_border.style.height	= (style_border_init_height) + "px";
		div_style_border.style.width	= (style_border_init_width) + "px";
	}
	if (b_ie)
	{
		div_style_border.style.top		= (style_border_init_top - borderTopWidth) + "px";
		div_style_border.style.left		= (style_border_init_left - borderLeftWidth) + "px";
		div_style_border.style.height	= (style_border_init_height + borderTopWidth + borderBottomWidth) + "px";
		div_style_border.style.width	= (style_border_init_width + borderLeftWidth + borderRightWidth) + "px";
	}
}

function style_border_preview_init()
{	/*  */
	/* *************************************
	NAME :
		style_border_preview_init
	INPUT :
		-
	OUTPUT :
		- (mise a jour de la previsualisation visuelle des bordures par rapport a l'existant)
	************************************* */
	var div_style_border	= document.getElementById("div_style_border");

	/* recuperation des champs caches */
	var style_border_bottom_color	= document.getElementById("style_border-bottom-color");
	var style_border_bottom_style	= document.getElementById("style_border-bottom-style");
	var style_border_bottom_width	= document.getElementById("style_border-bottom-width");
	var style_border_left_color		= document.getElementById("style_border-left-color");
	var style_border_left_style		= document.getElementById("style_border-left-style");
	var style_border_left_width		= document.getElementById("style_border-left-width");
	var style_border_right_color	= document.getElementById("style_border-right-color");
	var style_border_right_style	= document.getElementById("style_border-right-style");
	var style_border_right_width	= document.getElementById("style_border-right-width");
	var style_border_top_color		= document.getElementById("style_border-top-color");
	var style_border_top_style		= document.getElementById("style_border-top-style");
	var style_border_top_width		= document.getElementById("style_border-top-width");

	/* gestion de plantages sous IE lorsqu'on a mis un style incomplet (ex: sans préciser le style ou la largeur ou la couleur */
	try { div_style_border.style.borderTopStyle			= style_border_top_style.value;} catch(e) {};
	try { div_style_border.style.borderTopStyle			= style_border_top_color.value;} catch(e) {};
	try { div_style_border.style.borderTopStyle			= style_border_top_width.value;} catch(e) {};
	try { div_style_border.style.borderTopColor			= style_border_top_style.value;} catch(e) {};
	try { div_style_border.style.borderTopColor			= style_border_top_color.value;} catch(e) {};
	try { div_style_border.style.borderTopColor			= style_border_top_width.value;} catch(e) {};
	try { div_style_border.style.borderTopWidth			= style_border_top_style.value;} catch(e) {};
	try { div_style_border.style.borderTopWidth			= style_border_top_color.value;} catch(e) {};
	try { div_style_border.style.borderTopWidth			= style_border_top_width.value;} catch(e) {};

	try { div_style_border.style.borderBottomStyle	= style_border_bottom_style.value;} catch(e) {};
	try { div_style_border.style.borderBottomStyle	= style_border_bottom_color.value;} catch(e) {};
	try { div_style_border.style.borderBottomStyle	= style_border_bottom_width.value;} catch(e) {};
	try { div_style_border.style.borderBottomColor	= style_border_bottom_style.value;} catch(e) {};
	try { div_style_border.style.borderBottomColor	= style_border_bottom_color.value;} catch(e) {};
	try { div_style_border.style.borderBottomColor	= style_border_bottom_width.value;} catch(e) {};
	try { div_style_border.style.borderBottomWidth	= style_border_bottom_style.value;} catch(e) {};
	try { div_style_border.style.borderBottomWidth	= style_border_bottom_color.value;} catch(e) {};
	try { div_style_border.style.borderBottomWidth	= style_border_bottom_width.value;} catch(e) {};

	try { div_style_border.style.borderLeftStyle		= style_border_left_style.value;} catch(e) {};
	try { div_style_border.style.borderLeftStyle		= style_border_left_color.value;} catch(e) {};
	try { div_style_border.style.borderLeftStyle		= style_border_left_width.value;} catch(e) {};
	try { div_style_border.style.borderLeftColor		= style_border_left_style.value;} catch(e) {};
	try { div_style_border.style.borderLeftColor		= style_border_left_color.value;} catch(e) {};
	try { div_style_border.style.borderLeftColor		= style_border_left_width.value;} catch(e) {};
	try { div_style_border.style.borderLeftWidth		= style_border_left_style.value;} catch(e) {};
	try { div_style_border.style.borderLeftWidth		= style_border_left_color.value;} catch(e) {};
	try { div_style_border.style.borderLeftWidth		= style_border_left_width.value;} catch(e) {};

	try { div_style_border.style.borderRightStyle		= style_border_right_style.value;} catch(e) {};
	try { div_style_border.style.borderRightStyle		= style_border_right_color.value;} catch(e) {};
	try { div_style_border.style.borderRightStyle		= style_border_right_width.value;} catch(e) {};
	try { div_style_border.style.borderRightColor		= style_border_right_style.value;} catch(e) {};
	try { div_style_border.style.borderRightColor		= style_border_right_color.value;} catch(e) {};
	try { div_style_border.style.borderRightColor		= style_border_right_width.value;} catch(e) {};
	try { div_style_border.style.borderRightWidth		= style_border_right_style.value;} catch(e) {};
	try { div_style_border.style.borderRightWidth		= style_border_right_color.value;} catch(e) {};
	try { div_style_border.style.borderRightWidth		= style_border_right_width.value;} catch(e) {};

	try { style_border_preview_adjust();} catch(e) {};
}

function swf_reload_media(swf_patternallowed,swf_patternnotallowed, metier_id, swf_movie, swf_movie_url, swf_movie_id, swf_movie_width, swf_movie_height, swf_movie_version, swf_movie_install, swf_movie_flashvar, swf_movie_params, swf_movie_attributes){
/* *************************************
NAME :
	swf_reload_media
INPUT :
	swf_patternallowed 		=> pattern des ressources autorisees par le lecteur
	swf_patternnotallowed	=> pattern des ressources non autorisees par le lecteur
	metier_id							=> id numerique  de l'objet
	swf_movie							=> url du lecteur swf
	swf_movie_url					=> url de la ressource à lire
	swf_movie_id					=> id de l'objet cible pour accueillir le lecteur
	swf_movie_width 			=> largeur du lecteur
	swf_movie_height 			=> hauteur du lecteur
	swf_movie_version			=> version flash recommandee
	swf_movie_install 		=> lancement auto de la version recommandée
	swf_movie_flashvar		=> tableau des flashvar
	swf_movie_params			=> tableau des params
	swf_movie_attributes	=> tableau des attributs
OUTPUT :
	- rechargement du lecteur avec une nouvelle ressource ou lancement du téléchargement/ouverture classique
************************************* */
	if(swf_movie_url.substr(0, 1) == "&")
		return false;

	if(swf_patternnotallowed != "")
	{
		var regExp = new RegExp(swf_patternnotallowed, "gi");
		if(regExp.test(swf_movie_url))
		{
			var oMedia = document.getElementById("div_media_" + metier_id);
				if(oMedia)
				{
					oMedia.innerHTML="<iframe src='"+ swf_movie_url + "'></iframe>";
				}
		}
		else
		{
			swfobject.embedSWF(swf_movie + swf_movie_url, swf_movie_id, swf_movie_width, swf_movie_height, swf_movie_version, swf_movie_install, swf_movie_flashvar, swf_movie_params, swf_movie_attributes);
		}
	}
	else
	{
		var regExp = new RegExp(swf_patternallowed, "gi");
		if(regExp.test(swf_movie_url))
		{
			swfobject.embedSWF(swf_movie + swf_movie_url, swf_movie_id, swf_movie_width, swf_movie_height, swf_movie_version, swf_movie_install, swf_movie_flashvar, swf_movie_params, swf_movie_attributes);
		}
		else
		{
			var oMedia = document.getElementById("div_media_" + metier_id);
			if(oMedia)
			{
				oMedia.innerHTML="<iframe src='"+ swf_movie_url + "'></iframe>";
			}
		}
	}
}

function table_get_from_id(table_id, remove_text_nodes)
{
	/* *************************************
	NAME :
		table_get_from_id
	INPUT :
		table_id					=> id de la table a recuperer
		remove_text_nodes	=> true si on veut supprimer les nodes de type "texte" et false sinon (generes par Firefox par exemple)
	OUTPUT :
		renvoi le contenu de la table selon le type de browser
	************************************* */
	var table;
	if (b_ie)
	{
		table = document.getElementById(table_id).firstChild;
	}
	if (b_ff)
	{
		table = document.getElementById(table_id).lastChild;
	}
	if (remove_text_nodes)
	{
		for (var i_tr=table.childNodes.length-1 ; i_tr>=0 ; i_tr--)
		{
			var tr = table.childNodes[i_tr];
			if (tr.nodeType == 3)
			{	/* type "texte" => suppression */
				tr.parentNode.removeChild(tr);
				tr = null;
			}
			else
			{
				for (var i_td=tr.childNodes.length-1 ; i_td>=0 ; i_td--) /* parcours a l'envers car suppression */
				{
					var td = tr.childNodes[i_td];
					if (td.nodeType == 3)
					{	/* type "texte" => suppression */
						td.parentNode.removeChild(td);
						td = null;
					}
				}
			}
		}
	}
	return (table);
}

function table_sort(reference_table, no_column)
{
	/* *************************************
	NAME :
		table_sort
	INPUT :
		reference_table	=> référence de la table à trier
		no_column				=> numéro d'ordre de la colonne à trier dans la table
	OUTPUT :
		- (tri la table donnée en paramètre)
	************************************* */
	var min_index					= -1;
	var min_value					= null;
	var tmp_value					= null;
	var current_cell			= null;
	var tmp_cell					= null;

	/* tri simple à double boucle */
	var tmp_table_rows		= getChildrenByTagName(reference_table, "tr");

	var min_row						= 0;
	/* est-ce qu'on a une ligne de titre ? */
	if (getChildrenByTagName(tmp_table_rows[0], "td")[0].getAttribute("header") == "1")
		min_row							= 1;

	/* parcours de toutes les lignes */
	for (var i=min_row ; i<tmp_table_rows.length ; i++)
	{
		/* récupération de la valeur de la colonne à trier */
		var current_cell		= getChildrenByTagName(tmp_table_rows[i], "td")[no_column];
		min_value						= current_cell.innerHTML;
		min_index						= i;

		/* prise en compte du cas "nombre" */
		if (!isNaN(min_value))
		{
			if (current_cell.innerHTML != "")
				min_value					= parseFloat(min_value);
			else
				min_value					= "";
		}

		/* parcours de toutes les lignes en-dessous */
		for (var k=i+1 ; k<tmp_table_rows.length ; k++)
		{
			/* récupération de la valeur de la colonne à trier */
			var tmp_cell			= getChildrenByTagName(tmp_table_rows[k], "td")[no_column];
			tmp_value					= tmp_cell.innerHTML;

			/* prise en compte du cas "nombre" */
			if (!isNaN(tmp_value))
			{
				if (tmp_value != "")
					tmp_value				= parseFloat(tmp_value);
				else
					tmp_value				= "";
			}

			if (tmp_value < min_value)
			{
				min_index				= k;
				min_value				= tmp_value;
			}
		}

		/* déplacement de la colonne */
		var tmp_row					= tmp_table_rows[min_index];
		if (tmp_row)
			reference_table.insertBefore(tmp_row, tmp_table_rows[i]);

		/* on recharge la liste des lignes */
		tmp_table_rows			= getChildrenByTagName(reference_table, "tr");
	}
}

String.prototype.trim = function() { return this.replace( /^\s+|\s+$/, "" ); }

function trim(tmp_string)
{
	/* *************************************
	NAME :
		trim
	INPUT :
		tmp_string => chaine dont on veut supprimer les espaces inutiles
	OUTPUT :
		chaine sans espaces inutiles
	************************************* */
	if (String(tmp_string) == "undefined" || String(tmp_string) == null)
		return "";
	else
		return tmp_string.replace(/(^\s*)|(\s*$)/g,'');
}

function trim_array(tmp_array)
{
	/* *************************************
	NAME :
		tmp_array
	INPUT :
		tmp_array => tableau dont on veut supprimer les valeurs inutiles
	OUTPUT :
		chaine sans espaces inutiles
	************************************* */
	var tmp = new Array();
	for(j=0 ; j<tmp_array.length ; j++)
		if(tmp_array[j] != '')
			tmp[tmp.length] = tmp_array[j];
	tmp_array.length = tmp.length;
	for(j=0 ; j<tmp.length ; j++)
		tmp_array[j] = tmp[j];
	return tmp_array;
}

function url_argument_value(name)
{
	var regexS	= "[\\?&]"+name+"=([^&#]*)";
	var regex		= new RegExp( regexS );
	var tmpURL	= window.location.href;
	var results	= regex.exec( tmpURL );
	if (results	== null)
		return "";
	else
		return results[1];
}

function url_is_same_domain(url_1, url_2)
{
	/* *************************************
	NAME :
		url_is_same_domain
	INPUT :
		url_1	=> 1e url
		url_2	=> 2e url
	OUTPUT :
		true si les urls sont dans le même domaine et false sinon
	************************************* */
	var result;

	/* cas 1 : "." ou "/" en debut d'url => relatif => meme fenetre */
	if (url_1.substr(0, 1) == "." || url_1.substr(0, 1) == "/")
		result = true;
	else
	{
		/* cas 2 : meme serveur (apres protocol://) => meme domaine => meme fenetre */
		var serveur_2	= url_2.substr(url_2.indexOf("://") + 3, url_2.length);
		serveur_2			= serveur_2.substr(0, serveur_2.indexOf("/"));
		var serveur_1	= url_1.substr(url_1.indexOf("://") + 3, url_1.length);
		serveur_1			= serveur_1.substr(0, serveur_1.indexOf("/"));
		if (serveur_2 == serveur_1)
			result = true;
		else
			result = false;
	}
	return result;
}

function utf8_encode(string) {
      string = string.replace(/\r\n/g,"\n");
      var utftext = "";

      for (var n = 0; n < string.length; n++) {

          var c = string.charCodeAt(n);

          if (c < 128) {
              utftext += String.fromCharCode(c);
          }
          else if((c > 127) && (c < 2048)) {
              utftext += String.fromCharCode((c >> 6) | 192);
              utftext += String.fromCharCode((c & 63) | 128);
          }
          else {
              utftext += String.fromCharCode((c >> 12) | 224);
              utftext += String.fromCharCode(((c >> 6) & 63) | 128);
              utftext += String.fromCharCode((c & 63) | 128);
          }
      }
      return utftext;
}

function window_get_sizes(object, request)
{
	/* *************************************
	NAME :
		window_get_sizes
	INPUT :
		request => valeur cherchee concernant la fenetre (width, height, max_x, max_y, scroll_x, scroll_y)
	OUTPUT :
		valeur cherchee
	************************************* */
	switch (String(request).toLowerCase())
	{
		case "width" :
			return (parseInt(b_ie ? object.document.body.offsetWidth : object.innerWidth));
		case "height" :
			return (parseInt(b_ie ? object.document.body.offsetHeight : object.innerHeight));
		case "max_x" :
			var tmp_integer	= parseInt((b_ie || b_sf || b_chrome) ? object.document.body.scrollWidth : parseInt(object.innerWidth) + parseInt(object.scrollMaxX));
			var tmp_max_x		= parseInt((b_ie || b_sf || b_chrome) ? object.document.body.clientWidth : object.innerWidth);
			return (tmp_integer < tmp_max_x ? tmp_max_x : tmp_integer);
		case "max_y" :
			var tmp_integer	= parseInt((b_ie || b_sf || b_chrome) ? object.document.body.scrollHeight : parseInt(object.innerHeight) + parseInt(object.scrollMaxY));
			var tmp_max_y		= parseInt((b_ie || b_sf || b_chrome) ? object.document.body.clientHeight : object.innerHeight);
			return (tmp_integer < tmp_max_y ? tmp_max_y : tmp_integer);
		case "scroll_x" :
			return (parseInt(b_ie ? object.document.body.scrollLeft : object.scrollX));
		case "scroll_y" :
			return (parseInt(b_ie ? object.document.body.scrollTop : object.scrollY));
	}
	return false;
}

function window_preparesubmit()
{
	/* *************************************
	NAME :
		window_preparesubmit
	INPUT :
		-
	OUTPUT :
		- (preparation du submit par sauvegarde du contenu du formulaire)
	************************************* */
	/* necessite d'avoir la ligne suivante dans le formulaire soumis :
		<textarea id='textarea_backup' name='textarea_backup' style='display:none;' cols='1' rows='1'></textarea>
	*/
	var textarea_backup		= document.getElementById("textarea_backup");
	var tmp_string				= get_outerHTML(document.getElementById("form_main"));
	textarea_backup.value	= tmp_string;
	return true;
}


/* *************************************
Ce fichier JS contient diverses methodes
************************************* */

/* touche "escape" => masquage de l'alerte (ok, non, annuler... selon le type d'alerte) */
document.onkeydown = function(e){
	var keyCode = b_ie ? event.keyCode : e.keyCode;
	/* escape */
	if (keyCode == 27)
	{ try { key_manage_escape(e); } catch(erreur) {}; }
	/* delete */
	if (keyCode == 46)
	{ try { key_manage_delete(e); } catch(erreur) {}; }
	/* ctrl^z */
	if (keyCode == 90 && (b_ie ? event.ctrlKey : e.ctrlKey))
	{ try { key_manage_ctrlz(e); } catch(erreur) {}; }
	/* ctrl^y */
	if (keyCode == 89 && (b_ie ? event.ctrlKey : e.ctrlKey))
	{ try { key_manage_ctrly(e); } catch(erreur) {}; }
	/* flèches de direction */
	if (keyCode == 37 || keyCode == 38 || keyCode == 39 || keyCode == 40)
	{ try { key_manage_move(e, keyCode); } catch(erreur) {}; }
};
var key_manage_escape;
var key_manage_delete;

var x, y;
function selectmouse(e)
{
	/* *************************************
	NAME :
		selectmouse
	INPUT :
		-
	OUTPUT :
		- (desactivation du clic droit de la souris et de la selection sauf sur les champs)
	************************************* */
	if (b_ie)
	{
		x = event.clientX;
		y = event.clientY;
		var tmp_string = event.srcElement.nodeName.toLowerCase();
		/* on autorise la selection dans un champ (ou dans un objet, comme par exemple le Flash du Diaporama sinon probleme IE/FF) */
		return (mouse_can_select || tmp_string == "input" || tmp_string == "textarea" || tmp_string == "object" || tmp_string == "embed" || tmp_string == "select");
	}
	if (b_ff)
	{
		x = e.clientX;
		y = e.clientY;
		var tmp_string = e.target.nodeName.toLowerCase();
		/* on autorise la selection dans un champ (ou dans un objet, comme par exemple le Flash du Diaporama sinon probleme IE/FF) */
		return (mouse_can_select || tmp_string == "input" || tmp_string == "textarea" || tmp_string == "object" || tmp_string == "embed" || tmp_string == "select");
	}
	return (false);
}

/* *************************************
gestion du menu contextuel + desactivation de la selection du texte sauf sur les champs de saisie
************************************* */
var mouse_can_select	= false;
var mouse_can_context	= false;
if (b_ie)
{
	document.oncontextmenu	= new Function("return mouse_can_context;");
	document.onmousedown		= selectmouse;
	document.onselectstart	= selectmouse;
	document.onmousemove		= selectmouse;
}
if (b_ff)
{
	window.captureEvents(Event.MOUSEDOWN);
	window.captureEvents(Event.MOUSEMOVE);
	document.oncontextmenu	= new Function("return mouse_can_context;");
	document.onmousedown		= selectmouse;
	document.onmousemove		= selectmouse;
}

var mouse_isleft	= false;
var mouse_isright	= false;
function mouse_left(e)
{
	/* *************************************
	NAME :
		mouse_left
	INPUT :
		e => event permettant de connaitre le clic de la souris
	OUTPUT :
		true si click gauche et false sinon
	************************************* */
	if ((b_ff && e.button == 0) || (b_ie && event.button == 1))
		mouse_isleft = true;
	else
		mouse_isleft = false;
	return parseInt(mouse_isleft);
}

function mouse_right(e)
{
	/* *************************************
	NAME :
		mouse_right
	INPUT :
		e => event permettant de connaitre le clic de la souris
	OUTPUT :
		true si click droit et false sinon
	************************************* */
	if ((b_ff && e.button == 2) || (b_ie && event.button == 2))
		mouse_isright = true;
	else
		mouse_isright = false;
	return parseInt(mouse_isright);
}

function mouse_x(e)
{
	/* *************************************
	NAME :
		mouse_x
	INPUT :
		e => event permettant de connaitre la position de la souris
	OUTPUT :
		abscisse de l'emplacement de la souris
	************************************* */
	if (b_ie)
		return parseInt(event.clientX) + parseInt(document.body.scrollLeft);
	if (b_ff)
		return e.pageX;
}

function mouse_y(e)
{
	/* *************************************
	NAME :
		mouse_y
	INPUT :
		e => event permettant de connaitre la position de la souris
	OUTPUT :
		ordonnee de l'emplacement de la souris
	************************************* */
	if (b_ie)
		return parseInt(event.clientY) + parseInt(document.body.scrollTop);
	if (b_ff)
		return e.pageY;
}

/* *************************************
Ce fichier JS contient diverses methodes pour le module d'assistance d'interface

Pour utiliser ce module :
 - rajouter dans tous les objets HTML souhaités l'attribut <interface_assistant_id='0'> (masquer l'objet) ou <interface_assistant_id='1'> (le mettre en valeur)
 - rajouter éventuellement un attribut <interface_assistant_text> qui contient le texte d'aide de l'objet
 - utiliser le code suivant pour générer l'affichage assisté après le chargement d'une page web :
			<script type='text/javascript'><?php if (interface_assistant_get_mode()) echo "interface_assistant_mode=true;interface_assistant_update(true);"; ?></script>
************************************* */

var interface_assistant_margin			= 20;
var interface_assistant_title_all		= new Array();
var interface_assistant_object_all	= new Array();
var interface_assistant_mode				= null;

function interface_assistant_change()
{
	/* *************************************
	NAME :
		interface_assistant_change
	INPUT :
		-
	OUTPUT :
		- (changement du mode d'affichage complet/simple)
	************************************* */
	/* soumission au serveur d'une mise à jour de la session */
	/* lancement d'une requete xmlhttprequest */
	var doc									= document.getElementById("form_main");
	doc.action							= '../php/user-process.php';
	doc.param_action.value	= 'interface_assistant_change';
	loadXMLDoc(doc.action, "POST", fields_get(document, 'value', null, '¤', true), false, "interface_assistant_change_result");
	return true;
}

function interface_assistant_change_result(xmlhttp_return)
{
	/* *************************************
	NAME :
		interface_assistant_change_result
	INPUT :
		xmlhttp_return => resultat de la requete xmlhttprequest
	OUTPUT :
		- (changement du mode d'affichage complet/simple)
	************************************* */
	/* application visuelle du changement d'affichage et sauvegarde du mode actuel */
	if (xmlhttp_return.responseText == "0")
	{
		interface_assistant_mode = false;
		interface_assistant_update(false);
	}
	else
	{
		interface_assistant_mode = true;
		interface_assistant_update(true);
	}

	fog_manage(false);
	return true;
}

function interface_assistant_position_object(current_object, new_left, new_top)
{
	/* *************************************
	NAME :
		interface_assistant_position_object
	INPUT :
		current_object	=> objet à afficher
		new_left				=> position où afficher l'objet par rapport au bord gauche
		new_top					=> position où afficher l'objet par rapport au bord haut
	OUTPUT :
		- (affichage d'un objet à la position souhaitée)
	************************************* */
	current_object.style.left			= new_left;
	current_object.style.top			= new_top;
	current_object.style.display	= "block";
	return true;
}

function interface_assistant_update(display_it)
{
	/* *************************************
	NAME :
		interface_assistant_update
	INPUT :
		display_it	=> true si on active le mode assisté et false si on veut le désactiver
	OUTPUT :
		- (mise en valeur des objets ayant le bon attribut et masquage de ceux qui ne doivent pas l'être, avec un texte explicatif à côté)
	************************************* */
	var interface_assistant_object;
	var interface_assistant_title;
	var interface_assistant_title_tmp;

	if (display_it)
	{
		/* on commence par re-masquer tous les assistants déjà affichés (utile si on demande 2 mises en valeur successives avec un changement des objets affichés */
		for (var i=0 ; i<interface_assistant_title_all.length ; i++)
		{
			interface_assistant_title = interface_assistant_title_all[i][0];
			/* suppression de l'objet commentaire */
			interface_assistant_title.parentNode.removeChild(interface_assistant_title);
		}
		interface_assistant_object_all	= new Array();
		interface_assistant_title_all		= new Array();
	}

	/* parcours de tous les objets de la page pour les "masquer" (sauf ceux qui doivent être mis en valeur) */
	var all_objects	= document.getElementsByTagName("*");
	var tmp_count = all_objects.length;
	for (var i=0 ; i<tmp_count ; i++)
	{
		interface_assistant_object = all_objects[i];
		if (display_it)
		{	/* on a demandé la mise en valeur */
			if (interface_assistant_object.getAttribute("interface_assistant_id") == "1")
			{	/* objet à mettre en valeur */

				/* on ne met pas en valeur un objet caché */
				if (object_is_visible(interface_assistant_object))
				{
					/* création de l'objet permettant d'afficher l'aide */
					interface_assistant_title						= document.createElement("div");

					/* contenu de l'objet */
					interface_assistant_title.innerHTML	= interface_assistant_object.getAttribute("interface_assistant_text");

					/* modification du visuel */
					interface_assistant_title.className	= "css_interface_assistant_title";

					/* rattachement et affichage (pour connaître les dimensions réelles de l'objet affiché) */
					document.body.appendChild(interface_assistant_title);
					interface_assistant_title.style.top				= "-10000px";
					interface_assistant_title.style.display		= "block";
					/* affichage au-dessus du fog */
					if (document.getElementById("iframe_fog"))
						interface_assistant_title.style.zIndex	= parseInt(document.getElementById("iframe_fog").style.zIndex) + 1;

					/* calcul de différentes positions théoriques (par ordre de priorité d'affichage) */
					var tmp_array				= offset_absolute(interface_assistant_object)
					var current_left		= parseInt(tmp_array[0]);
					var current_top			= parseInt(tmp_array[1]);
					var current_width		= parseInt(interface_assistant_object.offsetWidth);
					var current_height	= parseInt(interface_assistant_object.offsetHeight);

					/* position 1 : à droite (en haut) */
					var new_left		= current_left + current_width + interface_assistant_margin;
					var new_top			= current_top;
					var img_left		= 0 - interface_assistant_margin;
					var img_top			= 0;
					var img_src			= "../img/interface-bottom-right.gif";
					var position_1	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* position 2 : à droite (en bas) */
					var new_left		= current_left + current_width + interface_assistant_margin;
					var new_top			= current_top + current_height - parseInt(interface_assistant_title.offsetHeight);
					var img_left		= 0 - interface_assistant_margin;
					var img_top			= parseInt(interface_assistant_title.offsetHeight) - interface_assistant_margin;
					var img_src			= "../img/interface-top-right.gif";
					var position_2	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* position 3 : à gauche (en haut) */
					var new_left		= current_left - parseInt(interface_assistant_title.offsetWidth) - interface_assistant_margin;
					var new_top			= current_top;
					var img_left		= parseInt(interface_assistant_title.offsetWidth);
					var img_top			= 0;
					var img_src			= "../img/interface-bottom-left.gif";
					var position_3	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* position 4 : à gauche (en bas) */
					var new_left		= current_left - parseInt(interface_assistant_title.offsetWidth) - interface_assistant_margin;
					var new_top			= current_top + current_height - parseInt(interface_assistant_title.offsetHeight);
					var img_left		= parseInt(interface_assistant_title.offsetWidth);
					var img_top			= parseInt(interface_assistant_title.offsetHeight) - interface_assistant_margin;
					var img_src			= "../img/interface-top-left.gif";
					var position_4	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* position 5 : en haut */
					var new_left		= current_left;
					var new_top			= current_top - parseInt(interface_assistant_title.offsetHeight) - interface_assistant_margin;
					var img_left		= 0;
					var img_top			= parseInt(interface_assistant_title.offsetHeight);
					var img_src			= "../img/interface-top-left.gif";
					var position_5	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* position 6 : en bas */
					var new_left		= current_left;
					var new_top			= current_top + current_height + interface_assistant_margin;
					var img_left		= 0;
					var img_top			= 0 - interface_assistant_margin;
					var img_src			= "../img/interface-bottom-left.gif";
					var position_6	= new Array(new_left, new_top, img_left, img_top, img_src);

					/* stockage dans les tableaux */
					interface_assistant_title_all[interface_assistant_title_all.length]		= new Array(interface_assistant_title, position_1, position_2, position_3, position_4, position_5, position_6);
					interface_assistant_object_all[interface_assistant_object_all.length]	= interface_assistant_object;
				}
			}
			if (interface_assistant_object.getAttribute("interface_assistant_id") == "0")
			{	/* objet à masquer */
				/* on ne masque pas un objet caché */
				if (object_is_visible(interface_assistant_object))
				{
					if (b_ie)
					{
						interface_assistant_object.style.filter		= "alpha(opacity=20)";
						interface_assistant_object.style.zoom			= 1; /* sous IE il faut une ligne de ce type pour faire fonctionner l'opacité sur un objet en positionnement statique */
					}
					else
						interface_assistant_object.style.opacity	= "0.20";
				}
			}
		}
		else
		{	/* on a demandé la désactivation de la mise en valeur */
			if (interface_assistant_object.getAttribute("interface_assistant_id") == "0")
			{	/* objet à remettre en visuel */
				if (b_ie)
				{
					interface_assistant_object.style.filter		= "alpha(opacity=100)";
					interface_assistant_object.style.zoom			= 1; /* sous IE il faut une ligne de ce type pour faire fonctionner l'opacité sur un objet en positionnement statique */
				}
				else
					interface_assistant_object.style.opacity	= "1.00";
			}
		}
	}

	if (!display_it)
	{
		/* suppression des tableaux globaux pour une éventuelle nouvelle mise en valeur */
		for (var i=0 ; i<interface_assistant_title_all.length ; i++)
		{
			interface_assistant_title	= interface_assistant_title_all[i][0];
			/* suppression de l'objet commentaire */
			interface_assistant_title.parentNode.removeChild(interface_assistant_title);
		}
		interface_assistant_object_all	= new Array();
		interface_assistant_title_all		= new Array();
		return true;
	}

	/* gestion des positions incorrectes des assistants */
	var new_left, new_top;
	var min_x, max_x, min_y, max_y;
	var continue_main, next_position, current_position;
	var has_intersection_x, has_intersection_y, has_intersection;
	for (var i=0 ; i<interface_assistant_title_all.length ; i++)
	{
		/* récupération de l'objet et détermination de la bonne position */
		interface_assistant_title	= interface_assistant_title_all[i][0];
		current_position					= 1;
		continue_main							= false;

		while(!continue_main)
		{
			if (String(interface_assistant_title_all[i][current_position]) != "undefined")
			{	/* utilisation de la position courante (si elle existe) */
				new_left			= interface_assistant_title_all[i][current_position][0];
				new_top				= interface_assistant_title_all[i][current_position][1];
				next_position	= false;

				if (!next_position)
				{	/* cas 1 : en dehors de l'écran en haut et à gauche */
					if (new_left < 0)	next_position = true;
					if (new_top < 0)	next_position = true;
				}

				if (!next_position)
				{	/* cas 2 : en dehors de l'écran en bas et à droite */
					if (new_left + parseInt(interface_assistant_title.offsetWidth) + msg_display_margin > window_get_sizes(window, "width"))	next_position = true;
					if (new_top + parseInt(interface_assistant_title.offsetHeight) + msg_display_margin > window_get_sizes(window, "height"))	next_position = true;
				}

				if (!next_position)
				{	/* cas 3 : assistant au-dessus un objet mis en valeur */
					has_intersection = false;
					for (var k=0 ; k<interface_assistant_object_all.length ; k++)
					{	/* parcours de tous les objets mis en valeur */
						interface_assistant_object	= interface_assistant_object_all[k];
						has_intersection_x 					= false;
						has_intersection_y					= false;
						var min_x										= new_left;
						var max_x										= new_left + parseInt(interface_assistant_title.offsetWidth);
						var min_y										= new_top;
						var max_y										= new_top + parseInt(interface_assistant_title.offsetHeight);
						var tmp_array				= offset_absolute(interface_assistant_object)
						var current_left		= parseInt(tmp_array[0]);
						var current_top			= parseInt(tmp_array[1]);
						var current_width		= parseInt(interface_assistant_object.offsetWidth);
						var current_height	= parseInt(interface_assistant_object.offsetHeight);
						/* détection d'une intersection sur l'axe X */
						if (current_left <= min_x && (current_left + current_width >= min_x))
							has_intersection_x				= true;
						if (current_left >= min_x && current_left <= max_x)
							has_intersection_x				= true;
						/* détection d'une intersection sur l'axe Y */
						if (current_top <= min_y && (current_top + current_height >= min_y))
							has_intersection_y				= true;
						if (current_top >= min_y && current_top <= max_y)
							has_intersection_y				= true;
						if (has_intersection_x && has_intersection_y)
							has_intersection					= true;
					}
					if (has_intersection)
						next_position = true;
				}

				if (!next_position)
				{	/* cas 4 : assistant au-dessus d'un autre assistant */
					has_intersection = false;
					for (var k=0 ; k<i ; k++)
					{	/* parcours de tous les objets mis en valeur et dont le title a déjà été mis en valeur */
						interface_assistant_title_tmp	= interface_assistant_title_all[k][0];
						has_intersection_x 						= false;
						has_intersection_y						= false;
						var min_x											= new_left;
						var max_x											= new_left + parseInt(interface_assistant_title.offsetWidth);
						var min_y											= new_top;
						var max_y											= new_top + parseInt(interface_assistant_title.offsetHeight);
						var tmp_array									= offset_absolute(interface_assistant_title_tmp)
						var current_left							= parseInt(tmp_array[0]);
						var current_top								= parseInt(tmp_array[1]);
						var current_width							= parseInt(interface_assistant_title_tmp.offsetWidth);
						var current_height						= parseInt(interface_assistant_title_tmp.offsetHeight);
						/* détection d'une intersection sur l'axe X */
						if (current_left <= min_x && (current_left + current_width >= min_x))
							has_intersection_x					= true;
						if (current_left >= min_x && current_left <= max_x)
							has_intersection_x					= true;
						/* détection d'une intersection sur l'axe Y */
						if (current_top <= min_y && (current_top + current_height >= min_y))
							has_intersection_y					= true;
						if (current_top >= min_y && current_top <= max_y)
							has_intersection_y					= true;
						if (has_intersection_x && has_intersection_y)
							has_intersection						= true;
					}
					if (has_intersection)
						next_position = true;
				}

				if (next_position)
				{
					current_position++;
					if (current_position > 6)
					{	/* dépassement => on prend la dernière position */
						continue_main			= true;
						current_position	= 6;
					}
				}
				else
					continue_main = true;
			}
			else
				continue_main = true;
		}

		/* affichage */
		interface_assistant_position_object(interface_assistant_title, new_left, new_top);

		/* rajout de la flêche pour relier les objets */
		/* création et affichage de l'image */
		var image							= document.createElement("img");
		image.style.position	= "absolute";
		image.style.left			= interface_assistant_title_all[i][current_position][2];
		image.style.top				= interface_assistant_title_all[i][current_position][3];
		image.setAttribute("src", interface_assistant_title_all[i][current_position][4]);
		interface_assistant_title.appendChild(image);
	}

	return true;
}

