User:Jeiara/monaco.js

/** substUsername ******************************************************************* * * Description: Replaces  with the name of the user browsing the page. *              Requires copying Template:Username. */

function substUsername {   var spans = YAHOO.util.Dom.getElementsByClassName('insertusername', 'span');

for(var i = 0; i < spans.length; i++) {       spans[i].innerHTML = wgUserName; } }

addOnloadHook(substUsername);

/** renderGoogleCharts ************************************************************** * * Description: Replaces links to google charts with images of the chart. *              The title and alternate text of the image will be the text of the link. *              If the link is placed inside a element with class="nochart", *              the link won't be touched. * Written by:  w:User:Ciencia Al Poder "Jesús Martínez Novo" */

function renderGoogleCharts{ if (!document.getElementById('bodyContent')) return; var as = document.getElementById('bodyContent').getElementsByTagName('a'); for (var i = as.length-1; i>=0; i--){ if (as[i].href.indexOf('http://chart.apis.google.com/chart?') == 0){ if ((' '+as[i].parentNode.className+' ').indexOf(' nochart ') == -1){ var img = document.createElement('img'); img.src = as[i].href; var content = as[i].textContent || as[i].innerHTML || 'This is a chart' img.alt = content; img.title = content; as[i].parentNode.replaceChild(img, as[i]); } } } }

addOnloadHook(renderGoogleCharts);

/** Create pop-up menu of image tags ************************************************* * Description: Creates a pop-up menu using the Yahoo! User Interface library (YUI). *              Used in conjunction with insertImageTags function below. * Written by: User:Jeiara for http://terminator.wikia.com */

// This script is to be used only for a specific page: Special:MultipleUpload if (wgPageName == "Special:MultipleUpload") {

// Variables for pop-up Menu // Notes: Wikia has YUI Dom and Event already installed, no need to import. //var domevents = 'http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js'; var dragdrop = 'http://yui.yahooapis.com/2.6.0/build/dragdrop/dragdrop-min.js'; var container = 'http://yui.yahooapis.com/2.6.0/build/container/container-min.js'; var container_css = 'http://yui.yahooapis.com/2.6.0/build/container/assets/skins/sam/container.css';

importScriptURI(dragdrop); importScriptURI(container); importStylesheetURI(container_css);

var popMenu; YAHOO.example.panels = function{ popMenu = new YAHOO.widget.Panel("popMenu", 		{ 				width:"475px",                       height:"350px",			zindex:"999",			close:true,  			visible:false,  			draggable:true,			context:['wiki_logo','tl','br'],			constraintoviewport:false			} 	); popMenu.setHeader('Add tags for Image #n'); popMenu.setBody('Image tags go here.'); popMenu.setFooter('Notes: Click all tags that apply. You can drag this box anywhere in the window. Close with [X].'); popMenu.render(document.body); }; YAHOO.util.Event.addListener(window,'load',YAHOO.example.panels);

/** insertImageTags ***************************************************************** * * Description: Inserts a link with the text: "Add Image Tags", that activates a  *               pop-up menu listing image tags that can be added to the summary box. * Written by:  User:Jeiara for http://terminator.wikia.com */

function insertImageTags { // Check for DOM support if (!document.getElementById || !document.createElement) {return;}

// Add Yahoo styles for pop-up menu appendCSS(".yui-panel .bd {font-size:10px;}"); YAHOO.util.Dom.addClass('body', 'yui-skin-sam');

// Obtain reference to table containing form inputs var tableRef = document.getElementById('upload').getElementsByTagName('table')[0]; var tRows = tableRef.rows; var num = -1;

// Find only the Summary input boxes for (var i=0; i<tRows.length; i++) { var inputElements = tRows[i].getElementsByTagName('input'); for (var j=0; j<inputElements.length; j++) { // Extract only input name of Summary boxes if (inputElements[j].name.split("_")[0] == 'wpUploadDescription') { num++; // Increase uploads description quantity var aRow = tableRef.rows[i]; // Insert "Add Image Tags" link after Summary box var insertLink = document.createElement('a'); insertLink.id = 'insertLink_'+ num; insertLink.rel = inputElements[j].name; // Save input name insertLink.title = num + 1; // Save image number insertLink.href = '#'; insertLink.innerHTML = 'Add Image Tags'; insertLink.onclick = function{ var t = createTags(this.rel); popMenu.setHeader('Add tags for Image #' + this.title); popMenu.setBody(t); popMenu.show; return false; };				aRow.insertCell(j+1).appendChild(insertLink); }         }              }

}

addOnloadHook(insertImageTags);

function appendTags(loc, tag) { // I used YUI equivalent of getElementsByName (which is buggy in browsers) // More information at http://www.quirksmode.org/dom/w3c_core.html#t114 var namedElement = YAHOO.util.Dom.getElementsBy(function(el) {	return (el.getAttribute("name") == loc); }); namedElement[0].value += tag; }

function linkTags(loc, tag) { return ''+tag+' '; }

function createTags(loc) { // Images tags to insert var Franchise = new Array( '&#123;&#123;images-animation&#123;&#123;', , , , , ,  ); var Subject = new Array( , , ,  ); var Type = new Array( , ,  ,  ,  ,  ,  ''  ); var Machine = new Array( ,  ); var Character = new Array( , , , , , , , , , , , , '' ); // Create image tag links var f = new Array;var s = new Array;var t = new Array;var m = new Array;var c = new Array; for (var a = 0; a < Franchise.length; a++) {f[a] = linkTags(loc,Franchise[a]);} for (var e = 0; e < Subject.length; e++) {s[e] = linkTags(loc,Subject[e]);} for (var i = 0; i < Type.length; i++) {t[i] = linkTags(loc,Type[i]);} for (var o = 0; o < Machine.length; o++) {m[o] = linkTags(loc,Machine[o]);} for (var u = 0; u < Character.length; u++) {c[u] = linkTags(loc,Character[u]);} // Create image tags table tags = " "; return tags; }

} // END if wgPageName == "Special:MultipleUpload"