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[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

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

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);

}