r40985 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r40984‎ | r40985 | r40986 >
Date:15:08, 18 September 2008
Author:dale
Status:old
Tags:
Comment:
video player updates (improved seeking interface) other minor fixes
Modified paths:
  • /trunk/extensions/MetavidWiki/includes/MV_Index.php (modified) (history)
  • /trunk/extensions/MetavidWiki/includes/MV_MagicWords.php (modified) (history)
  • /trunk/extensions/MetavidWiki/includes/MV_StreamImage.php (modified) (history)
  • /trunk/extensions/MetavidWiki/includes/specials/MV_SpecialMediaSearch.php (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_custom.css (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js (modified) (history)
  • /trunk/extensions/MetavidWiki/skins/mv_embed/mv_playlist.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/includes/MV_StreamImage.php
@@ -116,6 +116,7 @@
117117 if($ext=='jpg')header("Content-type: image/jpeg");
118118 if($ext=='png')header("Content-type: image/png");
119119 //print "img path: $img_path";
 120+ //@@todo a redirect to real image (will serv from cache that way)
120121 if(is_file($img_path)){
121122 //print "file present: $img_path";
122123 @readfile($img_path);
Index: trunk/extensions/MetavidWiki/includes/MV_MagicWords.php
@@ -125,7 +125,7 @@
126126 $conds,
127127 __METHOD__,
128128 $options
129 - );
 129+ );
130130 if($dbr->numRows($result)==0){
131131 return '';
132132 }else{
@@ -254,6 +254,7 @@
255255 $conds = '`time` >= ' . $dbr->addQuotes($this->getStartTime());
256256
257257 $options['GROUP BY']=$dbr->tableName('mv_search_digest').'.query_key';
 258+ $options['ORDER BY']='`hit_count` DESC';
258259 $options['LIMIT'] = $this->params['num_results'];
259260
260261 $result = $dbr->select( $from_tables,
@@ -261,7 +262,6 @@
262263 $conds,
263264 __METHOD__,
264265 $options);
265 -
266266 if($dbr->numRows($result)==0){
267267 return '';
268268 }else{
@@ -273,7 +273,7 @@
274274 }
275275 $mvms=new MV_SpecialMediaSearch();
276276 $sTitle=Title::MakeTitle(NS_SPECIAL, 'MediaSearch');
277 - while($row = $dbr->fetchObject( $result )){
 277+ while($row = $dbr->fetchObject( $result )){
278278 $title_desc = htmlspecialchars($row->hit_count).' '.wfMsg('mv_date_'.$this->params['time_range']);
279279 $mvms->loadFiltersFromSerialized($row->filters);
280280 $o.='<li><a title="'.$title_desc.'" href="'.$sTitle->escapeLocalURL($mvms->get_httpd_filters_query().'&tl=1' ).'">'.
@@ -283,7 +283,7 @@
284284 if($this->params['format']=='ul_list'){
285285 $o.='</ul>';
286286 }
287 - }
 287+ }
288288 return $o;
289289 }
290290 }
Index: trunk/extensions/MetavidWiki/includes/MV_Index.php
@@ -156,7 +156,10 @@
157157 $or='';
158158 while($row=$dbr->fetchObject($result)){
159159 $ret_ary[$row->id]=$row;
 160+ //init array:
160161 if($do_cat_lookup){
 162+ if(!isset($ret_ary[$row->id]->category))
 163+ $ret_ary[$row->id]->category=array();
161164 if($do_cat_lookup){
162165 $conds.=$or . ' cl_from ='.$dbr->addQuotes($row->id);
163166 $or=' OR ';
@@ -180,9 +183,7 @@
181184 $conds,
182185 __METHOD__,
183186 $options);
184 - while($cat_row=$dbr->fetchObject($result_cat)){
185 - if(!isset($ret_ary[$cat_row->cl_from]->category))
186 - $ret_ary[$cat_row->cl_from]->category=array();
 187+ while($cat_row=$dbr->fetchObject($result_cat)){
187188 $ret_ary[$cat_row->cl_from]->category[]=$cat_row->cl_to;
188189 }
189190 }
Index: trunk/extensions/MetavidWiki/includes/specials/MV_SpecialMediaSearch.php
@@ -279,7 +279,8 @@
280280 {
281281 $dbw = & wfGetDB(DB_WRITE);
282282 $dbr = & wfGetDB(DB_READ);
283 - //print "DO SEARCH FOR: ". $this->getFilterDesc($query_key = true) . "\n";
 283+ //print_r($this->filters);
 284+ //print "Adding to mv_search_digest : ". $this->getFilterDesc($query_key = true) . "\n";
284285 //print var_dump(debug_backtrace());
285286 //@@todo non-blocking insert... is that supported in mysql/php?
286287 $dbw->insert('mv_search_digest', array (
@@ -963,15 +964,17 @@
964965 $o = $a = '';
965966 $bo = ($query_key) ? '' : '<b>';
966967 $bc = ($query_key) ? '' : '</b>';
967 - foreach ($this->filters as $inx => $f) {
968 - if ($inx != 0)
969 - $a = ' ' . wfMsg('mv_search_' . $f['a']) . ' ';
970 - if($f['t']!='match') //no desc for text search
971 - $o .= ($query_key) ? $a : $a . wfMsg('mv_' . $f['t']) . ' ';
972 - if ($f['t'] == 'date_range') { //handle special case of date range:
973 - $o .= wfMsg('mv_time_separator', $bo . htmlspecialchars($f['vs']) . $bc, $bo . htmlspecialchars($f['ve']) . $bc);
974 - } else {
975 - $o .= $bo . str_replace('_', ' ', htmlspecialchars($f['v'])) . $bc;
 968+ if(is_array($this->filters)){
 969+ foreach ($this->filters as $inx => $f) {
 970+ if ($inx != 0)
 971+ $a = ' ' . wfMsg('mv_search_' . $f['a']) . ' ';
 972+ if($f['t']!='match') //no desc for text search
 973+ $o .= ($query_key) ? $a : $a . wfMsg('mv_' . $f['t']) . ' ';
 974+ if ($f['t'] == 'date_range') { //handle special case of date range:
 975+ $o .= wfMsg('mv_time_separator', $bo . htmlspecialchars($f['vs']) . $bc, $bo . htmlspecialchars($f['ve']) . $bc);
 976+ } else {
 977+ $o .= $bo . str_replace('_', ' ', htmlspecialchars($f['v'])) . $bc;
 978+ }
976979 }
977980 }
978981 return $o;
Index: trunk/extensions/MetavidWiki/skins/mv_custom.css
@@ -9,6 +9,7 @@
1010 *
1111 * extended styles for metavid extension
1212 */
 13+
1314 .tail_color{
1415 position:absolute;
1516 width:10px;
Index: trunk/extensions/MetavidWiki/skins/mv_stream.js
@@ -41,6 +41,8 @@
4242 var mv_flag_fdOver=false;
4343 var golobal_org_ptext=false;
4444
 45+var mvTextScrollMonitorTimer = null;
 46+
4547 var mv_open_edit_mvd=null;
4648 if(!gMsg){var gMsg={};}
4749
@@ -108,10 +110,10 @@
109111 $j('#big_play_link_embed_vid').attr('href', 'javascript:mv_do_play();');
110112 //extend stop button on mv_embed:
111113 //js_log("pre stop: " +ebvid['stop'].toString() );
112 - if(ebvid['stop'].toString()!='function(){mv_do_stop();}'){
 114+ /*if(ebvid['stop'].toString()!='function(){mv_do_stop();}'){
113115 ebvid['org_eb_stop'] = ebvid['stop'];
114116 ebvid['stop'] = function(){mv_do_stop();}
115 - }
 117+ }*/
116118 if(ebvid['play_or_pause'].toString()!='function(){mv_play_or_pause();}'){
117119 ebvid['org_eb_play_or_pause'] = ebvid['play_or_pause'];
118120 ebvid['play_or_pause'] = function(){mv_play_or_pause();}
@@ -119,8 +121,9 @@
120122 if(ebvid['showVideoDownload'].toString!='function(){mv_doShowVideoDownload();}'){
121123 ebvid['org_showVideoDownload'] = ebvid['showVideoDownload'];
122124 ebvid['showVideoDownload'] = function(){mv_doShowVideoDownload();}
123 - }
124 -
 125+ }
 126+ //setup text scroll monitor:
 127+ mv_doTextScrollMonitor();
125128 //js_log("post stop: " +ebvid['stop'].toString());
126129 }
127130 //call stop override
@@ -284,6 +287,41 @@
285288 }
286289 }
287290 }
 291+function mv_doTextScrollMonitor(){
 292+ if(!mvTextScrollMonitorTimer)
 293+ mvTextScrollMonitorTimer=setInterval('mv_doTextScrollMonitor()',1000);
 294+ //if playing scrollupdate
 295+ var evid = $j('#embed_vid').get(0);
 296+ if( evid.isPlaying() ){
 297+ if(evid.currentTime!=0)
 298+ mv_scroll2Time(evid.currentTime);
 299+ }
 300+ if( evid.userSlide ){
 301+ mv_scroll2Time( ntp2seconds(evid.jump_time) );
 302+ }
 303+ //if userScroll scroll/update
 304+}
 305+var previus_scroll2Time_time=null;
 306+var previus_scrollMvd_id=null;
 307+function mv_scroll2Time(sec_time){
 308+ if(previus_scroll2Time_time!=sec_time){
 309+ var scroll_mvd_id = null;
 310+ //init pMvd_id
 311+ var pMvd_id=$j('.mv_fd_mvd:first').attr("id").split('_').pop();
 312+ $j('.mv_fd_mvd').each(function(){
 313+ var curTitle = get_titleObject($j(this).attr('name'));
 314+ if( curTitle.start_time >= sec_time ){
 315+ //js_log('found mvd pos: ' + curTitle.start_time + ' for sec time: ' + sec_time);
 316+ if(previus_scrollMvd_id != pMvd_id){
 317+ scroll_to_pos( pMvd_id ) ;
 318+ previus_scrollMvd_id = pMvd_id;
 319+ }
 320+ return false;//break out of for loop:
 321+ }
 322+ pMvd_id = $j(this).attr("id").split('_').pop();
 323+ });
 324+ }
 325+}
288326 function mv_doShowVideoDownload(){
289327 //restores orginal state before showing download links:
290328 mv_init_interface.doRestore();
@@ -454,7 +492,7 @@
455493 //if mv_embed state is "playing" swap preview button per html5 spec:
456494 if($j('#embed_vid').get(0).isPlaying()){
457495 //do stop swap preview button back
458 - mv_do_stop();
 496+ $j('#embed_vid').get(0).stop();
459497 }
460498 //first time set up
461499 //if(!golobal_org_ptext)golobal_org_ptext = $j('#wpPreview_'+mvd_id).val();
@@ -531,6 +569,7 @@
532570 * @@TODO add_autocomplete should be merged with generalized mv_helpers_ac
533571 */
534572 function add_autocomplete(mvd_id){
 573+ js_log("f:auto_comp_choices_:"+mvd_id);
535574 //make sure the target elements exist:
536575 //if(!document.getElementById("auto_comp_"+mvd_id))return ;
537576 //if(!document.getElementById("auto_comp_choices_"+mvd_id))return ;
@@ -794,30 +833,29 @@
795834 function mv_play_or_pause(){
796835 //issue a stop since we want mouse_overs to work
797836 var ebvid = $j('#embed_vid').get(0);
798 - if(!ebvid.paused){
799 - mv_do_stop();
 837+ if( ebvid.isPlaying() ){
 838+ js_log('f:mv_play_or_pause:should stop');
 839+ ebvid.stop();
800840 ebvid.pauseed=true;
801 - }else{
 841+ }else{
 842+ js_log('f:mv_play_or_pause:should play');
802843 mv_do_play();
803844 }
804845 }
805 -function mv_do_stop(){
806 - $j('#mv_videoPlayerTime').fadeIn('fast');
 846+/*function mv_do_stop(){
807847 //re-enable interface:
808848 mv_lock_vid_updates=false;
809 - if($j('#embed_vid').get(0).thumbnail_disp){
 849+ if( $j('#embed_vid').get(0).isPlaying() ){
810850 //already stoped
811851 js_log('already stoped');
812 - }else{
813 - //hide the controls thumbnail_disp
814 - mv_disp_play_controls(false);
 852+ }else{
815853 js_log('mv_do_stop');
816854 //run the original stop:
817855 $j('#embed_vid').get(0).org_eb_stop();
818856 //re-rewrite the play button:
819857 $j('#big_play_link_embed_vid').attr('href', 'javascript:mv_do_play();');
820858 }
821 -}
 859+}*/
822860 function mv_do_play(mvd_id){
823861 //stop the current
824862 $j('#embed_vid').get(0).stop();
@@ -826,11 +864,8 @@
827865 if(mvd_id){
828866 do_video_mvd_update(mvd_id);
829867 }
830 - //fade out the time disp:
831 - $j('#mv_videoPlayerTime').fadeOut("fast");
832868 //disable interface actions (mouse in out etc)
833869 mv_lock_vid_updates=true;
834 -
835870 //update the src if nessesary and no mvd provided:
836871 if(!mvd_id){
837872 if(mv_init_interface.cur_mvd_id!=mv_init_interface.delay_cur_mvd_id){
@@ -838,9 +873,6 @@
839874 do_video_mvd_update(mv_init_interface.cur_mvd_id);
840875 }
841876 }
842 -
843 - //show the controls:
844 - mv_disp_play_controls(true);
845877 //update the embed video actual play time
846878 //time_chunk = $j('#embed_vid').get(0).src.split('t=');
847879 //$j('#mv_videoPlayerTime').html( time_chunk[1] );
@@ -884,11 +916,20 @@
885917 $j('#MV_StreamMeta,#MV_Tools').css({'top':org_top_tool_contain+'px'});
886918 }
887919 }
888 -
 920+//hackish globals .. needs a rewrite
 921+var mv_currently_scroll_to_pos=false;
889922 function scroll_to_pos(mvd_id){
 923+ js_log('scroll_to_pos:'+mvd_id);
 924+ var speed = (mv_currently_scroll_to_pos)?'fast':'slow';
890925 if( $j('#mv_fd_mvd_'+mvd_id).get(0)){
891926 //@@todo debug IE issues with scrolling
892 - $j('#selectionsBox').animate({scrollTop: ($j('#mv_fd_mvd_'+mvd_id).get(0).offsetTop-40)}, 'slow');
 927+ $j('#selectionsBox').animate({
 928+ scrollTop: ($j('#mv_fd_mvd_'+mvd_id).get(0).offsetTop-40)
 929+ },
 930+ speed,
 931+ function(){
 932+ mv_currently_scroll_to_pos=false;
 933+ });
893934 }
894935 }
895936 function highlight_fd(mvd_id){
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_embed.js
@@ -14,8 +14,7 @@
1515 * (in cases where media will be hosted in a different place than the embbeding page)
1616 *
1717 */
18 -
19 -var MV_EMBED_VERSION = '1.0';
 18+var MV_EMBED_VERSION = '1.0rc1';
2019 var mv_embed_path = null;
2120 //whether or not to load java from an iframe.
2221 //note: this is necessary for remote embedding because of java security model)
@@ -170,14 +169,16 @@
171170 lib_jquery:{'window.jQuery':'jquery/jquery-1.2.6.min.js'},
172171 lib_plugins:{
173172 '$j.timer.global':'jquery/plugins/jquery.timers.js', //we should try and factor out the timer
174 - '$j.fn.offsetParent':'jquery/plugins/jquery.dimensions.js',
175 - '$j.ui.mouseInteraction':'jquery/plugins/ui.mouse.js',
176 - '$j.ui.slider':'jquery/plugins/ui.slider.js',
177 - '$j.ui.draggable':'jquery/plugins/ui.draggable.js', //include draggable
178 - '$j.ui.droppable':'jquery/plugins/ui.droppable.js'
 173+ '$j.ui.mouse' :'jquery/jquery.ui-1.5.2/ui/minified/ui.core.min.js'
179174 },
180 - /*old lib includes:
181 - '$j.ui.progressbar':'jquery/jquery-ui-personalized-1.6rc1.debug.js'
 175+ lib_controlui:{
 176+ '$j.ui.droppable':'jquery/jquery.ui-1.5.2/ui/minified/ui.droppable.min.js',
 177+ '$j.ui.draggable':'jquery/jquery.ui-1.5.2/ui/minified/ui.draggable.min.js',
 178+ '$j.ui.resizable':'jquery/jquery.ui-1.5.2/ui/minified/ui.resizable.min.js'
 179+ },
 180+ /* @@todo move to single packaged jquery ui library:
 181+ , //include draggable
 182+ '$j.ui.progressbar':'jquery/jquery-ui-personalized-1.6rc1.debug.js'
182183 */
183184 pc:null, //used to store pointer to parent clip (when in playlist mode)
184185 load_libs:function(callback){
@@ -195,9 +196,13 @@
196197 js_log('jquery loaded');
197198
198199 mvJsLoader.doLoad(_this.lib_plugins, function(){
199 - js_log('plugins loaded');
200 - mvEmbed.libs_loaded=true;
201 - mvEmbed.init();
 200+ js_log('loaded ui core');
 201+ //load control ui after ui.core loaded
 202+ mvJsLoader.doLoad(_this.lib_controlui,function(){
 203+ js_log('plugins loaded');
 204+ mvEmbed.libs_loaded=true;
 205+ mvEmbed.init();
 206+ });
202207 });
203208 });
204209 },
@@ -548,19 +553,20 @@
549554 /
550555 ($j('#mv_seeker_'+_this.id).width()-14));
551556
552 - this.jump_time = seconds2ntp(parseInt(_this.getDuration()*perc)+ _this.start_time_sec);
553 - js_log('perc:' + perc + ' * ' + _this.getDuration() + ' jt:'+ this.jump_time);
554 - _this.setStatus( getMsg('seek_to')+' '+this.jump_time );
 557+ _this.jump_time = seconds2ntp(parseInt(_this.getDuration()*perc)+ _this.start_time_sec);
 558+ //js_log('perc:' + perc + ' * ' + _this.getDuration() + ' jt:'+ this.jump_time);
 559+ _this.setStatus( getMsg('seek_to')+' '+_this.jump_time );
555560 //update the thumbnail/ frame
556561 _this.updateTimeThumb(perc);
557562 },
558563 stop:function(e, ui){
559564 _this.userSlide=false;
560 - js_log('do jump to: '+this.jump_time)
 565+ js_log('do jump to: '+_this.jump_time)
561566 //reset slider
562 - _this.seek_time_sec=ntp2seconds(this.jump_time);
563 - //_this.stop();
564 - //_this.play();
 567+ _this.seek_time_sec=ntp2seconds(_this.jump_time);
 568+ _this.stop();
 569+ //do play in 300ms (give things time to "cool down")
 570+ setTimeout('$j(\'#'+_this.id+'\').get(0).play()',300);
565571 }
566572 });
567573 },
@@ -1327,7 +1333,7 @@
13281334 $j('#mmbody_'+this.pe.id +' .mvtt').each(function(){
13291335 if(ntp2seconds($j(this).attr('start')) == cur_time){
13301336 _this.prevTimeScroll=cur_time;
1331 - $j('#mmbody_'+_this.pe.id).animate({scrollTop: $j(this).position().top}, 'slow');
 1337+ $j('#mmbody_'+_this.pe.id).animate({scrollTop: $j(this).get(0).offsetTop}, 'slow');
13321338 }
13331339 });
13341340 }
@@ -1519,7 +1525,7 @@
15201526 * supports media_url?t=ntp_start/ntp_end url request format
15211527 */
15221528 parseURLDuration : function(){
1523 - js_log('f:parseURLDuration() for:' + this.src);
 1529+ //js_log('f:parseURLDuration() for:' + this.src);
15241530 var index_time_val = false;
15251531 if(this.src.indexOf('?t=')!=-1)index_time_val='?t=';
15261532 if(this.src.indexOf('&t=')!=-1)index_time_val='&t=';
@@ -1998,8 +2004,9 @@
19992005 return default_time_req;
20002006 return this.media_element.selected_source.start_ntp+'/'+this.media_element.selected_source.end_ntp;
20012007 },
2002 - getDuration:function(){
 2008+ getDuration:function(){
20032009 this.duration = this.media_element.selected_source.duration;
 2010+ this.start_offset = this.media_element.selected_source.start_offset;
20042011 return this.duration;
20052012 },
20062013 /* get the duration in ntp format */
@@ -2258,7 +2265,7 @@
22592266 return;
22602267 }else{
22612268 $j('#mv_embedded_controls_'+this.id).html( this.getControlsHTML() );
2262 - this.addControlHooks();
 2269+ ctrlBuilder.addControlHooks(this);
22632270 }
22642271 },
22652272 getControlsHTML:function()
@@ -2335,18 +2342,19 @@
23362343 js_log("UPDATE SRC:"+src);
23372344 this.src = src;
23382345 },
2339 - updateTimeThumb: function(perc){
 2346+ updateTimeThumb: function(perc){
 2347+ var _this = this;
23402348 //do quick thumb update
23412349 if(typeof org_thum_src=='undefined'){
23422350 org_thum_src = this.media_element.getThumbnailURL();
2343 - }
 2351+ }
23442352 if(org_thum_src.indexOf('t=')!==-1){
2345 - this.updateThumbnail( getUpdateTimeURL(
2346 - seconds2ntp( (this.getDuration() * perc) + this.start_offset)
2347 - )
2348 - );
2349 - }
2350 - js_log('f:doUpdateTimeThumb: update thumb to: '+ perc + ' os:'+ org_thum_src);
 2353+ this.last_thumb_url = getUpdateTimeURL(org_thum_src,seconds2ntp( (this.getDuration() * perc) + parseInt(this.start_offset)));
 2354+ if(!this.thumbnail_updating){
 2355+ this.updateThumbnail(this.last_thumb_url ,false);
 2356+ this.last_thumb_url =null;
 2357+ }
 2358+ }
23512359 },
23522360 //updates the thumbnail if the thumbnail is being displayed
23532361 updateThumbnail : function(src, quick_switch){
@@ -2358,8 +2366,7 @@
23592367
23602368 //if still animating remove new_img_thumb_
23612369 if(this.thumbnail_updating==true)
2362 - $j('#new_img_thumb_'+this.id).stop().remove();
2363 -
 2370+ $j('#new_img_thumb_'+this.id).stop().remove();
23642371 if(this.thumbnail_disp){
23652372 this.thumbnail_updating=true;
23662373 $j('#dc_'+this.id).append('<img src="'+src+'" ' +
@@ -2374,9 +2381,14 @@
23752382 $j('#img_thumb_'+_this.id).css('zindex','1');
23762383 _this.thumbnail_updating=false;
23772384 //js_log("done fadding in "+ $j('#img_thumb_'+_this.id).attr("src"));
 2385+
 2386+ //if we have a thumb queued update to that
 2387+ if(_this.last_thumb_url){
 2388+ var src_url =_this.last_thumb_url;
 2389+ _this.last_thumb_url=null;
 2390+ _this.updateThumbnail(src_url);
 2391+ }
23782392 });
2379 - }else{
2380 - //do a quick switch
23812393 }
23822394 }
23832395 },
@@ -2739,10 +2751,10 @@
27402752 return null
27412753 },
27422754 /*
2743 - * base embed stop (should be overwritten by the plugin)
 2755+ * base embed stop (can be overwritten by the plugin)
27442756 */
27452757 stop: function(){
2746 - js_log('base stop:'+this.id);
 2758+ js_log('mvEmbed:stop:'+this.id);
27472759 //check if thumbnail is being displayed in which case do nothing
27482760 if(this.thumbnail_disp){
27492761 //already in stooped state
@@ -2751,6 +2763,7 @@
27522764 //rewrite the html to thumbnail disp
27532765 this.doThumbnailHTML();
27542766 this.setSliderValue(0);
 2767+ this.setStatus(this.getTimeReq());
27552768 }
27562769 if(this.update_interval)
27572770 {
@@ -2851,7 +2864,7 @@
28522865 //js_log('currentTime:'+ this.currentTime);
28532866
28542867 var val = Math.round( perc * $j('#mv_seeker_'+id).width() - (this.mv_seeker_width*perc));
2855 - $j('#mv_seeker_slider_'+id).css('left', (val+41)+'px' );
 2868+ $j('#mv_seeker_slider_'+id).css('left', (val)+'px' );
28562869 //js_log('perc in: ' + perc + ' * ' + $j('#mv_seeker_'+id).width() + ' = set to: '+ val + ' - '+ Math.round(this.mv_seeker_width*perc) );
28572870 //js_log('op:' + offset_perc + ' *('+perc+' * ' + $j('#slider_'+id).width() + ')');
28582871 },
@@ -2878,15 +2891,15 @@
28792892 /*
28802893 * utility functions:
28812894 */
2882 -function getUpdateTimeURL(url, new_time){
2883 - pSrc = parseUri(url);
 2895+function getUpdateTimeURL(url, new_time){
 2896+ pSrc =parseUri(url);
28842897 var new_url = pSrc.protocol +'://'+ pSrc.host + pSrc.path +'?';
28852898 var amp = '';
28862899 for(i in pSrc.queryKey){
28872900 new_url +=(i=='t')? amp + 't=' + new_time:
28882901 amp+i+'='+ pSrc.queryKey[i];
28892902 amp = '&';
2890 - }
 2903+ }
28912904 return new_url;
28922905 }
28932906 function seconds2ntp(sec){
Index: trunk/extensions/MetavidWiki/skins/mv_embed/skin/styles.css
@@ -162,6 +162,7 @@
163163 height: 12px;
164164 background: url(images/player_seek_bg_loaded.png) 0 1px repeat-x;
165165 margin: 9px 0px 0 0px;
 166+ position:relative;
166167 }
167168 .videoPlayer .seeker .seeker_bar_outer {
168169 width: 100%;
@@ -185,7 +186,7 @@
186187 background: url(images/player_slider.png) 0 0 no-repeat;
187188 width: 14px;
188189 height: 14px;
189 - position: absolute;
 190+ position: relative;
190191 z-index: 2;
191192 margin: -13px 0 0 0px;
192193 cursor: pointer;
Index: trunk/extensions/MetavidWiki/skins/mv_embed/mv_playlist.js
@@ -621,7 +621,7 @@
622622 },
623623 //playlist stops playback for the current clip (and resets state for start clips)
624624 stop:function(){
625 - js_log("pl stop:"+ this.start_clip.id + ' c:'+this.cur_clip.id);
 625+ /*js_log("pl stop:"+ this.start_clip.id + ' c:'+this.cur_clip.id);
626626 //if start clip
627627 if(this.start_clip.id!=this.cur_clip.id){
628628 //restore clipDesc visibility & hide desc for start clip:
@@ -634,11 +634,12 @@
635635 this.start_clip.embed.thumbnail_disp=true;
636636 }
637637 //empty the play-back container
638 - $j('#mv_ebct_'+this.id).empty();
639 - //set the current clip desc to visable:
 638+ $j('#mv_ebct_'+this.id).empty();*/
 639+
 640+ //make sure the current clip is visable:
640641 $j('#clipDesc_'+this.cur_clip.id).css({display:'inline'});
641642
642 - //do an animated stop of the current clip
 643+ //do stop current clip
643644 this.cur_clip.embed.stop();
644645 },
645646 //gets playlist controls large control height for sporting
@@ -1147,8 +1148,7 @@
11481149 //set up connivance pointer to parent playlist
11491150 var plObj = this.pc.pp;
11501151 var plEmbed = this;
1151 -
1152 - //now animate rezie back to small size:
 1152+
11531153 js_log('do stop');
11541154 var th=Math.round(pl_layout.clip_desc*plObj.height);
11551155 var tw=Math.round(th*pl_layout.clip_aspect);
@@ -1580,9 +1580,7 @@
15811581 _pClip.transIn.overlay_selector_id =this.getOverlaySelector(_pClip, 'transIn_');
15821582 }
15831583
1584 - js_log('selector element: '+$j('#'+_pClip.transIn.overlay_selector_id).length);
1585 -
1586 -
 1584+ js_log('selector element: '+$j('#'+_pClip.transIn.overlay_selector_id).length);
15871585 //start running the transition animation (will stop once pClip time > transition duration
15881586 js_log("ABOUT TO RUN transIn");
15891587 js_log("cid: "+_pClip.transIn.pClip.id);