Inscris-toi pour écrire dans l'encyclopédie Wikimini!

MediaWiki:Modeles.js

Aller à : navigation, rechercher

Note : après avoir enregistré tes préférences, tu devras forcer son rechargement complet en ignorant le contenu actuel du cache de ton explorateur pour voir les changements : Mozilla / Firefox / Konqueror / Safari : maintiens la touche Majuscule (Shift) en cliquant le bouton Actualiser (Reload,) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant le bouton Actualiser ou presse Ctrl-F5.


function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrReturnElements = new Array();
	if ( typeof( oElm.getElementsByClassName ) == "function" ) {
		/* Use a native implementation where possible FF3, Saf3.2, Opera 9.5 */
		var arrNativeReturn = oElm.getElementsByClassName( oClassNames );
		if ( strTagName == "*" )
			return arrNativeReturn;
		for ( var h=0; h < arrNativeReturn.length; h++ ) {
			if( arrNativeReturn[h].tagName.toLowerCase() == strTagName.toLowerCase() )
				arrReturnElements[arrReturnElements.length] = arrNativeReturn[h];
		}
		return arrReturnElements;
	}
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames[arrRegExpClassNames.length] =
				new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)");
		}
	}
	else{
		arrRegExpClassNames[arrRegExpClassNames.length] =
			new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)");
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements[arrReturnElements.length] = oElement;
		}
	}
	return (arrReturnElements)
}
//============================================================
// BEGIN Boîtes déroulantes

// set up the words in your language
var NavigationBarHide = '▲ Masquer';
var NavigationBarShow = '▼ Afficher';

// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 0;


function toggleNavigationBar(indexNavigationBar){
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
    if (!NavFrame || !NavToggle) return false;
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild;NavChild != null;NavChild = NavChild.nextSibling) {
            if (NavChild.className == 'NavPic') NavChild.style.display = 'none';
            if (NavChild.className == 'NavContent') NavChild.style.display = 'none';
            if (NavChild.className == 'NavToggle') NavChild.firstChild.data = NavigationBarShow;
        }
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild;NavChild != null;NavChild = NavChild.nextSibling) {
            if (NavChild.className == 'NavPic') NavChild.style.display = 'block';
            if (NavChild.className == 'NavContent') NavChild.style.display = 'block';
            if (NavChild.className == 'NavToggle')  NavChild.firstChild.data = NavigationBarHide;
        }
    }
}

function createNavigationBarToggleButton(){
    var indexNavigationBar = 0;
    var AllDivs = document.getElementsByTagName("div");
    for(var i=0,l=AllDivs.length;i<l;i++) {
        if (hasClass(AllDivs[i], "NavFrame")) {
            var NavFrame = AllDivs[i];
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
            NavFrame.insertBefore( NavToggle, NavFrame.firstChild);
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(var i=1;i<=indexNavigationBar;i++) {
            toggleNavigationBar(i);
        }
    }
}
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;

// END Boîtes déroulantes
// ============================================================

// ============================================================
// BEGIN Compte à rebours
/* Permet d'afficher un compte à rebours sur une page avec le modèle [[Modèle:Compte à rebours]] */
/* Plyd - 3 février 2009 */

function Rebours() {
  if(mw.config.get('wgNamespaceNumber')==0) return;
  try {
   var Comptes = getElementsByClassName(document, "span", "rebours");
   if(!Comptes[0]) return;
   for(var a=0,l=Comptes.length;a<l;a++) {
      destime = Comptes[a].title.HTMLize().split(";;");
      Maintenant = (new Date).getTime();
      Future = new Date(Date.UTC(destime[0], (destime[1]-1), destime[2], destime[3], destime[4], destime[5])).getTime();
      Diff = (Future-Maintenant);
      if (Diff < 0) {Diff = 0}
      TempsRestantJ = Math.floor(Diff/(24*3600*1000));
      TempsRestantH = Math.floor(Diff/(3600*1000)) % 24;
      TempsRestantM = Math.floor(Diff/(60*1000)) % 60;
      TempsRestantS = Math.floor(Diff/1000) % 60;
      TempsRestant = "" + destime[6] + " ";  
      if (TempsRestantJ == 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jour ";
      } else if (TempsRestantJ > 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jours ";
      }
      TempsRestant = TempsRestant + TempsRestantH + " h " + TempsRestantM  + " min " + TempsRestantS + " s";
      Comptes[a].innerHTML = TempsRestant;
    }
    setTimeout("Rebours()", 1000)
  } catch (e) {}
}
//addOnloadHook(Rebours);
jQuery( function( ) {
   Rebours();
});
// END Compte à rebours
// ============================================================

// ============================================================
// BEGIN Images
// Permet d'afficher un diaporama d'images avec le modèle [[Modèle:Images]] 

function toggleImage(group, remindex, shwindex) {
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}
 
function imageGroup(bc){
  if (document.URL.match(/printable/g)) return;
  if(!bc){
    var bc=document.getElementById("bodyContent");
    if( !bc ) bc = document.getElementById("mw_contentholder");
    if( !bc ) bc = document.getElementById("article");
    if( !bc ) return;
  }
  var divs=bc.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length ; i++) {
    if (divs[i].className != "ImageGroup") continue;
    UnitNode=undefined;
    search=divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length ; j++) {
      if (search[j].className != "ImageGroupUnits") continue;
      UnitNode=search[j];
      break;
    }
    if (UnitNode==undefined) continue;
    units=Array();
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className=="center") units.push(temp);
    }
    for (j = 0 ; j < units.length ; j++) {
      currentimage=units[j];
      currentimage.id="ImageGroupsGr"+i+"Im"+j;
      var imghead = document.createElement("div");
      var leftlink;
      var rightlink;
      if (j != 0) {
        leftlink = document.createElement("a");
        leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
        leftlink.innerHTML="◀";
        leftlink.title="Image précédente";
      } else {
        leftlink = document.createElement("span");
        leftlink.innerHTML="&nbsp;";
      }
      if (j != units.length - 1) {
        rightlink = document.createElement("a");
        rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
        rightlink.innerHTML="▶";
        rightlink.title="Image suivante";
      } else {
        rightlink = document.createElement("span");
        rightlink.innerHTML="&nbsp;";
      }
      var comment = document.createElement("tt");
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
      with(imghead) {
        style.fontSize="110%";
        style.fontweight="bold";
        appendChild(leftlink);
        appendChild(comment);
        appendChild(rightlink);
      }
      currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      if (j != 0) currentimage.style.display="none";
    }
  }
}
//addOnloadHook(imageGroup);
jQuery( function( ) {
   imageGroup();
});

// END Images
// ============================================================

// ============================================================
// BEGIN Texte défilant
// Permet d'afficher un texte défilant avec le modèle [[Modèle:Texte défilant]] 

var defilant_vars = new Array();
defilant_vars["span"] = new Array();
defilant_vars["texte"] = new Array();
defilant_vars["texteDef"] = new Array();
defilant_vars["Largeur"] = new Array();
defilant_vars["Tempo"] = new Array();
function defilant_init(){
     var Defilants = getElementsByClassName(document, "span", "defilant");
     if(!Defilants[0]) return;
     for(var a=0,l=Defilants.length;a<l;a++){
          Defilants[a].id = "Defilant_"+a;
          var Spans = Defilants[a].getElementsByTagName('span');
          var texte = getTextContent(Spans[0]).replace(/&nbsp;/g, " ");
          var texteDef = getTextContent(Spans[1]).replace(/&nbsp;/g, " ");
          var Tempo = parseInt(Spans[0].title.split(';;')[0]);
          if(typeof(Tempo)!="number") Tempo = 150;
          var Largeur = parseInt(Spans[0].title.split(';;')[1]);
          if(typeof(Largeur)!="number") Largeur = 20;
          while(texteDef.length < Largeur){
               texteDef += texte; 
          }
          defilant_vars["span"][a] = Spans[1];
          defilant_vars["texte"][a] = texte;
          defilant_vars["texteDef"][a] = texteDef;
          defilant_vars["Largeur"][a] = Largeur;
          defilant_vars["Tempo"][a] = Tempo;
          Spans[1].innerHTML = texteDef;
          defilant(a);
     }
}
//addOnloadHook(defilant_init);
jQuery( function( ) {
   defilant_init();
});

function defilant(a){
     defilant_vars["texteDef"][a] = defilant_vars["texteDef"][a].substring(1,defilant_vars["texteDef"][a].length) + defilant_vars["texteDef"][a].substring(0,1);
     defilant_vars["span"][a].innerHTML = defilant_vars["texteDef"][a];
     setTimeout("defilant("+a+")", defilant_vars["Tempo"][a]);
}

// END Texte défilant
// ============================================================
Wikiboo Outils personnels