r40672 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r40671‎ | r40672 | r40673 >
Date:19:50, 9 September 2008
Author:dale
Status:old
Tags:
Comment:
IE compatibility updates
fixed scrolling to wrong part of transcript issues
play_pause button rewrite to "stop" to accept thumbnail updates
Modified paths:
  • /trunk/extensions/MetavidWiki/skins/mv_embed/example_usage/sample_page.php (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/skin/styles.css (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_stream.js (modified) (history)

Diff [purge]

Index: trunk/extensions/MetavidWiki/skins/mv_stream.js
@@ -112,6 +112,10 @@
113113 ebvid['org_eb_stop'] = ebvid['stop'];
114114 ebvid['stop'] = function(){mv_do_stop();}
115115 }
 116+ if(ebvid['play_or_pause'].toString()!='function(){mv_play_or_pause();}'){
 117+ ebvid['org_eb_play_or_pause'] = ebvid['play_or_pause'];
 118+ ebvid['play_or_pause'] = function(){mv_play_or_pause();}
 119+ }
116120 if(ebvid['showVideoDownload'].toString!='function(){mv_doShowVideoDownload();}'){
117121 ebvid['org_showVideoDownload'] = ebvid['showVideoDownload'];
118122 ebvid['showVideoDownload'] = function(){mv_doShowVideoDownload();}
@@ -781,6 +785,11 @@
782786 //return false to prevent the form being submitted
783787 return false;
784788 }
 789+function mv_play_or_pause(){
 790+ //issue a stop since we want mouse_overs to work
 791+ if(!this.paused)
 792+ mv_do_stop();
 793+}
785794 function mv_do_stop(){
786795 $j('#mv_videoPlayerTime').fadeIn('fast');
787796 //re-enable interface:
@@ -867,10 +876,11 @@
868877
869878 function scroll_to_pos(mvd_id){
870879 if( $j('#mv_fd_mvd_'+mvd_id).get(0)){
871 - //do scroll in 1 second
 880+ js_log(' flat offsetTOp:: '+ $j('#mv_fd_mvd_'+mvd_id).get(0).offsetTop +
 881+ ' mv_get off:'+top_offset);
872882 //@@todo debug IE issues with scrolling
873 - $j('#selectionsBox').animate({scrollTop: $j('#mv_fd_mvd_'+mvd_id).position().top}, 'slow');
874 - }
 883+ $j('#selectionsBox').animate({scrollTop: ($j('#mv_fd_mvd_'+mvd_id).get(0).offsetTop-40)}, 'slow');
 884+ }
875885 }
876886 function highlight_fd(mvd_id){
877887 $j('#mv_fd_mvd_'+mvd_id).css('border','1px solid #FF0000');
Index: trunk/extensions/MetavidWiki/skins/mv_embed/example_usage/sample_page.php
@@ -8,7 +8,7 @@
99 <html>
1010 <head>
1111 <title>sample mv embed</title>
12 - <script type="text/javascript" src="<?php echo htmlspecialchars($mv_path) ?>mv_embed.js"></script>
 12+ <script type="text/javascript" src="<?php echo htmlspecialchars($mv_path) ?>mv_embed.js?<?php echo time()?>"></script>
1313 </head>
1414 <body>
1515 <h3> Sample Embed</h3>
@@ -107,8 +107,8 @@
108108 ?>
109109 <table border="1" cellpadding="6" width="600">
110110 <? foreach($sample_embed as $key=>$aval){
111 - //$key!=8
112 - if($key!=0 && $key!=3)continue;
 111+ //$key!=8 && $key!=3
 112+ if($key!=0 )continue;
113113 ?>
114114 <tr>
115115 <td valign="top"><?=$aval['tag']?></td>
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js
@@ -7,9 +7,6 @@
88 *
99 * @url http://metavid.ucsc.edu
1010 *
11 - * portions sampled from the vlc browser interface:
12 - * http://people.videolan.org/~damienf/plugin-0.8.6.html *
13 - *
1411 * parseUri:
1512 * http://stevenlevithan.com/demo/parseuri/js/
1613 *
@@ -17,6 +14,7 @@
1815 * (in cases where media will be hosted in a different place than the embbeding page)
1916 *
2017 */
 18+var MV_EMBED_VERSION = '1.0';
2119 var mv_embed_path = null;
2220 //whether or not to load java from an iframe.
2321 //note: this is necessary for remote embedding because of java security model)
@@ -150,7 +148,7 @@
151149 * its load_libs function will be called during initialization
152150 *********************************************/
153151 var mvEmbed = {
154 - Version: '0.7',
 152+ Version: MV_EMBED_VERSION,
155153 loaded:false,
156154 load_time:0,
157155 flist:Array(),
@@ -485,6 +483,7 @@
486484 *
487485 */
488486 var ctrlBuilder = {
 487+ height:29,
489488 getControls:function(embedObj){
490489 js_log('f:controlsBuilder');
491490 ctrlBuilder.id = (embedObj.pc)?embedObj.pc.pp.id:embedObj.id;
@@ -637,15 +636,18 @@
638637
639638 // ActiveX plugins
640639 if(this.msie){
 640+ // check for flash
 641+ if ( this.testActiveX( 'ShockwaveFlash.ShockwaveFlash'))
 642+ this.players.addPlayer(flowPlayer);
641643 // VLC
642644 if ( this.testActiveX( 'VideoLAN.VLCPlugin.2' ) )
643645 this.players.addPlayer(vlcActiveXPlayer);
644646 // Java
645647 if ( javaEnabled && this.testActiveX( 'JavaWebStart.isInstalled' ) )
646648 this.players.addPlayer(cortadoPlayer);
647 - //temporary disable QuickTime check
 649+ // quicktime
648650 if ( this.testActiveX( 'QuickTimeCheckObject.QuickTimeCheck.1' ) )
649 - this.players.addPlayer(quicktimeActiveXPlayer);
 651+ this.players.addPlayer(quicktimeActiveXPlayer);
650652 }
651653
652654 // <video> element (should not need to be attached to the dom to test)(
@@ -985,6 +987,7 @@
986988 js_log('do swap ' + videoInterface.id + ' for ' + video_element);
987989 embed_video = document.createElement('div');
988990 //make sure our div has a hight/width set:
 991+
989992 $j(embed_video).css({'width':videoInterface.width,'height':videoInterface.height});
990993 //inherit the video interface
991994 for(method in videoInterface){
@@ -1086,7 +1089,7 @@
10871090 var _this = this;
10881091 do_request(this.pe.roe, function(data)
10891092 {
1090 - //continue
 1093+ //continue
10911094 _this.pe.media_element.addROE(data);
10921095 _this.getParseCMML_rowReady();
10931096 });
@@ -1371,7 +1374,7 @@
13721375 {
13731376 js_log(element);
13741377
1375 - this.uri = element.getAttribute('src');
 1378+ this.uri = $j(element).attr('src');
13761379 if(ogg_chop_links)
13771380 this.uri = this.uri.replace(".anx", '');
13781381 this.marked_default = false;
@@ -1381,17 +1384,17 @@
13821385 if (tag == 'video')
13831386 this.marked_default = true;
13841387
1385 - if (element.hasAttribute('type'))
1386 - this.mime_type = element.getAttribute('type');
1387 - else if (element.hasAttribute('content-type'))
1388 - this.mime_type = element.getAttribute('content-type');
 1388+ if ($j(element).attr('type'))
 1389+ this.mime_type = $j(element).attr('type');
 1390+ else if ($j(element).attr('content-type'))
 1391+ this.mime_type = $j(element).attr('content-type');
13891392 else
13901393 this.mime_type = this.detectType(this.uri);
13911394
13921395 js_log("MIME TYPE: "+ this.mime_type );
13931396
1394 - if (element.hasAttribute("title"))
1395 - this.title = element.getAttribute("title");
 1397+ if ($j(element).attr("title"))
 1398+ this.title = $j(element).attr("title");
13961399 else
13971400 {
13981401 var parts = this.mime_type.split("/",2);
@@ -1400,14 +1403,14 @@
14011404 this.title = parts[1] + ' ' + parts[0];
14021405 }
14031406
1404 - if (element.hasAttribute("id"))
1405 - this.id = element.getAttribute("id");
 1407+ if ($j(element).attr("id"))
 1408+ this.id = $j(element).attr("id");
14061409
14071410 //@@todo parse start time format and put into start_ntp
1408 - if(element.hasAttribute("start"))
1409 - this.start = element.getAttribute("start");
1410 - if(element.hasAttribute("end"))
1411 - this.start = element.getAttribute("end");
 1411+ if($j(element).attr("start"))
 1412+ this.start = $j(element).attr("start");
 1413+ if($j(element).attr("end"))
 1414+ this.start = $j(element).attr("end");
14121415 //js_log('Adding mediaSource of type ' + this.mime_type + ' and uri ' + this.uri + ' and title ' + this.title);
14131416 this.parseURLDuration();
14141417 },
@@ -1416,8 +1419,8 @@
14171420 * @param {String} end_time in NTP format
14181421 */
14191422 updateSrcTime:function(start_ntp, end_ntp){
1420 - js_log("UPDATE src time: "+ start_ntp+'/'+ end_ntp);
1421 - js_log("pre uri:" + this.uri);
 1423+ js_log("f:updateSrcTime: "+ start_ntp+'/'+ end_ntp);
 1424+ //js_log("pre uri:" + this.uri);
14221425 //if we have time we can use:
14231426 if(this.start_ntp!=null){
14241427 var index_time_val = false;
@@ -1431,7 +1434,9 @@
14321435 this.uri = this.uri.substring(0, this.uri.indexOf(index_time_val) ) + index_time_val + start_ntp + '/'+end_ntp + end_req_string;
14331436 }
14341437 }
1435 - js_log("post uri:" + this.uri);
 1438+ //update the duration
 1439+ this.parseURLDuration();
 1440+ //js_log("post uri:" + this.uri);
14361441 },
14371442 /** MIME type accessor function.
14381443 @return the MIME type of the source.
@@ -1545,14 +1550,19 @@
15461551 this.thumbnail = mv_default_thumb_url;
15471552 // Process the <video> element
15481553 this.tryAddSource(video_element);
1549 - if(video_element.hasAttribute('thumbnail'))
1550 - this.thumbnail=video_element.getAttribute('thumbnail');
1551 - if(video_element.hasAttribute('poster'))
1552 - this.thumbnail=video_element.getAttribute('poster');
1553 - // Process all inner <source> elements
1554 - var inner_source_elements = video_element.getElementsByTagName('source');
1555 - $j.each(inner_source_elements, function(inx, inner_source)
 1554+ js_log('done trying to add src from base element');
 1555+
 1556+ if($j(video_element).attr('thumbnail'))
 1557+ this.thumbnail=$j(video_element).attr('thumbnail');
 1558+
 1559+ if($j(video_element).attr('poster'))
 1560+ this.thumbnail=$j(video_element).attr('poster');
 1561+
 1562+ // Process all inner <source> elements
 1563+ js_log("inner sorce count: " + video_element.getElementsByTagName('source').length );
 1564+ $j.each(video_element.getElementsByTagName('source'), function(inx, inner_source)
15561565 {
 1566+ js_log(' on inner source: '+i + ' obj: '+ inner_source);
15571567 _this.tryAddSource(inner_source);
15581568 });
15591569 },
@@ -1575,6 +1585,7 @@
15761586 */
15771587 selectSource:function(index)
15781588 {
 1589+ js_log('f:selectSource:'+index);
15791590 var playable_sources = this.getPlayableSources();
15801591 for(var i in playable_sources){
15811592 if(i==index){
@@ -1634,14 +1645,14 @@
16351646 */
16361647 tryAddSource:function(element)
16371648 {
1638 - js_log('f:tryAddSource');
1639 - if (!element.hasAttribute('src'))
1640 - return;
1641 - var new_src = element.getAttribute('src');
1642 - //make sure an existing element with the same src does not already exist:
1643 - //js_log("New src: "+new_src);
1644 - for(i in this.sources){
1645 - //js_log(' ext src: '+this.sources[i].getURI());
 1649+ js_log('f:tryAddSource');
 1650+ if (! $j(element).attr("src")){
 1651+ js_log("element has no src");
 1652+ return false;
 1653+ }
 1654+ var new_src = $j(element).attr('src');
 1655+ //make sure an existing element with the same src does not already exist:
 1656+ for(i in this.sources){
16461657 if(this.sources[i].getURI()==new_src){
16471658 return false;
16481659 }
@@ -1685,16 +1696,16 @@
16861697 });
16871698 //set the thumbnail:
16881699 $j.each(roe_data.getElementsByTagName('img'), function(inx, n){
1689 - if(n.getAttribute("id")=="stream_thumb"){
1690 - js_log('roe:set thumb to '+n.getAttribute("src"));
1691 - _this['thumbnail'] = n.getAttribute("src");
 1700+ if($j(n).attr("id")=="stream_thumb"){
 1701+ js_log('roe:set thumb to '+$j(n).attr("src"));
 1702+ _this['thumbnail'] =$j(n).attr("src");
16921703 }
16931704 })
16941705 //set the linkback:
16951706 $j.each(roe_data.getElementsByTagName('link'), function(inx, n){
1696 - if(n.getAttribute('id')=='html_linkback'){
1697 - js_log('roe:set linkback to '+n.getAttribute("href"));
1698 - _this['linkback'] = n.getAttribute('href');
 1707+ if($j(n).attr('id')=='html_linkback'){
 1708+ js_log('roe:set linkback to '+$j(n).attr("href"));
 1709+ _this['linkback'] = $j(n).attr('href');
16991710 }
17001711 })
17011712 }
@@ -2000,7 +2011,10 @@
20012012 js_log("f:getHTML:AddControls");
20022013 html_code +='<div id="mv_embedded_controls_'+this.id+'" class="controls" style="width:'+this.width+'px">';
20032014 html_code += this.getControlsHTML();
2004 - html_code +='</div>';
 2015+ html_code +='</div>';
 2016+ //block out some space by encapulating the top level div
 2017+ $j(this).wrap('<div style="width:'+parseInt(this.width)+'px;height:'
 2018+ +(parseInt(this.height)+ctrlBuilder.height)+'px"></div>');
20052019 }
20062020 html_code += '</div>'; //videoPlayer div close
20072021 js_log('should set: '+this.id);
@@ -2050,20 +2064,28 @@
20512065 $j('#img_thumb_'+this.id).attr('src', src);
20522066 }else{
20532067 var _this = this;
2054 - if(this.thumbnail_disp && this.thumbnail_updating==false){
 2068+
 2069+ //if still animating remove new_img_thumb_
 2070+ if(this.thumbnail_updating==true)
 2071+ $j('#new_img_thumb_'+this.id).stop().remove();
 2072+
 2073+ if(this.thumbnail_disp){
20552074 this.thumbnail_updating=true;
20562075 $j('#dc_'+this.id).append('<img src="'+src+'" ' +
20572076 'style="display:none;position:absolute;zindex:2;top:0px;left:0px;" ' +
20582077 'width="'+this.width+'" height="'+this.height+'" '+
2059 - 'id = "new_img_thumb_'+this.id+'" />');
2060 - $j('#new_img_thumb_'+this.id).fadeIn("slow", function(){
2061 - js_log('done fading in: '+src);
 2078+ 'id = "new_img_thumb_'+this.id+'" />');
 2079+ //js_log('appended: new_img_thumb_');
 2080+ $j('#new_img_thumb_'+this.id).fadeIn("slow", function(){
20622081 //once faded in remove org and rename new:
20632082 $j('#img_thumb_'+_this.id).remove();
20642083 $j('#new_img_thumb_'+_this.id).attr('id', 'img_thumb_'+_this.id);
20652084 $j('#img_thumb_'+_this.id).css('zindex','1');
2066 - this.thumbnail_updating=false;
 2085+ _this.thumbnail_updating=false;
 2086+ //js_log("done fadding in "+ $j('#img_thumb_'+_this.id).attr("src"));
20672087 });
 2088+ }else{
 2089+ //do a quick switch
20682090 }
20692091 }
20702092 },
@@ -2125,69 +2147,9 @@
21262148 var pos = $j('#options_button_'+sel_id).offset();
21272149 pos['top']=pos['top']+24;
21282150 pos['left']=pos['left']-124;
2129 - js_log('pos of options button: t:'+pos['top']+' l:'+ pos['left']);
 2151+ //js_log('pos of options button: t:'+pos['top']+' l:'+ pos['left']);
21302152 $j('#mv_embedded_options_'+sel_id).css(pos).toggle();
21312153 return;
2132 -
2133 - /*var thumbnail = this.media_element.getThumbnailURL();
2134 - var thumb_html='';
2135 - //add plugin config button (don't add for playlists)
2136 - if(!this.pc){
2137 - thumb_html+='<div style="border:none;position:absolute;top:2px;left:2px;z-index:99;width:28px;height:28px;">' +
2138 - '<a title="'+getMsg('select_playback')+'" href="#" onClick="document.getElementById(\''+this.id+'\').selectPlaybackMethod();return false;">'+
2139 - getTransparentPng({id:'plug_'+this.id,width:'27',height:'27',src:mv_embed_path + 'images/vid_plugin_edit_sm.png'})+
2140 - '</a>'+
2141 - '</div>';
2142 - }
2143 - * */
2144 -
2145 - //add in cmml inline dispaly if roe description avaliable
2146 - //not to be displayed in stream interface.
2147 -/* if(this.media_element.hasStreamOfMIMEType('text/cmml') && this.show_meta_link){
2148 - thumb_html+='<div style="border:none;position:absolute;top:2px;right:2px;z-index:1">'+
2149 - '<a title="'+getMsg('select_transcript_set')+'" href="javascript:$j(\'#'+this.id+'\').get(0).showTextInterface();">';
2150 - thumb_html+=getTransparentPng({id:'metaButton_'+this.id, width:"40", height:"27", border:"0",
2151 - src:mv_embed_path + 'images/cc_meta_sm.png' });
2152 - thumb_html+='</div>';
2153 - }*/
2154 -
2155 - //add link back if requested
2156 - /*if(this.linkback){
2157 - thumb_html+='<div style="border:none;position:absolute;bottom:2px;right:2px;z-index:1">'+
2158 - '<a title="'+getMsg('clip_linkback')+'" target="_new" href="'+this.linkback+'">';
2159 - thumb_html+=getTransparentPng({id:'lb_'+this.id, width:"27", height:"27", border:"0",
2160 - src:mv_embed_path + 'images/vid_info_sm.png' });
2161 - thumb_html+='</div>';
2162 - }
2163 - * */
2164 - //add direct download link if option:
2165 - /*if(this.download_link){
2166 - //check for roe attribute (extened download options)
2167 - var dlLink = (this.media_element.sources.length>1)?'javascript:document.getElementById(\''+this.id+'\').showVideoDownload();':this.media_element.sources[0].uri;
2168 - thumb_html+='<div style="border:none;position:absolute;bottom:2px;left:2px;z-index:1">'+
2169 - '<a title="'+getMsg('download_clip')+'" href="'+dlLink+'">';
2170 - thumb_html+=getTransparentPng({id:'lb_'+this.id, width:"27", height:"27", border:"0",
2171 - src:mv_embed_path + 'images/vid_download_sm.png' });
2172 - thumb_html+='</div>';
2173 - }
2174 - */
2175 - //add in embed link (if requested)
2176 - /*if(this.embed_link){
2177 - var right_offset = (this.linkback)?32:0;
2178 - thumb_html+='<div style="border:none;position:absolute;bottom:2px;right:'+right_offset+'px;z-index:1">'+
2179 - '<a title="Embed Clip Code" href="javascript:document.getElementById(\''+this.id+'\').showEmbedCode();">';
2180 -
2181 - thumb_html+=getTransparentPng(new Object ({id:'le_'+this.id, width:"27", height:"27", border:"0",
2182 - src:mv_embed_path + 'images/vid_embed_sm.png' }));
2183 - thumb_html+='</a></div>';
2184 - //make link absolute (if it was not already)
2185 - //add the hidden embed code:
2186 - thumb_html+='<div id="embed_code_'+this.id+'" style="border:solid;border-color:black;overflow:hidden;display:none;position:absolute;bottom:2px;right:'+(right_offset+30)+'px;width:'+(this.playerPixelWidth()-100)+'px;z-index:1">'+
2187 - '<input onClick="this.select();" type="text" size="40" length="1024" value="'+this.getEmbeddingHTML()+'">'
2188 - '</div>';
2189 - thumb_html+='</div>';
2190 - }*/
2191 - //this.displayHTML(thumb_html);
21922154 },
21932155 getPlayButton:function(id){
21942156 if(!id)id=this.id;
@@ -2219,17 +2181,20 @@
22202182 showEmbedCode : function(embed_code){
22212183 if(!embed_code)
22222184 embed_code = this.getEmbeddingHTML();
2223 -
2224 - this.displayHTML('<a class="email" href="#">Share Clip via Email</a> '+
2225 - '<p>or</p> '+
2226 - '<a href="#">Embed Clip in Blog or Site</a> '+
 2185+ var o='';
 2186+ if(this.linkback){
 2187+ o+='<a class="email" href="'+this.linkback+'">Share Clip via Link</a> '+
 2188+ '<p>or</p> ';
 2189+ }
 2190+ o+='<span style="color:#FFF;font-size:14px;">Embed Clip in Blog or Site</span>'+
22272191 '<div class="embed_code"> '+
22282192 '<textarea onClick="this.select();" id="embedding_user_html_'+this.id+'" name="embed">' +
22292193 embed_code+
22302194 '</textarea> '+
22312195 '<button onClick="$j(\'#'+this.id+'\').get(0).copyText(); return false;" class="copy_to_clipboard">Copy to Clipboard</button> '+
22322196 '</div> '+
2233 - '</div>');
 2197+ '</div>';
 2198+ this.displayHTML(o);
22342199 },
22352200 copyText:function(){
22362201 $j('#embedding_user_html_'+this.id).focus().select();
@@ -2287,8 +2252,9 @@
22882253 // '<span class="displayHTML" id="con_vl_'+this.id+'" style="position:absolute;top:20px;left:20px;color:white;">' +
22892254 '<div class="videoOptionsComplete">'+
22902255 //@@TODO: this style should go to .css
2291 - '<div style="width: 247px;border:none;position:absolute;z-index:13;padding: 12px 19px; text-align:right;"><span>'+
2292 - '<a href="#" style="color:white;" onClick="$j(\'#'+sel_id+'\').get(0).closeDisplayedHTML();return false;">close</a></span></div>'+
 2256+ '<span style="float:right;margin-right:10px">' +
 2257+ '<a href="#" style="color:white;" onClick="$j(\'#'+sel_id+'\').get(0).closeDisplayedHTML();return false;">close</a>' +
 2258+ '</span>'+
22932259 '<div id="mv_disp_inner_'+sel_id+'">'+
22942260 html_code
22952261 +'</div>'+
@@ -2336,7 +2302,7 @@
23372303 js_log(select_html);
23382304 return select_html;
23392305 },
2340 - selectPlaybackMethod:function(){
 2306+ selectPlaybackMethod:function(){
23412307 //get id (in case where we have a parent container)
23422308 var this_id = (this.pc!=null)?this.pc.pp.id:this.id;
23432309
@@ -2347,7 +2313,7 @@
23482314 $j.each(this.media_element.getPlayableSources(), function(index, source)
23492315 {
23502316 var default_player = embedTypes.players.defaultPlayer(source.getMIMEType());
2351 - var source_select_code = '$j(\'#'+this_id+'\').get(0).closeDisplayedHTML(); $j(\''+_this.id+'\').media_element.selectSource(\''+index+'\');';
 2317+ var source_select_code = '$j(\'#'+this_id+'\').get(0).closeDisplayedHTML(); $j(\'#'+_this.id+'\').get(0).media_element.selectSource(\''+index+'\');';
23522318 var player_code = _this.getPlayerSelectList(source.getMIMEType(), index, source_select_code);
23532319 var is_not_selected = (source != _this.media_element.selected_source);
23542320 var image_src = mv_embed_path+'/images/stream/';
@@ -2838,14 +2804,14 @@
28392805 /*
28402806 * IE and non-firebug debug:
28412807 */
2842 -/* var log_elm = document.getElementById('mv_js_log');
 2808+ var log_elm = document.getElementById('mv_js_log');
28432809 if(!log_elm){
28442810 document.write('<div style="position:absolute;z-index:500;top:0px;left:0px;right:0px;height:150px;"><textarea id="mv_js_log" cols="80" rows="6"></textarea></div>');
28452811 var log_elm = document.getElementById('mv_js_log');
28462812 }
28472813 if(log_elm){
28482814 log_elm.value+=string+"\n";
2849 - }*/
 2815+ }
28502816 }
28512817 //in case of "throw error" type usage
28522818 return false;
Index: trunk/extensions/MetavidWiki/skins/mv_embed/skin/styles.css
@@ -38,6 +38,7 @@
3939 .videoPlayer .controls {
4040 height: 29px;
4141 background: #454545;
 42+ display:block;
4243 }
4344 .videoPlayer .controlInnerSmall {
4445 /* width: 430px;*/