Vejatz lo contengut

MediaWiki:Common.js

Un article de Wikipèdia, l'enciclopèdia liura.

Nòta : Aprèp aver publicat la pagina, vos cal forçar son recargament complet tot ignorant lo contengut actual de l'amagatal de vòstre navigador per veire los cambiaments : Mozilla / Firefox / Konqueror / Safari : mantenètz la tòca Majuscula (Shift) en clicant lo boton Actualizar (Reload,) o quichatz Maj-Ctrl-R (Maj-Cmd-R sus Apple Mac) ; Internet Explorer / Opera : mantenètz la tòca Ctrl en clicant lo boton Actualizar o quichatz Ctrl-F5.

/* N'impòrta quin JavaScript aicí serà cargat per un utilizaire quin que siá e per cada pagina accedida.

ATENCION : Abans de modificar aquesta pagina, testatz vòstres cambiaments amb vòstre monobook.js pròpri. Una error sus aquesta pagina pòt fara bugar lo sit entièr (e geinar l'ensemble dels
visitors), quitament mantuna ora aprèp la modificacion !

LEVAR PAS AQUÒ SIQUENON : remplaçament de las signaturas, substitucion dels modèls, ... : <nowiki>

/*************************************************************/
/* Foncions javascript : palian los limits de javascript */
/* Susvelhar : http://www.ecmascript.org/                   */
/*************************************************************/


/**
 * insertAfter : inserir un element dins una pagina
 */
function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling); 
}

/**
 * getElementsByClass : recercar los elements de la pagina que lo paramètre "class" es lo recercat
 */
function getElementsByClass(searchClass, node, tag) {
  if (node == null) node = document;
  if (tag == null) tag = '*';
  return getElementsByClassName(node, tag, searchClass);
}

/**
 * Divèrsas foncions manipulant las classas
 * Utiliza d'expressions regularas e un amagatal per de melhoras perfs
 * isClass e whichClass dempuèi http://oc.wikibooks.org/w/index.php?title=MediaWiki:Common.js&oldid=140211
 * hasClass, addClass, removeClass e eregReplace dempuèi http://drupal.org.in/doc/misc/drupal.js.source.html
 * susvelhar l'implementacion de .classList http://www.w3.org/TR/2008/WD-html5-diff-20080122/#htmlelement-extensions
 */
function isClass(element, classa) {
    return hasClass(element, classa);
}

function whichClass(element, classas) {
    var s=" "+element.className+" ";
    for(var i=0;i<classes.length;i++)
        if (s.indexOf(" "+classes[i]+" ")>=0) return i;
    return -1;
}
 
function hasClass(node, className) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}
 
function addClass(node, className) {
    if (hasClass(node, className)) {
        return false;
    }
    node.className += ' '+ className;
    return true;
}
 
function removeClass(node, className) {
  if (!hasClass(node, className)) {
    return false;
  }
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
  return true;
}

function eregReplace(search, replace, subject) {
    return subject.replace(new RegExp(search,'g'), replace);
}


/**
 * Recupèra la valor del cookie
 */
function getCookieVal(name) {
  var cookiePos = document.cookie.indexOf(name + "=");
  var cookieValue = false;
  if (cookiePos > -1) {
    cookiePos += name.length + 1;
    var endPos = document.cookie.indexOf(";", cookiePos);
    if (endPos > -1)
      cookieValue = document.cookie.substring(cookiePos, endPos);
    else
      cookieValue = document.cookie.substring(cookiePos);
  }
  return cookieValue;
}



/**********************************************************************************************************/
/* Foncions generalas MediaWiki (contornan las limitacions del logicial)                                   */
/* Surveiller : http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js?view=log  */
/**********************************************************************************************************/

/*
 * Foncions generalas d'aviada de foncions o d'escript
 * DEPRECIAT : utilizar addOnloadHook simplament
 */
function addLoadEvent(func) {
  addOnloadHook(func);
}

/**
 * Inserir un JavaScript d'una pagina particulara, idèa de Mickachu
 * DEPRECIAT : utilizar importScript que fa partida del logicial
 */
function loadJs(page) {
  importScript(page);
}

/**
 * Projècte JavaScript
 */
function obténer(name) {
  importScript('MediaWiki:Gadget-' + name + '.js');
}

/**
 * Transformar las paginas del Tavèrna, del BA e las paginas especificadas en pagina de discussion
 */
function TransformaEnDiscussion() {
  if(  (wgPageName.search('Wikipèdia:La_Tavèrna') != -1)
    || (wgPageName.search('Wikipèdia:Bulletin_dels_administrators') != -1)
    || document.getElementById('transformaEnPaginaDeDiscussion'))
    document.body.className = 'ns-talk';
}
addOnloadHook(TransformaEnDiscussion);

/**
 * Transformar d'unas paginas en pseudoarticle
 */
function TransformaEnArticle() {
   var transformaEnA = document.getElementById("transformaEnArticle");
   if(transformaEnA) document.body.className = "ns-0";
}
addOnloadHook(TransformaEnArticle);

/**
 *Apondre un boton a la fin de la barra d'espleches
 */
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
  mwCustomEditButtons[mwCustomEditButtons.length] =
    {"imageId": imageId,
     "imageFile": imageFile,
     "speedTip": speedTip,
     "tagOpen": tagOpen,
     "tagClose": tagClose,
     "sampleText": sampleText};
}



/****************************************/
/* Aplicacions per l'ensemble del sit */
/****************************************/

/**
 * Tot çò que concernís la pagina d'edicion
 * Veire MediaWiki:Common.js/edit.js per aquestas foncions
 */
if( wgAction == 'edit' || wgAction == 'submit' ) {
  importScript( 'MediaWiki:Common.js/edit.js' );
}

/**
 * Ligams d'accès dirèctes per la navigacion amb lo clavièr
 */
function showSkipLinks() {
  var jump_to_nav = document.getElementById('jump-to-nav');
  if( !jump_to_nav ) return;
  var skip_links = jump_to_nav.getElementsByTagName('A')[0];
  jump_to_nav.className='hidden';
  skip_links.onfocus=function() {
    jump_to_nav.className='';
  }
}
addOnloadHook(showSkipLinks);

/**
 * Reescritura dels títols
 *
 * Foncion utilizada per [[Modèl:Títol incorrèct]]
 * 
 * La foncion cèrca un bendèl de la forma
 * <div id="RealTitleBanner">
 *   <span id="RealTitle">títol</span>
 * </div>
 *
 * Un element comportant id="DisableRealTitle" desactiva la foncion
 */
function rewritePageH1() {
  var realTitleBanner = document.getElementById('RealTitleBanner');
  if (realTitleBanner) {
    if (!document.getElementById('DisableRealTitle')) {
      var realTitle = document.getElementById('RealTitle');
      var h1 = document.getElementsByTagName('h1')[0];
      if (realTitle && h1) {
        var titleText = realTitle.innerHTML;
        if (titleText == '') h1.style.display = 'none';
        else h1.innerHTML = titleText;
        realTitleBanner.style.display = 'none';
      }
    }
  }
}
addOnloadHook(rewritePageH1);

/**
 * Icònas de títol
 * 
 * Cerca las icònas de títol (class="icona_de_titol") e las
 * desplaça a drecha del títol de la pagina.
 * Deu èsser executat aprèp una correccion de títol eventuala.
 */
function IconasDeTitol() {
  var h1 = document.getElementsByTagName("h1")[0];
  var iconas = getElementsByClass( "icona_de_titol", document, "div" );
  for( var j = iconas.length; j > 0; --j ){
    iconas[j-1].style.display = "block"; /* anulla display:none per defaut */
    iconas[j-1].style.borderWidth = "1px";
    iconas[j-1].style.borderStyle = "solid";
    iconas[j-1].style.borderColor = "white";
    if( skin == "modern" ){
      iconas[j-1].style.marginTop = "0em";
    }
    h1.parentNode.insertBefore(iconas[j-1], h1); /* deplaçament de l'element */
  }
}
addOnloadHook(IconasDeTitol);

/**
 * Deplaçament de coordenadas qu'apareisson ennaut de la pagina 
 */
function moveCoord() {
  var h1 = document.getElementsByTagName("h1")[0];
  var coord = document.getElementById('coordinates');
  if ( !coord || !h1 ) return;
  coord.id = "coordinates-title";
  h1.insertBefore(coord, h1.firstChild);
}
addOnloadHook(moveCoord);

/**
 * Deplaçament dels [modificar]
 *
 * Correccion dels títols que s'afichan mal en rason de limitacions degudas a MediaWiki.
 * Aqueste escript deuriá poder èsser suprimit quand lo [[bugzilla:11555]] serà resolgut (comportament equivalent)
 *
 * Copyright 2006, Marc Mongenet. Licéncia GPL e GFDL.
 *
 * The function looks for <span class="editseccion">, and move them
 * at the end of their parent and display them inline in small font.
 * var oldEditseccionLinks=true disables the function.
 */
function setModifySectionStyle() 
{
 
        var process = function(list)
        {
                for(var i=0;i!=list.length;i++)
                {
                        var span=list[i].firstChild
 
                        if (span.className == "editseccion") 
                        {
                                span.style.fontSize = "xx-small";
                                span.style.fontWeight = "normal";
                                span.style.cssFloat = span.style.styleFloat = "none";
                                span.parentNode.appendChild(document.createTextNode(" "));
                                span.parentNode.appendChild(span);
                        }
                }
        }
 
        try 
        {
                if (!(typeof oldEditseccionLinks == 'undefined' || oldEditseccionLinks == false)) return;
                process(document.getElementsByTagName("h2"));
                process(document.getElementsByTagName("h3"));
                process(document.getElementsByTagName("h4"));
                process(document.getElementsByTagName("h5"));
                process(document.getElementsByTagName("h6"));
 
        }
        catch (e) { }
}
addOnloadHook(setModifySectionStyle);

/** 
 * Boitas desenrotlantas
 *
 * Per [[Modèl:Metapaleta de navigacion]]
 */
var autoCollapse = 2;
var collapseCaption = '[ Enrotlar ]';
var expandCaption = '[ Desenrotlar ]';

function collapseTable( tableIndex ) {
  var Button = document.getElementById( "collapseButton" + tableIndex );
  var Table = document.getElementById( "collapsibleTable" + tableIndex );
  if ( !Table || !Button ) return false;

  var Rows = Table.getElementsByTagName( "tr" ); 

  if ( Button.firstChild.data == collapseCaption ) {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = "none";
    }
    Button.firstChild.data = expandCaption;
  } else {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = Rows[0].style.display;
    }
    Button.firstChild.data = collapseCaption;
  }
}

function createCollapseButtons() {
  var tableIndex = 0;
  var NavigationBoxes = new Object();
  var Tables = document.getElementsByTagName( "table" );

  for ( var i = 0; i < Tables.length; i++ ) {
    if ( hasClass( Tables[i], "collapsible" ) ) {
      NavigationBoxes[ tableIndex ] = Tables[i];
      Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );

      var Button     = document.createElement( "span" );
      var ButtonLink = document.createElement( "a" );
      var ButtonText = document.createTextNode( collapseCaption );

      Button.style.styleFloat = "right";
      Button.style.cssFloat = "right";
      Button.style.fontWeight = "normal";
      Button.style.textAlign = "right";
      Button.style.width = "6em";

      ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
      ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
      ButtonLink.appendChild( ButtonText );

      Button.appendChild( ButtonLink );

      var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
      /* only add button and increment count if there is a header row to work with */
      if (Header) {
        Header.insertBefore( Button, Header.childNodes[0] );
        tableIndex++;
      }
    }
  }

  for (var i = 0; i < tableIndex; i++) {
    if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
  }
}
addOnloadHook(createCollapseButtons);

/**
 * Per [[Modèl:Boita desenrotlanta]] 
 */
var NavigationBarShowDefault = 0;
 
function toggleNavigationBar(indexNavigationBar) {
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
  if (!NavFrame || !NavToggle) return;
 
  // suscarga dels libellats desenrotlar/enrotlar gràcia a l'atribut title
  // exemple : title="[desenrotlat]/[enrotlar]"
  var caption = [expandCaption, collapseCaption];
  if (NavFrame.title && NavFrame.title.length > 0) {
    caption = NavFrame.title.split("/");
    if (caption.length < 2) caption.push(collapseCaption);
  }
 
  // if shown now
  if (NavToggle.firstChild.data == caption[1]) {
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'none';
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'none';
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[0];
    }
 
  // if hidden now
  } else if (NavToggle.firstChild.data == caption[0]) {
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'block';
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'block';
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[1];
    }
  }
}
 
// adds show/hide-button to navigacion bars
function createNavigationBarToggleButton() {
  var indexNavigationBar = 0;
  var NavFrame;
  // iterate over all < div >-elements
  for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) {
    // if found a navigacion bar
    if (hasClass(NavFrame, "NavFrame")) {
      indexNavigationBar++;
      var NavToggle = document.createElement("a");
      NavToggle.className = 'NavToggle';
      NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
      NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
      // suscarga dels libellats desenrotlar/enrotlar gràcia a l'atribut title
      var caption = collapseCaption;
      if (NavFrame.title && NavFrame.title.indexOf("/") > 0) {
         caption = NavFrame.title.split("/")[1];
      }

      var NavToggleText = document.createTextNode(caption);
      NavToggle.appendChild(NavToggleText);
 
      // add NavToggle-Button as first div-element 
      // in <div class="NavFrame">
      NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
      NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
    }
  }
  // if more Navigation Bars found than Default: hide all
  if (NavigationBarShowDefault < indexNavigationBar) {
    for( var i=1; i<=indexNavigationBar; i++ ) {
      toggleNavigationBar(i);
    }
  }
}
addOnloadHook(createNavigationBarToggleButton);

/**
 * WikiMiniAtlàs
 *
 * veire WP:WMA 
 */
if (wgServer == "https://secure.wikimedia.org") {
  var metaBase = "https://secure.wikimedia.org/wikipedia/meta";
} else {
  var metaBase = "http://meta.wikimedia.org";
}
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400")

var wma_settings = { 
  buttonImage: '/media/wikipedia/commons/thumb/e/e9/Geographylogo.svg/18px-Geographylogo.svg.png'
}

/**
 * Utilizacion del modèl Modèl:Imatges
 */
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(){
  if (document.URL.match(/printable/g)) return;
  var bc=document.getElementById("bodyContent");
  if( !bc ) bc = document.getElementById("mw_contentholder");
  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="?";
      } 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="?";
      } 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);

/**
 * Apondon d'un estil particular als ligams interlengas cap a un bon article o
 * un article de qualitat
 */
function ligamAdQouBAouPdQ() {
  // links are only replaced in p-lang
  var pLang = document.getElementById("p-lang");
  if (!pLang) return;
  var lis = pLang.getElementsByTagName("li");
  var l = lis.length
  
  if(wgNamespaceNumber==0)
	for (var i=0; i<l; i++) 
	{
		// ADQ- es intencional per correspondre al modèl Ligam AdQ, on
		// deu pas èsser corregit.
		if (document.getElementById("BA-" + lis[i].className)) {
		lis[i].className += " BA";
		lis[i].title = "Ligam cap a un bon article";
		} else if (document.getElementById("ADQ-" + lis[i].className)) {
		lis[i].className += " AdQ";
		lis[i].title = "Ligam cap a un article de qualitat";
		} 
	}
  else if(wgNamespaceNumber==100)
	for (var i=0; i<l; i++) 
	{
		if (document.getElementById("PdQ-" + lis[i].className)) {
		lis[i].className += " AdQ";
		lis[i].title = "Ligam cap a un portal de qualitat";
		}
	}
}
addOnloadHook(ligamAdQouBAouPdQ);

/**
 * Redirect cap a wikibooks etc.
 *
 */
var redirectedFromArticleDatas = new Array(
   new Array('Wikipèdia:Redirect_vèrs_Wikibooks', 'wikibooks'),
   new Array('Wikipèdia:Redirect_vèrs_Wikisource', 'wikifont'),
   new Array('Wikipèdia:Redirect_vèrs_Wikiversité', 'wikiversity'),
   new Array('Wikipèdia:Redirect_vèrs_Wikiquote', 'wikiquote'),
   new Array('Wikipèdia:Redirect_vèrs_Wikinews', 'wikinews'),
   new Array('Wikipèdia:Redirect_vèrs_Wiktionnaire', 'wiktionary')
);

function redirectedFromArticle() {
   if (wgIsArticle == false)
       return;
   for (var i = 0; i < redirectedFromArticleDatas.length; ++i) {
     var pagina_match = redirectedFromArticleDatas[i];
     var index = wgPageName.indexOf(page_match[0]);
     if (index == 0) {
        var div = document.getElementById('contentSub');
        var span = document.getElementById('redirected_from');
        // real target is always encoded in the anchor.
        target = window.location.hash;
        if (!div || !span || target == '')
            break;

        target = target.slice(1);
        // Konqueror 3.5 work around
        if (target.indexOf('#') == 0)
            target = target.slice(1);
        target = target.split('.23');
        target[0] = target[0].replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
        var quoted = target[0]
        if (target[1].length)
            quoted += '#' + target[1]
        quoted = quoted.replace(/%2F/g, '/');
        var display = target[2]
        display = display.replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
        display = decodeURI(display);
        display = display.replace(/_/g, ' ');

        var e = document.createElement('A');
        e.href = 'http://fr.' + pagina_match[1] + '.org/wiki/' + quoted;
        e.innerHTML = display;
        span.replaceChild(e, span.firstChild);
        break;
     }
   }
}
addOnloadHook(redirectedFromArticle);

/**
 * Deplaça los ligams portals cap a la boita de categoria
 * 
 * Copyright 2007, fr:user:Aoineko. Licéncia GFDL e GPL.
 */
var gUseMovePortalToCategoryBox = 1;

function movePortalToCategoryBox() {
   if(!gUseMovePortalToCategoryBox)
      return;

   // search for portals
   var div_portal = document.getElementById('portallinks');
   if(div_portal && (div_portal.className == 'movable')) {
      div_portal.style.display = 'none'; // hide the portal div
      var div_cat = document.getElementById('catlinks'); // get cat div
      if(!div_cat) { // no category box ? then create it
         var div_foot;
         var divs = document.getElementsByTagName('div');
         for(var i = 0; i < divs.length ; i++)
            if(divs[i].className == 'printfooter')
               div_foot = divs[i];
         div_cat = document.createElement("div");
         div_cat.setAttribute('id', 'catlinks');
         div_foot.parentNode.insertBefore(div_cat, div_foot); 
      }
      div_cat.innerHTML = div_portal.innerHTML + '<hr/>' + div_cat.innerHTML;
   }
}
addOnloadHook(movePortalToCategoryBox);

/**
 * Permet d'afichar las categorias amagadas pels contributors enregistrats, en apondent un (+) coma dins las boitas desenrotlantas
 */
function hiddencat()
{
 if(document.URL.indexOf("printable=yes")!=-1) return;
 var cl = document.getElementById('catlinks'); if(!cl) return;
 if( !(hc = document.getElementById('mw-hidden-catlinks')) ) return;
 if( hasClass(hc, 'mw-hidden-cats-user-shown') ) return;
 var nc = document.getElementById('mw-normal-catlinks');
 if( !nc )
 {
  var catline = document.createElement('div');
  catline.id = 'mw-normal-catlinks';
  var a = document.createElement('a');
  a.href = '/wiki/Categoria:Acuèlh';
  a.title = 'Categoria:Acuèlh';
  a.appendChild(document.createTextNode('Categorias'));
  catline.appendChild(a);
  catline.appendChild(document.createTextNode(' : '));
  nc = cl.insertBefore(catline, cl.firstChild);
 }
 else nc.appendChild(document.createTextNode(' | '));
 var lnk = document.createElement('a');
 lnk.id = 'mw-hidden-cats-link';
 lnk.title = 'Aqueste article conten de categorias amagadas';
 lnk.style.cursor = 'puntar';
 lnk.style.color = 'black';
 lnk.onclick = toggleHiddenCats;
 lnk.appendChild(document.createTextNode('[+]'));
 hclink = nc.appendChild(lnk);
}
function toggleHiddenCats()
{
 if( hasClass(hc, 'mw-hidden-cats-hidden') )
 {
  removeClass(hc, 'mw-hidden-cats-hidden');
  addClass(hc, 'mw-hidden-cat-user-shown');
  changeText(hclink, '[–]');
 }
 else
 {
  removeClass(hc, 'mw-hidden-cat-user-shown');
  addClass(hc, 'mw-hidden-cats-hidden');
  changeText(hclink, '[+]');
 }
}
addOnloadHook(hiddencat);

/**
 * Escript per alternar entre doas mapas de geolocalizacion
 */
addOnloadHook(function(){ 
  var cont;
  if(!(wgAction=="view") || !(cont=getElementsByClass('img_toogle')[0])) return;
  cont=getElementsByClass('img_toogle');
  for (var i = 0; i < cont.length ; i++) {
    cont.box = getElementsByClass('geobox',cont[i]);
    cont.box[0].style.display='none';
    cont.box[1].style.borderTop='0';
    var toogle = document.createElement('a');
    toogle.appendChild(document.createTextNode(cont.box[0].getElementsByTagName('img')[0].alt));
    toogle.href='#';
    toogle.className='a_toogle';
    toogle.status = 1;
    toogle.onclick = function() {
      this.removeChild(this.firstChild);
      div0 = getElementsByClass('geobox',this.parentNode)[0];
      div1 = getElementsByClass('geobox',this.parentNode)[1];
      alt0 = div0.getElementsByTagName('img')[0].alt;
      alt1 = div1.getElementsByTagName('img')[0].alt;
      if(this.status==0) {
        div0.style.display='none';
        div1.style.display='';
        this.status=1;
        this.appendChild(document.createTextNode(alt0));
      } else {
        div0.style.display='';
        div1.style.display='none';
        this.status=0;
        this.appendChild(document.createTextNode(alt1));
      }
      return false;
    }
  cont[i].insertBefore(toogle, cont.box[1].nextSibling);
  }
});

/**
 * permet d'apondre un pichon ligam (per exemple d'ajuda) a la fin del títol d'una pagina.
 * known bug : conflicte amb lo cambiament de títol classic.
 * Pels comentaris, mercés de contactar [[user:Plyd|Plyd]].
 */
function rewritePageH1bis() {
  try {
    var helpPage = document.getElementById("helpPage");
    if (helpPage) {
      var helpPageURL = document.getElementById("helpPageURL");
      var h1 = document.getElementsByTagName("h1")[0];
      if (helpPageURL && h1) {
        h1.innerHTML = h1.innerHTML + '<span id="h1-helpPage">' + helpPageURL.innerHTML + '</span>';
        helpPage.style.display = "none";
      }
    }
  } catch (e) {
    /* Something went wrong. */
  }
}
addOnloadHook(rewritePageH1bis);


/**************************************************************/
/* Estrictament especificas a un espaci de nom o a una pagina */
/**************************************************************/

// ESPACI DE NOM 'ARTICLE'
if( wgNamespaceNumber == 0 ) {


} // Fin del còde concernent l'espaci de nom 'Article'


// PAGINA D'ACUÈLH
if( wgTitle == 'Acuèlh' ) {

/**
 * Supression del títol sus la pagina d'acuèlh, 
 * cambiament de l'onglet e ligam cap a la tièra complèta de las Wikipèdias dempuèi l'acuèlh
 */
function mainPageTransform(){
  if(wgPageName != 'Acuèlh' && wgPageName != 'Discutir:Acuèlh') return;
  try {
    document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Acuèlh';
  } catch (e) { /* Error : l'aparéncia gerís pas los onglets */ }
  if(wgPageName == 'Acuèlh' && wgIsArticle) addPortletLink('p-lang', 'http://www.wikipedia.org/', 'Tièra complèta', 'interwiki-tièracomplèta', 'Tièra complèta de las Wikipèdias');
}
addOnloadHook(mainPageTransform);

/**
 * Amagatal quadres de l'acuèlh
 *
 * Apondís un ligam sus la pagina d'acuèlh per amagar aisidament los quadres
 * Memorizat per cookie.
 * Copyright 2007, fr:user:Plyd e fr:User:IAlex. Licéncia GFDL e GPL.
 */
var cookieCacheCadresName = "amagaQuadresAcuelh";
var AmagaQuadresVal = {};
var totalQuadresAcuelh = 0;

function afQuadreAcuelh(id) {
  visible = AmagaQuadresVal[id] = (!AmagaQuadresVal[id]);
  getElementsByClass('acuelh_contengut',null,'div')[id].style.display = visible ? 'block' : 'none';
  document.getElementById('AmagaQuadreAcuelh' + id).innerHTML = visible ? 'amagar' : 'afichar';
  sauverCookieAcuelh();
}

function salvarCookieAcuelh() {
  var date = new Date();
  date.setTime(date.getTime() + 30*86400*1000);
  var val = 0;
  for ( var i=0; i< totalQuadresAcuelh ; i++ ) {
    if (!AmagaQuadresVal[i]) val = val | Math.pow(2,i);
  }
  document.cookie = cookieAmagaQuadresName + "=" + val + "; expires="+date.toGMTString() + "; path=/";
}

function LigamsQuadresAcuelh() {
  if (wgPageName != "Acuèlh") return;
  cookieQuadresAcuelh = getCookieVal(cookieAmaghaQuadresName);
  for ( var i=0; i<5; i++) { 
    var titol = getElementsByClass('headergris',document,'h2')[i];
    if (!titol) break;
    titol.innerHTML += " <span style='font-size: xx-small; font-weight: normal; float: none; margin-right:100px' class='editseccion'>[<a id='AmagaQuadreAcuelh" + i + "' href='javascript:afQuadreAcuelh(" + i + ");'>amagar</a>]</span>";
    AmagaQuadresVal[i] = true;
    totalQuadresAcuelh++;
  }
  cookieQuadresAcuelh = getCookieVal(cookieAmagaQuadresName);
  for ( var i=0; i< totalQuadresAcuelh ; i++ ) {
    n =Math.pow(2,i);
    aff = !(cookieQuadresAcuelh & n);
    if (!aff) afQuadreAcuelh(i);
  }
}
addOnloadHook(LigamsQuadresAcuelh);
} // Fin del còde concernent la pagina d'acuèlh


// ESPACI DE NOM 'SPECIAL'
if( wgNamespaceNumber == -1 ) {

/**
 * Afichar una explicacion al nombre de caractèrs dins la lista de seguit
 */
function toolTipPlusMinus() {
  if(wgCanonicalSpecialPageName != "Watchlist") return
  var tt = "Nombre de caractèrs d'escart entre las doas darrièras versions de la pagina";
  var elmts = document.getElementsByTagName("span");
  for(var cpt = 0; cpt < elmts.length; cpt++) {
    if (/mw-plusminus-(pos|neg|null)/.test(elmts[cpt].className) || /mw-plusminus-(pos|neg|null)/.test(elmts[cpt].getAttribute("class")))
      elmts[cpt].title = tt;
  }
}
addOnloadHook(toolTipPlusMinus);

/**
 * Modifica Special:Search per poder utilizar diferents motors de recèrca,
 * disponibles dins una boita desenrotlanta.
 * Autors : Jakob Voss, Guillaume, importat dempuèi la Wiki alemanda
 * <pre><nowiki>
 */

function externalSearchEngines() {
  if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
  if (wgPageName != "Especial:Recèrca") return;
 
  var mainNode;
  if (document.forms["search"]) { 
    mainNode = document.forms["search"];
  } else {
    mainNode = document.getElementById("powersearch");
    if (!mainNode) return;
    var mainNode = mainNode.lastChild;
    if (!mainNode) return;
 
    while(mainNode.nodeType == 3) {
      mainNode = mainNode.previousSibling;
    }
  }
 
  var firstEngine = "mediawiki";
 
  var choices = document.createElement("div");
  choices.setAttribute("id","searchengineChoices");
  choices.style.textAlign = "center";
 
  var lsearchbox = document.getElementById("powerSearchText");
  var initValue = lsearchbox.value;
 
  var space = "";

  for (var id in searchEngines) {
    var engine = searchEngines[id];
if(engine.ShortName)
   {
    if (space) choices.appendChild(space);
    space = document.createTextNode(" ");
 
    var attr = { 
      type: "radio", 
      name: "searchengineselect",
      value: id,
      onFocus: "changeSearchEngine(this.value)",
      id: "searchengineRadio-"+id
    };
 
    var html = "<input";
    for (var a in attr) html += " " + a + "='" + attr[a] + "'";
    html += " />";
    var span = document.createElement("span");
    span.innerHTML = html;
 
    choices.appendChild( span );
    var label = document.createElement("label");
    label.htmlFor = "searchengineRadio-"+id;
  
    label.appendChild( document.createTextNode( engine.ShortName ) );
    choices.appendChild( label );
  }
 }
  mainNode.appendChild(choices);
 
  var input = document.createElement("input");
  input.id = "searchengineextraparam";
  input.type = "hidden";
 
  mainNode.appendChild(input);

  changeSearchEngine(firstEngine, initValue);
}
 
function changeSearchEngine(selectedId, searchTerms) {

  var currentId = document.getElementById("searchengineChoices").currentChoice;
  if (selectedId == currentId) return;
 
  document.getElementById("searchengineChoices").currentChoice = selectedId;
  var radio = document.getElementById('searchengineRadio-'  + selectedId);
  radio.checked = "checked";
 
  var engine = searchEngines[selectedId];
  var p = engine.Template.indexOf('?');
  var params = engine.Template.substr(p+1);
 
  var form;
  if (document.forms["search"]) {
    form = document.forms["search"];
  } else {
    form = document.getElementById("powersearch");
  }
  form.setAttribute("action", engine.Template.substr(0,p));
 
  var l = ("" + params).split("&");
  for (var i in l) {
    var p = l[i].split("=");
    var pValue = p[1];
 
    if (pValue == "{language}") {
    } else if (pValue == "{searchTerms}") {
      var input;
      if (document.forms["search"]) {
        input = document.getElementById("searchText");
      } else {
        input = document.getElementById("powerSearchText");
      } 
 
      input.name = p[0];
    } else {
      var input = document.getElementById("searchengineextraparam");
 
      input.name = p[0];
      input.value = pValue;
    }
  }
}
if (wgPageName == "Especial:Recèrca") {
var searchEngines = {
  mediawiki: {
    ShortName: "Recèrca intèrna",
    Template: "/w/index.php?search={searchTerms}"
  },
  exalead: {
    ShortName: "Exalead",
    Template: "http://www.exalead.com/wikipedia/results?q={searchTerms}&language=fr"
  },
  google: {
    ShortName: "Google",
    Template: "http://www.google.fr/search?as_sitesearch=fr.wikipedia.org&hl={language}&q={searchTerms}"
  },
  wikiwix: {
    ShortName: "Wikiwix",
    Template: "http://www.wikiwix.com/index.php?action={searchTerms}&lang={language}"
  },
 
  wlive: {
    ShortName: "Windows Live",
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://fr.wikipedia.org"
  },
  yahoo: {
    ShortName: "Yahoo!",
    Template: "http://fr.search.yahoo.com/search?p={searchTerms}&vs=fr.wikipedia.org"
  },
globalwpsearch: {
    ShortName: "Global WP",
    Template: "http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=120&search={searchTerms}"
  }
};
addOnloadHook(externalSearchEngines);
}

} // Fin del còde concernent l'espaci de nom 'Special'


// ESPACI DE NOM 'UTILIZAIRE'
if( wgNamespaceNumber == 2 ) {

/* En fasa de tèst */
/* DEBUTA DEL CODE JAVASCRIPT DE "QUADRE D'ONGLETS"
    Foncionament del [[Modèl:Quadre d'onglets]]
    Modèl implantat per User:Peleguer de http://ca.wikipedia.org
    Actualizat per User:Joanjoc de http://ca.wikipedia.org
    Traduccion e adaptacion User:Cedric31*/
function QuadreOngletInit(){
 // retorn se endacòm mai que sus l'Espaci d'utilizaire, 
 // sabent qu'es una orror al nivèl de l'accessibilitat
 // e qu'es impossible de "recuperar" o de reciclar aqueste escript
 if (wgCanonicalNamespace != 'User') return;  
  var i=0       
  for (i=0;i<=9;i++){
     var vMb = document.getElementById("mb"+i);
     if (!vMb) break;
 
     var j=1    
     var vOgIni = 0  
     for (j=1;j<=9;j++){
        var vBt = document.getElementById("mb"+i+"bt"+j);
        if (!vBt) break;
        vBt.onclick = QuadreOngletVeireOnglet;          
        if (vBt.className=="mbBotonSel") vOgIni=j;  
     }

     if (vOgIni == 0) { 
         vOgIni = 1+Math.floor((j-1)*Math.random()) ;
         document.getElementById("mb"+i+"og"+vOgIni).style.display = "block";
         document.getElementById("mb"+i+"og"+vOgIni).style.visibility = "visible";
         document.getElementById("mb"+i+"bt"+vOgIni).className="mbBotonSel";
     } 
  }
 }
 
 function QuadreOngletVeireOnglet(){
  var vMbNom = this.id.substr(0,3); 
  var vIndex = this.id.substr(5,1); 
 
  var i=1
  for (i=1;i<=9;i++){        
        var vOgElem = document.getElementById(vMbNom+"og"+i);
        if (!vOgElem) break;
        if (vIndex==i){ 
                vOgElem.style.display = "block";
                vOgElem.style.visibility = "visible";
                document.getElementById(vMbNom+"bt"+i).className="mbBotonSel";
        } else {             
                vOgElem.style.display = "none";
                vOgElem.style.visibility = "hidden";
                document.getElementById(vMbNom+"bt"+i).className="mbBoton";
        }
  }
  return false; 
}
addOnloadHook(QuadreOngletInit);
/*FIN DEL CÒDE JAVASCRIPT DE "QUADRE D'ONGLETS"*/
} // Fin del còde concernent l'espaci de nom 'Utilizaire'


// ESPACI DE NOM 'REFERÉNCIA'
if( wgNamespaceNumber == 104 ) {

/*
 * Causida del mòde d'afichatge de las referéncias
 * @nòta L'òrdre d'aquesta lista deu correspondre a lo de Modèl:Edicion !
 */

function addBibSubsetMenu() {
  var specialBib = document.getElementById('specialBib');
  if (!specialBib) return;

  specialBib.style.display = 'block';
  menu = '<select style="display:inline;" onChange="chooseBibSubset(selectedIndex)">'
   + '<option>Tièra</option>'
   + '<option>WikiNòrma</option>'
   + '<option>BibTeX</option>'
   + '<option>ISBD</option>'
   + '<option>ISO690</option>'
   + '</select>';
  specialBib.innerHTML = specialBib.innerHTML + menu;
  
  /* default subset - try to use a cookie some day */
  chooseBibSubset(0);
}

// select subseccion of special characters
function chooseBibSubset(s) {
  var l = document.getElementsByTagName('div');
  for (var i = 0; i < l.length ; i++) {
    if(l[i].className == 'BibList')   l[i].style.display = s == 0 ? 'block' : 'none';
    else if(l[i].className == 'WikiNòrma') l[i].style.display = s == 1 ? 'block' : 'none';
    else if(l[i].className == 'BibTeX')    l[i].style.display = s == 2 ? 'block' : 'none';
    else if(l[i].className == 'ISBD')      l[i].style.display = s == 3 ? 'block' : 'none';
    else if(l[i].className == 'ISO690')    l[i].style.display = s == 4 ? 'block' : 'none';
  }
}
addOnloadHook(addBibSubsetMenu);
} // Fin del còde que concernís l'espaci de nom 'Referéncia'

if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++){
			if(this[i]==obj){
				return i;
			}
		}
		return -1;
	}
}

//</nowiki>