MediaWiki:Wikimediaplayer.js
Appearance
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//Wikimediaplayer, Based on wikiminiatlas by dschwen
var wikimediaplayer =
{
wmpconfig:
{
width : 400,
height : 450,
playerurl : '//tools.wikimedia.de/~gmaxwell/jorbis/JOrbisPlayer.php',
buttonImage: '//upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Nuvola_apps_kaboodle.png/18px-Nuvola_apps_kaboodle.png',
largebuttonImage: '//upload.wikimedia.org/wikipedia/commons/0/0c/Nuvola_apps_kaboodle.png',
imgbase : '//tools.wikimedia.de/~dschwen/wikiminiatlas/tiles/'
},
strings:
{
buttonTooltip : {
en:'Play media'
},
close : {
de:'schließen',
en:'close',
eu:'itxi',
es:'cerrar'
}
},
link : null,
links : null,
language : 'en',
iframe : { div: null, iframe: null, closebutton: null},
playpath : '',
// cross-browser event attachment (John Resig)
// http//www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
addEvent : function ( obj, type, fn )
{
if (obj.addEventListener)
obj.addEventListener( type, fn, false );
else if (obj.attachEvent)
{
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
obj.attachEvent( "on"+type, obj[type+fn] );
}
},
// vertikale position auf der Seite bestimmen
totalOffset : function( obj, offset )
{
if( obj.offsetParent == null ||
obj.offsetParent.id == 'content' )
return offset + obj.offsetTop;
else
return wikimediaplayer.totalOffset(obj.offsetParent, offset + obj.offsetTop );
},
// move iframe around and toggle visibility
toggleIFrame : function( e )
{
with(wikimediaplayer)
{
var newurl = this.playparam;
if(iframe.div.style.visibility != "visible" ||
( ( iframe.iframe.src != newurl ) && ( this.playparam != '' ) ) )
{
if( iframe.iframe.src != newurl )
{
iframe.iframe.src = newurl;
}
iframe.div.style.top = (totalOffset( this, 0 ) + 20 ) + 'px';
iframe.div.style.visibility="visible";
}
else {
iframe.div.style.visibility="hidden";
iframe.iframe.src = "";
}
}
return false;
},
// Insert the IFrame into the page.
loader : function()
{
// apply settings
with(wikimediaplayer)
{
language = window.location.host.substr(0,2);
var neediframe=0;
links = document.getElementsByTagName('a');
for( var key = 0; key < links.length; key++ )
{
link = links[key];
if( link.href &&
( link.href.substr(0,wmpconfig.playerurl.length) == wmpconfig.playerurl ) )
{
playerlink = link.href;
playbutton = document.createElement('img');
playbutton.title = strings.buttonTooltip['en'];
playbutton.style.padding = '0px 3px 0px 0px';
playbutton.style.cursor = 'pointer';
playbutton.src = wmpconfig.buttonImage;
playbutton.playparam = playerlink;
addEvent( playbutton, 'click', toggleIFrame );
neediframe=1;
// link.parentNode.insertBefore(playbutton, link.nextSibling);
link.parentNode.insertBefore(playbutton,link);
}
} //for
//Big icon for image pages.
if (mw.config.get('wgNamespaceNumber==6')){
divi = document.getElementById('file');
if (!divi)
return;
links = divi.getElementsByTagName('a');
var filere= /\/([^\/]*?.[Oo][Gg][Gg])$/
for( var key = 0; key < links.length; key++ )
{
link = links[key];
if( link.href &&
( filere.test(link.href) ))
{
filere.exec(link.href)
playerlink = wmpconfig.playerurl + '?path=' + RegExp.$1;
playbutton = document.createElement('img');
playbutton.title = strings.buttonTooltip['en'];
playbutton.style.padding = '0px 3px 0px 0px';
playbutton.style.cursor = 'pointer';
playbutton.src = wmpconfig.largebuttonImage;
playbutton.playparam = playerlink;
addEvent( playbutton, 'click', toggleIFrame );
neediframe=1;
// link.parentNode.insertBefore(playbutton, link.nextSibling);
link.parentNode.insertBefore(playbutton,link);
}
} //for link
}
if (neediframe==1) {
// iframe vorbereiten
iframe.div = document.createElement('div');
iframe.div.style.visibility = 'hidden';
iframe.div.style.width = (wmpconfig.width+12)+'px';
iframe.div.style.height = (wmpconfig.height+12)+'px';
iframe.div.style.margin = '0px';
iframe.div.style.padding = '0px';
iframe.div.style.backgroundColor = 'white';
iframe.div.style.position = 'absolute';
iframe.div.style.right = '2em';
iframe.div.style.top = '1em';
iframe.div.style.border = '1px solid gray';
iframe.div.style.zIndex = 13;
iframe.closebutton = document.createElement('img');
iframe.closebutton.title = strings.close[language];
iframe.closebutton.src = '//upload.wikimedia.org/wikipedia/commons/d/d4/Button_hide.png';
iframe.closebutton.style.zIndex = 15;
iframe.closebutton.style.position = 'absolute';
iframe.closebutton.style.right = '11px';
iframe.closebutton.style.top = '11px';
iframe.closebutton.style.width = '18px';
iframe.closebutton.style.cursor = 'pointer';
iframe.closebutton.playparam = '';
addEvent( iframe.closebutton, 'click', toggleIFrame );
iframe.iframe = document.createElement('iframe');
iframe.iframe.border = '0';
iframe.iframe.style.zIndex = 14;
iframe.iframe.style.position = 'absolute';
iframe.iframe.style.right = '1px';
iframe.iframe.style.top = '1px';
iframe.iframe.style.width = (wmpconfig.width+10)+'px';
iframe.iframe.style.height = (wmpconfig.height+10)+'px';
iframe.iframe.style.margin = '0px';
iframe.iframe.style.padding = '0px';
iframe.div.appendChild(iframe.iframe);
iframe.div.appendChild(iframe.closebutton);
var content = document.getElementById('content');
content.insertBefore(iframe.div,content.childNodes[0]);
} //with
}
}
}
//
// Hook up installation function
//
$(document).ready(wikimediaplayer.loader);