function affiche(id_bloc) {
    // Donne la classe "afficher" au bloc dont l'identifiant est indiqué
    document.getElementById(id_bloc).className = "afficher";
}


function masque(id_bloc) {
    // Donne la classe "masquer" au bloc dont l'identifiant est indiqué
    document.getElementById(id_bloc).className = "masquer";
}



function chgClasse(id_element, nom_classe) {
    // Recherche l'élément dont l'identifiant est indiqué en premier argument
    // et lui attribue la classe donnée comme deuxième argument
    if (nom_classe==undefined) {nom_classe=""};
    document.getElementById(id_element).className = nom_classe;
}



function chgClasse_pourIdClasse(id_element, nom_classe_ini, nom_classe_fin) {
    // Attribue à l'élément dont l'identifiant est indiqué en premier argument
    // la classe donnée comme troisième argument, à condition que sa classe soit
    // initialement celle donnée en deuxième argument.
    if (nom_classe_ini==undefined) {nom_classe_ini=""};
    if (nom_classe_fin==undefined) {nom_classe_fin=nom_classe_ini};
    if (document.getElementById(id_element).className==nom_classe_ini)
                    {document.getElementById(id_element).className = nom_classe_fin};

}


function chgClasse_siClasse(nom_classe_ini, nom_classe_fin) {
    // Attribue la classe nom_classe_fin à tous les éléments dont la classe est initialement nom_classe_ini.
    var elements = ElementsParClasse(nom_classe_ini);
		for (i=0; i<elements.length; ++i) { elements[i].className = nom_classe_fin; }
}

function ElementsParClasse (nom_classe){
      // retourne un tableau contenant tous les éléments dont la classe est celle fournie en argument 
			var elts = document.getElementsByTagName('*');
			var tableau_elements = new Array();
			for (var j = 0; j < elts.length; ++j) {
			if (elts[j].className.indexOf(nom_classe) != -1) {
					tableau_elements.push(elts[j]);
				}
			}
			return tableau_elements;
}


function ElementsParClasseDansConteneur (conteneur, nom_classe){
			// Scrute tous les éléments contenus dans le conteneur indiqué en 1er argument,
      // et renvoie un tableau contenant tous ceux qui ont au moins la classe indiquée en 2ème argument
      var elts = conteneur.getElementsByTagName('*');
			var tableau_elements = new Array();
			for (var j = 0; j < elts.length; ++j) {
			if (elts[j].className.indexOf(nom_classe) != -1) {
					tableau_elements.push(elts[j]);
				}
			}
			return tableau_elements;
}






function affiche_sousmenu(id_bloc, num_sous_menu){
    // Affiche le sous-menu dont l'id est donné en argument
    // => nom de classe = "sous_menu afficher"
    document.getElementById(id_bloc).className = "sous_menu afficher" ;
}

function masque_sousmenu(id_bloc, num_sous_menu){
    // Masque le sous-menu dont l'id est donné en argument
    // => nom de classe = "sous_menu masquer"
    document.getElementById(id_bloc).className = "sous_menu masquer" ;
}




function liens_nouvellefenetre(classe_si_lien_dans_nouvelle_fenetre){
    // Ouvre les liens dans une nouvelle fenêtre les liens <a> de classe indiquée en argument,
    // en conservant la validité XHTML du code (si appel sans argument, c'est la classe "nouvfen" qui sera utilisée)
    // Fonction à appeler dans BODY : <body onLoad="liens_nouvellefenetre();">
    //
    // ATTENTION : ne marche pas s'il y a deux ou plusieurs classes séparées par des espaces
    //             => une seule classe class="nouvfen" par exemple
    // 
   	if (classe_si_lien_dans_nouvelle_fenetre == undefined) { classe_si_lien_dans_nouvelle_fenetre = "nouvfen"; }
    liens = document.getElementsByTagName('a'); // tableau liens[] de toutes les balises <a>
   	for(i in liens)
   	{
    		if (liens[i].className == classe_si_lien_dans_nouvelle_fenetre)
    		{
   			   liens[i].target = "_blank";
   			   // ou :   liens[i].onclick = "script:window.open(this.href,'_blank');return false;"
    		};
   	}
}




function lien_courriel(nom, serveur, domaine, texte_lien, attribut1, attribut2, attribut3) {
//
// Cette fonction reconstitue le lien mailto vers l'adresse indiquée en morceaux :
// <a href="mailto:nom@serveur.domaine">texte_lien</a>
// Si l'argument texte_lien est absent ou égal à "", c'est l'adresse qui sert de lien
//
// Utilisation => écrire la ligne suivante (ici, exemple avec acl@telcom.net)
// <script type="text/javascript">lien_courriel("acl", "telcom", "net") et fin de script avec </ puis script>
//
// Si une classe est précisée (argument var_class), elle est incluse dans la balise <a>
// Cet argument est facultatif ; s'il n'est pas fourni, il est égal à une chaîne vide et la fonction marche.
//
// Si un identificateur est précisé (argument var_id), il est inclus dans la balise <a>
// Cet argument est facultatif ; s'il n'est pas fourni, il est égal à une chaîne vide et la fonction marche.
//
// Si un texte "title" est précisé (argument var_title), il est inclus dans la balise <a>
// Cet argument est facultatif ; s'il n'est pas fourni, il est égal à une chaîne vide et la fonction marche.

    var adresse = nom + "@" + serveur + "." + domaine;
    var url = "mailto:" + adresse;
    var texte_servant_de_lien = (texte_lien==undefined || texte_lien=="")?  adresse  :  texte_lien;
    
    // Pour chaque attribut qui a été défini, un espace avant
    if (attribut1!=undefined && attribut1!="") { attribut1 = " " + attribut1; }
    if (attribut2!=undefined && attribut2!="") { attribut2 = " " + attribut2; }
    if (attribut3!=undefined && attribut3!="") { attribut3 = " " + attribut3; }

// Ecriture du lien avec, pour les guillemets, le caractère d'échappement \" ou l'apostrophe '
    document.write("<a href='" + url + "'" + attribut1 + attribut2 + attribut3 + ">" + texte_servant_de_lien + "</a>");

} // Fin de la fonction lien_courriel




function lien_site(adresse_site, texte_site, attribut1, attribut2, attribut3) {
// Ecrit <a href="http://adresse_site" class="var_class" id="var_id">texte_site</a>
// ATTENTION : Indiquer l'adresse Web (paramètre adresse_site) SANS http:// qui ajouté automatiquement
// =========
// Si l'argument texte_site est absent, c'est l'adresse du site qui sert de lien (sans http:/// dans le texte du lien)
// Si l'argument texte_site vaut "http" ou "http://", "http://" est ajouté au début du texte du lien
// 
// Les attributs sont en général "class='toto'" ou "id='titi'"
//
// Utilisation => écrire la ligne suivante (ici, exemple avec www.mon_site.net)
// <script type="text/javascript">site("www.monsite.net","Visitez mon site","id='lien_vers_mon_site'","class='liens'");</script>

    // Pour chaque attribut qui a été défini, un espace avant
    if (attribut1!=undefined && attribut1!="") { attribut1 = " " + attribut1; }
    if (attribut2!=undefined && attribut2!="") { attribut2 = " " + attribut2; }
    if (attribut3!=undefined && attribut3!="") { attribut3 = " " + attribut3; }

    // Affectation de la variable texte_servant_de_lien qui sera le texte apparent du lien
    switch(texte_site){
        case undefined:
        case "":
             var texte_servant_de_lien = adresse_site;
             break;
        case "http":
        case "http://":
             var texte_servant_de_lien = "http://" + adresse_site;
             break;
        default:
             var texte_servant_de_lien = texte_site;
    }
    
// Ecriture du lien vers le site, avec un caractère d'échappement \ pour les guillemets : \"
    document.write("<a href='http://" + adresse_site + "'" + attribut1 + attribut2 + attribut3 + ">" + texte_servant_de_lien + "</a>");

} // Fin de la fonction lien_site




// Fonction pause
// ==============
function pause(millisecondes)
{
  var date0 = new Date();
  var date1 = null;
  
  do { date1 = new Date(); } while(date1-date0 < millisecondes);
} 

