

/* *************************************
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 les methodes necessaires a l'affichage de messages d'alerte (alert, prompt, confirm)
************************************* */

function msg_alert(e, input_question, input_function, deactivate_fog, button_validate, double_close_button, color_popup_bg)
{
	/* *************************************
	NAME :
		msg_alert
	INPUT :
		e										=> event
		input_question			=> texte qui sera affiche
		input_function			=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog			=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
		button_validate			=> true (defaut) si l'unique bouton affiche est libelle "valider" et false sinon ("fermer")
		double_close_button	=> false (defaut) si on affiche 1 bouton "fermer" et true si on en affiche 2 (en haut et en bas)
		color_popup_bg			=> éventuelle couleur de fond à afficher dans la popup
	OUTPUT :
		- (affiche une fenetre de type 'alert' et appelle la fonction specifiee)
	************************************* */
	if (String(button_validate) == "undefined")																	button_validate			= true;
	if (String(double_close_button) == "undefined")															double_close_button	= false;
	if (String(color_popup_bg) == "undefined" && String(color_popup_bg) == "")	color_popup_bg			= "transparent";

	/* objet principal */
	var rnd											= String(Math.random());
	var div_prompt_alert				= document.createElement("div");
	div_prompt_alert.setAttribute("id", "div_prompt_alert" + rnd);
	div_prompt_alert.className	= "css_msg";

	/* contenu personnalise */
	var tmp_string = "";
	tmp_string += "<table cellspacing='0'>";
	tmp_string += "<tr style='background-color:" + color_popup_bg + "'>";
	tmp_string += "<td class='css_form_label_input'>";
	if (double_close_button)
	{
		if (button_validate)
			tmp_string += "<input type='button' id='input_prompt_alert_ok_top" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\" onclick=\"document.getElementById('input_prompt_alert_ok" + rnd + "').click();\"/>";
		else
			tmp_string += "<input type='button' id='input_prompt_alert_ok_top" + rnd + "' class='css_form_button' value=\"" + language_msg("00021") + "\" onclick=\"document.getElementById('input_prompt_alert_ok" + rnd + "').click();\"/>";
	}
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "<tr style='background-color:" + color_popup_bg + "'>";
	tmp_string += "<td class='css_form_label_left'>" + input_question + "</td>"; /* on prend la classe 'css_form_label_input' pour le formateur 'formateur_see_more_text' et eviter que le texte s'affiche a droite */
	tmp_string += "</tr>";
	tmp_string += "<tr style='background-color:" + color_popup_bg + "'>";
	tmp_string += "<td class='css_form_label_input'>";
	if (button_validate)
		tmp_string += "<input type='button' id='input_prompt_alert_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	else
		tmp_string += "<input type='button' id='input_prompt_alert_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00021") + "\"/>";
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "</table>";
	div_prompt_alert.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_alert);

	/* boutons */
	document.getElementById("input_prompt_alert_ok" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_alert" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "()");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_alert_ok" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_alert, 3, rnd, false);

	if (double_close_button)
		document.getElementById("input_prompt_alert_ok_top" + rnd).focus();
	else
		document.getElementById("input_prompt_alert_ok" + rnd).focus();
}

function msg_view_catalog_row(e, input_catalog, input_row, input_row_prev, input_row_next, color_popup_bg, color_popup_font, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_view_catalog_row
	INPUT :
		e									=> event
		input_catalog			=> id du catalogue
		input_row					=> numero de la ligne a consulter
		input_row_prev		=> id de la cellule de la ligne precedente a consulter
		input_row_next		=> id de la cellule de la ligne suivante a consulter
		color_popup_bg		=> cf. propriété du même nom dans le formateur "formateur_catalog_table"
		color_popup_font	=> cf. propriété du même nom dans le formateur "formateur_catalog_table"
		input_function		=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog		=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de visualisation d'une url passee en parametre)
	************************************* */
	/* objet principal */
	var rnd									= String(Math.random());
	var div_prompt_view_catalog_row	= document.createElement("div");
	div_prompt_view_catalog_row.setAttribute("id", "div_prompt_view_catalog_row" + rnd);
	div_prompt_view_catalog_row.className		= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<table cellspacing='0'>";
		tmp_string		+= "<tr>";
		tmp_string		+= "<td class='css_form_label_input' style='text-align:right;'>";
	if (input_row_prev != "" || input_row_next != "")
	{
		if (input_row_prev != "")
			tmp_string	+= "<input type='button' id='input_prompt_previous_row" + rnd + "' class='css_form_button' value=\"< " + language_msg("00624") + "\"/>";
		if (input_row_next != "")
			tmp_string	+= "<input type='button' id='input_prompt_next_row" + rnd + "' class='css_form_button' value=\"" + language_msg("00625") + " >\"/>";
	}
	tmp_string			+= "<input type='button' id='input_prompt_print" + rnd + "' class='css_form_button' value=\"" + language_msg("00810") + "\"/>";
		tmp_string		+= "</td>";
		tmp_string		+= "</tr>";
	tmp_string			+= "<tr><td class='css_form_label_left'>";
	tmp_string			+= "<iframe id='iframe_prompt_catalog" + rnd + "' src='" + include_path + "/php/catalog-detail.php?catalog_id=" + input_catalog + "&catalog_row=" + input_row + "&color_popup_bg=" + color_popup_bg + "&color_popup_font=" + color_popup_font + "' class='css_catalog' frameborder='0'></iframe>";
	tmp_string			+= "</td></tr>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input'>";
	tmp_string			+= "<input type='button' id='input_prompt_catalog_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00021") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_view_catalog_row.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_view_catalog_row);

	/* boutons */
	if (input_row_prev != "")
	{
		document.getElementById("input_prompt_previous_row" + rnd).onclick	= function(){
				var oinput_row_prev = document.getElementById(input_row_prev);
				if(oinput_row_prev) oinput_row_prev.click();
				document.getElementById("input_prompt_catalog_ok" + rnd).click();
		};
	}

	if (input_row_next != "")
	{
		document.getElementById("input_prompt_next_row" + rnd).onclick	= function(){
				var oinput_row_next = document.getElementById(input_row_next);
				if(oinput_row_next) oinput_row_next.click();
				document.getElementById("input_prompt_catalog_ok" + rnd).click();
		};
	}

	/* imprimer */
	document.getElementById("input_prompt_print" + rnd).onclick	= function(){
			/* recuperation de la fenetre de l'iframe */
				var oCurrentFrame= document.getElementById("iframe_prompt_catalog" + rnd).contentWindow;
				if (oCurrentFrame)
				{
					oCurrentFrame.print();
					return false;
				}
	};

	document.getElementById("input_prompt_catalog_ok" + rnd).onclick	= function(){
			document.body.removeChild(document.getElementById("div_prompt_view_catalog_row" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "") eval(input_function + "(true)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_catalog_ok" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_view_catalog_row, 3, rnd, false);
}

function msg_catalog(e, input_field, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_catalog
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de choix d'un filtre de catalogue)
	************************************* */

	/* recuperation de la requete existante */
	var sRequest = escape(document.getElementById(input_field).value);

	/* objet principal */
	var rnd												= String(Math.random());
	var div_prompt_catalog				= document.createElement("div");
	div_prompt_catalog.setAttribute("id", "div_prompt_catalog" + rnd);
	div_prompt_catalog.className	= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<iframe id='iframe_prompt_catalog" + rnd + "' src='" + include_path + "/php/catalog-param.php?grid_request=1&grid_request_value=" + sRequest + "' class='css_catalog' frameborder='0'></iframe>";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input' style='text-align:right;'>";
	tmp_string			+= "<input type='button' id='input_prompt_catalog_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_catalog_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_catalog.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_catalog);

	/* boutons */
	document.getElementById("input_prompt_catalog_ok" + rnd).onclick	= function(){
		if (input_field != "")
		{
			/* si aucun catalogue n'a été sélectionné on valide qu'aucun filtre n'a été choisi => pas d'erreur */
			if (document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.document.getElementById("catalog_id").value == "")
			{
				tmp_string = "";
			}
			else
			{
				/* recuperation de la selection */
				var oMyGridRequest	= document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.oMyGrid;
				tmp_string					= "";
				if (document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.fnIsInputSelected(document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.document.getElementsByName("col_selected"))=="")
				{
					msg_border_remove(rnd);
					document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.fog_manage(true);
					document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.setTimeout('msg_alert("", language_msg("00401"), "", true);', 100);
					return false;
				}

				if(oMyGridRequest) tmp_string														= oMyGridRequest._fnSaveRequest();
			}

			document.getElementById(input_field).value								= tmp_string;
			/* mise a jour de la previsualisation */
			if (document.getElementById("div_" + input_field))
			{
				tmp_string																							= "";
				var catalog_change_id																		= document.getElementById("iframe_prompt_catalog" + rnd).contentWindow.document.getElementById("catalog_change_id");
				for (var k=0 ; k<catalog_change_id.options.length ; k++)
					if (catalog_change_id.options[k].selected)
						tmp_string																					= catalog_change_id.options[k].text;
				document.getElementById("div_" + input_field).innerHTML	= tmp_string;
			}

			document.body.removeChild(document.getElementById("div_prompt_catalog" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "")	eval(input_function + "(true)");
		}
		else
		{
			document.body.removeChild(document.getElementById("div_prompt_catalog" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "") eval(input_function + "(true)");
		}
	};

	document.getElementById("input_prompt_catalog_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_catalog" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_catalog_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_catalog, 4, rnd, false);
}

function msg_catalog_list(e, input_field, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_catalog_list
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de choix d'un catalogue du site  parmi ceux disponibles et met a jour le champ specifie)
	************************************* */

	/* objet principal */
	var rnd									= String(Math.random());
	var div_prompt_catalog	= document.createElement("div");
	div_prompt_catalog.setAttribute("id", "div_prompt_catalog" + rnd);
	div_prompt_catalog.className			= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr><td class='css_form_label_left'>";
	tmp_string			+= "<iframe id='iframe_prompt_catalog" + rnd + "' src='" + include_path + "/php/catalog-list.php' class='css_page_list' frameborder='0'></iframe>";
	tmp_string			+= "</td></tr>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input'>";
	tmp_string			+= "<input type='button' id='input_prompt_catalog_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_catalog_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_catalog.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_catalog);

	/* boutons */
	document.getElementById("input_prompt_catalog_ok" + rnd).onclick	= function(){
		tmp_catalog = "";
		if (input_field != "")
		{
			var iframe						= document.getElementById("iframe_prompt_catalog" + rnd);
			var iframe_assistant	= iframe.contentWindow.document;
			var tmp_string				= "";
			var ml								= iframe_assistant.getElementsByName("input_catalog_list");
			for(var i=0; i<ml.length; ++i)
			{
				if(ml[i].checked)
				{
						tmp_catalog = ml[i].value;
				}
			}
			document.getElementById(input_field).value = tmp_catalog;
		}
		document.body.removeChild(document.getElementById("div_prompt_catalog" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(true)");
	};

	document.getElementById("input_prompt_catalog_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_catalog" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_catalog_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_catalog, 3, rnd, false);
}

function msg_color(e, input_field, input_default, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_color
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_default		=> couleur par defaut
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de choix d'une couleur et met a jour le champ specifie)
	************************************* */

	/* objet principal */
	var rnd								= String(Math.random());
	var div_prompt_color	= document.createElement("div");
	div_prompt_color.setAttribute("id", "div_prompt_color" + rnd);
	div_prompt_color.className		= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "	<tr>";
	tmp_string			+= "		<td class='css_form_label_input' style='width:300px;'>";
	tmp_string			+= "			<div id='div_prompt_color_palette" + rnd + "' style='width:300px;'></div>";
	tmp_string			+= "		</td>";
	tmp_string			+= "		<td class='css_form_label_input' style='width:250px;'>";
	if (window.location.href.indexOf("page-param.php") != -1)
		tmp_string 		+= language_msg("00658");
	tmp_string			+= "			<div id='div_prompt_color_history" + rnd + "' class='css_color_history'></div>";
	tmp_string			+= "			<div id='div_prompt_color_preview" + rnd + "' style='background-color:" + input_default + ";'>";
	tmp_string			+= "				<input type='text' id='input_prompt_color_selected" + rnd + "' class='css_form_param_short' value='" + input_default + "' onkeyup=\"msg_color_select_color(this.value, 'input_prompt_color_selected" + rnd + "', 'div_prompt_color_preview" + rnd + "');\">";
	tmp_string			+= "			</div>";
	tmp_string			+= "		</td>";
	tmp_string			+= "	</tr>";
	tmp_string			+= "<tr>";
	tmp_string			+= "	<td class='css_form_label_input' colspan='2'>";
	tmp_string			+= "		<input type='button' id='input_prompt_color_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "		<input type='button' id='input_prompt_color_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "	</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_color.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_color);

	/* affichage de la palette */
	msg_color_draw_colors(rnd);

	/* boutons */
	document.getElementById("input_prompt_color_ok" + rnd).onclick	= function(){
		/* recuperation de la valeur */
		var tmp_string = document.getElementById("input_prompt_color_selected" + rnd).value;
		/* affectation de la valeur dans le champ */
		if (input_field != "")
		{
			document.getElementById(input_field).value = tmp_string;
			/* lancement de l'evenement "onchange" sur le champ appelant */
			if (document.getElementById(input_field).onchange)
				document.getElementById(input_field).onchange();
		}

		document.body.removeChild(document.getElementById("div_prompt_color" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "('" + tmp_string + "')");
	};

	document.getElementById("input_prompt_color_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_color" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_color_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_color, 3, rnd, false);
}

function msg_color_draw_colors(rnd)
{
	/* *************************************
	NAME :
		msg_color_draw_colors
	INPUT :
		rnd	=> nombre aleatoire fourni pour l'appelant permettant d'identifier les boutons et la structure de maniere unique
	OUTPUT :
		- (utilise dans le processus msg_color => affiche les couleurs disponibles)
	************************************* */
	var step_luminance	= 0.04;
	var step_hue				= 10;

	var i_hue, i_luminance, i_saturation;

	result = "<table border='0' cellspacing='0' style='cursor:pointer'>";
	for (i_luminance=0 ; i_luminance<=(1+step_luminance) ; i_luminance+=step_luminance)
	{
		result += "<tr>";
		for (i_hue=0 ; i_hue<=360 ; i_hue+=step_hue)
		{
			msg_color_hsltorgb(i_hue, 1, i_luminance);
			r = Math.floor(r * 255).toString(16);
			g = Math.floor(g * 255).toString(16);
			b = Math.floor(b * 255).toString(16);
			if (r.length < 2)
				r = "0" + r;
			if (g.length < 2)
				g = "0" + g;
			if (b.length < 2)
				b = "0" + b;
			c = r+g+b;
			result += "<td style='height:8px;width:8px;background-color:#" + c + ";' onclick=\"msg_color_select_color('#" + c +"', 'input_prompt_color_selected" + rnd + "', 'div_prompt_color_preview" + rnd + "');\"></td>";
		}
		result += "</tr>";
	}
	result += "</table>";
	document.getElementById("div_prompt_color_palette" + rnd).innerHTML = result;

	/* récupération des couleurs déjà utilisées dans la page dans les différents objets et dans la page */
	if (window.location.href.indexOf("page-param.php") != -1)
	{
		var T_colors = new Array();
		var div_objects_location = document.getElementById("div_objects_location");
		if (String(objects_get_all) != "undefined" && div_objects_location != null)
		{
			var tmp_array = objects_get_all(div_objects_location, "div", true);
			for (var i=0 ; i<tmp_array.length ; i++)
			{
				tmp_object = tmp_array[i];
				if (tmp_object.getAttribute("id").substr(0, 10) == "dragndrop_" || tmp_object.getAttribute("id").substr(0, 9) == "readonly_")
				{
					/* recherche des styles proposant une couleur */
					if (tmp_object.style.backgroundColor != "" && tmp_object.style.backgroundColor != "transparent")			T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.backgroundColor);
					if (tmp_object.style.borderBottomColor != "" && tmp_object.style.borderBottomColor != "transparent")	T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.borderBottomColor);
					if (tmp_object.style.borderLeftColor != "" && tmp_object.style.borderLeftColor != "transparent")			T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.borderLeftColor);
					if (tmp_object.style.borderRightColor != "" && tmp_object.style.borderRightColor != "transparent")		T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.borderRightColor);
					if (tmp_object.style.borderTopColor != "" && tmp_object.style.borderTopColor != "transparent")				T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.borderTopColor);
					if (tmp_object.style.color != "" && tmp_object.style.color != "transparent")													T_colors[T_colors.length] = rgb_to_hex(tmp_object.style.color);
				}
			}
			if (document.body.style.backgroundColor != "")	T_colors[T_colors.length] = rgb_to_hex(document.body.style.backgroundColor);
			/* extraction des valeurs uniques */
			T_colors.sort();

			for (var i=0 ; i<T_colors.length ; i++)
			{
				for (var j=i+1 ; j<T_colors.length ; j++)
				{
					if (T_colors[i] == T_colors[j])
					{
						T_colors[i] = "";
					}
				}
			}
			T_colors = trim_array(T_colors);
			/* affichage */
			var tmp_string = "";
			for (var i=0 ; i<T_colors.length ; i++)
			{
				tmp_string	+= "<div class='css_color_history_small'";
				tmp_string	+= " style='background:" + T_colors[i] + ";'";
				tmp_string	+= " title='" + T_colors[i] + "'";
				tmp_string	+= " onclick=\"msg_color_select_color(rgb_to_hex(this.style.backgroundColor), 'input_prompt_color_selected" + rnd + "', 'div_prompt_color_preview" + rnd + "');\">";
				tmp_string	+= "</div>";
			}
		}
		document.getElementById("div_prompt_color_history" + rnd).innerHTML = tmp_string;
	}
}

function msg_color_hsltorgb(h,s,l)
{
	/* *************************************
	NAME :
		msg_color_hsltorgb
	INPUT :
		h	=> hue
		s	=> saturation
		l => luminance
	OUTPUT :
		- (utilise dans le processus msg_color => transforme une couleur hue/saturation/luminance en red/green/blue)
	************************************* */
	r = g = b = 0;
	if (s < 0) s = 0;
	if (s > 1) s = 1;
	if (l < 0) l = 0;
	if (l > 1) l = 1;
	h = h % 360;
	if (h < 0) h = h + 360;
	if (l <= 0.5)
	{
		cmin = l * ( 1 - s );
		cmax = 2 * l - cmin;
	}
	else
	{
		cmax = l * ( 1 - s ) + s;
		cmin = 2 * l - cmax;
	}
	r = msg_color_h2v(h+120,cmin,cmax);
	g = msg_color_h2v(h,cmin,cmax);
	b = msg_color_h2v(h-120,cmin,cmax);
}

function msg_color_h2v(hh,min,max)
{
	/* *************************************
	NAME :
		msg_color_h2v
	INPUT :
		hh
		min
		max
	OUTPUT :
		- (utilise dans le processus msg_color)
	************************************* */
	hh = hh % 360;
	if (hh <	0) hh = hh + 360;
	if (hh <	60) return min + (max - min) * hh / 60;
	if (hh >= 60 && hh < 180) return max;
	if (hh >=180 && hh < 240) return min+(max-min)*(240-hh)/60;
	return min;
}

function msg_color_select_color(color_value, input_object, div_object)
{
	/* *************************************
	NAME :
		msg_color_select_color
	INPUT :
		color_value	=> valeur choisie
	OUTPUT :
		- (selectionne la valeur selectionnee)
	************************************* */
	try
	{
		document.getElementById(input_object).value								= color_value;
		document.getElementById(div_object).style.backgroundColor	= color_value;
	}
	catch(e) {};
	return true;
}

function msg_confirm(e, input_question, input_function, cancel_button, deactivate_fog, yes_button_label, no_button_label)
{
	/* *************************************
	NAME :
		msg_confirm
	INPUT :
		e									=> event
		input_question		=> texte qui sera affiche
		input_function		=> fonction qui sera lancee apres validation de la fenetre
		cancel_button			=> true si on affiche le bouton "annuler" et false sinon
		deactivate_fog		=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
		yes_button_label	=> libellé du bouton "oui"
		no_button_label		=> libellé du bouton "non"
	OUTPUT :
		- (affiche une fenetre de type 'confirm' et appelle la fonction specifiee en renvoyant true/false selon le choix)
	************************************* */
	if (String(yes_button_label) == "undefined" || String(yes_button_label) == "")	yes_button_label	= language_msg("00003");
	if (String(no_button_label) == "undefined" || String(no_button_label) == "")		no_button_label		= language_msg("00004");

	/* objet principal */
	var rnd									= String(Math.random());
	var div_prompt_confirm	= document.createElement("div");
	div_prompt_confirm.setAttribute("id", "div_prompt_confirm" + rnd);
	div_prompt_confirm.className		= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_left'>" + input_question + "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input'>";
	tmp_string			+= "<input type='button' id='input_prompt_confirm_yes" + rnd + "' class='css_form_button' value=\"" + yes_button_label + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_confirm_no" + rnd + "' class='css_form_button' value=\"" + no_button_label + "\"/>";
	if (cancel_button)
		tmp_string		+= "<input type='button' id='input_prompt_confirm_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_confirm.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_confirm);

	/* boutons */
	document.getElementById("input_prompt_confirm_yes" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_confirm" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(true)");
	};

	document.getElementById("input_prompt_confirm_no" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_confirm" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	if (cancel_button)
	{
		document.getElementById("input_prompt_confirm_cancel" + rnd).onclick	= function(){
			document.body.removeChild(document.getElementById("div_prompt_confirm" + rnd));
			msg_border_remove(rnd);
			fog_manage(false);
			if (input_function != "")	eval(input_function + "(null)");
		};
	}

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		if (cancel_button)
			document.getElementById("input_prompt_confirm_cancel" + rnd).click();
		else
			document.getElementById("input_prompt_confirm_no" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_confirm, 3, rnd, false);
	document.getElementById("input_prompt_confirm_yes" + rnd).focus();
}

/* pour faciliter la sélection des fichiers, on stocke en javascript la sélection courante, et on la modifiera en fonction des choix utilisateur */
var global_msg_file_selection = "";
function msg_file(e, input_field, input_function, deactivate_fog, prefix, suffix, direct_upload)
{
	/* *************************************
	NAME :
		msg_file
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
		prefix					=> prefixe a rajouter devant l'url
		suffix					=> suffixe a rajouter apres l'url
		direct_upload		=> true si on bascule directement sur l'upload et false sinon
	OUTPUT :
		- (affiche une fenetre de choix d'un fichier parmi ceux disponibles et met a jour le champ specifie)
	************************************* */

	/* objet principal */
	var rnd							= String(Math.random());
	var div_prompt_file	= document.createElement("div");
	div_prompt_file.setAttribute("id", "div_prompt_file" + rnd);
	div_prompt_file.className = "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	if (direct_upload)
		tmp_string		+= "<iframe id='iframe_file_xplorer' onload='file_xplorer_redraw(false, true);' src='" + include_path + "/html/file_xplorer/swfupload/index.php?upload_only=1' frameborder='0' class='css_file_xplorer' scrolling='yes'></iframe>";
	else
		tmp_string		+= "<iframe id='iframe_file_xplorer' onload='file_xplorer_redraw(false, true);' src='" + include_path + "/html/file_xplorer/index.php?action=list_init' frameborder='0' class='css_file_xplorer' scrolling='yes'></iframe>";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input'>";
	tmp_string			+= "<input type='button' id='input_prompt_file_ok" + rnd + "' class='css_form_button' style='display:none;' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_file_cancel" + rnd + "' class='css_form_button' style='display:none;' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_file.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_file);

	/* initialisation de la variable avec les valeurs déjà sélectionnées */
	global_msg_file_selection = "";
	if (input_field != "")
		global_msg_file_selection = document.getElementById(input_field).value.split(/\n/gi);

	/* boutons */
	document.getElementById("input_prompt_file_ok" + rnd).onclick	= function(){
		if (input_field != "")
		{
			/* recuperation de la selection */
			tmp_string = "";
			for (var i=0 ; i<global_msg_file_selection.length ; i++)
			{
				if (document.getElementById(input_field).tagName.toLowerCase() == "input")
				{	/* dernière valeur uniquement */
					tmp_string = global_msg_file_selection[i].replace("../..", ".."); /* reduction des chemins relatifs */
				}
				else
				{
					if (tmp_string != "")
						tmp_string += "\n";
					tmp_string += global_msg_file_selection[i].replace("../..", ".."); /* reduction des chemins relatifs */
				}
			}

			/* suppression de l'image par défaut le cas échéant */
			tmp_string	= tmp_string.replace("../img/img-defaut.jpg\n", "");

			document.getElementById(input_field).value = prefix + tmp_string + suffix;
			/* lancement de l'evenement "onchange" sur le champ appelant */
			if (document.getElementById(input_field).onchange)
				document.getElementById(input_field).onchange();
		}
		document.body.removeChild(document.getElementById("div_prompt_file" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(true)");
	};

	document.getElementById("input_prompt_file_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_file" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_file_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_file, 4, rnd, false);
}

function msg_gmap(e, input_field, input_function, interactive_mode, process_type, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_gmap
	INPUT :
		e									=> event
		input_field				=> champ qui sera mis a jour apres validation de la fenetre
		input_function		=> fonction qui sera lancee apres validation de la fenetre
		interactive_mode	=> true/false selon que l'on puisse modifier les points de la map ou non
		process_type			=> voir formateur "formateur_gmap" (type de carte à afficher)
		deactivate_fog		=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de type 'google map' et met a jour le champ specifie avec la liste des points de la map)
	************************************* */

	/* objet principal */
	var rnd										= String(Math.random());
	var div_prompt_gmap				= document.createElement("div");
	div_prompt_gmap.setAttribute("id", "div_prompt_gmap" + rnd);
	div_prompt_gmap.className	= "css_msg";

	/* contenu personnalise */
	var rnd_gmap		= String(Math.random());
	var tmp_string	= "";
	tmp_string += "<table cellspacing='0'>";
	tmp_string += "<tr><td class='css_form_label_left'>";
	tmp_string += "<iframe id='iframe_prompt_gmap" + rnd + "' src='" + include_path + "/php/assistant-gmap.php?rnd=" + rnd_gmap + "&interactive_mode=" + interactive_mode + "&process_type=" + process_type + "' class='css_gmap_param' frameborder='0'></iframe>";
	tmp_string += "<textarea type='text/javascript' id='gmap_script_" + rnd_gmap + "' style='display:none;' cols='1' rows='1'>" + document.getElementById(input_field).value + "</textarea>";
	tmp_string += "</td></tr>";
	tmp_string += "<tr>";
	tmp_string += "<td class='css_form_label_input'>";
	if (interactive_mode)
	{
		tmp_string += "<input type='button' id='input_prompt_gmap_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
		tmp_string += "<input type='button' id='input_prompt_gmap_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	}
	else
		tmp_string += "<input type='button' id='input_prompt_gmap_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00021") + "\"/>";
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "</table>";
	div_prompt_gmap.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_gmap);

	/* boutons */
	if (interactive_mode)
	{
		document.getElementById("input_prompt_gmap_ok" + rnd).onclick	= function(){
			if (input_field != "")
			{
				/* recuperation des points */
				var tmp_field		= document.getElementById(input_field);
				tmp_field.value	= document.getElementById("iframe_prompt_gmap" + rnd).contentWindow.gmap_get_markers();
				/* mise a jour de la previsualisation */
				if (document.getElementById("div_" + input_field))
				{
					/* récupération du contenu de la map de l'assistant */
					tmp_string																							= document.getElementById("iframe_prompt_gmap" + rnd).contentWindow.document.getElementById("div_gmap").innerHTML;
					document.getElementById("div_" + input_field).innerHTML = tmp_string;
				}
				/* suppression de l'iframe */
				document.body.removeChild(document.getElementById("div_prompt_gmap" + rnd));
			}
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "")	eval(input_function + "(true)");
		};

		document.getElementById("input_prompt_gmap_cancel" + rnd).onclick	= function(){
			document.body.removeChild(document.getElementById("div_prompt_gmap" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "")	eval(input_function + "(false)");
		};
	}
	else
	{
		document.getElementById("input_prompt_gmap_ok" + rnd).onclick	= function(){
			document.body.removeChild(document.getElementById("div_prompt_gmap" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "")	eval(input_function + "(true)");
		};
	}

	/* gestion de la touche "escape" */
	if (interactive_mode)
	{
		key_manage_escape = function(e){
			document.getElementById("input_prompt_gmap_cancel" + rnd).click();
		};
	}
	else
	{
		key_manage_escape = function(e){
			document.getElementById("input_prompt_gmap_ok" + rnd).click();
		};
	}

	/* affichage */
	msg_display(e, div_prompt_gmap, 3, rnd, false);
}

function msg_object(e, input_object, input_function, only_one_button, deactivate_fog, main_button_label, position)
{
	/* *************************************
	NAME :
		msg_object
	INPUT :
		e									=> event
		input_object			=> objet (div...) qui sera affiche
		input_function		=> fonction qui sera lancee apres validation de la fenetre
		only_one_button		=> true on ne souhaite avoir qu'un seul bouton et false sinon (2 boutons pour valider/annuler)
		deactivate_fog		=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
		main_button_label	=> libellé du bouton principal
		position					=> idem fonction "msg_display"
	OUTPUT :
		- (affiche une fenetre contenant l'objet specifie et appelle la fonction specifiee en renvoyant true/false selon le choix)
	************************************* */
	/* objet principal */
	var rnd								= String(Math.random());
	var div_prompt_object	= document.createElement("div");
	/* attention : le changement de l'ID de cet objet a des repercussions sur la fonction "tab_display" (form.js) */
	div_prompt_object.setAttribute("id", "div_prompt_object" + rnd);
	div_prompt_object.className			= "css_msg";

	/* contenu personnalise */
	var tmp_string = "";
	tmp_string += "<table cellspacing='0' cellpadding='0' border='0'>";
	tmp_string += "<tr><td class='css_form_label_left'>";
	tmp_string += "<div id='div_prompt_object_link" + rnd + "'></div>";
	tmp_string += "</td></tr>";
	tmp_string += "<tr>";
	tmp_string += "<td class='css_form_label_input'>";
	if (only_one_button)
	{
		if (String(main_button_label) == "undefined" || String(main_button_label) == "") main_button_label = language_msg("00021");
		tmp_string += "<input type='button' id='input_prompt_object_ok" + rnd + "' class='css_form_button' value=\"" + main_button_label + "\"/>";
	}
	else
	{
		if (String(main_button_label) == "undefined" || String(main_button_label) == "") main_button_label = language_msg("00001");
		tmp_string += "<input type='button' id='input_prompt_object_ok" + rnd + "' class='css_form_button' value=\"" + main_button_label + "\"/>";
		tmp_string += "<input type='button' id='input_prompt_object_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	}
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "</table>";
	div_prompt_object.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_object);

	/* boutons */
	document.getElementById("input_prompt_object_ok" + rnd).onclick	= function(){
		/* cas special : détection d'une iframe */
		for (var i=0 ; i<document.getElementById("div_prompt_object" + rnd).getElementsByTagName("iframe").length ; i++)
		{
			var iframe = document.getElementById("div_prompt_object" + rnd).getElementsByTagName("iframe")[i];

			/* ****************** */
			/* iframe texte riche */
			/* ****************** */
			if (iframe.getAttribute("id") == "iframe_rte")
			{	/* iframe texte riche => mise a jour du champ appelant par la fonction dediee */
				iframe.contentWindow.RTE_set_value();
			}
		}
		document.body.removeChild(document.getElementById("div_prompt_object" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog) fog_manage(false);
		document.lastChild.lastChild.appendChild(input_object);
		if (input_function != "") eval(input_function + "(true)");
	};

	if (!only_one_button)
	{
		document.getElementById("input_prompt_object_cancel" + rnd).onclick	= function(){
			document.body.removeChild(document.getElementById("div_prompt_object" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog) fog_manage(false);
			document.lastChild.lastChild.appendChild(input_object);
			if (input_function != "") eval(input_function + "(false)");
		};
	}

	/* liaison de l'objet en input */
	document.getElementById("div_prompt_object_link" + rnd).appendChild(input_object);

	/* gestion de la touche "escape" */
	if (only_one_button)
	{
		key_manage_escape = function(e){
			document.getElementById("input_prompt_object_ok" + rnd).click();
		};
	}
	else
	{
		key_manage_escape = function(e){
			document.getElementById("input_prompt_object_cancel" + rnd).click();
		};
	}

	/* affichage */
	if (String(position) == "undefined") position = 3;
	msg_display(e, div_prompt_object, position, rnd, false);
}

function msg_object_resize(is_new_window, contact_form)
{
	/* *************************************
	NAME :
		msg_object_resize
	INPUT :
		is_new_window	=> true si on est dans une nouvelle popup et false sinon (rechargement)
		contact_form	=> false (défaut) si formulaire classique et true si formulaire de contact
	OUTPUT :
		[nouvelle largeur,nouvelle hauteur] (met a jour un objet contenant une iframe (ex: assistants texte riche ou pages-links) pour l'élargir au maximum et renvoie ses nouvelles dimensions)
		Attention : on considère toujours que l'iframe est le dernier élément dans son assistant (<=> c'est le dernier champ de l'onglet dans lequel il est)
	************************************* */
	var return_width	= 0;
	var return_height	= 0;

	if (String(contact_form) == "undefined")
		contact_form		= false;

	var iframes	= window.parent.document.body.getElementsByTagName("iframe");
	var iframe	= null;
	for(var i=0 ; i<iframes.length ; i++)
	{
		try
		{
			if (iframes[i].contentWindow.location.href == window.document.location.href)
			{	/* on a trouvé l'iframe courante appelant l'objet qui va être redimensionnée */
				iframe = iframes[i];
			}
		}
		catch(e) {};
	}
	if (iframe != null)
	{
		var parent_node	= null;
		/* récupération de la popup */
		var tmp_node		= iframe;
		while (tmp_node.parentNode != null)
		{	/* parcours des elements parents pour chercher un eventuel msg_object ou msg_pages_links... */
			if (tmp_node.getAttribute("id") != null && tmp_node.getAttribute("id").indexOf("div_prompt_object") != -1)
				parent_node = tmp_node;
			if (tmp_node.getAttribute("id") != null && tmp_node.getAttribute("id").indexOf("div_prompt_pages_links") != -1)
				parent_node = tmp_node;
			tmp_node = tmp_node.parentNode;
		}

		if (parent_node != null)
		{
			var margin_x				= 10;
			var margin_y				= 40; /* prendre en compte la hauteur des boutons de l'assistant */

			if (contact_form)
			{
				iframe.style.height	= (b_ie ? 455 : 440);
				iframe.style.width	= 650;
				window.parent.msg_display_redraw("", parent_node, 2, null);
			}
			else
			{	/* redimensionnement de l'assistant pour le maximiser */
				window.parent.msg_display_redraw("", parent_node, 4, null);
			}

			/* récupération des coordonnées de l'assistant */
			var tmp_array				= offset_absolute(parent_node);
			var parent_width		= parseInt(parent_node.offsetWidth);
			var parent_height		= parseInt(parent_node.offsetHeight);
			var parent_left			= tmp_array[0];
			var parent_top			= tmp_array[1];

			/* récupération des coordonnées de l'iframe */
			var tmp_array				= offset_absolute(iframe);
			var iframe_width		= parseInt(iframe.offsetWidth);
			var iframe_height		= parseInt(iframe.offsetHeight);
			var iframe_left			= tmp_array[0];
			var iframe_top			= tmp_array[1];

			/* calcul de la différence pour déterminer l'augmentation de taille possible de l'iframe */
			var add_width				= parent_width + parent_left - (iframe_width + iframe_left);
			var add_height			= parent_height + parent_top - (iframe_height + iframe_top);

			/* réaffichage */
			iframe.style.width	= iframe_width + add_width - margin_x;
			iframe.style.height	= iframe_height + add_height - margin_y;
			iframe.style.left		= 0;

			return_width				= parseInt(iframe.style.width);
			return_height				= parseInt(iframe.style.height);
		}
	}

	if (contact_form)
	{
		/* affichage de la bordure */
		/* récupération de l'identifiant aléatoire de l'objet affiché */
		var tmp_div							= iframe.parentNode;
		var tmp_string					= tmp_div.getAttribute("id");
		var tmp_string					= tmp_string.replace(/[a-z|_|A-Z]/gi, "");
		/* récupération de l'objet à réellement afficher */
		tmp_div									= tmp_div.parentNode;
		while (tmp_div.tagName != "DIV" && tmp_div.tagName != "BODY")
		{
			tmp_div								= tmp_div.parentNode;
		}
		window.parent.msg_border_remove(tmp_string);
		window.parent.msg_border_set(tmp_div, tmp_string);
	}

	return Array(return_height, return_width);
}

function msg_page(e, input_field, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_page
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de choix d'une page du site  parmi celles disponibles et met a jour le champ specifie)
	************************************* */

	/* objet principal */
	var rnd							= String(Math.random());
	var div_prompt_page	= document.createElement("div");
	div_prompt_page.setAttribute("id", "div_prompt_page" + rnd);
	div_prompt_page.className			= "css_msg";

	/* contenu personnalise */
	var tmp_string = "";
	tmp_string += "<table cellspacing='0'>";
	tmp_string += "<tr><td class='css_form_label_left'>";
	tmp_string += "<iframe id='iframe_prompt_page" + rnd + "' src='" + include_path + "/php/page-list.php?assistant_mode=1' class='css_page_list' frameborder='0'></iframe>";
	tmp_string += "</td></tr>";
	tmp_string += "<tr>";
	tmp_string += "<td class='css_form_label_input'>";
	tmp_string += "<input type='button' id='input_prompt_page_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string += "<input type='button' id='input_prompt_page_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "</table>";
	div_prompt_page.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_page);

	/* boutons */
	document.getElementById("input_prompt_page_ok" + rnd).onclick	= function(){
		tmp_page = "";
		if (input_field != "")
		{
			var iframe						= document.getElementById("iframe_prompt_page" + rnd);
			var iframe_assistant	= iframe.contentWindow.document;
			var tmp_string				= "";
			var ml								= iframe_assistant.getElementsByName("input_page_list");
			for(var i=0; i<ml.length; ++i)
			{
				if(ml[i].checked)
				{
						tmp_page = ml[i].value;
				}
			}
			document.getElementById(input_field).value = tmp_page;
		}
		document.body.removeChild(document.getElementById("div_prompt_page" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(true)");
	};

	document.getElementById("input_prompt_page_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_page" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_page_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_page, 3, rnd, false);
}

function msg_pages_links(e, input_field, input_function, new_pages_links, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_pages_links
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		new_pages_links	=> true si on demande la création d'une nouvelle page et false sinon
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de modification d'un enchainement de pages)
	************************************* */
	/* recuperation du catalogue sélectionné */
	var current_pages_links = "";
	if (!new_pages_links)
		current_pages_links = field_get_value(document.getElementById(input_field), '', false);

	/* objet principal */
	var rnd														= String(Math.random());
	var div_prompt_pages_links				= document.createElement("div");
	div_prompt_pages_links.setAttribute("id", "div_prompt_pages_links" + rnd);
	div_prompt_pages_links.className	= "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<iframe id='iframe_pages_links" + rnd + "' src='" + include_path + "/php/pages-links-param.php?pages_links_id=" + current_pages_links + "&field_to_update=" + input_field + "' class='css_pages_links' frameborder='0'></iframe>";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input' style='text-align:right;'>";
	tmp_string			+= "<input type='button' id='input_prompt_pages_links_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_pages_links_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_pages_links.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_pages_links);

	/* boutons */
	document.getElementById("input_prompt_pages_links_ok" + rnd).onclick	= function(){
		if (input_field != "")
		{
			/* récupération de l'enchainement choisi dans le champ (utile dans le cas d'un nouvel enchainement) */
			var iframe							= document.getElementById("iframe_pages_links" + rnd);
			var iframe_pages_links	= iframe.contentWindow.document;
			var pages_links_id			= iframe_pages_links.getElementById("pages_links_id");
			var pages_links_saved		= iframe_pages_links.getElementById("pages_links_saved");

			/* on vérifie ce qu'il faut faire selon le status du champ de l'iframe indiquant où en est la sauvegarde */
			if (pages_links_saved.value == "0")
			{	/* on doit demander à l'utilisateur quoi faire... */
				iframe.contentWindow.fog_manage(true);
				iframe.contentWindow.pages_links_exit();
				/* ...et on relance */
				window.setTimeout("document.getElementById('input_prompt_pages_links_ok" + rnd + "').click();", 500);
				return false;
			}
			if (pages_links_saved.value == "1")
			{	/* la sauvegarde a été demandée et est en cours => on relance */
				window.setTimeout("document.getElementById('input_prompt_pages_links_ok" + rnd + "').click();", 500);
				return false;
			}
			if (pages_links_saved.value == "2")
			{	/* la sauvegarde est terminée ou n'a pas été demandée => on peut continuer */
			}
			if (pages_links_saved.value == "")
			{	/* on indique que le processus est annulé et on ne fait rien */
				pages_links_saved.value = "0";
				return false;
			}

			/* rajout de l'enchainement dans le champ appelant si ce n'est pas déjà fait */
			iframe.contentWindow.pages_links_update_field_to_update(true);
			/* on sélectionne le nouvel enchainement dans la liste */
			for (var k=0 ; k<document.getElementById(input_field).length ; k++)
			{
				if (document.getElementById(input_field)[k].value == pages_links_id.value)
				{	/* l'élément a été trouvé */
					document.getElementById(input_field)[k].selected = true;
				}
			}

			document.body.removeChild(document.getElementById("div_prompt_pages_links" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "")	eval(input_function + "(true)");
		}
		else
		{
			document.body.removeChild(document.getElementById("div_prompt_pages_links" + rnd));
			msg_border_remove(rnd);
			if (deactivate_fog)				fog_manage(false);
			if (input_function != "") eval(input_function + "(true)");
		}
	};

	document.getElementById("input_prompt_pages_links_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_pages_links" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_pages_links_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_pages_links, 4, rnd, false);
}

function msg_prompt(e, input_type, input_field, input_question, input_default, is_submit_button, input_function, deactivate_fog)
{
	/* *************************************
	NAME :
		msg_prompt
	INPUT :
		e									=> event
		input_type				=> type d'affichage de valeurs ('text' ou 'password' ou 'select' ou 'selectmulti' ou 'textarea')
		input_field				=> champ qui sera mis a jour apres validation de la fenetre
		input_question		=> texte qui sera affiche
		input_default			=> valeur par defaut (si 'text' ou 'password') ou valeurs possibles (si 'select' et dans ce cas il faut passer un new Array('val1','val2'...) si 'selectmulti' les valeurs doivent être sous la forme 'label1|val1¤label2|val2...')
		is_submit_button	=> true si le bouton "Valider" est de type "Submit" ou false sinon (mode classique)
		input_function		=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog		=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
	OUTPUT :
		- (affiche une fenetre de type 'prompt' et appelle la fonction specifiee en renvoyant la valeur saisie)
	************************************* */

	/* objet principal */
	var rnd								= String(Math.random());
	var div_prompt_prompt	= document.createElement("div");
	div_prompt_prompt.setAttribute("id", "div_prompt_prompt" + rnd);
	div_prompt_prompt.className			= "css_msg";

	/* contenu personnalise */
	var tmp_string = "";
	tmp_string += "<table cellspacing='0'>";
	tmp_string += "<tr>";
	tmp_string += "<td class='css_form_label_left'>" + input_question + (input_type.toLowerCase() == "selectmulti" ? "<br/><br/>" + language_msg("00600") : "") +"</td>";
	tmp_string += "</tr>";
	tmp_string += "<tr><td class='css_form_label_input'>";
	if (input_type.toLowerCase() == "text")					tmp_string += "<input id='input_prompt_prompt" + rnd + "' type='text' class='css_form_param' value=''/>";
	if (input_type.toLowerCase() == "password")			tmp_string += "<input id='input_prompt_prompt" + rnd + "' type='password' class='css_form_param' value=''/>";
	if (input_type.toLowerCase() == "textarea")			tmp_string += "<textarea id='textarea_prompt_prompt" + rnd + "' class='css_form_param' value='' cols='1' rows='1'></textarea>";
	if (input_type.toLowerCase() == "select")				tmp_string += "<select id='select_prompt_prompt" + rnd + "' class='css_form_param' value=''/>";
	if (input_type.toLowerCase() == "selectmulti")	tmp_string += "<select multiple id='selectmulti_prompt_prompt" + rnd + "' class='css_form_param' size='20' value=''/>";
	tmp_string += "</td></tr>";
	tmp_string += "<tr>";
	tmp_string += "<td class='css_form_label_input'>";
	tmp_string += "<input type='" + (is_submit_button ? "submit" : "button") + "' id='input_prompt_prompt_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string += "<input type='button' id='input_prompt_prompt_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string += "</td>";
	tmp_string += "</tr>";
	tmp_string += "</table>";
	div_prompt_prompt.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_prompt);

	/* valeurs */
	if (input_type.toLowerCase() == "text")			document.getElementById("input_prompt_prompt" + rnd).value = input_default;
	if (input_type.toLowerCase() == "password")	document.getElementById("input_prompt_prompt" + rnd).value = input_default;
	if (input_type.toLowerCase() == "textarea")	document.getElementById("textarea_prompt_prompt" + rnd).value = input_default;
	if (input_type.toLowerCase() == "select")
	{
		document.getElementById("select_prompt_prompt" + rnd).options.length = 0;
		for (var i=0 ; i <input_default.length ; i++)
		{
			var new_option = document.createElement("OPTION");
			document.getElementById("select_prompt_prompt" + rnd).options.add(new_option);
			new_option.text = input_default[i];
		}
	}
	if (input_type.toLowerCase() == "selectmulti")
	{
		input_default	= input_default.split("¤");
		document.getElementById("selectmulti_prompt_prompt" + rnd).options.length = 0;
		for (var i=0 ; i<input_default.length ; i++)
		{
			input_default[i]		= input_default[i].split("|");
			var new_option			= document.createElement("OPTION");
			document.getElementById("selectmulti_prompt_prompt" + rnd).options.add(new_option);
			new_option.text			= input_default[i][0];
			new_option.value		= input_default[i][1];
			new_option.selected	= true;
		}
	}

	/* boutons */
	document.getElementById("input_prompt_prompt_ok" + rnd).onclick	= function(){
		if (input_type.toLowerCase() == "text")					selected_value = document.getElementById("input_prompt_prompt" + rnd).value;
		if (input_type.toLowerCase() == "password")			selected_value = document.getElementById("input_prompt_prompt" + rnd).value;
		if (input_type.toLowerCase() == "textarea")			selected_value = document.getElementById("textarea_prompt_prompt" + rnd).value;
		if (input_type.toLowerCase() == "select")				selected_value = document.getElementById("select_prompt_prompt" + rnd)[document.getElementById("select_prompt_prompt" + rnd).selectedIndex].text;
		if (input_type.toLowerCase() == "selectmulti")
		{
			selected_value								= "";
			var selectmulti_prompt_prompt	= document.getElementById("selectmulti_prompt_prompt" + rnd);
			for (var i=0 ; i<selectmulti_prompt_prompt.options.length ; i++)
			{
				if (selectmulti_prompt_prompt.options[i].selected)
				{
					if (selected_value != "") selected_value += "¤";
					if (String(selectmulti_prompt_prompt.options[i].value) != "undefined")
						selected_value	+= selectmulti_prompt_prompt.options[i].value;
				}
			}
		}
		if (input_field != "")
			document.getElementById(input_field).value = selected_value;
		document.body.removeChild(document.getElementById("div_prompt_prompt" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(selected_value)");
	};

	document.getElementById("input_prompt_prompt_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_prompt" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	/* gestion de la touche "escape" */
	key_manage_escape = function(e){
		document.getElementById("input_prompt_prompt_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_prompt, 3, rnd, false);
}

var msg_display_margin	= 25;
var msg_display_last_x	= msg_display_margin;	/* utilise pour msg_display avec position = 2 */
var msg_display_last_y	= msg_display_margin;	/* utilise pour msg_display avec position = 2 */
function msg_display(e, object, position, rnd, redraw)
{
	/* *************************************
	NAME :
		msg_display
	INPUT :
		e					=> event
		object		=> objet affiche
		position	=> 1 (affichage en haut a gauche mais en tenant compte des marges)
							=> 2 (affichage au meme endroit que la derniere fois)
							=> 3 (affichage au curseur de la souris)
							=> 4 (maximisation de la fenêtre)
		rnd				=> nombre aleatoire fourni par l'appelant permettant de retrouver les references des objets affilies
		redraw		=> true si on vient d'un réaffichage et false sinon
	OUTPUT :
		- (affiche l'objet permettant d'interagir avec l'utilisateur)
	************************************* */
	var new_x = 0;
	var new_y = 0;

	/* recuperation du nombre aleatoire utilise pour afficher cet objet */
	if (rnd == null)
	{
		rnd	= object.id.split(".");
		rnd	= "0." + rnd[rnd.length - 1];
	}

	/* affichage en dehors de la page pour que les proprietes "offsetWidth" et "offsetHeight" soient correctes */
	object.style.left				= -5000;
	object.style.top				= -5000;
	object.style.display		= "block";
	object.style.overflowX	= "hidden";

	/* affichage automatique pour éviter de grandes zones vides et redimensionner l'objet au mieux (par exemple après un redraw) */
	object.style.height				= "auto";
	object.style.width				= "auto";

	if (position == 1)
	{
		new_x = window_get_sizes(window, "scroll_x") + msg_display_margin;
		new_y = window_get_sizes(window, "scroll_y") + msg_display_margin;
	}

	if (position == 2)
	{
		new_x = parseInt(msg_display_last_x);
		new_y = parseInt(msg_display_last_y);
	}

	if (position == 3)
	{
		if (String(window.x) == "undefined" || String(window.y) == "undefined")
		{
			new_x	= msg_display_margin;
			new_y	= msg_display_margin;
		}
		else
		{
			new_x = e == "" ? x : mouse_x(e);
			new_y = e == "" ? y : mouse_y(e);
		}
		/* leger decalage (parfois il est necessaire que le curseur ne soit pas positionne exactement dessus) */
		new_x += 2;
		new_y += 2;
		/* prise en compte du scroll */
		new_x	+= window_get_sizes(window, "scroll_x");
		new_y += window_get_sizes(window, "scroll_y");
	}

	if (position == 4)
	{
		new_x								= msg_display_margin + window_get_sizes(window, "scroll_x");
		new_y								= msg_display_margin + window_get_sizes(window, "scroll_y");
		object.style.width	= window_get_sizes(window, "width") - 2 * msg_display_margin;
		object.style.height	= window_get_sizes(window, "height") - 2 * msg_display_margin;
	}

	/* recalcul des coordonnees pour eviter tout depassement hors de la fenetre */
	if (parseInt(object.offsetWidth) > window_get_sizes(window, "width"))
	{
		object.style.width		= "90%";
		object.style.overflow	= "hidden";
	}
	/* dépassement à droite */
	if (new_x + msg_display_margin + object.offsetWidth >= window_get_sizes(window, "scroll_x") + window_get_sizes(window, "width"))
		new_x = window_get_sizes(window, "scroll_x") + window_get_sizes(window, "width") - object.offsetWidth - msg_display_margin;
	/* dépassement en bas */
	if (new_y + msg_display_margin + object.offsetHeight >= window_get_sizes(window, "scroll_y") + window_get_sizes(window, "height"))
	{
		new_y = window_get_sizes(window, "scroll_y") + window_get_sizes(window, "height") - object.offsetHeight - msg_display_margin;
		/* dépassement en haut alors qu'on vient déjà de traiter un dépassement en bas */
		if (new_y - msg_display_margin < window_get_sizes(window, "scroll_y"))
		{
			new_y									= window_get_sizes(window, "scroll_y") + msg_display_margin;
			object.style.height		= window_get_sizes(window, "height") - 2*msg_display_margin;
			object.style.overflow	= "auto";
		}
	}

	msg_display_last_x 	= new_x;
	msg_display_last_y 	= new_y;
	object.style.left		= new_x;
	object.style.top		= new_y;
	object.style.zIndex	= parseInt(document.getElementById('iframe_fog').style.zIndex) + 1;

	/* affichage de la bordure */
	msg_border_remove(rnd);
	msg_border_set(object, rnd);

	/* affichage de l'objet */
	object.style.display	= "block";
}

function msg_display_redraw(e, object, position, rnd)
{
	/* *************************************
	NAME :
		msg_display_redraw
	INPUT :
		e					=> idem fonction "msg_display"
		object		=> idem fonction "msg_display"
		position	=> idem fonction "msg_display"
		rnd				=> idem fonction "msg_display"
	OUTPUT :
		- (reaffiche l'objet)
	************************************* */
	var tmp_node = object;
	while (tmp_node.parentNode != null)
	{	/* parcours des elements parents pour chercher un eventuel msg_object... */
		if (tmp_node.getAttribute("id") != null && tmp_node.getAttribute("id").indexOf("div_prompt_object") != -1)
		{	/* il faut repositionner cet objet */
			msg_display(e, tmp_node, position, rnd, true);
		}
		tmp_node = tmp_node.parentNode;
	}
}

/* 2 fonctions de gestion de la bordure */
function msg_border_remove(rnd)
{
	/* *************************************
	NAME :
		msg_border_remove
	INPUT :
		rnd	=> nombre aleatoire permettant de retrouver les bordures
	OUTPUT :
		- (suppression de la bordure)
	************************************* */
	var div_msg_border_br			= document.getElementById("div_msg_border_br_" + rnd);
	var div_msg_border_bl			= document.getElementById("div_msg_border_bl_" + rnd);
	var div_msg_border_side_b	= document.getElementById("div_msg_border_side_b_" + rnd);
	var div_msg_border_side_l	= document.getElementById("div_msg_border_side_l_" + rnd);
	var div_msg_border_side_r	= document.getElementById("div_msg_border_side_r_" + rnd);
	var div_msg_border_side_t	= document.getElementById("div_msg_border_side_t_" + rnd);
	var div_msg_border_tl			= document.getElementById("div_msg_border_tl_" + rnd);
	var div_msg_border_tr			= document.getElementById("div_msg_border_tr_" + rnd);

	if (div_msg_border_br != null)			document.body.removeChild(div_msg_border_br);
	if (div_msg_border_bl != null)			document.body.removeChild(div_msg_border_bl);
	if (div_msg_border_side_b != null)	document.body.removeChild(div_msg_border_side_b);
	if (div_msg_border_side_l != null)	document.body.removeChild(div_msg_border_side_l);
	if (div_msg_border_side_r != null)	document.body.removeChild(div_msg_border_side_r);
	if (div_msg_border_side_t != null)	document.body.removeChild(div_msg_border_side_t);
	if (div_msg_border_tl != null)			document.body.removeChild(div_msg_border_tl);
	if (div_msg_border_tr != null)			document.body.removeChild(div_msg_border_tr);
}

function msg_border_set(object_ref, rnd)
{
	/* *************************************
	NAME :
		msg_border_set
	INPUT :
		object_ref	=> objet autour duquel mettre la bordure
		rnd					=> nombre aleatoire permettant de retrouver les bordures
	OUTPUT :
		- (affiche une bordure autour de l'objet)
	************************************* */
	var CONST_SIDE	= 5;	/* meme valeur que les width/height identifiés dans "div.css_msg_border_xxx" */
	var iframe_fog	= document.getElementById('iframe_fog');

	/* creation de la bordure (variables) */
	div_msg_border_br								= document.createElement("div");
	div_msg_border_br.className			= "css_msg_border_br";
	div_msg_border_br.setAttribute("id", "div_msg_border_br_" + rnd);
	document.body.appendChild(div_msg_border_br);

	div_msg_border_bl								= document.createElement("div");
	div_msg_border_bl.className			= "css_msg_border_bl";
	div_msg_border_bl.setAttribute("id", "div_msg_border_bl_" + rnd);
	document.body.appendChild(div_msg_border_bl);

	div_msg_border_side_b						= document.createElement("div");
	div_msg_border_side_b.className	= "css_msg_border_side_b";
	div_msg_border_side_b.setAttribute("id", "div_msg_border_side_b_" + rnd);
	document.body.appendChild(div_msg_border_side_b);

	div_msg_border_side_l						= document.createElement("div");
	div_msg_border_side_l.className	= "css_msg_border_side_l";
	div_msg_border_side_l.setAttribute("id", "div_msg_border_side_l_" + rnd);
	document.body.appendChild(div_msg_border_side_l);

	div_msg_border_side_r						= document.createElement("div");
	div_msg_border_side_r.className	= "css_msg_border_side_r";
	div_msg_border_side_r.setAttribute("id", "div_msg_border_side_r_" + rnd);
	document.body.appendChild(div_msg_border_side_r);

	div_msg_border_side_t						= document.createElement("div");
	div_msg_border_side_t.className	= "css_msg_border_side_t";
	div_msg_border_side_t.setAttribute("id", "div_msg_border_side_t_" + rnd);
	document.body.appendChild(div_msg_border_side_t);

	div_msg_border_tl								= document.createElement("div");
	div_msg_border_tl.className			= "css_msg_border_tl";
	div_msg_border_tl.setAttribute("id", "div_msg_border_tl_" + rnd);
	document.body.appendChild(div_msg_border_tl);

	div_msg_border_tr								= document.createElement("div");
	div_msg_border_tr.className			= "css_msg_border_tr";
	div_msg_border_tr.setAttribute("id", "div_msg_border_tr_" + rnd);
	document.body.appendChild(div_msg_border_tr);

	/* creation de la bordure  (affichage) */
	div_msg_border_br.style.left				= (parseInt(object_ref.offsetLeft) + parseInt(object_ref.offsetWidth)) + "px";
	div_msg_border_br.style.top					= (parseInt(object_ref.offsetTop) + parseInt(object_ref.offsetHeight)) + "px";
	div_msg_border_br.style.zIndex			= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_bl.style.left				= (parseInt(object_ref.offsetLeft) - CONST_SIDE) + "px";
	div_msg_border_bl.style.top					= (parseInt(object_ref.offsetTop) + parseInt(object_ref.offsetHeight)) + "px";
	div_msg_border_bl.style.zIndex			= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_side_b.style.left		= (parseInt(object_ref.offsetLeft)) + "px";
	div_msg_border_side_b.style.top			= (parseInt(object_ref.offsetTop) + parseInt(object_ref.offsetHeight)) + "px";
	div_msg_border_side_b.style.width		= (parseInt(object_ref.offsetWidth)) + "px";
	div_msg_border_side_b.style.zIndex	= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_side_l.style.height	= (parseInt(object_ref.offsetHeight)) + "px";
	div_msg_border_side_l.style.left		= (parseInt(object_ref.offsetLeft) - CONST_SIDE) + "px";
	div_msg_border_side_l.style.top			= (parseInt(object_ref.offsetTop)) + "px";
	div_msg_border_side_l.style.zIndex	= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_side_r.style.height	= (parseInt(object_ref.offsetHeight)) + "px";
	div_msg_border_side_r.style.left		= (parseInt(object_ref.offsetLeft) + parseInt(object_ref.offsetWidth)) + "px";
	div_msg_border_side_r.style.top			= (parseInt(object_ref.offsetTop)) + "px";
	div_msg_border_side_r.style.zIndex	= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_side_t.style.left		= (parseInt(object_ref.offsetLeft)) + "px";
	div_msg_border_side_t.style.top			= (parseInt(object_ref.offsetTop) - CONST_SIDE) + "px";
	div_msg_border_side_t.style.width		= (parseInt(object_ref.offsetWidth)) + "px";
	div_msg_border_side_t.style.zIndex	= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_tl.style.left				= (parseInt(object_ref.offsetLeft) - CONST_SIDE) + "px";
	div_msg_border_tl.style.top					= (parseInt(object_ref.offsetTop) - CONST_SIDE) + "px";
	div_msg_border_tl.style.zIndex			= parseInt(iframe_fog.style.zIndex) + 1;

	div_msg_border_tr.style.left				= (parseInt(object_ref.offsetLeft) + parseInt(object_ref.offsetWidth)) + "px";
	div_msg_border_tr.style.top					= (parseInt(object_ref.offsetTop) - CONST_SIDE) + "px";
	div_msg_border_tr.style.zIndex			= parseInt(iframe_fog.style.zIndex) + 1;

	return true;
}

/* pour faciliter la sélection ddes urls des médias, on stocke en javascript la sélection courante, et on la modifiera en fonction des choix utilisateur */
var msg_search_media_selection = "";
function msg_search_media(e, input_field, input_function, deactivate_fog, source)
{
	/* *************************************
	NAME :
		msg_search_media
	INPUT :
		e								=> event
		input_field			=> champ qui sera mis a jour apres validation de la fenetre
		input_function	=> fonction qui sera lancee apres validation de la fenetre
		deactivate_fog	=> true/false selon que l'on veuille ou non que la validation de la fenetre desactive le voile
		source					=> source à consulter (1=google image search,2=google video search, 3=Yahoo! Images search, 4=Yahoo! Vidéo, 6=mon ordinateur)
	OUTPUT :
		- (affiche une fenetre de recherche de media et met a jour le champ specifie)
	************************************* */

	/* si source==-1 on ne fait rien */
	if(parseInt(source)==-1){fog_manage(false);return false;};
	/* si source==0 on ouvre le gestionnaire de fichier */
	if(parseInt(source)==0)
	{
    msg_file("", input_field, "", true, "", "", false);
    return false;
  }
	/* si source==6 on ouvre le gestionnaire de fichier directement sur l'interface d'upload */
	if(parseInt(source)==6)
	{
    msg_file("", input_field, "", true, "", "", true);
    return false;
  }

	/* objet principal */
	var rnd											= String(Math.random());
	var div_prompt_search_media	= document.createElement("div");
	div_prompt_search_media.setAttribute("id", "div_prompt_search_media" + rnd);
	div_prompt_search_media.className = "css_msg";

	/* contenu personnalise */
	var tmp_string	= "";
	tmp_string			+= "<table cellspacing='0'>";
	tmp_string			+= "<tr><td class='css_form_label_left'>";
	tmp_string			+= "<iframe id='iframe_prompt_search_media" + rnd + "' src='" + include_path + "/php/assistant-search-media.php?source=" + source + "' class='css_search_media_param' frameborder='0' scrolling='no'></iframe>";
	tmp_string			+= "</td></tr>";
	tmp_string			+= "<tr>";
	tmp_string			+= "<td class='css_form_label_input'>";
	tmp_string			+= "<input type='button' id='input_prompt_search_media_ok" + rnd + "' class='css_form_button' value=\"" + language_msg("00001") + "\"/>";
	tmp_string			+= "<input type='button' id='input_prompt_search_media_cancel" + rnd + "' class='css_form_button' value=\"" + language_msg("00002") + "\"/>";
	tmp_string			+= "</td>";
	tmp_string			+= "</tr>";
	tmp_string			+= "</table>";
	div_prompt_search_media.innerHTML = tmp_string;
	document.body.appendChild(div_prompt_search_media);

	/* initialisation de la variable avec les valeurs déjà sélectionnées */
	msg_search_media_selection = "";
	if (input_field != "")
		msg_search_media_selection = document.getElementById(input_field).value;

	/* boutons */
	document.getElementById("input_prompt_search_media_ok" + rnd).onclick	= function(){
		if (input_field != "")
		{
			/* recuperation de la selection */
			var iframe						= document.getElementById("iframe_prompt_search_media" + rnd);
			var iframe_assistant	= iframe.contentWindow.document;
			var ml								= iframe_assistant.getElementsByName("urls_media_copy");
			var tmp_sep = (msg_search_media_selection == "" ||msg_search_media_selection == "\n")? "" : "\n";

			var tmp_string				= msg_search_media_selection + tmp_sep + (ml[0].value).substr(0, (ml[0].value).length - 1)

			/* suppression de l'image par défaut le cas échéant */
			tmp_string						= tmp_string.replace("../img/img-defaut.jpg\n", "");

			if(ml[0]) document.getElementById(input_field).value = tmp_string;

			/* lancement de l'evenement "onchange" sur le champ appelant */
			if (document.getElementById(input_field).onchange)
				document.getElementById(input_field).onchange();
		}
		document.body.removeChild(document.getElementById("div_prompt_search_media" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(true)");
	};

	  document.getElementById("input_prompt_search_media_cancel" + rnd).onclick	= function(){
		document.body.removeChild(document.getElementById("div_prompt_search_media" + rnd));
		msg_border_remove(rnd);
		if (deactivate_fog)				fog_manage(false);
		if (input_function != "")	eval(input_function + "(false)");
	};

	  /* gestion de la touche "escape" */
	  key_manage_escape = function(e){
		document.getElementById("input_prompt_search_media_cancel" + rnd).click();
	};

	/* affichage */
	msg_display(e, div_prompt_search_media, 3, rnd, false);
}


/* *************************************
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;
}

