User:Anomie/file-toggle-transparency.js

if(typeof(window.FileToggleTransparencyBackgrounds)=='undefined') window.FileToggleTransparencyBackgrounds = [ 'white url("//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png") repeat', 'white url("//upload.wikimedia.org/wikipedia/commons/6/60/Transparency-tile.png") repeat', 'white', '#ccc', '#888',   '#444',    'black', '#00f', '#f0f' ];

var FileToggleTransparency = { rules:[],

changeBG:function{ for(var i=0; i<FileToggleTransparency.rules.length; i++){ FileToggleTransparency.rules[i].style.background=this.$background; }   },

onLoad:function{ var bg=FileToggleTransparencyBackgrounds[0]; if(document.createStyleSheet){ var s=document.createStyleSheet; s.addRule('.filehistory a img', 'background:'+bg); FileToggleTransparency.rules.push(s.rules[s.rules.length-1]); s.addRule('#file img', 'background:'+bg); FileToggleTransparency.rules.push(s.rules[s.rules.length-1]); s.addRule('#file img:hover', 'background:'+bg); FileToggleTransparency.rules.push(s.rules[s.rules.length-1]); } else { var s=document.createElement('STYLE'); s.type='text/css'; document.getElementsByTagName('HEAD')[0].appendChild(s); s=s.sheet; s.insertRule('.filehistory a img, #file img, #file img:hover {\nbackground:'+bg+'\n}', s.cssRules.length); FileToggleTransparency.rules.push(s.cssRules[s.cssRules.length-1]); }       if(!FileToggleTransparency.rules) return;

var fm=$('.fullMedia'); if(fm && fm.length>0){ var p = document.createElement('p'); p.className='FileTransparencyToggle'; p.appendChild(document.createTextNode('Transparency fill:')); for(var i=0; i<FileToggleTransparencyBackgrounds.length; i++){ var s=document.createElement('span'); s.style.background=FileToggleTransparencyBackgrounds[i]; s.$background=FileToggleTransparencyBackgrounds[i]; $(s).click(FileToggleTransparency.changeBG); p.appendChild(s); }           fm[0].appendChild(p); }

var hist=$('#mw-imagepage-section-filehistory'); hist = (hist && hist.length) ? hist[0] : null; var b = hist ? hist.firstChild : null; while(b && b.nodeName!='TABLE') b=b.nextSibling; if(b){ var p = document.createElement('p'); p.className='FileTransparencyToggle'; p.appendChild(document.createTextNode('Transparency fill:')); for(var i=0; i<FileToggleTransparencyBackgrounds.length; i++){ var s=document.createElement('span'); s.style.background=FileToggleTransparencyBackgrounds[i]; s.$background=FileToggleTransparencyBackgrounds[i]; $(s).click(FileToggleTransparency.changeBG); p.appendChild(s); }           hist.insertBefore(p,b); }   } };

if(mw.config.get('wgNamespaceNumber')==6 && mw.config.get('wgTitle').match(/\.(svg|png|gif)$/i)){ importStylesheet('User:Anomie/file-toggle-transparency.css'); $(document).ready(FileToggleTransparency.onLoad); }