r49451 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r49450‎ | r49451 | r49452 >
Date:23:10, 13 April 2009
Author:dale
Status:deferred
Tags:
Comment:
some fixes (missing date autoloader classes)
root script loader adjustments for pushing script loader to core
Modified paths:
  • /trunk/extensions/MetavidWiki/includes/MV_GlobalFunctions.php (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/example_usage/testing_page.php (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libAddMedia/remoteSearchDriver.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libAddMedia/searchLibs/baseRemoteSearch.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_baseEmbed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_htmlEmbed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_nativeEmbed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_vlcEmbed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libSequencer/mvPlayList.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/libSequencer/mvSequencer.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js (modified) (history)

Diff [purge]

Index: trunk/extensions/MetavidWiki/includes/MV_GlobalFunctions.php
@@ -106,7 +106,7 @@
107107
108108 $wgJSAutoloadClasses['mv_allpages'] = $mv_jspath . 'mv_allpages.js';
109109 $wgJSAutoloadClasses['mv_search'] = $mv_jspath . 'mv_search.js';
110 - $wgJSAutoloadClasses['mv_stream'] = $mv_jspath . 'mv_stream.js';
 110+ $wgJSAutoloadClasses['mv_stream'] = $mv_jspath . 'mv_stream.js';
111111
112112 //$wgJSAutoloadClasses['']
113113 $wgJSAutoloadClasses['j.ui.mouse'] = $mvjsp . 'jquery/jquery.ui-1.5.2/ui/ui.core.js';
@@ -117,7 +117,9 @@
118118 $wgJSAutoloadClasses['j.contextMenu'] = $mvjsp . 'jquery/plugins/jquery.contextMenu.js';
119119 $wgJSAutoloadClasses['j.fn.autocomplete'] = $mvjsp . 'jquery/plugins/jquery.autocomplete.js';
120120 $wgJSAutoloadClasses['j.fn.hoverIntent'] = $mvjsp . 'jquery/plugins/jquery.hoverIntent.js';
121 - $wgJSAutoloadClasses['j.Jcrop'] = $mvjsp . 'jquery/plugins/Jcrop/js/jquery.Jcrop.js';
 121+ $wgJSAutoloadClasses['j.Jcrop'] = $mvjsp . 'jquery/plugins/Jcrop/js/jquery.Jcrop.js';
 122+ $wgJSAutoloadClasses['Date.fromString'] = $mvjsp . 'jquery/plugins/date.js';
 123+ $wgJSAutoloadClasses['j.fn.datePicker'] = $mvjsp . 'jquery/plugins/jquery.datePicker.js';
122124
123125 //libAddMedia:
124126 $wgJSAutoloadClasses['mvFirefogg'] = $mvjsp . 'libAddMedia/mvFirefogg.js';
@@ -128,6 +130,7 @@
129131 $wgJSAutoloadClasses['mediaWikiSearch'] = $mvjsp . 'libAddMedia/searchLibs/mediaWikiSearch.js';
130132 $wgJSAutoloadClasses['metavidSearch'] = $mvjsp . 'libAddMedia/searchLibs/metavidSearch.js';
131133 $wgJSAutoloadClasses['archiveOrgSearch'] = $mvjsp . 'libAddMedia/searchLibs/archiveOrgSearch.js';
 134+ $wgJSAutoloadClasses['baseRemoteSearch'] = $mvjsp . 'libAddMedia/searchLibs/baseRemoteSearch.js';
132135
133136 //libClipEdit:
134137 $wgJSAutoloadClasses['mvClipEdit'] = $mvjsp . 'libClipEdit/mvClipEdit.js';
@@ -344,7 +347,12 @@
345348 * enables linkback and autocomplete for search
346349 */
347350 function mvfAutoAllPageHeader() {
 351+<<<<<<< .mine
 352+ global $mvgScriptPath, $wgJsMimeType, $wgOut, $mvExtraHeader, $wgTitle, $mvgJSDebug, $wgEnableScriptLoader, $wgRequest, $wgScriptPath;
 353+
 354+=======
348355 global $mvgScriptPath, $wgJsMimeType, $wgOut, $mvExtraHeader, $mvgJSDebug, $wgEnableScriptLoader, $wgRequest;;
 356+>>>>>>> .r49450
349357 $mvgScriptPath = htmlspecialchars( $mvgScriptPath );
350358 $wgJsMimeType = htmlspecialchars( $wgJsMimeType ) ;
351359 //set the unquie request value
@@ -360,7 +368,7 @@
361369 $wgRequest->getVal('debug')=='true' ||
362370 $wgRequest->getVal('debug')=='1' )
363371 ? '&debug=true' : '';
364 - $wgOut->addScript( "<script type=\"{$wgJsMimeType}\" src=\"{$mvgScriptPath}/skins/mv_embed/mvwScriptLoader.php?" .
 372+ $wgOut->addScript( "<script type=\"{$wgJsMimeType}\" src=\"{$wgScriptPath}/mvwScriptLoader.php?" .
365373 "class=window.jQuery,j.fn.autocomplete,j.fn.hoverIntent,mv_embed,mv_allpages,mv_search" .
366374 '&urid=' .$unique_req_param . $debug_param . "\"></script>"
367375 );
Index: trunk/extensions/MetavidWiki/skins/mv_embed/example_usage/testing_page.php
@@ -17,7 +17,7 @@
1818 <h3>testing embed</h3>
1919 <table border="1" cellpadding="6" width="600">
2020 <tr>
21 - <td valign="top"><video id="vogg" src="http://<?= $_SERVER['SERVER_NAME']?>/test.ogg?t=0:0:0/0:6:14"></video></td>
 21+ <td valign="top"><video id="vogg" src="http://tinyvid.tv/file/27wsh8kw4vmwi.ogg"></video></td>
2222 <td valign="top"><b>Test embed</b><br />
2323 </td>
2424 </tr>
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libAddMedia/searchLibs/baseRemoteSearch.js
@@ -195,4 +195,4 @@
196196 updateDataForImport:function( rObj ){
197197 return rObj;
198198 }
199 -}
\ No newline at end of file
 199+}
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libAddMedia/remoteSearchDriver.js
@@ -636,7 +636,7 @@
637637 //do an upload tab if enabled:
638638 if( this.enable_uploads ){
639639 var class_attr = ( this.disp_item =='upload' ) ? 'class="rsd_selected"':'';
640 - o+='<div id="rsd_tab_upload" ' + class_attr + ' >'+gM('upload');+'</li>';
 640+ o+='<div id="rsd_tab_upload" ' + class_attr + ' >'+gM('upload');+'</div>';
641641 }
642642 //o+='</ul>';
643643 o+='</div>';
@@ -648,6 +648,15 @@
649649 $j('.rsd_cp_tab').click(function(){
650650 _this.selectTab( $j(this).attr('id').replace(/rsd_tab_/, '') );
651651 });
 652+
 653+ //setup key binding
 654+ $j().keyup(function(e){
 655+ js_log('keyup on : ' +e.which );
 656+ //if escape pressed clear the interface:
 657+ if(e.which == 27)
 658+ _this.closeAll();
 659+ });
 660+
652661 },
653662 //resource title
654663 getResourceFromTitle:function( rTitle , callback){
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libSequencer/mvPlayList.js
@@ -602,7 +602,7 @@
603603 js_log('basic play');
604604 //play cur_clip
605605 this.cur_clip.embed.play();
606 - }
 606+ }
607607 //start up the playlist monitor
608608 this.monitor();
609609 },
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libSequencer/mvSequencer.js
@@ -528,6 +528,7 @@
529529 item_containers+='<div class="seq_control_container" id="welcome_ic">' + gM('mv_welcome_to_sequencer') + '</div>';
530530
531531 $j('#'+this.sequence_tools_id).html( menu_html + item_containers );
 532+
532533 //add binding for menu
533534 $j('#seq_menu li').click(function(){
534535 $j('#seq_menu li').removeClass('mv_selected_item');
@@ -575,9 +576,8 @@
576577 this_seq.key_ctrl_down = false;
577578
578579 //backspace or delete key while not focused on a text area:
579 - if( (e.which == 8 || e.which == 46) && !this_seq.inputFocus){
580 - this_seq.removeSelectedClips();
581 - }
 580+ if( (e.which == 8 || e.which == 46) && !this_seq.inputFocus)
 581+ this_seq.removeSelectedClips();
582582 });
583583 },
584584 //check all nodes for focus
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js
@@ -21,7 +21,7 @@
2222 MV_DO_INIT=false;
2323 }
2424 //used to grab fresh copies of scripts. (should be changed on commit)
25 -var MV_EMBED_VERSION = '1.0r13';
 25+var MV_EMBED_VERSION = '1.0r14';
2626
2727 //the name of the player skin (default is mvpcf)
2828 var mv_skin_name = 'mvpcf';
@@ -36,9 +36,11 @@
3737 //the default height/width of the video (if no style or width attribute provided)
3838 var mv_default_video_size = '400x300';
3939
40 -var global_player_list = new Array();
 40+var mediaWiki_mvEmbed_path = 'extensions/MetavidWiki/skins/mv_embed/';
 41+
 42+var global_player_list = new Array(); //the global player list per page
4143 var global_req_cb = new Array(); //the global request callback array
42 -var _global = this;
 44+var _global = this; //global obj
4345 var mv_init_done=false;
4446 var global_cb_count =0;
4547
@@ -165,8 +167,8 @@
166168 //only call load base libs once
167169 mvBaseLoader.calledloadBaseLibs=true;
168170 //issue a style sheet request can come in whenever:
169 - if(!styleSheetPresent(mv_embed_path+'skins/'+mv_skin_name+'/styles.css'))
170 - loadExternalCss(mv_embed_path+'skins/'+mv_skin_name+'/styles.css');
 171+ if(!styleSheetPresent( mv_embed_path + 'skins/'+mv_skin_name+'/styles.css'))
 172+ loadExternalCss( mv_embed_path + 'skins/'+mv_skin_name+'/styles.css');
171173
172174 //two loading stages, first get jQuery
173175 var _this = this;
@@ -235,7 +237,8 @@
236238 return ;
237239 }
238240 //check if we should use the script loader to combine all the requests into one:
239 - if( usingScriptLoaderCheck() ){
 241+ var slpath = getScriptLoaderPath();
 242+ if( slpath ){
240243 var class_set = '';
241244 var last_class = '';
242245 var coma = '';
@@ -248,7 +251,7 @@
249252 }
250253 }
251254 var dbug_attr = (parseUri( getMvEmbedURL() ).queryKey['debug'])?'&debug=true':'';
252 - this.libs[ last_class ] = 'mvwScriptLoader.php?class=' + class_set +
 255+ this.libs[ last_class ] = slpath + '?class=' + class_set +
253256 '&urid=' + getMvUniqueReqId() + dbug_attr;
254257
255258 }else{
@@ -256,7 +259,7 @@
257260 for(var i in libs){ //for in loop oky on object
258261 // do a direct load of the file (pass along unique id from request or mv_embed Version )
259262 var qmark = (libs[i].indexOf('?')!==true)?'?':'&';
260 - this.libs[i]=libs[i] + qmark + 'urid='+ getMvUniqueReqId();
 263+ this.libs[i] = getMvEmbedPath() + libs[i] + qmark + 'urid='+ getMvUniqueReqId();
261264 }
262265 }
263266 }
@@ -300,7 +303,7 @@
301304 var i=null;
302305 for(var i in this.libs){ //for in loop oky on object
303306 if( ! this.checkObjPath( i ) ){
304 - if(!this.libreq[i]) loadExternalJs( getMvEmbedPath() + this.libs[i] );
 307+ if(!this.libreq[i]) loadExternalJs( this.libs[i] );
305308 this.libreq[i]=1;
306309 loading=1;
307310 }
@@ -1294,9 +1297,15 @@
12951298 e.rel = 'stylesheet';
12961299 document.getElementsByTagName("head")[0].appendChild(e);
12971300 }
1298 -function usingScriptLoaderCheck(){
1299 - return ( getMvEmbedURL().indexOf('mvwScriptLoader.php') != -1 )?true:false;
1300 -
 1301+function getScriptLoaderPath(){
 1302+ var eurl = getMvEmbedURL();
 1303+ var sln = 'mvwScriptLoader.php';
 1304+ if( eurl.indexOf(sln) != -1 ){
 1305+ //get just the script loader part of the url:
 1306+ return eurl.substr(0, (eurl.indexOf(sln) + sln.length));
 1307+ }else{
 1308+ return false;
 1309+ }
13011310 }
13021311 function getMvEmbedURL(){
13031312 if( _global['mv_embed_url'] )
@@ -1343,7 +1352,8 @@
13441353 if( mv_embed_url.indexOf('mv_embed.js') !== -1 ){
13451354 mv_embed_path = mv_embed_url.substr(0, mv_embed_url.indexOf('mv_embed.js'));
13461355 }else{
1347 - mv_embed_path = mv_embed_url.substr(0, mv_embed_url.indexOf('mvwScriptLoader.php'));
 1356+ //script load is in the root of mediaWiki so include the default mv_embed extention path (if using the script loader)
 1357+ mv_embed_path = mv_embed_url.substr(0, mv_embed_url.indexOf('mvwScriptLoader.php')) + mediaWiki_mvEmbed_path ;
13481358 }
13491359 //absolute the url (if relative) (if we don't have mv_embed path)
13501360 if( mv_embed_path.indexOf('://') == -1){
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_nativeEmbed.js
@@ -13,13 +13,12 @@
1414 'overlays':true,
1515 'playlist_swap_loader':true //if the object supports playlist functions
1616 },
17 - getEmbedHTML : function (){
 17+ getEmbedHTML : function (){
 18+ var id = (this.pc!=null)?this.pc.pp.id:this.id;
1819 var embed_code = this.getEmbedObj();
19 - js_log('embed code: ' + embed_code);
20 - js_log("DURATION: "+ this.getDuration() );
21 - return this.wrapEmebedContainer( embed_code);
22 -
23 - setTimeout('$j(\'#'+this.id+'\').get(0).postEmbedJS()', 150);
 20+ js_log("embed code: " + embed_code)
 21+ setTimeout('$j(\'#' + id + '\').get(0).postEmbedJS()', 150);
 22+ return this.wrapEmebedContainer( embed_code);
2423 },
2524 getEmbedObj:function(){
2625 //we want to let mv_embed handle the controls so notice the absence of control attribute
@@ -27,10 +26,11 @@
2827 //http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-August/016159.html
2928 js_log("native play url:" + this.getURI( this.seek_time_sec ));
3029 return '<video ' +
31 - 'id="'+this.pid + '" ' +
32 - 'style="width:'+this.width+'px;height:'+this.height+'px;" ' +
33 - 'width="'+this.width+'" height="'+this.height+'" '+
34 - 'src="' + this.media_element.selected_source.getURI( this.seek_time_sec ) + '" ' +
 30+ 'id="' + this.pid + '" ' +
 31+ 'style="width:' + this.width+'px;height:' + this.height + 'px;" ' +
 32+ 'width="' + this.width + '" height="'+this.height+'" '+
 33+ 'src="' + this.media_element.selected_source.getURI( this.seek_time_sec ) + '" ' +
 34+ 'autoplay="true" '+
3535 'oncanplaythrough="$j(\'#'+this.id+'\').get(0).oncanplaythrough();return false;" ' +
3636 'onloadedmetadata="$j(\'#'+this.id+'\').get(0).onloadedmetadata();return false;" ' +
3737 'loadedmetadata="$j(\'#'+this.id+'\').get(0).onloadedmetadata();return false;" ' +
@@ -39,7 +39,8 @@
4040 '</video>';
4141 },
4242 //@@todo : loading progress
43 - postEmbedJS:function(){
 43+ postEmbedJS:function(){
 44+ js_log("f:native:postEmbedJS:");
4445 this.getVID();
4546 if(typeof this.vid != 'undefined'){
4647 js_log("GOT video object sending PLAY()");
@@ -50,17 +51,21 @@
5152 js_log('could not grab vid obj trying again:' + typeof this.vid);
5253 this.grab_try_count++;
5354 if( this.grab_count == 10 ){
54 - js_log(' could not get vid object after 10 tries re-run: getEmbedObj()' ) ;
55 - //reload the dom:
56 - this.grab_try_count=0;
57 - this.getEmbedObj();
 55+ js_log(' could not get vid object after 10 tries re-run: getEmbedObj()' ) ;
5856 }else{
5957 setTimeout('$j(\'#'+this.id+'\').get(0).postEmbedJS()',100);
6058 }
61 - }
 59+ }
6260 },
 61+ doSeek:function(perc){
 62+ js_log('native:seek:' + this.supportsURLTimeEncoding() + ' dur: ' + this.vid.duration);
 63+ if( this.supportsURLTimeEncoding() ){
 64+ this.parent_doSeek(perc);
 65+ }else if( this.vid.duration ){
 66+ this.vid.currentTime = perc * this.vid.duration;
 67+ }
 68+ },
6369 monitor : function(){
64 - //js_log('native:monitor');
6570 this.getVID(); //make shure we have .vid obj
6671 if(!this.vid){
6772 js_log('could not find video embed: '+this.id + ' stop monitor');
@@ -86,10 +91,7 @@
8792 * native callbacks for the video tag:
8893 */
8994 oncanplaythrough : function(){
90 - this.getVID();
91 - //js_log("f:oncanplaythrough start playback");
92 - //start playback (we don't yet support pre-loading clips)
93 - this.vid.play();
 95+ js_log('f:oncanplaythrough');
9496 },
9597 onloadedmetadata: function(){
9698 js_log('f:onloadedmetadata get duration: ' +this.vid.duration);
@@ -99,8 +101,9 @@
100102 js_log('f:onloadedmetadata metadata ready');
101103 //set the clip duration
102104 },
103 - onprogress: function(e){
104 - this.bufferedPercent = Math.round(e.loaded/e.total*100);
 105+ onprogress: function(e){
 106+ this.bufferedPercent = e.loaded / e.total;
 107+ //js_log("onprogress:" +e.loaded + ' / ' + (e.total) + ' = ' + this.bufferedPercent);
105108 },
106109 onended:function(){
107110 //clip "ended"
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_baseEmbed.js
@@ -277,13 +277,13 @@
278278 /** Title of the source. */
279279 title:null,
280280 /** True if the source has been marked as the default. */
281 - marked_default:null,
 281+ marked_default:false,
282282 /** True if the source supports url specification of offset and duration */
283 - supports_url_time_encoding:null,
 283+ serverSideSeeking:false,
284284 /** Start offset of the requested segment */
285285 start_offset:null,
286286 /** Duration of the requested segment (0 if not known) */
287 - duration:NaN,
 287+ duration:0,
288288 is_playable:null,
289289 upddate_interval:null,
290290
@@ -340,7 +340,7 @@
341341 //js_log("f:updateSrcTime: "+ start_ntp+'/'+ end_ntp + ' from org: ' + this.start_ntp+ '/'+this.end_ntp);
342342 //js_log("pre uri:" + this.src);
343343 //if we have time we can use:
344 - if( this.supports_url_time_encoding ){
 344+ if( this.serverSideSeeking ){
345345 //make sure its a valid start time / end time (else set default)
346346 if( !ntp2seconds(start_ntp) )
347347 start_ntp = this.start_ntp;
@@ -383,8 +383,8 @@
384384 */
385385 getURI : function(seek_time_sec)
386386 {
387 - js_log("f:getURI: tf:" + this.timeFormat +' uri_enc:'+this.supports_url_time_encoding);
388 - if( !seek_time_sec || !this.supports_url_time_encoding ){
 387+ js_log("f:getURI: tf:" + this.timeFormat +' uri_enc:'+this.serverSideSeeking);
 388+ if( !seek_time_sec || !this.serverSideSeeking ){
389389 return this.src;
390390 }
391391 if( this.timeFormat == 'anx' ){
@@ -441,12 +441,12 @@
442442 this.src = mp4URL.protocol+'://'+mp4URL.authority + mp4URL.path + '?start=' + mp4URL.queryKey['start'];
443443 }
444444 }
445 - this.supports_url_time_encoding = true;
 445+ this.serverSideSeeking = true;
446446 this.start_offset = ntp2seconds(this.start_ntp);
447447 this.duration = ntp2seconds( this.end_ntp ) - this.start_offset;
448448 } //time format
449449
450 - if( !this.supports_url_time_encoding ){
 450+ if( !this.serverSideSeeking ){
451451 //else normal media request (can't predict the duration without the plugin reading it)
452452 this.duration = null;
453453 this.start_offset = 0;
@@ -1340,7 +1340,7 @@
13411341 //reset slider
13421342 this.setSliderValue(0);
13431343 //reset seek_offset:
1344 - if(this.media_element.selected_source.supports_url_time_encoding)
 1344+ if(this.media_element.selected_source.serverSideSeeking)
13451345 this.seek_time_sec=0;
13461346 else
13471347 this.seek_time_sec=ntp2seconds(start_ntp);
@@ -1952,7 +1952,8 @@
19531953 return this.media_element.selected_source.getURI( this.seek_time_sec );
19541954 },
19551955 supportsURLTimeEncoding: function(){
1956 - return this.media_element.selected_source.supports_url_time_encoding;
 1956+ //do head request if on the same domain
 1957+ return this.media_element.selected_source.serverSideSeeking;
19571958 },
19581959 setSliderValue: function(perc, hide_progress){
19591960
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_htmlEmbed.js
@@ -70,7 +70,7 @@
7171 library:"html"
7272 },
7373 selected_source:{
74 - supports_url_time_encoding:true
 74+ serverSideSeeking:false
7575 },
7676 timedTextSources:function(){
7777 return false;
Index: trunk/extensions/MetavidWiki/skins/mv_embed/libEmbedObj/mv_vlcEmbed.js
@@ -23,7 +23,7 @@
2424 userSlide:false,
2525 pejs_count:0, //post embed js count
2626
27 - getEmbedHTML: function(){
 27+ getEmbedHTML: function(){
2828 //give VLC 150ms to initialize before we start playback
2929 //@@todo should be able to do this as an ready event
3030 this.pejs_count=0;
@@ -31,9 +31,9 @@
3232 return this.getEmbedObj();
3333 },
3434 getEmbedObj:function(){
35 - return '<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" '+
 35+ var embed_code = '<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" '+
3636 'codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab#Version=0,8,6,0" '+
37 - 'id="'+this.pid+'" events="True" height="'+this.height+'" width="'+this.width+'">'+
 37+ 'id="' + this.pid + '" events="True" height="'+this.height+'" width="'+this.width+'">'+
3838 '<param name="MRL" value="">'+
3939 '<param name="ShowDisplay" value="True">'+
4040 '<param name="AutoLoop" value="False">'+
@@ -41,8 +41,10 @@
4242 '<param name="Volume" value="50">'+
4343 '<param name="StartTime" value="0">'+
4444 '<embed pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" '+
45 - 'progid="VideoLAN.VLCPlugin.2" name="'+this.pid+'" height="'+this.height+'" width="'+this.width+'">'+
 45+ 'progid="VideoLAN.VLCPlugin.2" name="' + this.pid + '" height="'+this.height+'" width="'+this.width+'">'+
4646 '</object>';
 47+ js_log('embed with: ' + embed_code);
 48+ return embed_code;
4749 },
4850
4951 /*

Status & tagging log