Cimitero:MediaWiki:Common.js: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Contenuto aggiunto Contenuto cancellato
(La fine del mondo ha inizio e Nonciclopedia è in prima linea!)
(Devo bere meno vino!)
Riga 7: Riga 7:


/* Random logo */
/* Random logo */
/* function RandomLogo() {
function RandomLogo() {
var logoArray = new Array();
var logoArray = new Array();
logoArray[0] = 'http://images.wikia.com/nonciclopedia/images/6/64/Logo_Nonciclopedia_Maya.png';
logoArray[0] = 'http://images.wikia.com/nonciclopedia/images/6/64/Logo_Nonciclopedia_Maya.png';
Riga 16: Riga 16:
document.getElementById('p-logo').innerHTML = '<a accesskey="z" title="Pagina principale [alt-shift-z]" href="/wiki/Pagina_principale" style="background-image: url(' + logoArray[chosenLogo] + ');"/>';
document.getElementById('p-logo').innerHTML = '<a accesskey="z" title="Pagina principale [alt-shift-z]" href="/wiki/Pagina_principale" style="background-image: url(' + logoArray[chosenLogo] + ');"/>';
}
}
addOnloadHook(RandomLogo);*/
addOnloadHook(RandomLogo);


/********************** OnloadHooks **********************/
/********************** OnloadHooks **********************/

Versione delle 03:22, 21 dic 2012

/* Variabili di debug per i test
 * Non toccare!
 * L'inclusione nello script separato non funziona */
var debugTags = false;
var debugTest = false;
var debugAbc = false;

/* Random logo */
function RandomLogo() {
	var logoArray = new Array();
	logoArray[0] = 'http://images.wikia.com/nonciclopedia/images/6/64/Logo_Nonciclopedia_Maya.png';
	logoArray[1] = 'http://images.wikia.com/nonciclopedia/images/0/09/Logo_Nonciclopedia_meteoriti.png'; 
 
 
	var chosenLogo = Math.round(Math.random() * (logoArray.length - 1));
	document.getElementById('p-logo').innerHTML = '<a accesskey="z" title="Pagina principale [alt-shift-z]" href="/wiki/Pagina_principale" style="background-image: url(' + logoArray[chosenLogo] + ');"/>';
}
addOnloadHook(RandomLogo);

/********************** OnloadHooks **********************/
var hooks_custom = new Array();
/* Funzioni generali */
function hooks_common () {
        toolbarCookieHide(); /* ** Nasconde la toolbar con i cookie ** */
	Script_Import();
	hooks_common_render();
	createPurgeButton();
	return;
}
addOnloadHook(hooks_common);

/* Funzioni del rendering - separate per richiamarle in anteprima rapida */
var __test_js__ = false;
function hooks_common_render () {
	randomlist();
	createCollapseButtons();
	createNavigationBarToggleButton();
	createToggleLinks();
	createMorphLinks();
	multislide_startup();
	multifade_startup();
	UserNameReplace();
	ref_tooltip();
	alertLink();
	setTimeout(alertLoad, 1);
	alertUnload();
	import_script((/\&lt\;((test)|(abc))(.*)\&gt\;/.test(document.getElementById('bodyContent').innerHTML) && !__test_js__), "Nonciclopedia:Script/Test.js");
	target_blank();
	hiddencats_IE();
	return;
}

/* Funzioni dell'editor */
function hooks_common_edit () {
	if (wgAction != 'edit' && wgAction != 'submit') return;
	charinsert_anon_hack();
	return;
}
addOnloadHook(hooks_common_edit);


/* Importazione script */
function Script_Import () {
/*
Sintassi: import_script(CONDIZIONE, SCRIPT);
Es.: import_script((wgPageName == "Esempio"), "Esempio.js");
*/

import_script((wgPageName == "Giochi:CasiNonci/Slot_machine"), "Nonciclopedia:Script/SlotMachine.js");
import_script((wgPageName == "Utente:Zaza/Sandbox/Monabooktor"),  "Nonciclopedia:Script/Monabooktor.js");

import_script((wgPageName == "NC:Toolbar"),  "Nonciclopedia:Script/FakeVector.js");
import_script((wgPageName == "Discussione:NC:Toolbar"),  "Nonciclopedia:Script/FakeVector.js");

import_script((wgPageName == "Nonciclopedia:Storia/Pagine_commemorative/Pesci_d\'aprile/3"),  "Nonciclopedia:Script/Pesce_aprile_2009.js");
import_script((wgPageName == "Nonciclopedia:Storia/Pagine_commemorative/Pesci_d\'aprile/4"),  "Nonciclopedia:Script/Pesce_aprile_2010.js");
import_script((wgPageName == "Nonciclopedia:Storia/Pagine_commemorative/Pesci_d\'aprile/5"),  "Nonciclopedia:Script/Pesce_aprile_2011.js");

//Patch per far funzionare i categorytree non inseriti direttamente nelle pagine (wikiammerda)
if (wgPageName == 'Speciale:Carica' || wgAction == 'edit') {
   var scriptElem = document.createElement('script');
   scriptElem.type = 'text/javascript';
   scriptElem.language = 'javascript';
   scriptElem.src = '/load.php?debug=false&lang=it&modules=ext.categoryTree&skin=monobook&version=20120817T181907Z&*';
   document.getElementsByTagName('head')[0].appendChild(scriptElem);
   
   var linkElem = document.createElement('link');
   linkElem.rel = 'stylesheet';
   linkElem.href = 'http://slot2.wikia.com/load.php?debug=false&lang=it&modules=ext.categoryTree.css%7Cext.wikihiero%7Cmediawiki.legacy.commonPrint%2Cshared%7Cskins.monobook%7Cwikia.monobook&only=styles&skin=monobook&*';
   document.getElementsByTagName('head')[0].appendChild(linkElem);
}

return;
}

function import_script (condition, script) {
   if(!condition) return;
   var scriptElem = document.createElement( 'script' );
   scriptElem.type = 'text/javascript';
   scriptElem.language = 'javascript';
   scriptElem.src = '/index.php?title=' + script + '&action=raw&ctype=text/javascript&smaxage=8400';
   document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
   return;
}



/************* Funzioni di utilità generale *************/

 /* Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: User:Mike Dillon, User:R. Koot, User:SG
 */

var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
 })();


function getElementsByClass (node, className, tagName) {
	if (node.getElementsByClassName && (tagName == undefined || tagName == null || tagName == '*')) return node.getElementsByClassName(className);
	var list = node.getElementsByTagName(tagName?tagName:'*');
	var array = new Array();
	var i = 0;
	for (i in list) {
		if (hasClass(list[i], className))
			array.push(list[i]);
	 }
	return array;
 }

/* Creates the method getElementsByClass, if unsupported from the browser */
if(!document.getElementsByClass) document.getElementsByClass = function(className) {
	return getElementsByClass(document, className, '*');
};


function getElementsByName (name, root) {
 if (root == undefined) root = document;
 var e = root.getElementsByTagName('*');
 var r = new Array();
 for (var i = 0; i < e.length; i++) {
	if (e[i].getAttribute('name') == name) r[r.length] = e[i];
 }
 return r;
}


 function getText (e) {
	 if (e.textContent) return e.textContent;
	  else if (e.innerText) return e.innerText;
	  else return null;
  }
 
 function setText (e, t) {
	 if (e.textContent) e.textContent = t;
	  else if (e.innerText) e.innerText = t;
	  else { e.textContent = t; e.innerText = t; } // entrambi nulli, non si può discriminare
	 return;
  }

 function appendText (e, t) {
	 if (e.textContent) e.textContent += t;
	  else if (e.innerText) e.innerText += t;
	  else { e.textContent = t; e.innerText = t; }
	 return;
  }

/* Crea una request Ajax */
function createRequest () {
	if (window.XMLHttpRequest) { // Mozilla, Safari...
		return new XMLHttpRequest();
	 }
	 else if (window.ActiveXObject) { // IEmmerda
		return new ActiveXObject("Microsoft.XMLHTTP");
	 }
	return
 }

/* Restituisce il valore di un cookie */
function getCookie(name) {
	if (document.cookie.length == 0) return null;
	var start = document.cookie.indexOf(name);
	if (start == -1) return null;
	start += name.length + 1;
	var end = document.cookie.indexOf(';', start);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(start,end));
 }

/* Aggiunge uno zero alle cifre minori di 10 nella rappresentazione testuale */
function addzero(n) {
	if (n<10) return '0' + n.toString();
	 else return n.toString();
 }

function addEvent(el, ev, f, capt) {
 if (capt == undefined) capt = false;
 if (el.addEventListener) el.addEventListener(ev, f, capt);
  else if (el.attachEvent) el.attachEvent('on' + ev, f);
 return;
}

function removeEvent(el, ev, f, capt) {
 if (capt == undefined) capt = false;
 if (el.removeEventListener) el.removeEventListener(ev, f, capt);
  else if (el.detachEvent) el.detachEvent('on' + ev, f);
 return;
}


var noFade = false;
function Fade (element, delay, i, rev, ratio) {
 if (noFade) return;
/* rev = sparizione; se !rev, ratio = opacità finale; se rev, ratio = opacità iniziale*/
 var start_time = new Date().getTime();
 var start_value = rev? ratio : 0;
 element.style.filter = "alpha(opacity=" + start_value * 100 + ")";
 element.style.opacity = start_value;
 if (!parseInt(element.style.width) && navigator.appName == "Microsoft Internet Explorer") element.style.width = element.offsetWidth + 'px';
 setTimeout(function() { Do()} , i);
 return;
 
 function Do() {
	 var cur_time = new Date().getTime();
	 var past_time = cur_time - start_time;
	 if (past_time >= delay) { /* ultima chiamata */
		var final_value = rev? 0 : ratio;
		element.style.filter = "alpha(opacity=" + final_value * 100 + ")";
		element.style.opacity = final_value;
		return;
	  }
	 var progress = past_time/delay;
	 var new_value = rev? ratio * (1 - progress) : ratio * progress;
	 element.style.filter = "alpha(opacity=" + new_value * 100 + ")";
	 element.style.opacity = new_value;
	 setTimeout(function() { Do(); } , i);
	 return;
	}
}

var noSlide = false;
function Slide(element, param, final_value, final_size, delay, i) {
 if (noSlide) return;
 /* NB: Il valore finale deve avere la stessa unità di misura di quello iniziale! */
 var start_time = new Date().getTime();
 var unit = 'px';
 if (typeof(final_value) == 'string') {
	 final_value = final_value.split(/\D/);
	 if (final_value.length > 1) unit = final_value[1];
	 final_value = parseFloat(final_value[0]);
  }
 var start_value = Get();
 var sub = (start_value > final_value)? true : false;
 var diff = Math.abs(start_value - final_value);
 var start_size;
 if (param == 'top' || param == 'bottom') start_size = element.parentNode.offsetHeight;
  else if (param == 'left' || param == 'right')	start_size = element.parentNode.offsetWidth;
 var diff_size = Math.abs(start_size - final_size);
 setTimeout( function() {Do(); } , i);
 return;
 
 function Do() {
	 var cur_time = new Date().getTime();
	 var past_time = cur_time - start_time;
	 if (past_time >= delay) { /* ultima chiamata */
		Set(final_value);
	 if (param == 'top' || param == 'bottom') element.parentNode.style.height = final_size + unit;
	  else if (param == 'left' || param == 'right') element.parentNode.style.width = final_size + unit;		
		return;
	  }
	 var progress = diff * past_time/delay;
	 new_value = (sub)? start_value - progress : start_value + progress;
	 Set(new_value);
	 new_size = (sub)? start_size - diff_size * past_time/delay: start_size + diff_size * past_time/delay;
	 if (param == 'top' || param == 'bottom') element.parentNode.style.height = new_size + unit;
	  else if (param == 'left' || param == 'right') element.parentNode.style.width = new_size + unit;
	 setTimeout(function() { Do(); } , i);
	 return;
 }
 
 function Get() {
	var ret;
	switch (param) {
		case 'top':
		 ret = element.style.top;
		 break;
		case 'bottom':
		 ret = element.style.bottom;
		 break;
		case 'left':
		 ret = element.style.left;
		 break;
		case 'right':
		 ret = element.style.right;
		 break;
		default:
		 return false;
	}
	if (/em/i.test(ret)) return parseFloat(ret);
	return (/\d+/.test(ret))? parseInt(ret) : 0;
  }
  
 function Set(v) {
	switch (param) {
		case 'top':
		 element.style.top = v + unit;
		 return;
		case 'bottom':
		 element.style.bottom = v + unit;
		 return;
		case 'left':
		 element.style.left = v + unit;
		 return;
		case 'right':
		 element.style.right = v + unit;
		 return;
		default:
		 return false;
	}
  }
}

/************* Funzioni applicative ***************/



// ============================================================
// BEGIN Dynamic Navigation Bars (experimantal)
// This script is from Wikipedia. For author attribution, please see http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&action=history
 
 /** Collapsible tables *********************************************************
  *
  *  Description: Allows tables to be collapsed, showing only the header. See
  *               [[Wikipedia:NavFrame]].
  *  Maintainers: [[User:R. Koot]]
  */
 
 var autoCollapse = 0; // numero massimo di barre visibili
                       // per default al caricamento di una pagina
 var collapseCaption = "nascondi";
 var expandCaption = "vedi";
 
 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" ) && !Tables[i].id) {
             NavigationBoxes[ tableIndex ] = Tables[i];
             Tables[i].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( document.createTextNode( "[" ) );
             Button.appendChild( ButtonLink );
             Button.appendChild( document.createTextNode( "]" ) );
 
             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 );
         }
     }
 }

 /** Dynamic Navigation Bars (experimental) *************************************
  *
  *  Description: See [[Wikipedia:NavFrame]].
  *  Maintainers: UNMAINTAINED
  */
 
  // set up the words in your language
  var NavigationBarHide = '[' + collapseCaption + ']';
  var NavigationBarShow = '[' + expandCaption + ']';
  
  // 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 = autoCollapse;
  
  
  // shows and hides content and picture (if available) of navigation bars
  // Parameters:
  //     indexNavigationBar: the index of navigation bar to be toggled
var noNavSlide = false;
var debugCassetto = false;
function toggleNavigationBar(indexNavigationBar)  {
	if (debugCassetto) {
		return;
	}
	else {
		var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
		var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

		if (!NavFrame || !NavToggle) {
			return false;
		}

		// if shown now
		if (NavToggle.firstChild.data == NavigationBarHide) {
			if (!hasClass(NavFrame, 'no-slide') && !noNavSlide) NavSlide(NavFrame, true);
			else {
				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';
					}
				}
			}
			NavToggle.firstChild.data = NavigationBarShow;
  		}
		// if hidden now
		else if (NavToggle.firstChild.data == NavigationBarShow) {
			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(NavFrame, 'no-slide') && !noNavSlide) NavSlide(NavFrame, false);
			NavToggle.firstChild.data = NavigationBarHide;
		}
	}
}
  
var NavigationBarSlideDelay = 600;
var NavigationBarSlideInterval = 70;
var NavigationBarFadeDelay = 400;
var NavigationBarFadeInterval = 70;

function NavSlide (NavFrame, close) {
/* close = chiusura */
 for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
	if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent') ) Slide(NavChild);
	}
	return;
	
 function Slide (element) {
 	 if (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.userAgent[navigator.userAgent.indexOf("MSIE") + 5]) >= 8) return;
	 var fade = !hasClass(NavFrame, 'no-fade');
	 var start_time = new Date().getTime() + NavigationBarFadeDelay * ((close && fade)? 1.1 : 0);
	 var size = element.offsetHeight;
	 var start_value = close? 0: 0 - size;
	 var final_value = close? 0 - size : 0;
	 element.style.marginTop = start_value + 'px';
	 element.style.width = 'auto';
	 if (fade) {
		 if (close) Fade(element, NavigationBarFadeDelay, NavigationBarFadeInterval, true, 0.7);
		  else {
			element.style.filter = "alpha(opacity=0)";
			element.style.opacity = 0;
		  }
	  }
	 setTimeout(function() { Do(); } , NavigationBarSlideInterval + NavigationBarFadeDelay * ((close && fade)? 1.1 : 0));
	 return;
	 
	 function Do() {
		 var cur_time = new Date().getTime();
		 var past_time = cur_time - start_time;
		 if (past_time >= NavigationBarSlideDelay) {
			element.style.marginTop = final_value + 'px';
			if (!close && fade) Fade(element, NavigationBarFadeDelay, NavigationBarFadeInterval, false, 1);
			if (close) element.style.display = 'none';
			return;
		  }
		 var progress = past_time/NavigationBarSlideDelay;
		 var new_value = close? final_value * progress : start_value * (1 - progress);
		 element.style.marginTop = new_value + 'px';
		 setTimeout(function() { Do(); } , NavigationBarSlideInterval);
		 return;
		}
 }
}

  
  // adds show/hide-button to navigation bars
  function createNavigationBarToggleButton()
  {
     var indexNavigationBar = 0;
     // iterate over all < div >-elements 
     var divs = document.getElementsByTagName("div");
     for(
             var i=0; 
             NavFrame = divs[i]; 
             i++
         ) {
         // if found a navigation 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 + ');');
             
             var NavToggleText = document.createTextNode(NavigationBarHide);
             NavToggle.appendChild(NavToggleText);
             // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
             for(
               var j=0; 
               j < NavFrame.childNodes.length; 
               j++
             ) {
               if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                 NavFrame.childNodes[j].appendChild(NavToggle);
               }
             }
             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);
         }
     }
   
  }
 

 /** Codice sostituzione Username ([[template:USERNAME]]) *******************************
  * Inserts user name into <span id="insertusername"></span>
  * By [[wikia:User:Splarka|Splarka]]
  */
 var disableUsernameReplace = false;
 function UserNameReplace() {
	if (disableUsernameReplace) return;
	var list = getElementsByClass(document.getElementsByTagName('body')[0], "insertusername", 'span');
	if (list.length < 1) return;
	if (wgUserName) {
		for (var i=0; UserName = list[i]; i++) {
			setText(UserName, wgUserName);
		 }
		return;
	 }
	var defaultText = "<tuo nome>";
	var userpage = document.getElementById("pt-anonuserpage");
	if (userpage != null) {
		var IP = getText(userpage.getElementsByTagName('a')[0]);
		if (IP == null) return;
		for (var i=0; UserName = list[i]; i++) {
			if (getText(UserName) == defaultText)
				setText(UserName, IP);
		 }
		return;
	 }
	var httpRequest;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	    httpRequest = new XMLHttpRequest();
	 } else if (window.ActiveXObject) { // IE
	    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	 }
	var id = setTimeout(function() { httpRequest.abort();}, 30000);
	httpRequest.onreadystatechange = function () {
		if (httpRequest.readyState != 4) return;
		clearTimeout(id);
		if (httpRequest.status != 200) return;
		if (httpRequest.responseXML == null)  return;
		var IP = httpRequest.responseXML.getElementsByTagName('userinfo')[0].getAttribute("name");
		if (IP == null) return;
		for (var i=0; UserName = list[i]; i++) {
			if (getText(UserName) == defaultText)
				setText(UserName, IP);
		 }
		return;
	 }
	httpRequest.open('GET', wgServer + wgScriptPath + "/api.php?action=query&meta=userinfo&format=xml", true);
	httpRequest.send('');
	return;
 }



/* Generatori di alert */

/* Carica un alert su un link prima di caricare la nuova pagina, oppure su un link "fasullo", senza caricare nessuna nuova pagina*/
function alertLink() {
 for(var i=0; Elem = document.getElementsByTagName("span")[i]; i++) {
  if((Elem.getAttribute('id') == "alert-link") || (Elem.getAttribute('id') == "alert-nolink")) {
   var Link = Elem.firstChild;
   var Testo = Elem.title;
   Link.setAttribute('onclick', 'alert("' + Testo + '");');
   if(Elem.getAttribute('id') == "alert-nolink") {
    Link.removeAttribute('href',0);
   }
  }
 }
}

/* Carica uno o più alert al caricamento della pagina */
var disablealertLoad = 0;
function alertLoad() {
 if (disablealertLoad) return;
 for(var i=0; Elem = document.getElementsByTagName("span")[i]; i++) {
  if(Elem.getAttribute('id') == "alert-load") {
   var Testo = Elem.innerText || Elem.textContent;
   alert(Testo);
  }
 }
}


/* Carica uno o più alert all'uscita dalla pagina */
function alertUnload() {
 if (disablealertLoad) return;
 for(var i=0; Elem = document.getElementsByTagName("span")[i]; i++) {
  if(Elem.getAttribute('id') == "alert-unload") {
   var Testo = Elem.innerText || Elem.textContent;
   var temp = document.getElementsByTagName("body")[0].getAttribute('onUnload');
   if (temp) document.getElementsByTagName("body")[0].setAttribute('onUnload', temp + 'alert("' + Testo + '");');
    else document.getElementsByTagName("body")[0].setAttribute('onUnload', 'alert("' + Testo + '");');
  }
 }
}


/* Elenchi random */
function randomlist() {
 
 if (document.getElementsByClass('randomlist') &&
     document.getElementsByClass('randomcontent') &&
     document.getElementsByClass('randomtext')) {
  var listNumber = document.getElementsByClass('randomlist').length;
  for (var k = 0; k < listNumber; k++) {
   var max = parseInt(document.getElementsByClass('randomlist')[k].title);
   var List = document.getElementsByClass('randomcontent')[k].getElementsByTagName('li');
   var Text = document.getElementsByClass('randomtext')[k];
   var N = new Array();

   if (max == 1) var dot = '';
   else var dot = '• ';

   Text.innerHTML = '';
   for (var i = 0; i < max; i++) {
    do {
     n = Math.round(Math.random() * (List.length - 1));
     for (var j = 0; j < i && n != -1; j++) {
      if (N[j] == n) n = -1;
     }
    } while (n == -1)
    N[i] = n;
    var Item = document.createElement('div');
    Item.innerHTML = dot + List[n].innerHTML;
    Text.appendChild(Item);
   }
  }
 }
}

/* Elenchi numerati, by Utente:Genuzzu */

$(document).ready(function() {
   $('.numberedcontentcontainer').each(function() {
      contentsPosStrings = $('.numberedcontenthead', this).html().split(',');
      contentsList = $('.numberedcontentcontent > ul > li', this);
      contentsPos = [];
      for(var str in contentsPosStrings) {
         i = parseInt(contentsPosStrings[str]);
         if(isNaN(i)) return true;
         contentsPos.push(i);
      }
      separator = $('.numberedcontentseparator', this).html();
      var hasSeparator = false;
      if(separator != '') {
          hasSeparator = true;
      }
      if(!hasSeparator) newContents = $('<ul></ul>');
      else newContents = $('<div></div>');
      j = 0;
      for(var i in contentsPos) {
         var lol = 0;
         if(contentsPos[i] < 0) lol = 1;
         var h = $(contentsList.get(contentsPos[i] - 1 + lol)).html();
         if(h == null) continue;
         if(contentsPos[i] < 0) lol = 1;
         if(!hasSeparator) newContents.append('<li>' + h + '</li>');
         else {
            newContents.html(newContents.html() + h);
            if(j != contentsPos.length - 1) newContents.html(newContents.html() + separator);
         }
         j++;
      }
      $(this).html('').append(newContents);
   })
});


/* Hook that enables collapsing objects.
 * Added 11/5/2007 by WhiteMystery (misterioblanco@gmail.com) 
 * on Encyclopedia Dramatica, stolen by Zaza
 * Improved with multiMorph and galleryMorph by MFH
 * Enhanced with fading effect by Sanjilops
 * Uses publicly available code in one function, where noted. */

var noMorphSFX = false;

/* Function that toggles collapsing objects.
 * Added 11/5/2007 by WhiteMystery (misterioblanco@gmail.com) 
 * on Encyclopedia Dramatica, stolen by Zaza
 * Uses publicly available code in one function, where noted. */

function tableOrNot(objId) {
	
	if (document.getElementById(objId).tagName == "TABLE") return "table";
	else return "block";
}

var toggleLinkDelay = 700;
var toggleLinkInterval = 10;

function toggleCollapse(objToToggle) {
	var objToToggle = this.parentNode.id.replace(/Link$/, '');

	var linkText = "";
	var targetObject = returnObjById(objToToggle);
	if (!targetObject) return;
	var collapseText = returnObjById(objToToggle + "CollapseText").innerHTML;
	var expandText = returnObjById(objToToggle + "ExpandText").innerHTML;
	var slide = !hasClass(returnObjById(objToToggle + "Link"), "no-slide") && !noMorphSFX;
	var fade = !hasClass(returnObjById(objToToggle + "Link"), 'no-fade') && !noMorphSFX;
	if ( targetObject.style.display == "none" ) {
		targetObject.style.display = tableOrNot(objToToggle);
		linkText = collapseText;
		if (slide) Slide(targetObject, false);
		if (fade) {
			if (!parseInt(targetObject.style.width) && navigator.appName == "Microsoft Internet Explorer") targetObject.style.width = targetObject.offsetWidth + 'px';
			targetObject.style.filter = "alpha(opacity=0)";
			targetObject.style.opacity = 0;
			setTimeout(function () {Fade(targetObject, toggleLinkDelay, toggleLinkInterval, false, 1);}, 1);
		 }
	 }
		
	else {
		if (slide) {
			Slide(targetObject, true);
			setTimeout(function() {	targetObject.style.display = "none"; }, toggleLinkDelay + toggleLinkInterval);
			if (fade) setTimeout(function () {Fade(targetObject, toggleLinkDelay, toggleLinkInterval, true, 0.8);}, 1);
		 }
		 else {
			if (fade) {
				setTimeout(function () {Fade(targetObject, toggleLinkDelay, toggleLinkInterval, true, 0.8);}, 1);
				setTimeout(function () {targetObject.style.display = "none"; }, toggleLinkDelay + toggleLinkInterval);
			 }
			 else targetObject.style.display = "none";
		 }
		linkText = expandText;
	}
	
	var toggleLink = returnObjById(objToToggle + "Link-");
	toggleLink.innerHTML = linkText;
	
	
 function Slide (element, close) {
 	 if (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.userAgent[navigator.userAgent.indexOf("MSIE") + 5]) >= 8) return;
	 var start_time = new Date().getTime();
	 var size = element.offsetHeight;
	 var start_value = close? 0: 0 - size;
	 var final_value = close? 0 - size : 0;
	 element.style.marginTop = start_value + 'px';
	 element.style.width = 'auto';
	 setTimeout(function() { Do(); } , toggleLinkInterval);
	 return;
	 
	 function Do() {
		 var cur_time = new Date().getTime();
		 var past_time = cur_time - start_time;
		 if (past_time >= NavigationBarSlideDelay) {
			element.style.marginTop = final_value + 'px';
			return;
		  }
		 var progress = past_time/toggleLinkDelay;
		 var new_value = close? final_value * progress : start_value * (1 - progress);
		 element.style.marginTop = new_value + 'px';
		 setTimeout(function() { Do(); } , toggleLinkInterval);
		 return;
		}
 }
}

var debugMorph = false;
function createToggleLinks() {
	if (debugMorph) {
		return;
	}
	else {
		var toggleLinkCollection = document.getElementsByClass("toggleLink");
	
		for (var i = 0; i < toggleLinkCollection.length; i++) {
			var spanID = toggleLinkCollection[i].getAttribute("id");
			var targetID = spanID.substr(0, spanID.length - 4);
			var collapseText = returnObjById(targetID + "CollapseText").innerHTML;
			var expandText = returnObjById(targetID + "ExpandText").innerHTML;
			var initialState = returnObjById(targetID + "InitialState").innerHTML;
		
			var toggleLink = document.createElement("a");
			toggleLinkCollection[i].appendChild(toggleLink);
		
			if (initialState == "0") {
			
				returnObjById(targetID).style.display = "none";
				toggleLink.innerHTML = expandText;
			}
		
			else {
			
				returnObjById(targetID).style.display = tableOrNot(targetID);
				toggleLink.innerHTML = collapseText;
			}
		
			toggleLink.onclick = toggleCollapse;

			//toggleLink.className = "morphLink";
			toggleLink.id = targetID + "Link-";
		
		}
	}
}



/* Functions that performs the morph operation.
 * Added 11/5/2007 by WhiteMystery (misterioblanco@gmail.com) 
 * on Encyclopedia Dramatica, stolen by Zaza
 * Uses publicly available code in one function, where noted. */

 var MorphFadeDelay = 800;
 var MorphFadeInterval = 50;

function performMorph(targetID, targetNumber) {
	
	var counter = 1;
	
	while ( returnObjById(targetID + "Content" + counter) ) {
	
		if ( counter == targetNumber ) {
			returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
			if (!hasClass(returnObjById(targetID + "Master"), 'no-fade') && !noMorphSFX) Fade(returnObjById(targetID + "Content" + counter), MorphFadeDelay, MorphFadeInterval, false, 1);
			}
		else
			returnObjById(targetID + "Content" + counter).style.display = "none";
			
		counter++;
	}
	
	returnObjById(targetID + "Master").innerHTML = targetNumber;
}


function morphForward() {

	var targetID = this.getAttribute('name').replace(/LinkNext$/, '');
	var nextPane = parseInt(returnObjById(targetID + "Master").innerHTML) + 1;
	
	if ( returnObjById(targetID + "Content" + nextPane) )
		performMorph(targetID, nextPane);
		
	else
		performMorph(targetID, "1");
}

function morphBackward() {

	var targetID = this.getAttribute('name').replace(/LinkPrev$/, '');
	var prevPane = parseInt(returnObjById(targetID + "Master").innerHTML) - 1;
	
	if ( prevPane > 0 )
		performMorph(targetID, prevPane);
		
	else {
	
		var maxIndex = 1;
		
		while ( returnObjById(targetID + "Content" + maxIndex) )
			maxIndex++;
		
		performMorph(targetID, maxIndex - 1);
	}
}

/* Special functions for the galleryMorph,
 * created by MFH */

function performGalleryMorph(targetID, targetNumber) {

	var counter = 1;
	
	while ( returnObjById(targetID + "Content" + counter) ) {
	
		if ( counter == targetNumber ) {
			returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
			if (!hasClass(returnObjById(targetID + "Master"), 'no-fade') && !noMorphSFX) Fade(returnObjById(targetID + "Content" + counter), MorphFadeDelay, MorphFadeInterval, false, 1);
		 }
		else
			returnObjById(targetID + "Content" + counter).style.display = "none";
			
		counter++;
	}
	
	if (targetNumber == 1) {
		returnObjById(targetID + "LinkPrev").style.display = "none";
	}
	else {
		returnObjById(targetID + "LinkPrev").style.display = tableOrNot(targetID + "LinkPrev");
	}
	
	if (targetNumber == counter - 1) {
		returnObjById(targetID + "LinkNext").style.display = "none";
	}
	else {
		returnObjById(targetID + "LinkNext").style.display = tableOrNot(targetID + "LinkNext");
	}
	
	galleryCounter = returnObjById(targetID + "Master").getAttribute("counter");
	returnObjById(targetID + "Counter").innerHTML = "(" + targetNumber + "/" + galleryCounter + ")";
	returnObjById(targetID + "Master").innerHTML = targetNumber;
}

function galleryMorphForward() {

	var targetID = this.getAttribute('name').replace(/LinkNext$/, '');
	var nextPane = parseInt(returnObjById(targetID + "Master").innerHTML) + 1;
	
	if ( returnObjById(targetID + "Content" + nextPane) )
		performGalleryMorph(targetID, nextPane);
		
	else
		performGalleryMorph(targetID, "1");
}

function galleryMorphBackward() {
	var targetID = this.getAttribute('name').replace(/LinkPrev$/, '');
	var prevPane = parseInt(returnObjById(targetID + "Master").innerHTML) - 1;
	
	if ( prevPane > 0 )
		performGalleryMorph(targetID, prevPane);
		
	else {
	
		var maxIndex = 1;
		
		while ( returnObjById(targetID + "Content" + maxIndex) )
			maxIndex++;
		
		performGalleryMorph(targetID, maxIndex - 1);
	}
}

/* Function that creates ED's collapsing objects and toggle links.
 * Added 11/5/2007 by WhiteMystery (misterioblanco@gmail.com) 
 * on Encyclopedia Dramatica, stolen by Zaza
 * Uses publicly available code in one function, where noted.
 *
 * Updated: 1/11/2008 by WhiteMystery to add new Morphing Objects
 * functionality.
 * Updated: 23/5/2009 by MFH to add 2 new kinds of morph:
 * multiMorph and galleryMorph */

function createMorphLinks () {
	if (debugMorph) {
		return;
	}
	else {
		var morphMasterCollection = document.getElementsByClass("morphMaster");
		var multiMorphMasterCollection = document.getElementsByClass("multiMorphMaster");
		var galleryMorphMasterCollection = document.getElementsByClass("galleryMorphMaster");
	
		for (var i = 0; i < morphMasterCollection.length; i++) {
		
			var spanID = morphMasterCollection[i].getAttribute("id");
			var targetID = spanID.substr(0, spanID.length - 6);
			var counter = 1;
		
			// Create forward and backward paging if the paging elements exist
			if ( returnObjById(targetID + "LinkNext") && returnObjById(targetID + "LinkPrev") && returnObjById(targetID + "Content1") ) {
		
				// Create the forward link
				var nextLink = document.createElement("div");	
				nextLink.innerHTML = returnObjById(targetID + "LinkNext").innerHTML;
				nextLink.setAttribute('name', targetID + "LinkNext");
				nextLink.onclick = morphForward;
				nextLink.className = "morphLink";
			
				returnObjById(targetID + "LinkNext").innerHTML = "";
				returnObjById(targetID + "LinkNext").appendChild(nextLink, 0);
			
				// Create the backward link
				var prevLink = document.createElement("div");	
				prevLink.innerHTML = returnObjById(targetID + "LinkPrev").innerHTML;
				prevLink.setAttribute('name', targetID + "LinkPrev");
				prevLink.onclick = morphBackward;
				prevLink.className = "morphLink";
			
				returnObjById(targetID + "LinkPrev").innerHTML = "";
				returnObjById(targetID + "LinkPrev").appendChild(prevLink, 0);
			
				// Initialize content panes
				while ( returnObjById(targetID + "Content" + counter) ) {
				
					if ( counter == 1 )
						returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
					else
						returnObjById(targetID + "Content" + counter).style.display = "none";
					
					counter++;
				}	
			}

			counter = 1;
		
			// Whether or not there is paging, generate normal links				
			while (returnObjById(targetID + "Link" + counter) && returnObjById(targetID + "Content" + counter)) {
			
				var morphLink = document.createElement("div");
				morphLink.innerHTML = returnObjById(targetID + "Link" + counter).innerHTML;			
				returnObjById(targetID + "Link" + counter).innerHTML = "";
				returnObjById(targetID + "Link" + counter).appendChild(morphLink);
				morphLink.className = "morphLink";
				morphLink.setAttribute('name', targetID + "Link" + counter);
				morphLink.onclick = function () {
						var targetID = this.getAttribute('name').replace(/Link\d+$/, '');
						var targetNumber = this.parentNode.id.replace(/.+Link/, '');
						performMorph(targetID, targetNumber);
						return
					 };
			
				// Initialize content panes
				if (counter == 1)
					returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
				else
					returnObjById(targetID + "Content" + counter).style.display = "none";
				
				counter++;
			}
		
			morphMasterCollection[i].innerHTML = "1";
			morphMasterCollection[i].style.display = "none";
		}

		for (var i = 0; i < multiMorphMasterCollection.length; i++) {
		
			var spanID = multiMorphMasterCollection[i].getAttribute("id");
			var targetID = spanID.substr(0, spanID.length - 6);
			var counter = 1;
		
			// Create forward and backward paging if the paging elements exist
			if (document.getElementsByClass(targetID + "LinkNext") && document.getElementsByClass(targetID + "LinkPrev") && document.getElementsByClass(targetID + "Content1")) {
		
				// Create the forward link
				var nextLinkCollection = document.getElementsByClass(targetID + "LinkNext");
				for (j = 0; j < nextLinkCollection.length; j++) {
					var nextLink = document.createElement("div");
					nextLink.innerHTML = nextLinkCollection[j].innerHTML;
					nextLink.setAttribute('name', targetID + "LinkNext");
					nextLink.onclick = morphForward;
					nextLink.className = "morphLink";
				
					nextLinkCollection[j].innerHTML = "";
					nextLinkCollection[j].appendChild(nextLink, 0);
				}
			
				// Create the backward link
				var prevLinkCollection = document.getElementsByClass(targetID + "LinkPrev");
				for (j = 0; j < prevLinkCollection.length; j++) {
					var prevLink = document.createElement("div");
					prevLink.innerHTML = prevLinkCollection[j].innerHTML;
					prevLink.setAttribute('name', targetID + "LinkPrev");
					prevLink.onclick = morphBackward;
					prevLink.className = "morphLink";
				
					prevLinkCollection[j].innerHTML = "";
					prevLinkCollection[j].appendChild(prevLink, 0);
				}
			
				// Initialize content panes
				while (returnObjById(targetID + "Content" + counter)) {
				
					if (counter == 1)
						returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
					else
						returnObjById(targetID + "Content" + counter).style.display = "none";
					
					counter++;
				}	
			}

			counter = 1;
		
			// Whether or not there is paging, generate normal links				
			while ( document.getElementsByClass(targetID + "Link" + counter) && returnObjById(targetID + "Content" + counter) ) {
			
				var morphLinkCollection = document.getElementsByClass(targetID + "Link" + counter);
				for (j = 0; j < morphLinkCollection.length; j++) {
					var morphLink = document.createElement("div");
					morphLink.innerHTML = morphLinkCollection[j].innerHTML;
					morphLinkCollection[j].innerHTML = "";
					morphLink.setAttribute('name', targetID + "Link" + counter);
					morphLinkCollection[j].appendChild(morphLink, 0);
				
					morphLink.onclick = function () {
						var targetID = this.getAttribute('name').replace(/Link\d+$/, '');
						var targetNumber = this.getAttribute('name').replace(/.+Link/, '');
						performMorph(targetID, targetNumber);
						return
					 };
					morphLink.className = "morphLink";
				
				}
			
				// Initialize content panes
				if (counter == 1)
					returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
				else
					returnObjById(targetID + "Content" + counter).style.display = "none";
				
				counter++;
			}
		
			multiMorphMasterCollection[i].innerHTML = "1";
			multiMorphMasterCollection[i].style.display = "none";
		}
	
		for (var i = 0; i < galleryMorphMasterCollection.length; i++) {
		
			var spanID = galleryMorphMasterCollection[i].getAttribute("id");
			var targetID = spanID.substr(0, spanID.length - 6);
			var counter = 1;
		
			// Create forward and backward paging if the paging elements exist
			if ( returnObjById(targetID + "LinkNext") && returnObjById(targetID + "LinkPrev") && returnObjById(targetID + "Content1") ) {
		
				// Create the forward link
				var nextLink = document.createElement("div");	
				nextLink.innerHTML = returnObjById(targetID + "LinkNext").innerHTML;
				nextLink.setAttribute('name', targetID + "LinkNext");
				nextLink.onclick = galleryMorphForward;
				nextLink.className = "morphLink";
			
				returnObjById(targetID + "LinkNext").innerHTML = "";
				returnObjById(targetID + "LinkNext").appendChild(nextLink, 0);
			
				// Create the backward link
				var prevLink = document.createElement("div");	
				prevLink.innerHTML = returnObjById(targetID + "LinkPrev").innerHTML;
				prevLink.setAttribute('name', targetID + "LinkPrev");
				prevLink.onclick = galleryMorphBackward;
				prevLink.className = "morphLink";
			
				returnObjById(targetID + "LinkPrev").innerHTML = "";
				returnObjById(targetID + "LinkPrev").appendChild(prevLink, 0);
			
				// Initialize content panes
				while ( returnObjById(targetID + "Content" + counter) ) {
				
					if (counter == 1)
						returnObjById(targetID + "Content" + counter).style.display = tableOrNot(targetID + "Content" + counter);
					else
						returnObjById(targetID + "Content" + counter).style.display = "none";
					
					counter++;
				}
			
				if (counter == 2) {
					returnObjById(targetID + "LinkNext").style.display = "none";
				}
			
				galleryCounter = counter - 1;
				returnObjById(targetID + "Master").setAttribute("counter", galleryCounter);
				if (returnObjById(targetID + "Counter")) {
					returnObjById(targetID + "Counter").innerHTML = "(1/" + galleryCounter + ")";
				}
			}
		
			galleryMorphMasterCollection[i].innerHTML = "1";
			galleryMorphMasterCollection[i].style.display = "none";
		}
	}
}

/* Function that toggles ED's collapsing objects.
 * Added 11/5/2007 by WhiteMystery (misterioblanco@gmail.com) 
 * on Encyclopedia Dramatica, stolen by Zaza
 * Taken from http://www.netlobo.com/javascript_get_element_id.html */

function returnObjById(id) {
	 
    if (document.getElementById) 
        var returnVar = document.getElementById(id); 
    else if (document.all) 
        var returnVar = document.all[id]; 
    else if (document.layers) 
        var returnVar = document.layers[id]; 
    return returnVar; 
}


/* Attiva il charinsert per gli anonimi nel box "newarticleintro" */
function charinsert_anon_hack () {
	if(!(wgAction == "edit" && wgArticleId == 0 && wgUserName == null)) return;
	var box = getElementsByClass(document.getElementById("bodyContent"), "mw-newarticletextanon", 'div')[0];
	if (!box) return;
	var link = '<' + 'a href="#" onclick="insertTags(&#39;$1&#39;,&#39;&#39;,&#39;&#39;);return false">$1<' + '/a>';
	box.innerHTML = box.innerHTML.replace(/&lt;charinsert&gt;(.+?)&lt;\/charinsert&gt;/, link);
	return;
 }




/* Function to add a "purge" button at the top of the page,
 * usefull for dpl, random and similar things that need the
 * cache of the server.
 *
 * Created by MFH */
var buttonPurge = 0;

function createPurgeButton() {
  if (buttonPurge == 0 || wgCanonicalNamespace == 'Special') return;
  if (document.getElementById('ca-report-problem')) { /* Modifies the "report a problem" button, that is already invisible */
    document.getElementById('ca-report-problem').getElementsByTagName('a')[0].innerHTML = 'Purge';
    document.getElementById('ca-report-problem').getElementsByTagName('a')[0].href = wgServer + wgScriptPath + '/index.php?title=' + wgPageName + '&action=purge';
    document.getElementById('ca-report-problem').setAttribute('id', 'ca-purge');
  }
  else {
    var menuList = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    var newLi = document.createElement('li');
    newLi.setAttribute('id', 'ca-purge');
    newLi.innerHTML = '<a href="' + wgServer + wgScriptPath + '/index.php?title=' + wgPageName + '&action=purge">Purge</a>';
    menuList.appendChild(newLi);
  }
}


/* Visualizza correttamente categorie nascoste in IE */
function hiddencats_IE () {
	 if (navigator.appName != "Microsoft Internet Explorer") return;
	 var div = document.getElementById("mw-hidden-catlinks");
	 if (div == null) return;
	 var span = document.createElement('span');
	 span.id = 'mw-hidden-catlinks-switch';
	 span.innerHTML = "&gt;&gt;";
	 div.insertBefore(span, div.firstChild);
	 return;
}

/* Class che aggiunge "target= '_blank'" ai link */
function target_blank () {
 var tags = getElementsByClass(document.getElementsByTagName('body')[0], "target-blank");
 if (tags == null) return;
 var i, j, links;
 for (i=0; i < tags.length; i++) {
	links = tags[i].getElementsByTagName('a');
	for (j=0; j < links.length; j++) links[j].target = '_blank';
 }
 return;
}

/* Visualizza note come tooltip */
/* by Sanjilops - http://nonciclopedia.wikia.com/wiki/Utente:Sanjilops */
var disablereftooltip = false;
function ref_tooltip () {
 if (disablereftooltip) return;
 var refs = getElementsByClass(document.getElementById('bodyContent'), "reference", 'sup');
 if (!refs) return;
 for (var i = 0; i < refs.length; i++) Do(refs[i]);
 return;
 
 function Do (ref) {
	var span = document.createElement('span');
	var id = ref.id.substr('cite_ref-'.length);
	span.className = "reference-tt";
	span.id = "cite_tt-" + id;
	var li = document.getElementById('cite_note-' + id.replace(/_(\d+)-\d+$/, '-$1'));
	if (!li) return;
	var temp = li.innerHTML;
	temp = temp.split(/^.+a href=\"#cite_ref-.+\" title=\"\">.+?<\/a>(<\/sup>)? /);
	span.innerHTML = (temp.length)? temp[temp.length - 1] : temp;
	if (ref.offsetLeft < document.getElementById('bodyContent').offsetWidth/2) span.style.left = (ref.offsetWidth - 1) + 'px';
	 else span.style.right =  (ref.offsetWidth - 1) + 'px';
	temp = getText(span);
	temp = temp.length * 12;
	span.style.width = (temp < 400)? temp + 'px' : "400px";
	ref.appendChild(span);
	return;
 }
}

/* Funzione che imposta il tasto "modifica" sulla versione corrente nella schermata delle differenze; non attiva di default.
* Per attivarla inserire nel proprio monobook.js il codice:
  addOnloadHook(editcurrentid);
*/
function editcurrentid () {
 var b = document.getElementById('ca-edit');
 if (!b) return;
 if (getElementsByClass(document, 'diff', 'table').length == 0) return;
 var l = b.firstChild;
 l.href = l.href.replace(/&oldid=\d+/, '');
 appendText(l, '*');
 return;
}

/* multiSFX */
var multislide_time = 1000;
var multislide_interval = 10;
var noMultislide = false;
var multislide_state = new Object();
var multislide_master = new Object();
function multislide_startup () {
 if (noMultislide) return;
 var toggles = getElementsByClass(document, "multislideToggle");
 if (!toggles.length) return;
 var names = new Array();
 var id = '', i, elements, master;
 for (var I=0; I< toggles.length; I++) { 
	id = toggles[I].title;
	if (String(names).indexOf(id) != -1) continue;
	names[names.length] = id;
	multislide_state[id] = false;
	master = document.getElementById(id + "Master");
	if (master) {
		multislide_master[id] = new Object();
		multislide_master[id].onload = hasClass(master, "slideOnload");
		multislide_master[id].time = (/slideTime-\d+/.test(master.className))? parseInt(master.className.match(/slideTime-(\d+)/)[1]) : -1;
		multislide_master[id].fade = hasClass(master, "slideFade");
	 }
	 else multislide_master[id] = null;
  }
 var dom, n;
 for (I=0; I< names.length; I++) {
	id = names[I];
	n = 0;
	dom = document.getElementsByTagName('body')[0].getElementsByTagName('*');
	for (i = 0; i < dom.length; i++) {
		if (dom[i].title == id && dom[i].nodeName.toUpperCase() != 'A') {
			if (hasClass(dom[i], "multislideToggle")) {
				dom[i].setAttribute('name', id + "-Toggle");
				CreateToggle(dom[i], id, n);
				n++;
			 }
			 else {
				dom[i].setAttribute('name', id +  "-Content");
				SetStartPosition(dom[i]);
			 }
			dom[i].removeAttribute('title');
		 }
	 }
	if (multislide_master[id] && multislide_master[id].onload) multislide_toggle(id, multislide_master[id].time);
  }
 return;

 function CreateToggle (el, id, n) {
	var time = (/slideTime-\d+/.test(el.className))? parseInt(el.className.match(/slideTime-(\d+)/)[1]) : -1;
	var fade = hasClass(el, "slideFade");
	if (hasClass(el, "slideHover")) {
	 	el.onmouseover = function () {multislide_toggle(id, time, fade, true); return;}
	 	el.onmouseout = function () {multislide_toggle(id, time, fade, false); return;}
	 }
 	 else el.onclick = function () {multislide_toggle(id, time, fade); return;};
	var On = getElementsByClass(el, "slideOn")[0];
	if (!On) return;
	var toggle;
	if (el.firstChild.nodeType != 1) {
		toggle = document.createElement('span');
		toggle.innerHTML = el.firstChild.nodeValue;
		el.replaceChild(toggle, el.firstChild);
	 }
	 else toggle = el.firstChild;
	toggle.id = id + "-toggle" + n; /* dato che n è i, gli id possono non essere consecutivi */
	On.id = id + "-toggle" + n + "-on";
	var Off = getElementsByClass(el, "slideOff")[0];
	if (!Off) {
		Off = toggle.cloneNode(true);
		Off.style.display = 'none';
		el.appendChild(Off);
	 }
	Off.id = id + "-toggle" + n + "-off";
	return;
 }

 function SetStartPosition (el) {
	var height = el.offsetHeight;
	var width = el.offsetWidth;
	if (hasClass(el, "slideFromTop")) {
		el.style.top = '-' + height + 'px';
		return;
	 }
	if (hasClass(el, "slideFromBottom")) {
		el.style.bottom = '-' + height + 'px';
		return;
	 }
	if (!hasClass(el.parentNode, "slideNoResize") && (el.parentNode.style == undefined || !el.parentNode.style.height)) el.parentNode.style.height = height + 'px';
	if (hasClass(el, "slideFromLeft")) {
		el.style.left = '-' + width + 'px';
		return;
	 }
	if (hasClass(el, "slideFromRight")) el.style.right = '-' + width + 'px';
	return;
 }
}

function multislide_toggle(id, toggle_time, toggle_fade, hoverWantedState) {
 if(hoverWantedState != undefined && hoverWantedState == multislide_state[id]) return;
 var contents = getElementsByName(id + "-Content");
 var el, time, fade;
 for (var i = 0; i < contents.length; i++) {
	el = contents[i];
	if (/slideTime-\d+/.test(el.className)) time = parseInt(el.className.match(/slideTime-(\d+)/)[1]);
	 else {
		if (toggle_time != -1) time = toggle_time;
		 else {
			if (multislide_master[id] && multislide_master[id].time != -1) time = multislide_master[id].time;
			 else time = multislide_time;
		 }
	 }
	fade = hasClass(el, "slideFade") || toggle_fade || (multislide_master[id] && multislide_master[id].fade);
	var dir = el.className.match(/slideFrom(Top|Bottom|Left|Right)/)[0].substr(9).toLowerCase();
	var framesize;
	if (!multislide_state[id]) {
		if (dir == 'top' || dir == 'bottom') framesize = el.parentNode.offsetHeight + el.offsetHeight;
		 else if (dir == 'left' || dir == 'right') framesize = el.parentNode.offsetWidth + el.offsetWidth;
		Slide(el, dir, 0, framesize, time, multislide_interval);
	 }
	 else {
		var size;
		if (dir == 'top' || dir == 'bottom') { size = el.offsetHeight; framesize = el.parentNode.offsetHeight - size; }
		 else if (dir == 'left' || dir == 'right') { size = el.offsetWidth; framesize = el.parentNode.offsetWidth - size; }
		Slide(el, dir, 0 - size, framesize, time, multislide_interval);
	 }
	if (fade) _fade(el, time, multislide_state[id]);
  }
 var toggles = getElementsByName(id + "-Toggle");
 for (var i = 0; i < toggles.length; i++) {
	var el = document.getElementById(id + "-toggle" + i);
	if (!el) continue;
	el.innerHTML = (multislide_state[id])? document.getElementById(id + "-toggle" + i + "-off").innerHTML : document.getElementById(id + "-toggle" + i + "-on").innerHTML;
  }
 multislide_state[id] = !multislide_state[id];
 return;
 
 function _fade (el, time, rev) {
	 setTimeout(function () {Fade(el, time, multislide_interval, rev, (rev? 0.8 : 1)); }, 1);
	 setTimeout(function () {el.style.filter = "alpha(opacity=100)"; el.style.opacity = 1; }, time + 5*multislide_interval);
	 return;}
}


var multifade_time = 1000;
var multifade_interval = 10;
var multifade_state = new Object();
var multifade_master = new Object();
var noMultifade = false;
function multifade_startup () {
 if (noMultifade) return;
 var toggles = getElementsByClass(document, "multifadeToggle");
 if (!toggles.length) return;
 var names = new Array();
 var id = '', i, elements, master;
 for (var I=0; I< toggles.length; I++) { 
	id = toggles[I].title;
	if (String(names).indexOf(id) != -1) continue;
	names[names.length] = id;
	multifade_state[id] = false;
	master = document.getElementById(id + "Master");
	if (master) {
		multifade_master[id] = new Object();
		multifade_master[id].onload = hasClass(master, "fadeOnload");
		multifade_master[id].time = (/fadeTime-\d+/.test(master.className))? parseInt(master.className.match(/fadeTime-(\d+)/)[1]) : -1;
	 }
	 else multifade_master[id] = null;
  }
 var dom, n;
 for (I=0; I< names.length; I++) {
	id = names[I];
	n = 0;
	dom = document.getElementsByTagName('body')[0].getElementsByTagName('*');
	for (i = 0; i < dom.length; i++) {
		if (dom[i].title == id && dom[i].nodeName.toUpperCase() != 'A') {
			if (hasClass(dom[i], "multifadeToggle")) {
				dom[i].setAttribute('name', id + "-Toggle");
				CreateToggle(dom[i], id, n);
				n++;
			 }
			 else {
				dom[i].setAttribute('name', id + "-Content");
				dom[i].style.opacity = 0;
				dom[i].style.filter = 'alpha(opacity=0)';
			 }
			dom[i].removeAttribute('title');
		 }
	 }
	if (multifade_master[id] && multifade_master[id].onload) multifade_toggle(id, multifade_master[id].time);
  }
 return;

 function CreateToggle (el, id, n) {
	el.setAttribute('name', id + "-Toggle");
	var time = (/fadeTime-\d+/.test(el.className))? parseInt(el.className.match(/fadeTime-(\d+)/)[1]) : -1;
	if (hasClass(el, "fadeHover")) {
	 	el.onmouseover = function () {multifade_toggle(id, time, true); return;}
	 	el.onmouseout = function () {multifade_toggle(id, time, false); return;}
	 }
 	 else el.onclick = function () {multifade_toggle(id, time); return;};
	var On = getElementsByClass(el, "fadeOn")[0];
	if (!On) return;
	var toggle;
	if (el.firstChild.nodeType != 1) {
		toggle = document.createElement('span');
		toggle.innerHTML = el.firstChild.nodeValue;
		el.replaceChild(toggle, el.firstChild);
	 }
	 else toggle = el.firstChild;
	toggle.id = id + "-toggle" + n; /* dato che n è i, gli id possono non essere consecutivi */
	On.id = id + "-toggle" + n + "-on";
	var Off = getElementsByClass(el, "fadeOff")[0];
	if (!Off) {
		Off = toggle.cloneNode(true);
		Off.style.display = 'none';
		el.appendChild(Off);
	 }
	Off.id = id + "-toggle" + n + "-off";
	return;
 }
}

function multifade_toggle(id, general_time, hoverWantedState) {
 if(hoverWantedState != undefined && hoverWantedState == multifade_state[id]) return;
 var contents = getElementsByName(id + "-Content");
 var el, time;
 for (var i = 0; i < contents.length; i++) {
	el = contents[i];
	if (/fadeTime-\d+/.test(el.className)) time = parseInt(el.className.match(/fadeTime-(\d+)/)[1]);
	 else {
		if (general_time != -1) time = general_time;
		 else {
			if (multifade_master[id] && multifade_master[id].time != -1) time = multifade_master[id].time;
			 else time = multifade_time;
		 }
	 }
	Fade(el, time, multifade_interval, multifade_state[id], multifade_state[id]? 0.8 : 1);
  }
 var toggles = getElementsByName(id + "-Toggle");
 for (var i = 0; i < toggles.length; i++) {
	var el = document.getElementById(id + "-toggle" + i);
	if (!el) continue;
	el.innerHTML = (multifade_state[id])? document.getElementById(id + "-toggle" + i + "-off").innerHTML : document.getElementById(id + "-toggle" + i + "-on").innerHTML;
  }
 multifade_state[id] = !multifade_state[id];
 return;
}

/* Parser for simple math expressions
   Created by MFH for Nonciclopedia */

function opSolve(opArray, posArray) {
	var opDivided = new Array(Array(opArray[posArray[0]][0]));
	var posDivided = new Array(Array(posArray[0], 0));	/* Position, length-1*/
	var opDivInd = 0;
	for (var i = 1; i < posArray.length; i++) {	/* Separates the different brackets*/
		if (posArray[i] == posArray[i-1] + 1) {
			opDivided[opDivInd].push(opArray[posArray[i]][0]);
			posDivided[opDivInd][1] = posDivided[opDivInd][1] + 1;
		}
		else {
			opDivInd = opDivInd + 1;
			posDivided.push(Array(posArray[i], 1));
		}
	}
	for (var i = 0; i <= opDivInd; i++) {
		for (var j = 1; j < opDivided[opDivInd].length - 1; j++) {
			if (opDivided[i][j] == '^') {
				opDivided[i][j-1] = Math.pow(parseFloat(opDivided[i][j-1]),parseFloat(opDivided[i][j+1]));
				opDivided[i].splice(j, 2);
				j = j - 1;
			}
		}
		for (var j = 1; j < opDivided[opDivInd].length - 1; j++) {
			if (opDivided[i][j] == '*') {
				opDivided[i][j-1] = parseFloat(opDivided[i][j-1])*parseFloat(opDivided[i][j+1]);
				opDivided[i].splice(j, 2);
				j = j - 1;
			}
			if (opDivided[i][j] == '/') {
				opDivided[i][j-1] = parseFloat(opDivided[i][j-1])/parseFloat(opDivided[i][j+1]);
				opDivided[i].splice(j, 2);
				j = j - 1;
			}
		}
		for (var j = 1; j < opDivided[opDivInd].length - 1; j++) {
			if (opDivided[i][j] == '+') {
				opDivided[i][j-1] = parseFloat(opDivided[i][j-1])+parseFloat(opDivided[i][j+1]);
				opDivided[i].splice(j, 2);
				j = j - 1;
			}
			if (opDivided[i][j] == '-') {
				opDivided[i][j-1] = parseFloat(opDivided[i][j-1])-parseFloat(opDivided[i][j+1]);
				opDivided[i].splice(j, 2);
				j = j - 1;
			}
		}
	}
	for (var i = posDivided.length -1; i >= 0; i--) {
		opArray[posDivided[i][0]] = Array(opDivided[i][0], opArray[posDivided[i][0]][1] - 1);
		opArray.splice(posDivided[i][0]+1, posDivided[i][1]);
	}
	return opArray;
}

function math_parser(operation, xValue) {
var opArray = new Array();
var brInd = 0;		/* Bracket index */
var brIndMax = 0;

	for (var i = 0; i < operation.length; i++) {	/* Divides the string in single characters */
		var textChunk = operation.substr(i,1);
		if (textChunk != ' ') {		/* Removes useless spaces */
			if (textChunk == '(') {		/* Removes brackets, conserving the information */
				brInd = brInd + 1;
				if (brInd > brIndMax) {
					brIndMax = brInd;
				}
			}
			else if (textChunk == ')') {
				brInd = brInd - 1;
			}
			else if (textChunk == 'x') {
				opArray.push(Array(xValue, brInd));
			}
			else {
				opArray.push(Array(textChunk, brInd));
			}
		}
	}
	i = 0;
	while (i < opArray.length - 1) {	/* Puts numbers together again */
		if ((opArray[i][0].match(/[0-9\.]/) || (opArray[i][0].match(/-/) && (i == 0 || opArray[i-1][1] < opArray[i][1]))) && opArray[i+1][0].match(/[0-9\.]/)) {
			/* If is a number or a comma, or if is a minus at the beginnig of a bracket; and the following is a number or a comma */
			opArray[i][0] = opArray[i][0] + opArray[i+1][0];
			opArray.splice(i+1, 1);
		}
		else {
			i++;
		}
	}
	for (var i = brIndMax; i >= 0; i--) {
		var posArray = new Array();
		for (var j = 0; j < opArray.length; j++) {
			if (opArray[j][1] == i) {
				posArray.push(j);
			}
		}
		opArray = opSolve(opArray, posArray);
	}
return opArray[0][0];
}

/*Analisi delle visite*/
/*
function init() {
	codice = document.createElement('script');
	codice.type = 'text/javascript';
	if (wgUserName) {
		codice.innerHTML = "var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-17496928-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();";
	}
	else {
		codice.innerHTML = "var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-17496918-1']); _gaq.push(['_trackPageview']); (function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();";
	}
	headTag = document.getElementsByTagName("head")[0];
	headTag.appendChild(codice);
}
addOnloadHook(init);*/

function facebooklikeboxTEST() {
     window.fbAsyncInit = function() {
    FB.init({appId: '331743818234', status: true, cookie: true,
             xfbml: true});
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());

addOnloadHook(facebooklikeboxTEST);
}


/* Funzione per il Template:Counter */
document.write('<script type="text/javascript" src="http://nonciclopedia.wikia.com/index.php?title=Utente:Genuzzo/flipcounter.min.js&action=raw&ctype=text/javascript"></script>');
function coolCounterUpdate(text) {
	text = text.split('&gt;')[1];
	text = text.split('\n')[0];
	text = text.replace(/\./g, '');
	if(initialized == false) {
		myCounter = new flipCounter('flip-counter', {value: text, inc:0, pace:0, auto:false});
		myCounter.add(1000);
		$('#coolcounterwait').remove();
		initialized = true;
	}
	myCounter.setValue(text);
}
function initializeCoolCounter() {
	if($('#flip-counter').length > 0) {
		urll = '/api.php?action=parse&text={{NUMBEROFEDITS}}&format=xml';
        	initialized = false;
		setInterval(function() {
			var xhr; 
			try {
				xhr = new ActiveXObject('Msxml2.XMLHTTP');	
			}
			catch (e) {
				try {
					xhr = new ActiveXObject('Microsoft.XMLHTTP');
				}
				catch (e2) {
				try {xhr = new XMLHttpRequest();}
				catch (e3) {xhr = false;}
			}
	  
			xhr.onreadystatechange  = function() { 
				if(xhr.readyState  == 4) {
					if(xhr.status  == 200) {
						coolCounterUpdate(xhr.responseText);
					}
					else 
				alert('Qualcosa è andata storto. O wikia ci ha scoperto. SCAPPAAAAAAAAAAAAA');
				}
			};

			xhr.open('GET', urll,  true); 
			xhr.send(null); 
		}}, 5000);
	}
}
addOnloadHook(initializeCoolCounter);

/* Modifica della funzione di MFH per il purge, per reinserire la pagina di discussione nelle voci */
var buttonTalk = 1;
 
function createTalkButton() {
  if (buttonTalk == 0 || wgCanonicalNamespace == 'Special') return;
  if (document.getElementById('ca-report-problem')) { /* Modifies the "report a problem" button, that is already invisible */
    document.getElementById('ca-report-problem').getElementsByTagName('a')[0].innerHTML = 'Discussion/Rosik';
    document.getElementById('ca-report-problem').getElementsByTagName('a')[0].href = wgServer + wgScriptPath + '/index.php?title=Discussione:' + wgPageName;
    document.getElementById('ca-report-problem').setAttribute('id', 'ca-talk');
  }
  else {
    var menuList = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    var newLi = document.createElement('li');
    newLi.setAttribute('id', 'ca-talk');
    newLi.innerHTML = '<a href="' + wgServer + wgScriptPath + '/index.php?title=Discussione:' + wgPageName + '>Discussione/Rosik</a>';
    menuList.appendChild(newLi);
  }
}

/* Link alla Chat corretto con la skin giusta */
addOnloadHook(function() {
if(wgPageName=="Speciale:Chat") window.location.href = '/wiki/Speciale:Chat?useskin=wikia';
});
/* Pagina utenti con tutte le funzioni con la skin di Wikia */
addOnloadHook(function() {
if(wgPageName=="Speciale:Utenti") window.location.href = '/wiki/Speciale:Utenti?useskin=wikia';
});

/* Statistiche - Genuzzo 2011 */
/*function addTrackingGen() {
   elem = document.createElement('img');
   elem.src = 'http://46.105.19.74/nonciclopedia/stats/hi.php?page=' + wgPageName + '&action=' + wgAction + '&r=' + Math.random();
   document.body.appendChild(elem);
}
addOnloadHook(addTrackingGen); */

/* Statistiche Google */
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17496918-1']);
_gaq.push(['_trackPageview']);
 
(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

/* Dismissable notice - Genuzzo 2011 - Versione 1.0 
Per inserire il messaggio modificare Nonciclopedia:Dismissablenotice */
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+";path=/;";
}
 
 
addOnloadHook(function() {
  if(wgUserName) {
     $.getJSON('http://nonciclopedia.wikia.com/api.php?action=query&prop=revisions&titles=Nonciclopedia:Dismissablenotice&rvprop=content|timestamp&format=json', function(data) {
        $.each(data['query']['pages'], function(key, val) {
           window.timestamp = val['revisions'][0]['timestamp'];
           if(timestamp != getCookie('gendn')) {
              window.message = val['revisions'][0]['*'];
              if (message == '') message = 'undefined';
           }
           else window.message = 'undefined';
        });
        if(message != 'undefined') {
           $.get('http://nonciclopedia.wikia.com/index.php?title=Nonciclopedia:Dismissablenotice&action=render', function(data) {
              $('#contentSub').after($('<div id="gendn" style="display: block; background-color:#FFCE7B; border:1px solid #FFA500; width:98%; padding:.6em; margin:.2em; font-weight:bold; margin-bottom:20px;"><span style="font-size:80%; float:right;"><a href="javascript:createCookie(\'gendn\', timestamp, 1000); $(\'#gendn\').remove(); void(0);">(Cliccami per cancellare il messaggio)</a></span>' + data + '</div>'));
           })
        }
     });
  }
});

/* Funzione per inserire le stellette vicino agli interwiki */
function linkAdQ() {
    var plang = $('#p-lang');
    if (plang.length == 1) {
        var interWikiLinks = $('li', plang);
        interWikiLinks.each(function() {
            var t = $(this);
            if($('#' + t.attr('class') + '-fa').length == 1) {
                t.addClass('FA');
                t.attr('title', 'La voce è in vetrina in questa lingua.');
            } else if ($('#' + t.attr('class') + '-ga').length == 1) {
                t.addClass('GA');
                t.attr('title', 'La voce è di qualità in questa lingua.');
            }
        });
    }
}
 
addOnloadHook(linkAdQ);









/* ********************************************************************* */
/* ********************************************************************* */
/* **************************FAKEVECTOR DA UNCY************************* */
/* ********************************************************************* */
/* ********************************************************************* */

/* search default text provided by Nachteule */
jQuery(document).ready(function() {
	jQuery("#searchInput").val("Ricerca");
	jQuery("#searchInput").css("color", "#888");
	jQuery("#searchInput").bind("focus", function(event) {
		jQuery("#searchInput").val("");
		jQuery("#searchInput").css("color", "");
	});
	jQuery("#searchInput").bind("blur", function(event) {
		if (jQuery("#searchInput").val() === "") {
			jQuery("#searchInput").val("Ricerca");
			jQuery("#searchInput").css("color", "#888");
		}
	});
})




/*ajaxwatch.js*/
 
if(typeof AjaxWatch==="undefined"||!AjaxWatch){
	var AjaxWatch={
		watchMsg:"Taco",
		unwatchMsg:"Detaco",
		watchingMsg:"Tacoing...",
		unwatchingMsg:"Detacoing...",
		'tooltip-ca-watchMsg':"Aggiungi questa pagina alla tua lista degli Osservati Speciali",
		'tooltip-ca-unwatchMsg':"Elimina questa pagina dalla tua lista degli Osservati Speciali"
	};
}
 
AjaxWatch.supported=true;
AjaxWatch.watching=false;
AjaxWatch.inprogress=false;
AjaxWatch.timeoutID=null;
AjaxWatch.watchLinks=[];
AjaxWatch.imgBasePath="";
 
AjaxWatch.setLinkText=function(newText) {
	for(i=0; i<AjaxWatch.watchLinks.length; i++){
		changeText(AjaxWatch.watchLinks[i], '');
 
		// Because firefox keeps the old children
		if (!document.getElementById('watch-star') && !document.getElementById('unwatch-star')) 
			var innera = document.createElement("img");
		else if (document.getElementById('watch-star'))
			var innera = document.getElementById('watch-star');
		else var innera = document.getElementById('unwatch-star');
		innera.src = 'http://images4.wikia.nocookie.net/__cb20060516011831/uncyclopedia/images/5/52/Spacer.gif';
		innera.id = 'watch-star';
		innera.setAttribute('width', '17px');
		innera.setAttribute('height', '17px');
 
		if(newText==AjaxWatch.unwatchingMsg || newText==AjaxWatch.unwatchMsg) {
			innera.id = 'unwatch-star';
		}
		if(newText==AjaxWatch.watchMsg||newText==AjaxWatch.unwatchMsg){
			var keyCommand=AjaxWatch.watchLinks[i].title.match(/\[.*?\]$/)?AjaxWatch.watchLinks[i].title.match(/\[.*?\]$/)[0]:"";
			AjaxWatch.watchLinks[i].title=(newText==AjaxWatch.watchMsg?AjaxWatch['tooltip-ca-watchMsg']:AjaxWatch['tooltip-ca-unwatchMsg'])+" "+keyCommand;
		}
		if (!(document.getElementById('watch-star') || document.getElementById('unwatch-star')) ) 
			AjaxWatch.watchLinks[i].appendChild(innera);
	}
};
 
AjaxWatch.setLinkID=function(newId){
	AjaxWatch.watchLinks[0].parentNode.setAttribute('id',newId);
};
 
AjaxWatch.setHref=function(string){
	for(i=0; i<AjaxWatch.watchLinks.length; i++) {
		if(string=='watch'){
			AjaxWatch.watchLinks[i].href=AjaxWatch.watchLinks[i].href.replace(/&action=unwatch/,'&action=watch');
		}else if(string=='unwatch'){
			AjaxWatch.watchLinks[i].href=AjaxWatch.watchLinks[i].href.replace(/&action=watch/,'&action=unwatch');
		}
	}
}
 
AjaxWatch.ajaxCall=function(){
	if(!AjaxWatch.supported){
		return true;
	}else if(AjaxWatch.inprogress){
		return false;
	}
	if(!wfSupportsAjax()){
		AjaxWatch.supported=false;
	return true;
}
 
AjaxWatch.inprogress=true;
AjaxWatch.setLinkText(AjaxWatch.watching?AjaxWatch.unwatchingMsg:AjaxWatch.watchingMsg);
var old_sajax_request_type=sajax_request_type;
sajax_request_type="POST";
sajax_do_call("wfAjaxWatch",[wgPageName,(AjaxWatch.watching?"u":"w")],AjaxWatch.processResult);
sajax_request_type=old_sajax_request_type;
 
AjaxWatch.timeoutID=window.setTimeout(function(){ 
	AjaxWatch.inprogress=false; },10000);
	return false;
};
 
AjaxWatch.processResult=function(request){
	if(!AjaxWatch.supported){
		return;
	}
	var response=request.responseText;
	if(response.match(/^<w#>/)){
		AjaxWatch.watching=true;
		AjaxWatch.setLinkText(AjaxWatch.unwatchMsg);
		AjaxWatch.setLinkID("ca-unwatch");
		AjaxWatch.setHref('unwatch');
	}else if(response.match(/^<u#>/)){
		AjaxWatch.watching=false;
		AjaxWatch.setLinkText(AjaxWatch.watchMsg);
		AjaxWatch.setLinkID("ca-watch");
		AjaxWatch.setHref('watch');
	}else{
		window.location.href=AjaxWatch.watchLinks[0].href;
		return;
	}
	if(typeof wgEnableWikiaFollowedPages==="undefined"||!wgEnableWikiaFollowedPages){
		jsMsg(response.substr(4),'watch');
	}
	AjaxWatch.inprogress=false;
	if(AjaxWatch.timeoutID){
		window.clearTimeout(AjaxWatch.timeoutID);
	}
	var watchthis=document.getElementById("wpWatchthis");
	if(watchthis&&response.match(/^<[uw]#>/)){
		watchthis.checked=response.match(/^<w#>/)?"checked":"";
	}
	return;
};
 
AjaxWatch.onLoad=function(){
	var el1=document.getElementById("ca-unwatch");
	var el2=null;
	if(!el1){
		el1=document.getElementById("mw-unwatch-link1");
		el2=document.getElementById("mw-unwatch-link2");
	}
	if(el1){
		AjaxWatch.watching=true;
	}else{
		AjaxWatch.watching=false;
		el1=document.getElementById("ca-watch");
		if(!el1){
			el1=document.getElementById("mw-watch-link1");
			el2=document.getElementById("mw-watch-link2");
		}
		if(!el1){
			AjaxWatch.supported=false;
			return;
		}
	}
	AjaxWatch.watchLinks.push(el1.tagName.toLowerCase()=="a"?el1:el1.firstChild);
	if(el2){
		AjaxWatch.watchLinks.push(el2);
	}
	for(i=0; i<AjaxWatch.watchLinks.length; i++){
		AjaxWatch.watchLinks[i].onclick=AjaxWatch.ajaxCall;
		if (AjaxWatch.watching == false) AjaxWatch.setLinkText(AjaxWatch.watchMsg);
		else AjaxWatch.setLinkText(AjaxWatch.unwatchMsg);
	}
	return;
};
 
// IE doesn't work and I don't know how/can't be arsed to fix it
if(typeof hookEvent!='undefined' && navigator.appName != 'Microsoft Internet Explorer') YAHOO.util.Event.onContentReady('p-cactions', AjaxWatch.onLoad );
if(typeof hookEvent!='undefined' && navigator.appName != 'Microsoft Internet Explorer') hookEvent("load",AjaxWatch.onLoad);




/*
 * Trivial plugin for hiding the portals in the sidebar panel
 * Written by Silent Penguin
 */
(function( $ ){
    $.fn.hidingToolbox = function(options) {
        var settings = {
            'initClosed'  : true,
            'duration' : 200,
            'contentSelector' : '.pBody',
            'handleSelector' : 'h5',
            'slide': function (visible) { if(visible){ this.parent().addClass('hidden').removeClass('visible') } else { this.parent().addClass('visible').removeClass('hidden') } }
        };
 
        //where the magic happens
        var handleClick = function (){
            var handle = $(this).parent().find(settings['contentSelector']);
            var visible = handle.is(':visible')
            handle[ visible
                    ? 'slideUp'
                    : 'slideDown' ](settings['duration'], function () {
                        return settings['slide'].apply($(this),[visible]);
                    });
        }
 
        var handleHoverIn = function () {
            $(this).addClass('hover');
        }
 
        var handleHoverOut = function () {
            $(this).removeClass('hover');
        }
 
        var length = this.length;
 
        if ( typeof(options) == typeof(Object()) ) { 
            $.extend( settings, options );
        }
        // If options exist and is the right type, lets merge them with our default settings
 
        if ( typeof(settings['initClosed']) == typeof(Array()) &&
             !settings['initClosed'].length) {
            settings['initClosed'] = true;
        }
        // if our init closed is an empty array, define it to the default again.
 
        return this.each(function(key) {        
            var self = $(this);
            self.find(settings['handleSelector'])
                .hover(handleHoverIn, handleHoverOut) //detect hovers, style accordingly
                .click(handleClick); //click event to open and close
            var initClosed = typeof(settings['initClosed']) == typeof(Array())
                ? settings['initClosed'][Math.min(key, length - 1)]
                : settings['initClosed'];
            self.find(settings['contentSelector'])[initClosed ? 'hide' : 'show']().parent().addClass(initClosed ? 'hidden' : 'visible' );
        });
    };
})( jQuery );
 
jQuery(document).ready(function(){
    //jQuery('.generated-sidebar:not(#p-navigation), #p-condividi, #p-progetti, #p-community, #p-tb, #p-wikicities-nav, #p-lang').hidingToolbox({'initClosed':[false, false, true, true, true]});
    jQuery('#column-one').addClass('collapsible_pile'); 
});

/* ************* Funzione per il caricamento categorie con il <charinsert> ************* */
/*  Created by Genuzzo */

function catInsertUpdate() {
    jQuery('.catinsert a').each(function() {
         if(!jQuery(this).data('c')) {
              jQuery(this).click(function(e) {
                  e.preventDefault();
                  jQuery('textarea:nth(0)').val(jQuery('textarea:nth(0)').val() + '[[Categoria:' +  jQuery(this).text() + ']]');
              });
              jQuery(this).data('c', 'a');
         }
    });
}

jQuery(document).ready(function() {
    if(jQuery('.catinsert').length > 0) {
        catInsertUpdate();
        setInterval(catInsertUpdate, 30);
    }
});

/* ************* Toolbar *************
********** Nascondi con i cookie ********* 
 **********  Created by Genuzzo ************* */ 
function toolbarCookieHide() {
    if(getCookie('tlb') == 'yes') $('#HidebarToggleInitialState').html('0');
    $('#HidebarToggleLink').click(function() {
        var today = new Date();
        var expire = new Date();
        expire.setTime(today.getTime() + 3600000*24*356);
        document.cookie = "tlb=" + (getCookie('tlb') == 'yes' ? 'no' : 'yes') + ";expires=" + expire.toGMTString();
    });
}

/* Risoluzione problemi di edit */
addOnloadHook(function() {
  if(wgAction == 'edit') {
    $('#p-cactions').css({
      'width': '100%',
      'left': '0px',
      'padding-left': '0px',
      'top': '0px'
    });
    $('#p-cactions .pBody').css({
      'margin': '40px 222px 0 160px',
      'border-bottom': '1px solid #A8D7F9',
    });
    $('#p-personal .pBody').css({
      'background': '-moz-linear-gradient(center top , #FFFFFF 30%, #EAF5FD 150%) repeat scroll 0 0 transparent',
      'padding': '0px 10px 0px 0px'
    });
    $('#p-personal li').css({
      'background': 'none repeat scroll 0 0 transparent',
      'margin-left': '0px',
 
    });
    $('li#pt-userpage').css({
      'padding-left': '0px'
    });
 
  }
});