MediaWiki:Wikimediaplayer.js

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