MediaWiki: Common.js
From ShareRice Wiki (AFN)
Line 94: | Line 94: | ||
} | } | ||
} | } | ||
+ | |||
+ | |||
+ | function initAsianFuseVideoPanels() { | ||
+ | jQuery('.afv').each(function(i, el) { | ||
+ | id = el.id.split('_', 2) | ||
+ | _asianfuse2.add(id[1], _asianfuse2); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | addOnloadHook( initAsianFuseVideoPanels ); |
Revision as of 19:50, 24 July 2011
/* Any JavaScript here will be loaded for all users on every page load. */ // Provide easy access to default values, neatly hidden in a "namespace" that SHOULDN'T conflict with any other environmental variables. var _asianfuse = { video_panels: { add: function(key, val) { if ( this.has_key(key) || val == undefined ) { return; } this[key] = val; }, has_key: function(key) { return(this[key] != undefined); } }, maxWidth: 425, minWidth: 150, maxHeight: 350, minHeight: 124 } function do_resize (rand, dir) { key = '#af-video-restore_' + rand if ( dir == 'max') { _asianfuse.video_panels.add(key, jQuery(key).parent().height()); jQuery('.af-video-embed_' + rand).width(_asianfuse.maxWidth + 'px'); jQuery('.af-video-embed_' + rand).height(_asianfuse.maxHeight + 'px'); // Reset the width relative to the width of the embedded video, // because we cannot count on it's parent element's calculated width to cause this to display as expected jQuery('#af-video-restore_' + rand).width(_asianfuse.maxWidth * 0.98 + 'px'); jQuery('#af-video-restore_' + rand).show(); } else if ( dir == 'min' ) { jQuery('#af-video-restore_' + rand).hide(); jQuery('.af-video-embed_' + rand).width(_asianfuse.minWidth + 'px') jQuery('.af-video-embed_' + rand).height(_asianfuse.minHeight + 'px'); jQuery(key).parent().width('150px') if( _asianfuse.video_panels.has_key(key) ) { jQuery(key).parent().height(_asianfuse.video_panels[key] + 'px'); } } } addOnloadHook( do_resize ); video_panel = function(id, cfg) { this.config = cfg this.container = jQuery('#af-media-embed-container_' + id) this.embedded = jQuery('#af-media-embed_' + id) this.restorer = jQuery('#af-media-restore_' + id) this.widths = { container: this.container.width(), embedded: this.embedded.width() } this.heights = { container: this.container.height(), embedded: this.embedded.height() } this.maximize = function() { if( this.is_maximized() ) { return; } this.container.width(this.config.maxWidth + 'px'); this.container.height(this.config.maxHeight + 45 + 'px'); this.embedded.width(this.config.maxWidth + 'px'); this.embedded.height(this.config.maxHeight + 'px'); // Reset the width relative to the width of the embedded video, // because we cannot count on it's parent element's calculated width to cause this to display as expected this.restorer.width((this.config.maxWidth * 0.98) + 'px'); this.restorer.show(); } this.minimize = function() { if( this.is_maximized() ) { this.restorer.hide(); this.embedded.width(this.widths.embedded + 'px') this.embedded.height(this.heights.embedded + 'px'); this.container.width(this.widths.container + 'px') this.container.height(this.heights.container + 'px') } } this.is_maximized = function() { o = (this.container.length > 0 ? 'container' : 'embedded'); return parseInt(this[o].height()) == parseInt(this.config.maxHeight) && parseInt(this[o].width()) == parseInt(this.config.maxWidth); } } var _asianfuse2 = { maxWidth: 425, maxHeight: 350, video_panels: [], add: function(id, config) { this.video_panels[id] = new video_panel(id, config); } } function initAsianFuseVideoPanels() { jQuery('.afv').each(function(i, el) { id = el.id.split('_', 2) _asianfuse2.add(id[1], _asianfuse2); }); } addOnloadHook( initAsianFuseVideoPanels );