MediaWiki:Common.js : Diferéncia entre lei versions

Un article de Wikipèdia, l'enciclopèdia liura.
Contengut suprimit Contengut apondut
Cedric31 (discussion | contribucions)
Modif
Spacebirdy (discussion | contribucions)
m iconas
Linha 229 : Linha 229 :
var h1 = document.getElementsByTagName("h1")[0];
var h1 = document.getElementsByTagName("h1")[0];
var iconas = getElementsByClass( "icona_de_titol", document, "div" );
var iconas = getElementsByClass( "icona_de_titol", document, "div" );
for( var j = icones.length; j > 0; --j ){
for( var j = iconas.length; j > 0; --j ){
iconas[j-1].style.display = "block"; /* anulla display:none per defaut */
iconas[j-1].style.display = "block"; /* anulla display:none per defaut */
iconas[j-1].style.borderWidth = "1px";
iconas[j-1].style.borderWidth = "1px";

Version del 17 novembre de 2008 a 21.07

/**
 * Un JavaScript que qué siá 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> /!\ Levatz pas aquesta balisa
 */

/*************************************************************/
/* 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)                                   */
/* Susvelhar : 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="[desenrotlament]/[enrotlament]"
  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: 'http://upload.wikimedia.org/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 ligamAdQoBAoPdQ() {
  // links are only replaced in p-lang
  if(window.disableFeaturedInterwikiLinks!=undefined) return
  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(ligamAdQoBAoPdQ);

/**
 * Redirect cap a wikibooks etc.
 *
 */
var redirectedFromArticleDatas = new Array(
   new Array('Wikipèdia:Redirect_cap_a_Wikilibres', 'wikibooks'),
   new Array('Wikipèdia:Redirect_cap_a_Wikifont', 'wikifont'),
   new Array('Wikipèdia:Redirect_cap_a_Wikiversitat', 'wikiversity'),
   new Array('Wikipèdia:Redirect_cap_a_Wikiquote', 'wikiquote'),
   new Array('Wikipèdia:Redirect_cap_a_Wikinews', 'wikinews'),
   new Array('Wikipèdia:Redirect_cap_a_Wikiccionari', 'wiktionary')
);

function redirectedFromArticle() {
   if (wgIsArticle == false)
       return;
   for (var i = 0; i < redirectedFromArticleDatas.length; ++i) {
     var page_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://oc.' + page_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")) return

  cont=getElementsByClass('img_toogle', document.getElementById('bodyContent'));
  if(cont.length==0) return

  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-listacomplèta', 'Lista complèta de las Wikipèdias');
}
addOnloadHook(mainPageTransform);

/**
 * Amaga 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(cookieAmagaQuadresName);
  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=oc.wikipedia.org&hl={language}&q={searchTerms}"
  },
  wikiwix: {
    ShortName: "Wikiwix",
    Template: "http://oc.wikiwix.com/index.php?action={searchTerms}&lang={language}"
  },
 
  wlive: {
    ShortName: "Windows Live",
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://oc.wikipedia.org"
  },
  yahoo: {
    ShortName: "Yahoo!",
    Template: "http://fr.search.yahoo.com/search?p={searchTerms}&vs=oc.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>Lista</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;
	}
}

/*
* Foncion
*
* Recupèra la valor d'una variabla globala en gerent lo cas quora aquesta variabla existís pas
* @param nom_variable Nom de la variabla que se ne vòl conéisser la valor
* @param val_defaut Valor per defaut se la variabla existís pas
* @return La valor de la variablq, o val_defaut se la variablq existís pas
*
* Autor : Sanao
* Darrièra revision : 22 novembre 2007
*/
function getVarValue(nom_variable, val_defaut)
{
	var result = null;
 
	try
	{
		result = eval(nom_variable.toString());
	}
	catch (e)
	{
		result = val_defaut;
	}
 
	return(result);
}

/*
* Foncion
*
* Retorna una cadena de caractèrs de la data correnta segon un format definit
* @param format Format de la data "j" pel jorn, "m" pel mes e "a" per l'annada. Atal s'es lo 21 de novembre de 2007 e se passa en paramètre aquesta cadena "a_m_d", la cadena retornada serà "2007_novembre_21"
* Autor : Sanao
* Darrièra revision : 21 de novembre de 2007
*/
function getStrDateToday(format)
{
  var str_mes = new Array();
  with (str_mes)
  {
    push("genièr");
    push("febrièr");
    push("març");
    push("abril");
    push("mai");
    push("junh");
    push("julhet");
    push("agost");
    push("setembre");
    push("octobre");
    push("novembre");
    push("decembre");
  }
  var today = new Date();
  var day = today.getDate();
  var year = today.getYear();
  if (year < 2000)
  {
    year = year + 1900;
  }
  var str_date = format;
 
  //Creacion de la cadena
  var regex = /j/gi;
  str_date = str_date.replace(regex, day.toString());
  regex = /a/gi;
  str_date = str_date.replace(regex, year.toString());
  regex = /m/gi;
  str_date = str_date.replace(regex, str_mois[today.getMonth()]);
 
  return (str_date);
}

/*
   Esplech per permetre l'afichatge immediat d'un javascript per totes los utilizaires al meteis temps.
   Quitament se tòrnan pas cargar Wikipèdia amb CTRL+R.
   Util inicialament per preveire una bona reactivitat e una aviada generala duel[[Projècte:Estampatge]].
   Plyd - 12 octobre 2008
   tag urgentsynchronejs enclús (pas encore) dins [[MediaWiki:Copyright]]
*/
function urgentSynchroneJsLoad() {
  if (document.getElementById('urgentsynchronejs')) {
    jsname = "MediaWiki:Common.js/"+document.getElementById('urgentsynchronejs').title;
    loadJs(jsname);
  }
}
addLoadEvent(urgentSynchroneJsLoad);