Aller au contenu

Utilisateur:DC2/monobook.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
//====================================fonctions communes
function MygetObj(name) { 
 if (document.getElementById) {
    this.obj = document.getElementById(name);
 } else if (document.all) {
    this.obj = document.all[name];
 } else if (document.layers) {
    this.obj = document.layers[name];
 }
} //endGetObj


function getHTTPObject() {
  var xmlhttp = false;
  /* on teste la présence des fonctions */
    /*@cc_on  
    @if (@_jscript_version >= 5)
      try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
        try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) {
          xmlhttp = false;
          }
        }
    @else
      xmlhttp = false;
    @end @*/
  /* fin du test */
  /* on essaie de créer l'objet si ce n'est pas déjà fait */
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      } catch (e) {
      xmlhttp = false;
      }
    }
  return xmlhttp;
}




//==============================Outils Javascript Wikipompiers 
function InitWikiPompiers() {
  if (MenuJavascriptWPP || (OptionCompteurWPP==1)) { //menu à insérer
    var l = new MygetObj("column-one");
    if (l.obj) {if (l.obj.innerHTML) {
      l.obj.innerHTML = '<div class="portlet" id="CadreAlerteWikipompiers">'
       + '<h5>Wikipompiers</h5><div class="pBody" style="font-size:small;" id="MenuJavascriptWikipompiers">'
       + '<small>(attente du serveur)</small>'
       + '</div></div>'
       + l.obj.innerHTML;
    }}//fin deux if l.obj
  } // fin if menu à insérer
  if (MenuJavascriptWPP) { //on active d'abord le menu :
     LancementMenuJavascriptWPP();
     //  l'option compteur est lancée depuis cette fonction
  } else { // pas de MenuJavascriptWPP :
     if (OptionCompteurWPP) LancementOptionCompteurWPP();
  }
} //fin fonction InitWikipompiers

//-------
function LancementMenuJavascriptWPP() {
  var HTTPWikiPompiers = new getHTTPObject();
  if (HTTPWikiPompiers) {// requête HTTPWikiPompiers:
     HTTPWikiPompiers.open('GET', 'http://fr.wikipedia.org/wiki/Modèle:Ligne_Wikipompiers/MenuJavascript/Menu?action=render', true);
     
     HTTPWikiPompiers.onreadystatechange = function () {
      if (HTTPWikiPompiers.readyState == 4) { 
         var l = new MygetObj("MenuJavascriptWikipompiers");
         if (l.obj) {if (l.obj.innerHTML) {
           l.obj.innerHTML = HTTPWikiPompiers.responseText;
         }}
         if (OptionCompteurWPP) LancementOptionCompteurWPP();
       }//fin if readystate == 4 
     }// fin fonction onreadystatechange

  HTTPWikiPompiers.send(null); 
  }//fin de requête HTTPWikiPompiers
}// fin fonction LancementMenuJavascriptWPP

// --------Option Compteur Wiki
WPPCookN='stampMenuWpp='; //terminer par un '=' final
//structure du cookie complet :
//timestamp du dernier clic sur Vu (.getTime() sinon 0 par défaut)
//puis (espace) 2-00000000 (niveau du feu 2 ou 3, tiret, réf du feu)
// la référence du feu est urlencode (donc ne contient pas d'espace)
//pareil pour chaque feu remarquable.
// s'il n'y a aucun feu, il y a toujours un espace après la date



if (document.cookie) {
  WPPCookOK=true;
 } else {
  document.cookie = WPPCookN+'0';
  if (document.cookie)  WPPCookOK=true; else WPPCookOK=false;
}

function CookBandeauWPPVu(stamp) {//cookN termine par '='
  document.cookie = WPPCookN+stamp+'; expires=' + (new Date((new Date()).getTime()+60*24*3600000)).toGMTString() +'; path=/';  
  var l = new MygetObj("CompteurFeuxWPP");
  if (l.obj) {if (l.obj.innerHTML) l.obj.innerHTML=''; l.obj.style.display='none';}
}

function LancementOptionCompteurWPP() { 
  var l = new MygetObj("MenuJavascriptWikipompiers");
  if (l.obj) {if (l.obj.innerHTML) {
     var Cetexte='<div style="font-size:80%; padding-left:.5ex;" id="CompteurFeuxWPP">(comptage des feux)</div>'
     if (MenuJavascriptWPP) l.obj.innerHTML=Cetexte+l.obj.innerHTML; 
      else l.obj.innerHTML=Cetexte;
  }}
  var l = new MygetObj("CompteurFeuxWPP");
  if (l.obj) {if (l.obj.innerHTML) {
	  var HTTPWikiPompiers = new getHTTPObject();
	  if (HTTPWikiPompiers) {// requête HTTPWikiPompiers:
	  HTTPWikiPompiers.open('GET','http://fr.wikipedia.org/wiki/Wikipédia:Wikipompiers?action=render&ctype=text/css', true);
	
	  HTTPWikiPompiers.onreadystatechange = function () {
	   if (HTTPWikiPompiers.readyState == 4) {  
		var Statuts = HTTPWikiPompiers.responseText.match(/class\s*=\s*"StatutWPP2"/gi);


try {
var Tt = HTTPWikiPompiers.responseText.match(/\sid="WPP.-[^"]*"/g).join(' ').replace(/\sid="WPP/g,'').replace(/"/g,'');
var TTT = Tt.split(' ');
} catch (e) {var TTT=new Array(0); var Tt='';}
Tt=(new Date()).getTime()+' '+Tt; //Toujours un espace même si Tt vide



		var stamp=Tt; 		// récupération ancien stamp dans cookie :
		var cookDeb = document.cookie.indexOf(WPPCookN); 
		var cookFIN = document.cookie.indexOf(';',cookDeb);
                if (cookFIN ==-1) cookFIN =document.cookie.length;
		var cookVal = document.cookie.substring(cookDeb+WPPCookN.length,cookFIN); 
		
var WikiFeuNew=0; var WikiFeuAide=0; 
for (var i in TTT) {
  if (!cookVal.match(' '+TTT[i])) {  
    switch (TTT[i].substring(0,1)) {
     case '2': WikiFeuNew++; break; 
     case '3': WikiFeuAide++; break;
    }
  }
}
		
		
		
		//affichage du résultat s'il y en a un
		if ((WikiFeuAide+WikiFeuNew>0)  ) { //&& (cookVal!=stamp)
		 if (OptionCompteurWPP==1) {
			  if (WPPCookOK) {
				texte='<a title="Masquer quelques temps sauf si changement" href="javascript:CookBandeauWPPVu(\''+stamp+'\')">&nbsp;<i>-Vu</i></a>';
			  } else {
				texte='';
			  }
			  l.obj.innerHTML='Aides demandées:'+WikiFeuAide
				  +'<br>'
				  +'Feux nouveaux:'+WikiFeuNew
				  +texte;
			  with (l.obj.style) {background='#FF0'; border='solid #F00 thin';}
		 } else if (OptionCompteurWPP==2) {
			  if (WPPCookOK) {
				texte="\n\n(Ce message se réaffiche après quelques temps OU dès changement de la page WPP)";
			  } else {
				texte='';
			  }
			  l.obj.style.display='none'; //effacement du message d'attente
			  alert("Alertes Wikipompiers\n\nAides demandées:"+WikiFeuAide+"\nFeux nouveaux:"+WikiFeuNew+texte);
			  CookBandeauWPPVu(stamp,(new Date((new Date()).getTime()+UpdateTimeWPP*24*3600000)).toGMTString());
		   }
		} else {
		   l.obj.innerHTML="<small>(pas d'appel nouveau)</small>"; //effacement du message d'attente
		} // fin test si résultat à afficher
	   }//fin if readystate == 4 
	  }// fin fonction onreadystatechange
	  HTTPWikiPompiers.send(null); 
	  }//fin de requête HTTPWikiPompiers
	}}//fin if object CompteurFeuxWPP
} //fin fonction LancementOptionCompteurWPP



//--------------Lancement commun au Menu et à l'Option

MenuJavascriptWPP= true ;
  //pour désactiver temporairement le MenuJavascript WPP,
  //  remplacer ci-dessus true par false.

OptionCompteurWPP= 1 ; 
  //modifier la valeur ci-dessus pour changer l'affichage du Compteur WPP,
  // (0=compteur désactivé / 1=bandeau dans le menu / 2=message navigateur)

UpdateTimeWPP= 10 ; //compteur réaffiché après UpdateTimeWPP jours même sans changement

$(InitWikiPompiers);










//=====================================
function nouvelOnglet() {
 var a = document.getElementById("p-cactions");
 if (a) {
   b = a.getElementsByTagName("ul");
   if(b.length > 0) {

      var c = document.getElementById("wpSave");
      if (c) {
         b[0].innerHTML +=
            '<li  class="selected"><a href="#editpage-copywarn"><small>[sauve]</small></a></li>'
          + '<li><a href="#wpTextbox1"><small>[Texte]</small></a></li>'
          + '<li class="selected"><a href="#globalWrapper">[Haut]</a></li>';
      } else {
         b[0].innerHTML += 
            '<li class="selected"><a href="#globalWrapper">[Haut]</a></li>'
          + '<li class="selected"><a href="#footer">[Bas]</a></li>';
      }//fin if c
    } // fin if b
 } // fin if a

with ((navigator.appName).toLowerCase()) {
  if ((indexOf('mac',0)<0)&&(indexOf('microsoft',0)<0)) {
        var l = new MygetObj('p-personal');
        if (l.obj) {with (l.obj.style) {position='fixed';}}
        l = new MygetObj('toolbar');
        if (l.obj) {with (l.obj.style) {top='2em'; width='3em'; right='0';position='fixed';}}
        l = new MygetObj('p-cactions');
        if (l.obj)  {with (l.obj.style) {position='fixed';}}
  }
}
} // fin nouvelOnglet
      
$(nouvelOnglet);