/** @file
 *
 *  Fichier contenant des fonctions javascript
 */


    /** @brief Parametre indiquant que le fichier est charge */
    var PublinovaJs = 'charger';

    var NoviusHackHack = function() {};

    if (document.getElementsByTagName('base')[0]) {
        /** @brief Recuperation de l'attribut href du Tag BASE si defini */
        var base_url = document.getElementsByTagName('base')[0].href;
    }



    /** @brief Traduit une chaine en fonction du language
     *  @param chaine La chaine a traduire
     */
    NoviusHack = {
        i18n        : {
            uk : {
                "La date est incompl\u00e8te."                                                                                       : "Date is incomplete",
                "La date n'est pas valide."                                                                                          : "Date is not correct",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "Email field must be filled in",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Field xxxchampxxx must contain figures",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Field xxxchampxxx cannot contain more than xxxlongueurxxx characters",
                "Le champ xxxchampxxx est vide."                                                                                     : "Field xxxchampxxx is empty",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Selected file extension is not allowed.\r\nExtensions allowed: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "File extension xxxchampxxx is not allowed.\r\nExtensions allowed: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "No selection",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Please select a value for field xxxchampxxx",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Check the email address,\r\nit seems to be incorrect"
            },
            de : {
                "La date est incompl\u00e8te."                                                                                       : "Unvollst\u00e4ndiges Datum.",
                "La date n'est pas valide."                                                                                          : "Ung\u00fcltiges Datum",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Das Feld xxxchampxxx darf h\u00f6chstens xxxlongueurxxx Zeichen enthalten.",
                "Le champ email doit \u00eatre rempli."                                                                              : "Bitte das Feld E-Mail ausf\u00fcllen.",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Das Feld xxxchampxxx muss eine Zahl enthalten.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Das Feld xxxchampxxx darf h\u00f6chstens xxxlongueurxxx Zeichen enthalten.",
                "Le champ xxxchampxxx est vide."                                                                                     : "Das Feld xxxchampxxx ist leer.",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Die ausgew\u00e4hlte Datei xxxchampxxx hat keine zugelassenen Erweiterung. \nZugelassen: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Die Datei xxxchampxxx hat keine zugelassene Erweiterung. \nZugelassen: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Keine Auswahl",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "W\u00e4hlen Sie im Feld xxxchampxxx einen Wert aus.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Bitte \u00fcberpr\u00fcfen Sie die E-Mail-Adresse,\nsie k\u00f6nnte ung\u00fcltig sein."
            },
            es : {
                "La date est incompl\u00e8te."                                                                                       : "Fecha incompleta",
                "La date n'est pas valide."                                                                                          : "Fecha incorrecta",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "El campo Email debe incluir xxxlongueurxxx caracteres como m\u00e1ximo",
                "Le champ email doit \u00eatre rempli."                                                                              : "Debe completar el campo Email",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "El campo xxxchampxxx debe incluir n\u00fameros",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "El campo xxxchampxxx debe incluir como m\u00e1ximo xxxlongueurxxx caracteres",
                "Le champ xxxchampxxx est vide."                                                                                     : "El campo xxxchampxxx est\u00e1 vac\u00edo",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "No se puede admitir la extensi\u00f3n del archivo seleccionado.\nExtensiones admitidas: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "No se puede admitir la extensi\u00f3n del archivo xxxchampxxx.\nExtensiones admitidas:  xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Ninguna selecci\u00f3n",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Por favor, seleccione un valor en el campo xxxchampxxx",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Compruebe la direcci\u00f3n email,\nparece que no es correcta"
            },
            pt : {
                'Le champ xxxchampxxx est vide.'                                                                                        : 'O campo xxxchampxxx necessita de ser preenchido.',
                'Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00E8res au maximum.'                                         : 'O campo xxxchampxxx n\u00E3o pode exceder xxxlongueurxxx caracteres.',
                'Veuillez s\u00E9lectionner une valeur pour le champ xxxchampxxx.'                                                      : 'Por favor, seleccione um valor para o campo xxxchampxxx',
                'Le champ xxxchampxxx doit contenir des chiffres.'                                                                      : 'O campo xxxchampxx apenas aceita caracteres num\u00E9ricos.',
                'Le champ email doit \u00EAtre rempli.'                                                                                 : 'O preenchimento do campo email \u00E9 obrigat\u00F3rio.',
                'Le champ email doit contenir au maximum xxxlongueurxxx caract\u00E8res.'                                               : 'O campo email n\u00E3o pode exceder xxxlongueurxxx caracteres',
                "V\u00E9rifiez l'adresse email,\nelle ne semble pas valide."                                                            : "Por favor verifique o endere\u00E7o de email.",
                'La date est incompl\u00E8te.'                                                                                          : 'A data est\u00E1 incompleta',
                "La date n'est pas valide."                                                                                             : 'A data n\u00E3o \u00E9 v\u00E1lida',
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00E9e.\nAutoris\u00E9es : xxxextension_requisesxxx"              : "A extens\u00E3o do ficheiro xxxchampxxx n\u00E3o \u00E9 v\u00E1lida.\nAs extens\u00F5es autorizadas s\u00E3o as seguintes: xxxextension_requisesxxx",
                "Le fichier s\u00E9lectionn\u00E9 n'a pas une extension autoris\u00E9e.\nAutoris\u00E9es : xxxextension_requisesxxx"    : "A extens\u00E3o do ficheiro seleccionado xxxchampxxx n\u00E3o \u00E9 v\u00E1lida.\nAs extens\u00F5es autorizadas s\u00E3o as seguintes: xxxextension_requisesxxx",
                'Pas de s\u00E9lection'                                                                                                 : 'Por favor seleccionar uma op\u00E7\u00E3o'
            },
            nl : {
                "La date est incompl\u00e8te."                                                                                          : "Datum is incompleet",
                "La date n\'est pas valide."                                                                                            : "Datum is niet juist",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                               : "Het E-mail veld kan niet uit meer dan xxxlongueurxxx karakters bestaan",
                "Le champ email doit \u00eatre rempli."                                                                                 : "Het E-mail veld moet ingevuld worden",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                      : "Het veld xxxchampxxx moet uit cijfers bestaan",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                         : "Het veld xxxchampxxx kan niet uit meer dan xxxlongueurxxx karakters bestaan",
                "Le champ xxxchampxxx est vide."                                                                                        : "Het veld xxxchampxxx is niet ingevuld",
                "Le fichier s\u00e9lectionn\u00e9 n\'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"   : "Dit formaat is niet toegestaan.\nToegestane formaten xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n\'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"             : "Formaat xxxchampxxx is niet toegestaan.\nToegestane formaten xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                                 : "Geen keuzemogelijkheid",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                      : "Gelieve een waarde voor het veld xxxchampxxx te selecteren.",
                "V\u00e9rifiez l\'adresse email,\nelle ne semble pas valide."                                                           : "Controleer het e-mailadres, dat is niet geldig."
            },
            it : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Il campo e-mail deve contenere almeno xxxlongueurxxx caratteri.",
                "Le champ email doit \u00eatre rempli."                                                                              : "Il campo e-mail deve essere compilato.",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "Il campo xxxchampxxx \u00e8 vuoto.",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Seleziona un valore per il campo xxxchampxxx.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Verifica l'indirizzo e-mail;\nquesto sembra non essere valido."
            },
            ee : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "E-maili aadressi väli peab olema täidetud",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "xxxchampxxx väli on täitmata.",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Palun valige väärtus xxxchampxxx välja jaoks.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Kontrollige oma e-maili aadressi, kuna see ei ole korrektne"
            },
            ua : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "\u041f\u043e\u043b\u0435 «\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u043f\u043e\u0448\u0442\u0430» \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0437\u0430\u043f\u043e\u0432\u043d\u0435\u043d\u0435",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "\u041f\u043e\u043b\u0435 xxxchampxxx \u043d\u0435\u0437\u0430\u043f\u043e\u0432\u043d\u0435\u043d\u0435",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044f xxxchampxxx.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0430, \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0449\u0435 \u0440\u0430\u0437"
            },
            ru : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "\u0413\u0440\u0430\u0444\u0430 «\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441» \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "\u041f\u043e\u043b\u0435 xxxchampxxx \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u043e\u043c\u0438\u043d\u0430\u043b \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u044b xxxchampxxx.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0412\u0430\u0448 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0435 \u0433\u043e\u0434\u0435\u043d."
            },
            cz : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "Pole e-mail musí být vypln\u011bno.",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "Pole xxxchampxxx je prázdné",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Vyberte prosím n\u011bkterou moznost pro pole xxxchampxxx.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Zkontrolujte prosím e-mailovou adresu, nejspís nebude správná."
            },
            sk : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "Je potrebné vyplni\u0165 polí\u010dko s e-mailovou adresou",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "Pole xxxchampxxx je prázdne",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Vyberte, prosím, hodnotu pre polí\u010dko xxxchampxxx.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "E-mailová adresa sa zdá neplatná, skontrolujte ju"
            },
            hu : {
                "La date est incompl\u00e8te."                                                                                       : "Data incompleta.",
                "La date n'est pas valide."                                                                                          : "Data non valida.",
                "Le champ email doit contenir au maximum xxxlongueurxxx caract\u00e8res."                                            : "Email field cannot contain more than xxxlongueurxxx characters",
                "Le champ email doit \u00eatre rempli."                                                                              : "Az e-mail mez\u0151 kitöltése kötelez\u0151",
                "Le champ xxxchampxxx doit contenir des chiffres."                                                                   : "Il campo xxxcampoxxx deve contenere dei numeri.",
                "Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00e8res au maximum."                                      : "Il campo xxxchampxxx deve contenere al massimo xxxlongueurxxx caratteri.",
                "Le champ xxxchampxxx est vide."                                                                                     : "A(z) xxxchampxxx mez\u0151 üres",
                "Le fichier s\u00e9lectionn\u00e9 n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx" : "Estensione del file selezionato non permessa.\nPermesse: xxxextension_requisesxxx",
                "Le fichier xxxchampxxx n'a pas une extension autoris\u00e9e.\nAutoris\u00e9es : xxxextension_requisesxxx"           : "Il file xxxchampxxx ha un'estensione non permessa.\nPermesse: xxxextension_requisesxxx",
                "Pas de s\u00e9lection"                                                                                              : "Nessuna selezione",
                "Veuillez s\u00e9lectionner une valeur pour le champ xxxchampxxx."                                                   : "Válasszon egy értéket a(z) xxxchampxxx mez\u0151 számára.",
                "V\u00e9rifiez l'adresse email,\nelle ne semble pas valide."                                                         : "Ellen\u0151rizze az e-mail címet, mert érvénytelennek t\u0171nik"
            }
        },
        translate   : function(chaine) {
            if (language_js == 'fr') {
                return chaine;
            }
            if (this.i18n[language_js] && this.i18n[language_js][chaine]) {
                return this.i18n[language_js][chaine];
            }
            return chaine;
        }
    };

    if (typeof window.language_js == "undefined") {
        /** @brief Initialisation de la variable language_js contenant le code langue utilise */
        var language_js = "";
    }

    /** @brief Ajout d'un fichier js ou css au head
     *  @param url L'url du fichier
     *  @param params Les parametres d'ajout
     *      - @c type : Optionnel, css ou js
     *      - @c media : Optionnel, le type de media concerne pour le css
     *      - @c onload : Optionnel, une fonction appelle en callback a la fin du chagement du fichier js
     */
    Logger = function(log, message) {
        try {
            message = message || "Logger : %o";
            console.log(message, log);
        } catch (e) {
            try {
                window.console.log(log);
            } catch (e) {
                message = "Logger";
                alert(message + " :\n" + print_r(log, "\n"));
            }
        }
    };

    function WindowVisu(url, titre, winStats){
        titre = titre || 'titre';
        if (winStats && navigator.appName.indexOf("Microsoft") < 0) {
            winStats = winStats.replace(/width/i, 'innerWidth');
            winStats = winStats.replace(/height/i, 'innerHeight');
            winStats = winStats.replace(/left/i, 'screenX');
            winStats = winStats.replace(/top/i, 'screenY');
        }
        try {
            eval('if (top.win' + titre + ' && !(top.win' + titre + '.closed)) top.win' + titre + '.close();');
        } catch (e) {}
        eval('win' + titre + ' = window.open(url, titre' + (winStats ? ', winStats' : '') + ');');
        eval('if (win' + titre + ') win' + titre + '.focus();');
    }

    /** @brief Suppression des espaces au debut ou a la fin d'une chaine
     *  @param chaine La chaine a traiter
     */
    function Trim(chaine) {
        var res = chaine;
        res     = res.replace(/^\s+/, '');
        res     = res.replace(/\s+$/, '');
        return res;
    }

    /** @brief Verification d'un champ chaine
     *  @param champ Le champ a verifier
     *  @param nom_champ Le nom du champ
     *  @param longueur Optionnel. La longueur maximum du champ, si 0 illimite (par defaut)
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteChaineHack(champ, nom_champ, longueur, pas_vide) {
        nom_champ = nom_champ ? "'" + nom_champ + "'" : '';
        if (pas_vide && Trim(getChampValueHack(champ)) == '') {
            alert(NoviusHack.translate('Le champ xxxchampxxx est vide.').replace(/xxxchampxxx/, nom_champ));
            try {
                champ.focus();
                champ.select();
            } catch (e) {}
            return false;
        }
        if (longueur && longueur != 0 && champ.value.length > longueur) {
            alert(NoviusHack.translate('Le champ xxxchampxxx doit contenir xxxlongueurxxx caract\u00E8res au maximum.').replace(/xxxchampxxx/, nom_champ).replace(/xxxlongueurxxx/, longueur));
            try {
                champ.focus();
                champ.select();
            } catch (e) {}
            return false;
        }
        return true;
    }

    function TesteCheckboxHack(champ, nom_champ, pas_vide) {
        nom_champ = nom_champ ? "'" + nom_champ + "'" : '';
        if (pas_vide && !$(champ).attr('checked')) {
            alert(NoviusHack.translate('Le champ xxxchampxxx est vide.').replace(/xxxchampxxx/, nom_champ));
            try {
                champ.focus();
                champ.select();
            } catch (e) {}
            return false;
        } else {
            return true;
        }
    }

    /** @brief Verification d'un champ liste
     *  @param champ Le champ a verifier
     *  @param nom_champ Le nom du champ
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteListeHack(champ, nom_champ, pas_vide) {
        nom_champ = nom_champ ? "'" + nom_champ + "'" : '';
        if (pas_vide && Trim(getChampValueHack(champ)) == '') {
            alert(NoviusHack.translate('Veuillez s\u00E9lectionner une valeur pour le champ xxxchampxxx.').replace(/xxxchampxxx/, nom_champ));
            try {
                champ.focus();
            } catch (e) {}
            return false;
        }
        return true;
    }

    /** @brief Verification d'un champ liste choix multiple
     *  @param champ Le champ a verifier
     *  @param nom_champ Le nom du champ
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteListeMultipleHack(champ, nom_champ, pas_vide) {
        return TesteListe(champ, nom_champ, pas_vide);
    }

    /** @brief Verification d'un champ numerique
     *  @param champ Le champ a verifier
     *  @param nom_champ Le nom du champ
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteNombreHack(champ, nom_champ, pas_vide) {
        nom_champ = nom_champ ? "'" + nom_champ + "'" : '';
        if (!TesteChaine(champ, nom_champ, 0, pas_vide)) {
            return false;
        }
        champ.value = champ.value.replace(/,/, '.');
        champ.value = champ.value.replace(/\s/g, '');
        if (isNaN(champ.value)) {
            alert(NoviusHack.translate('Le champ xxxchampxxx doit contenir des chiffres.').replace(/xxxchampxxx/, nom_champ));
            try {
                champ.focus();
                champ.select();
            } catch (e) {}
            return false;
        }
        return true;
    }

    /** @brief Verification d'un champ email
     *  @param champ Le champ a verifier
     *  @param longueur Optionnel. La longueur maximum du champ, si 0 illimite (par defaut)
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteEMailHack(email, longueur, pas_vide) {
        var retour = TesteEMailValeurHack(email.value, longueur, pas_vide);
        if (retour != "") {
            alert(retour);
            email.focus();
            email.select();
            return(false);
        }
        return true;
    }

    /** @brief Verification d'un email
     *  @param champ L'email a verifier
     *  @param longueur Optionnel. La longueur maximum de l'email, si 0 illimite (par defaut)
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     */
    function TesteEMailValeurHack(email, longueur, pas_vide) {
        if (pas_vide && Trim(email) == '') {
            return NoviusHack.translate('Le champ email doit \u00EAtre rempli.');
        }
        if (email != '') {
            if (longueur && longueur != 0 && email.length > longueur) {
                return NoviusHack.translate('Le champ email doit contenir au maximum xxxlongueurxxx caract\u00E8res.').replace(/xxxlongueurxxx/, longueur);
            } else {
                var reg = /^([a-z0-9\.\-\_\+]+\@([a-z0-9\-]+\.)+[a-z]{2,7})$/i;
                if (!reg.test(email)) {
                    return NoviusHack.translate("V\u00E9rifiez l'adresse email,\nelle ne semble pas valide.");
                }
            }
        }
        return '';
    }

    /** @brief Verification de la validite de champs dates
     *  @param theform Le formulaire contenant les champs
     *  @param prefixe_champ Le prefixe des champs dates
     *  @param pas_vide Optionnel. Booleen indiquant is la date est obligatoire (false par defaut)
     */
    function CheckDateHack(theform, prefixe_champ, pas_vide) {
        Jour  = getChampValueHack(eval('theform.' + prefixe_champ + '_jour'));
        Mois  = getChampValueHack(eval('theform.' + prefixe_champ + '_mois'));
        Annee = getChampValueHack(eval('theform.' + prefixe_champ + '_annee'));
        if (!pas_vide && (Jour == '' || Jour == '0') && (Mois == '' || Mois == '0') && (Annee == '')) {
            return true;
        }

        if (Jour == '' || Jour == '0' || Mois == '' || Mois == '0' || Annee == '') {
            alert(NoviusHack.translate('La date est incompl\u00E8te.'));
            eval('theform.' + prefixe_champ + '_jour.focus();');
            return false;
        }
        ChkDate = new Date(Annee, Mois - 1, Jour);
        if (ChkDate.getDate() != Jour || ChkDate.getMonth() != (Mois - 1)) {
            alert(NoviusHack.translate("La date n'est pas valide."));
            eval('theform.' + prefixe_champ + '_jour.focus();');
            return false;
        }
        return true;
    }

    /** @brief Verification d'un champ fichier
     *  @param champ Le champ fichier
     *  @param nom_champ Le nom du champ
     *  @param pas_vide Optionnel. Booleen indiquant is le champ est obligatoire (false par defaut)
     *  @param extension_requises Optionnel. Listes des extensions autorisees separees par un caractere (/ ou | ou ; par exemple)
     */
    function TesteFichierHack(champ, nom_champ, pas_vide, extension_requises) {
        nom_champ = nom_champ ? "'" + nom_champ + "'" : '';
        if (!TesteChaine(champ, nom_champ, 0, pas_vide)) {
            return false;
        }
        if (extension_requises != '' && Trim(champ.value) != '') {
            var found = champ.value.match(/.+\.(\w{3,4})$/gi);
            var reg   = new RegExp(RegExp.$1, 'gi');
            if (extension_requises.search(reg) == -1) {
                alert(NoviusHack.translate("Le fichier xxxchampxxx n'a pas une extension autoris\u00E9e.\nAutoris\u00E9es : xxxextension_requisesxxx").replace(/xxxchampxxx/, nom_champ).replace(/xxxextension_requisesxxx/, extension_requises));
                return false;
            }
        }
        return true;
    }



    /** @brief Recupere la valeur d'un champ quelquesoit sont type
     *  @param champ Le champ
     */
    function getChampValueHack(champ) {
        if (!champ) {
            return false;
        }
        if (champ.length) {
            if (champ.type && champ.type == 'select-one') {
                if (champ.selectedIndex >= 0) {
                    return champ[champ.selectedIndex].value;
                } else {
                    return '';
                }
            }
            for (var i = 0; i < champ.length; i++) {
                if ((champ[i].type == 'checkbox' || champ[i].type == 'radio') && champ[i].checked) {
                    return champ[i].value;
                }
                else if (champ.type == 'select-multiple' && champ[i].selected) {
                    return champ[i].value;
                }
                else if (getChampValueHack(champ[i]) != '') {
                    return getChampValueHack(champ[i]);
                }
            }
        } else {
            if (champ.type == 'text' || champ.type == 'password' || champ.type == 'file' || champ.type == 'textarea' || champ.type == 'hidden') {
                return Trim(champ.value);
            }
            else if ((champ.type == 'checkbox' || champ.type == 'radio') && champ.checked) {
                return champ.value;
            }
        }
        return '';
    }

    /** @brief Affiche des informations lisibles pour une variable js
     *  @param obj L'objet javascript
     *  @param fin_ligne Le texte/caractere de fin de ligne
     */
    function print_r(obj, fin_ligne) {
        fin_ligne  = fin_ligne || "<br>\n";
        var result = "";
        if (typeof(obj) == 'string') {
            return obj;
        }
        for (var i in obj) {
            result += i + " = " + obj[i] + fin_ligne;
        }
        return result;
    }

    /** @brief Fonction de controle de double champ select multiple
     *  Ajoute un choix
     *  @param champ Le nom du champ
     *  @param theform Optionnel. Le formulaire contenant le champ
     */
    function AjouterSelectMultipleHack(champ, theform) {
        theform  = theform || document.TheForm;
        var tab1 = theform.elements[champ + '_ini[]'];
        var tab2 = theform.elements[champ + '[]'];
        for (count = 0; count < tab1.options.length; count++) {
            if (tab1.options[count].selected) {
                var nomoption       = new Option(tab1.options[count].text, tab1.options[count].value, 0, 0);
                tab1.options[count] = null;
                count--;
                if (tab2.options[0].value == -1) {
                    tab2.options[0] = nomoption;
                } else {
                    var taille = tab2.length;
                    tab2.options[taille] = nomoption;
                }
            }
        }
    }

    /** @brief Fonction de controle de double champ select multiple
     *  Supprime un choix
     *  @param champ Le nom du champ
     *  @param theform Optionnel. Le formulaire contenant le champ
     *  @param lib_passel Optionnel. Le libellé ŕ afficher si aucune sélection
     */
    function SupprimerSelectMultipleHack(champ, theform, lib_passel) {
        lib_passel     = lib_passel || "--- " + NoviusHack.translate('Pas de s\u00E9lection') + " ---";
        theform        = theform || document.TheForm;
        var tab1       = theform.elements[champ + '_ini[]'];
        var tab2       = theform.elements[champ + '[]'];
        for (count = 0; count < tab2.options.length; count++) {
            if (tab2.options[count].selected) {
                if (tab2.options.length == 1) {
                    tab1.options[tab1.length] = new Option(tab2.options[0].text, tab2.options[0].value, 0, 0);
                    tab2.options[0] = new Option(lib_passel, "-1", false, false);
                } else {
                    tab1.options[tab1.length] = new Option(tab2.options[count].text, tab2.options[count].value, 0, 0);
                    tab2.options[count]       = null;
                    count--;
                }
            }
        }
    }


