Localisation updates for core and extension messages from translatewiki.net (2009...
[lhc/web/wiklou.git] / js2 / remoteMwEmbed.js
index e507288..a53416a 100644 (file)
@@ -2,12 +2,23 @@
  * this file exposes some of the functionality of mwEmbed to wikis
  * that do not yet have js2 enabled
  */
 var urlparts = getRemoteEmbedPath();
 var mwEmbedHostPath = urlparts[0];
-var reqAguments = urlparts[1];
+var mwRemoteVersion = '1.06';
+var mwUseScriptLoader = true;
+
+//setup up request Params: 
+var reqParts = urlparts[1].substring(1).split('&');
+var mwReqParam={};
+for(var i=0;i< reqParts.length; i++){
+       var p = reqParts[i].split('=');
+       if( p.length == 2 )
+               mwReqParam[ p[0] ] = p[1];
+}
 
 addOnloadHook( function(){
-       //only do rewrites if MV_EMBED / js2 is "off"
+       // Only do rewrites if MV_EMBED / js2 is "off"
        if( typeof MV_EMBED_VERSION == 'undefined' ) {
                doPageSpecificRewrite();
        }
@@ -16,23 +27,25 @@ addOnloadHook( function(){
 function doPageSpecificRewrite() {
        // Add media wizard
        if( wgAction == 'edit' || wgAction == 'submit' ) {
-               load_mv_embed( function() {                     
-                       loadExternalJs( mwEmbedHostPath + '/editPage.js' + reqAguments );
-               } );
+               load_mv_embed( function() {     
+                       loadExternalJs( mwEmbedHostPath + '/editPage.js?' + mwGetReqArgs() );
+               });
        }
        
-       //timed text dispaly:
+       // Timed text display:
        if(wgPageName.indexOf("TimedText") === 0){              
                load_mv_embed(function(){
-                       alert('wtf');
-                       loadExternalJs( mwEmbedHostPath + '/mwEmbed/libTimedText/mvTimeTextEdit.js' + reqAguments );
+                       // Load with mw loader to get localized interface:
+                       $mw.load( ['mvTimeTextEdit'],function(){
+                               //could run init here (but mvTimeTextEdit included onLoad actions)
+                       });
                });
        }
        
        // Firefogg integration
        if( wgPageName == "Special:Upload" ){           
                load_mv_embed( function() {
-                       loadExternalJs( mwEmbedHostPath + '/uploadPage.js' + reqAguments );
+                       loadExternalJs( mwEmbedHostPath + '/uploadPage.js?' + mwGetReqArgs() );
                } );
        }
        
@@ -41,7 +54,7 @@ function doPageSpecificRewrite() {
                var wgEnableIframeApiProxy = true;
                load_mv_embed( function() {
                        js_log("Wiki:ApiProxy::");
-                       loadExternalJs( mwEmbedHostPath + '/apiProxyPage.js' + reqAguments );
+                       loadExternalJs( mwEmbedHostPath + '/apiProxyPage.js?' + mwGetReqArgs() );
                });
        }
        
@@ -62,7 +75,7 @@ function doPageSpecificRewrite() {
                } );
        }
 }
-// will be depreciated in favor of updates to OggHandler
+// This will be depreciated in favour of updates to OggHandler
 function rewrite_for_OggHandler( vidIdList ){
        function procVidId( vidId ){
                //don't process empty vids
@@ -74,8 +87,7 @@ function rewrite_for_OggHandler( vidIdList ){
                var pimg = $j( '#' + vidId + ' img' );
                var poster_attr = 'poster = "' + pimg.attr( 'src' ) + '" ';
                var pwidth = $j( '#' + vidId).width();
-               var pheight = $j( '#' + vidId ).height();
-
+               var pheight = $j( '#' + vidId + ' img').height();
                var tag_type = 'video';
                                
                // Check for audio
@@ -129,7 +141,7 @@ function rewrite_for_OggHandler( vidIdList ){
                        if( vidIdList.length != 0 ){
                                setTimeout( function(){
                                        procVidId( vidIdList.pop() )
-                               }, 1);
+                               }, 10);
                        }
                });
        };
@@ -153,12 +165,38 @@ function getRemoteEmbedPath() {
                }
        }
 }
+function mwGetReqArgs(){
+       var rurl = '';
+       if(mwReqParam['debug'])
+               rurl += 'debug=true&';
+
+       if(mwReqParam['uselang'] )
+               rurl += 'uselang=' + mwReqParam['uselang'] + '&';
 
-function load_mv_embed( callback ) {   
+       if( mwReqParam['urid'] ){
+               rurl += 'urid=' + mwReqParam['urid'];
+       }else{
+               // Make sure to use an urid 
+               // This way remoteMwEmbed can control version of code being requested
+               rurl += 'urid=' + mwRemoteVersion;
+       }
+       return rurl;
+}
+function load_mv_embed( callback ) {
        // Inject mv_embed if needed
-       if( typeof $mw == 'undefined' ) {
-               var mvurl = mwEmbedHostPath + '/mwEmbed/mv_embed.js' + reqAguments ;
-               importScriptURI( mvurl );               
+       if( typeof $mw == 'undefined' ) {       
+               if( ( mwReqParam['uselang'] || mwReqParam['useloader'] ) && mwUseScriptLoader){
+                       var rurl = mwEmbedHostPath + '/mwEmbed/jsScriptLoader.php?class=mv_embed';
+                       // Add jQuery too if we need it: 
+                       if(typeof window.jQuery == 'undefined'){
+                               rurl += ',window.jQuery';
+                       }       
+                       rurl += '&' + mwGetReqArgs();                                                           
+                                                       
+                       importScriptURI( rurl ); 
+               }else{
+                       importScriptURI( mwEmbedHostPath + '/mwEmbed/mv_embed.js?' + mwGetReqArgs() );
+               }
        }
        check_for_mv_embed( callback );
 }