Subversion Repositories Sites.tela-botanica.org

Rev

Rev 478 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

// cette fonction peut déjà être présente
if (typeof(addListener) != 'function') {
        // fonction portable d'ajout de listeners
        function addListener(element, baseName, handler)
        {
                if (element.addEventListener) {
                        element.addEventListener(baseName, handler, false) ;
                } else if (element.attachEvent) {
                        element.attachEvent('on'+baseName, handler) ;
                }
        }
}

// Fonction déclanchant l'ouverture d'une fenêtre externe pour les liens possédant la classe "lien_ext"
function open_ext_link()
{
        var liens = document.getElementsByTagName('a');
        // On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
        // Une boucle qui parcourt le tableau (array) liens du début à la fin.
        for (var i = 0 ; i < liens.length ; ++i)  {
                // Si les liens ont un nom de class contenant lien_ext ou img_ext, alors on agit.
                var expression = /lien_ext|img_ext/;
                if (expression.exec(liens[i].className))  {
                        liens[i].title = 'S\'ouvre dans une nouvelle fenêtre';
                        // Au clique de la souris.
                        liens[i].onclick = function()  {
                                window.open(this.href);
                                return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
                        };
                }
        }
}

// Fonction cachant le bouton ok du sélecteur de site de Papyrus
function cacher_btn_ok_selecteur_site()
{
        if (document.getElementById('sesi_ok')) {
                document.getElementById('sesi_ok').style.display = 'none';
        }
}

// Fonction aggrandissant ou diminuant la taille d'un champ
// Provient du site https://addons.mozilla.org/
function basculerTaille(id, grand)
{
        var sb = document.getElementById(id);
        if (grand) {
                sb.style.width = '20em';
        } else {
                sb.style.width = '10em';
        }
}

// Fonction nettoyant un champ de formulaire d'une chaine donnée...
function nettoyerChamp(id, chaine)
{
        var sb = document.getElementById(id);
        var valeur = sb.value;
        if (valeur == chaine) {
                sb.value = '';
        }
        if (valeur == '') {
                sb.value = chaine;
        }
}

/** Cacher la légende : fonctions et code provenant de Média Wiki
* Modifié pour pouvoir gérer des listes ul ou dl...
*/
function changeText(el, newText) {
        // Safari work around
        if (el.innerText) {
                el.innerText = newText;
        } else if (el.firstChild && el.firstChild.nodeValue) {
                el.firstChild.nodeValue = newText;
        }
}

function toggleToc(id, type_liste) {
        var toc = document.getElementById(id).getElementsByTagName(type_liste)[0];
        var toggleLink = document.getElementById('togglelink');

        if (toc && toggleLink && toc.style.display == 'none') {
                changeText(toggleLink, tocHideText);
                toc.style.display = 'block';
                document.cookie = "hidetoc=0";
        } else {
                changeText(toggleLink, tocShowText);
                toc.style.display = 'none';
                document.cookie = "hidetoc=1";
        }
}

/** Pour utiliser cette fonction rajouter dans les pages web :
 * <script type="text/javascript">
 *   // Le système de masquage des sommaires
 *   if (window.showTocToggle) {
 *     var tocShowText = "afficher";
 *     var tocHideText = "masquer";
 *     showTocToggle('faq_sommaire_titre', 'faq_sommaire', 'ul');
 *   }
 * </script>
 * Pour id_titre mettre l'identifiant du titre où afficher le texte "masquer"/"afficher"
 * Pour l'id_div mettre l'identifiant de la div contenant la liste à masquer
 * Pour le type de liste indiquer "ul" ou "dl" en fonction du type de liste.
 */
function showTocToggle(id_titre, id_div, type_liste) {
        if (document.createTextNode) {
                // Uses DOM calls to avoid document.write + XHTML issues

                var linkHolder = document.getElementById(id_titre);
                if (!linkHolder) {
                        return;
                }

                var outerSpan = document.createElement('span');
                outerSpan.className = 'toctoggle';

                var toggleLink = document.createElement('a');
                toggleLink.id = 'togglelink';
                toggleLink.className = 'internal';
                toggleLink.href = 'javascript:toggleToc(\''+id_div+'\', \''+type_liste+'\')';
                toggleLink.appendChild(document.createTextNode(tocHideText));

                outerSpan.appendChild(document.createTextNode('['));
                outerSpan.appendChild(toggleLink);
                outerSpan.appendChild(document.createTextNode(']'));

                linkHolder.appendChild(document.createTextNode(' '));
                linkHolder.appendChild(outerSpan);

                var cookiePos = document.cookie.indexOf("hidetoc=");
                if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) {
                        toggleToc(id_div, type_liste);
                }
        }
}

// Fonction initialisant d'autres fonctions
function initialiser()
{
        cacher_btn_ok_selecteur_site();// Doit être avant les lien_ext
        // s'il existe une carte dans la page
        /*if(typeof isMap != "undefined") {     
                loadMap() ;
        }*/
        open_ext_link();
}
        
// Au chargement de la page, on appelle la fonction d'initialisation :
addListener(window, 'load', initialiser) ;