* since this is proxy server set a pre-append debug flag to know which debug msgs are coming from where
*/
-mwConfig['debug_pre'] = 'Proxy';
+$mw.conf['debug_pre'] = 'Proxy';
if( !mwApiProxyConfig )
var mwApiProxyConfig = {};
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>Sample Themed Player</title>
- <script type="text/javascript" src="../mv_embed.js?debug=true"></script>
-</head>
-<script type="text/javascript">
-</script>
-<body bgcolor="#FFF">
-<h3> Sample Simple Themable Player:</h3>
-To play with dynamic Themes install <a href="http://jqueryui.com/themeroller/developertool/">Themeroller</a><p><p>
-<div style="width:450px;float:left">
-<video src="http://upload.wikimedia.org/wikipedia/commons/d/d3/Okapia_johnstoni5.ogg"
- poster="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Okapia_johnstoni5.ogg/mid-Okapia_johnstoni5.ogg.jpg" durationHint="15"></video>
- </div>
-<div style="float:left">
-<b>Source Code used:</b><br>
-<textarea cols="50" rows="7"><video src="http://upload.wikimedia.org/wikipedia/commons/d/d3/Okapia_johnstoni5.ogg" poster="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Okapia_johnstoni5.ogg/mid-Okapia_johnstoni5.ogg.jpg" durationHint="15"></video></textarea>
-</div>
-</body>
-</html>
-
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>Sample Themed Player</title>
+ <script type="text/javascript" src="../mv_embed.js?debug=true"></script>
+</head>
+<script type="text/javascript">
+</script>
+<body bgcolor="#FFF">
+<h3> Sample Themable Player:</h3>
+To play with dynamic Themes install <a href="http://jqueryui.com/themeroller/developertool/">Themeroller</a><p><p>
+
+<div style="width:450px;float:left">
+<video src="http://upload.wikimedia.org/wikipedia/commons/d/d3/Okapia_johnstoni5.ogg"
+ poster="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Okapia_johnstoni5.ogg/mid-Okapia_johnstoni5.ogg.jpg" durationHint="15"></video>
+<b>Source Code used:</b><br>
+<textarea cols="50" rows="7"><video style="width:400px;height:288px" poster="http://metavid.org/w/index.php?action=ajax&rs=mv_frame_server&stream_id=71&t=1:23:16&size=400x300"
+src="http://metavidstorage01.ucsc.edu/media/house_proceeding_07-18-06_00.ogg?t=1:23:16/1:23:44"></video></textarea>
+</div>
+
+
+<div style="width:450px;float:left">
+<video skin_name="kskin" src="http://upload.wikimedia.org/wikipedia/commons/d/d3/Okapia_johnstoni5.ogg"
+ poster="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Okapia_johnstoni5.ogg/mid-Okapia_johnstoni5.ogg.jpg" durationHint="15"></video>
+<b>(ksin) Embed Code used:</b><br>
+<textarea cols="50" rows="7"><video skin_name="kskin" src="http://upload.wikimedia.org/wikipedia/commons/d/d3/Okapia_johnstoni5.ogg" poster="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Okapia_johnstoni5.ogg/mid-Okapia_johnstoni5.ogg.jpg" durationHint="15"></video></textarea>
+</div>
+
+
+
+</body>
+</html>
+
*/
// Check if we are being invoked in a MediaWiki context or stand alone usage:
-//setup the script local script cache directory (has to be hard coded rather than config based for fast non-mediawiki hits
+//setup the script local script cache directory (has to be hard coded rather than config based for fast non-mediawiki config hits
$wgScriptCacheDirectory = realpath( dirname( __FILE__ ) ) . '/php/script-cache';
if ( !defined( 'MEDIAWIKI' ) && !defined( 'MW_CACHE_SCRIPT_CHECK' ) ){
- // Load noMediaWiki helper
+ // Load noMediaWiki helper for quick cache result
$myScriptLoader = new jsScriptLoader();
if( $myScriptLoader->outputFromCache() )
exit();
- //else load up all the config and do normal doScriptLoader process:
+ //else load up all the config and do normal stand alone ScriptLoader process:
require_once( realpath( dirname( __FILE__ ) ) . '/php/noMediaWikiConfig.php' );
$myScriptLoader->doScriptLoader();
}
global $wgUseGzip;
$this->outputJsHeaders();
if ( $wgUseGzip ) {
- if ( wfClientAcceptsGzip() ) {
+ if ( $this->clientAcceptsGzip() ) {
header( 'Content-Encoding: gzip' );
echo gzencode( $this->jsout );
} else {
echo $this->jsout;
}
}
+
+ function clientAcceptsGzip() {
+ $m = array();
+ if( preg_match(
+ '/\bgzip(?:;(q)=([0-9]+(?:\.[0-9]+)))?\b/',
+ $_SERVER['HTTP_ACCEPT_ENCODING'],
+ $m ) ) {
+ if( isset( $m[2] ) && ( $m[1] == 'q' ) && ( $m[2] == 0 ) )
+ return false;
+ //no gzip support found
+ return true;
+ }
+ return false;
+ }
/*
* postProcRequestVars uses globals, configuration and mediaWiki to test wiki-titles and files exist etc.
*/
"rsd_box_layout" : "Box layout",
"rsd_list_layout" : "List layout",
"rsd_results_desc" : "Results $1 to $2",
- "rsd_results_desc_total" : "Results $1 to $2 of $3",
+ "rsd_results_desc_total" : "Results $1 to $2 of $3",
"rsd_results_next" : "next",
"rsd_results_prev" : "previous",
"rsd_no_results" : "No search results for <b>$1<\/b>",
"mwe-cancel_import" : "Cancel import",
"mwe-importing_asset" : "Importing asset",
"mwe-preview_insert_resource" : "Preview insert of resource: $1",
- "mwe-checking-resource": "Checking for resource",
- "mwe-resource-needs-import": "Resource $1 needs to be imported to $2",
+ "mwe-checking-resource" : "Checking for resource",
+ "mwe-resource-needs-import" : "Resource $1 needs to be imported to $2",
"mwe-ftype-svg" : "SVG vector file",
"mwe-ftype-jpg" : "JPEG image file",
"mwe-ftype-png" : "PNG image file",
- "mwe-ftype-oga" : "Ogg audio file",
+ "mwe-ftype-oga" : "Ogg audio file",
"mwe-ftype-ogg" : "Ogg video file",
"mwe-ftype-unk" : "Unknown file format"
});
mv_set_loading('#tab-upload');
//do things async to keep interface snappy
setTimeout(function(){
-
//check if we need to setup the proxy::
if( _this.upload_api_target == 'proxy' ){
- //setup proxy
- $j('#tab-upload').html( 'do proxy setup');
+ _this.setupProxy( function(){
+ _this.getUploadForm();
+ });
}else{
_this.getUploadForm();
}
o+='<li class="rsd_cp_tab">';
o+='<a id="rsd_tab_' + cp_id + '" href="#tab-' + cp_id + '">';
if(cp.tab_img === true){
- o+='<img alt="' + cp.title +'" src="' + mv_skin_img_path + 'remote_cp/' + cp_id + '_tab.png">';
+ o+='<img alt="' + cp.title +'" src="' + mv_embed_path +'/skins/common/remote_cp/' + cp_id + '_tab.png">';
}else{
o+= cp.title;
}
loadGM({
"mwe-loading_plugin" : "loading plugin ...",
"mwe-select_playback" : "Set playback preference",
- "mwe-link_back" : "Link back",
+ "mwe-link_back" : "Link back",
"mwe-error_swap_vid" : "Error: mv_embed was unable to swap the video tag for the mv_embed interface",
"mwe-add_to_end_of_sequence" : "Add to end of sequence",
"mwe-missing_video_stream" : "The video file for this stream is missing",
"mwe-next_clip_msg" : "Play next clip",
"mwe-prev_clip_msg" : "Play previous clip",
"mwe-current_clip_msg" : "Continue playing this clip",
- "mwe-seek_to" : "Seek to",
+ "mwe-seek_to" : "Seek to $1",
+ "mwe-paused" : "paused",
"mwe-download_segment" : "Download selection:",
"mwe-download_full" : "Download full video file:",
"mwe-download_right_click" : "To download, right click and select <i>Save target as...<\/i>",
"mwe-for_best_experience" : "For a better video playback experience we recommend:<br \/><b><a href=\"http:\/\/www.mozilla.com\/en-US\/firefox\/upgrade.html?from=mwEmbed\">Firefox 3.5<\/a>.<\/b>",
"mwe-do_not_warn_again" : "Dismiss for now.",
"mwe-playerselect" : "Players",
- "mwe-read_before_embed" : "Please read the <a href=\"http:\/\/mediawiki.org\/wiki\/Security_Notes_on_Remote_Embedding\" target=\"_new\">security notes on remote embedding<\/a> before actually embedding!",
+ "mwe-read_before_embed" : "<a href=\"http:\/\/mediawiki.org\/wiki\/Security_Notes_on_Remote_Embedding\" target=\"_new\">Read This<\/a> before embedding.",
"mwe-embed_site_or_blog" : "Embed on your site or blog",
"mwe-related_videos" : "Related videos",
- "mwe-seeking": "seeking"
+ "mwe-seeking" : "seeking"
});
//set the globals:
var eAction = function(this_elm){
js_log( "Do SWAP: " + $j(this_elm).attr("id") + ' tag: '+ this_elm.tagName.toLowerCase() );
-
+
if( $j(this_elm).attr("id") == '' ){
$j(this_elm).attr("id", 'v'+ global_player_list.length);
}
//store a global reference to the id
- global_player_list.push( $j(this_elm).attr("id") );
- //if video doSwap
- switch( this_elm.tagName.toLowerCase()){
- case 'video':
- var videoInterface = new embedVideo(this_elm);
+ global_player_list.push( $j(this_elm).attr("id") );
+
+ //if video doSwap
+ switch( this_elm.tagName.toLowerCase()){
+ case 'video':
+ var videoInterface = new embedVideo(this_elm);
+ mvEmbed.swapEmbedVideoElement( this_elm, videoInterface );
+ break;
+ case 'audio':
+ var videoInterface = new embedVideo(this_elm);
+ videoInterface.type ='audio';
mvEmbed.swapEmbedVideoElement( this_elm, videoInterface );
- break;
- case 'audio':
- var videoInterface = new embedVideo(this_elm);
- videoInterface.type ='audio';
- mvEmbed.swapEmbedVideoElement( this_elm, videoInterface );
- break;
- case 'playlist':
- loadPlaylistLib=true;
- break;
+ break;
+ case 'playlist':
+ loadPlaylistLib=true;
+ break;
}
}
if( force_id == null && force_id != '' ){
'$j.ui', //include dialog for pop-ing up thigns
'$j.ui.dialog'
], function(){
+ //deal with each playlist instance
$j('playlist').each(function(){
//create new playlist interface:
var plObj = new mvPlayList( this );
else
return parseInt(this.height);
},
- init: function(element){
- //this.element_pointer = element;
-
- //set the skin name from the config
- //@@todo support skin as an attribute option
- this.skin_name = mwConfig['skin_name'];
-
- //inherit all the default video_attributes
+ init: function(element){
+ //inherit all the default video_attributes
for(var attr in default_video_attributes){ //for in loop oky on user object
if(element.getAttribute(attr)){
- this[attr]=element.getAttribute(attr);
- //js_log('attr:' + attr + ' val: ' + element.getAttribute(attr) +'(set by elm)');
+ this[ attr ]=element.getAttribute(attr);
}else{
this[attr]=default_video_attributes[attr];
- //js_log('attr:' + attr + ' val: ' + video_attributes[attr] +" "+ 'elm_val:' + element.getAttribute(attr) + "\n (set by attr)");
}
}
+
+ //set the skin name from the config (if not set locally)
+ if( !this.skin_name )
+ this.skin_name = $mw.conf['skin_name'];
+
//make sure startOffset is cast as an int
if( this.startOffset && this.startOffset.split(':').length >= 2)
this.startOffset = npt2seconds(this.startOffset);
this.duration = parseFloat(this.duration);
js_log("duration is: " + this.duration);
//if style is set override width and height
- var dwh = mwConfig['video_size'].split('x');
+ var dwh = $mw.conf['video_size'].split('x');
this.width = element.style.width ? element.style.width : dwh[0];
this.height = element.style.height ? element.style.height : dwh[1];
//set the plugin id
//if we are displaying controls setup the ctrlBuilder
if( this.controls ){
//set-up the local ctrlBuilder instance:
- this.ctrlBuilder = new ctrlBuilder( this );
- }
+ this.ctrlBuilder = new ctrlBuilder( this );
+ //load the css for the current player
+
+ }
+ //load skin:
+ loadExternalCss( mv_embed_path + 'skins/' + this.skin_name + '/playerSkin.css');
},
on_dom_swap: function(){
js_log('f:on_dom_swap');
return true;
},
getTimeReq:function(){
- var default_time_req = '0:00:00/' + seconds2npt(this.getDuration());
+ var et = (this.ctrlBuilder.long_time_disp)? '/' + seconds2npt( this.getDuration() ) : '';
+ var default_time_req = '0:00:00' + et;
if(!this.media_element)
return default_time_req;
if(!this.media_element.selected_source)
return default_time_req;
if(!this.media_element.selected_source.end_ntp)
return default_time_req;
- return this.media_element.selected_source.start_ntp+'/'+this.media_element.selected_source.end_ntp;
+ var et = (this.ctrlBuilder.long_time_disp) ?'/'+this.media_element.selected_source.end_ntp : '';
+ return this.media_element.selected_source.start_ntp + et;
},
getDuration:function(){
//update some local pointers for the selected source:
* (should be overwitten by client that supports frame serving)
*/
setCurrentTime:function( time, callback){
- js_log('error: base embed setCurrentTime can not frame serve (overide via plugin)');
+ js_log('error: base embed setCurrentTime can not frame serve (override via plugin)');
},
addPresTimeOffset:function(){
//add in the offset:
},
refreshControlsHTML:function(){
js_log('refreshControlsHTML::');
- if($j('#mv_embedded_controls_'+this.id).length == 0)
+ if($j('#' + this.id + ' .control-bar').length == 0)
{
- js_log('#mv_embedded_controls_'+this.id + ' not present, returning');
+ js_log('control-bar not present, returning');
return ;
}else{
- $j('#mv_embedded_controls_'+this.id).html( this.getControlsHTML() );
+ $j('#' + this.id + ' .control-bar').html( this.getControlsHTML() );
this.ctrlBuilder.addControlHooks(this);
}
},
},
getHTML : function (){
//@@todo check if we have sources available
- js_log('embedVideo:getHTML : ' + this.id + ' resource type: ' + this.type);
+ js_log('embedVideo:getHTML : ' + this.id + ' resource type: ' + this.type);
+
+ //set-up the local ctrlBuilder instance:
+ this.ctrlBuilder = new ctrlBuilder( this );
+
var _this = this;
var html_code = '';
html_code = '<div id="videoPlayer_' + this.id + '" style="width:' + this.width + 'px;position:relative;"'+
'</div>';
//js_log("mvEmbed:controls "+ typeof this.controls);
if( this.controls )
- {
- //set-up the local ctrlBuilder instance:
- this.ctrlBuilder = new ctrlBuilder( this );
-
+ {
js_log("f:getHTML:AddControls");
- html_code +='<div id="mv_embedded_controls_' + this.id + '" class="ui-widget ui-corner-bottom ui-state-default controls" >';
+ html_code +='<div class="ui-state-default ui-widget-header ui-helper-clearfix control-bar" >';
html_code += this.getControlsHTML();
html_code +='</div>';
//block out some space by encapulating the top level div
$j(this).wrap('<div style="width:'+parseInt(this.width)+'px;height:'
- +( parseInt(this.height) + this.ctrlBuilder.height )+'px"></div>');
-
+ +( parseInt(this.height) + this.ctrlBuilder.height )+'px"></div>');
}
html_code += '</div>'; //videoPlayer div close
//js_log('should set: '+this.id);
doOptionsHTML:function()
{
var sel_id = (this.pc!=null)?this.pc.pp.id:this.id;
- var pos = $j('#options_button_'+sel_id).offset();
+ var pos = $j('#'+sel_id + ' .options-btn').offset();
pos['top']=pos['top']+24;
pos['left']=pos['left']-124;
//js_log('pos of options button: t:'+pos['top']+' l:'+ pos['left']);
}
o+='<div>' +
'<span style="color:#FFF;font-size:14px;">Embed Clip in Blog or Site</span><br>'+
- '<span style="color:#FFF;font-size:12px;"><a style="color:red" href="http://metavid.org/wiki/Security_Notes_on_Remote_Embedding">'+
- 'Read This</a> before embeding.</span>'+
+ '<span class="readthis" style="color:#FFF;font-size:12px;">' + gM('mwe-read_before_embed') +
'<div class="embed_code"> '+
'<textarea onClick="this.select();" id="embedding_user_html_'+this.id+'" name="embed">' +
embed_code+
'</div> '+
'</div>';
this.displayHTML(o);
+ $j('#'+ this.id + ' .readthis a').css('font-color', 'red');
},
copyText:function(){
$j('#embedding_user_html_'+this.id).focus().select();
});
return false; //onclick action return false
},
- selectPlaybackMethod:function(){
+ showPlayerselect:function( $target ){
//get id (in case where we have a parent container)
var this_id = (this.pc!=null)?this.pc.pp.id:this.id;
-
- var _this=this;
- var out= '<span style="color:#FFF;background-color:black;"><blockquote style="background-color:black;">';
+ var _this=this;
+ var o= '';
+ o+='<h2>' + gM('mwe-chose_player') + '</h2>';
var _this=this;
//js_log('selected src'+ _this.media_element.selected_source.url);
- $j.each( this.media_element.getPlayableSources(), function(source_id, source){
- var default_player = embedTypes.players.defaultPlayer( source.getMIMEType() );
-
+ $j.each( this.media_element.getPlayableSources(), function(source_id, source){
+ var default_player = embedTypes.players.defaultPlayer( source.getMIMEType() );
+
var is_selected = (source == _this.media_element.selected_source);
var image_src = mv_skin_img_path ;
-
- //set the Playable source type:
- if( source.mime_type == 'video/x-flv' ){
- image_src += 'flash_icon_';
- }else if( source.mime_type == 'video/h264'){
- //for now all mp4 content is pulled from archive.org (so use archive.org icon)
- image_src += 'archive_org_';
- }else{
- image_src += 'fish_xiph_org_';
- }
- image_src += is_selected ? 'color':'bw';
- image_src += '.png';
-
- if (default_player)
- {
- out += '<img src="'+image_src+'"/>';
- if( ! is_selected )
- out+='<a href="#" class="sel_source" id="sc_' + source_id + '_' + default_player.id +'">';
- out += source.getTitle()+ (is_selected?'</a>':'') + ' ';
-
- //output the player select code:
- var supporting_players = embedTypes.players.getMIMETypePlayers( source.getMIMEType() );
- out+='<div id="player_select_list_' + source_id + '" class="player_select_list"><ul>';
- for(var i=0; i < supporting_players.length ; i++){
+
+ if (default_player){
+ o+='<ul>';
+ //output the player select code:
+ var supporting_players = embedTypes.players.getMIMETypePlayers( source.getMIMEType() );
+
+ for(var i=0; i < supporting_players.length ; i++){
if( _this.selected_player.id == supporting_players[i].id && is_selected ){
- out+='<li style="border-style:dashed;margin-left:20px;">'+
- '<img border="0" width="16" height="16" src="' + mv_skin_img_path + 'plugin.png">' +
- supporting_players[i].getName() +
- '</li>';
- }else{
- //else gray plugin and the plugin with link to select
- out+='<li style="margin-left:20px;">'+
- '<a href="#" class="sel_source" id="sc_' + source_id + '_' + supporting_players[i].id +'">'+
- '<img border="0" width="16" height="16" src="' + mv_skin_img_path + 'plugin_disabled.png">'+
- supporting_players[i].getName() +
- '</a>'+
+ o+='<li>' +
+ '<a href="#" class="active" rel="sel_source" id="sc_' + source_id + '_' + supporting_players[i].id +'">' +
+ supporting_players[i].getName() +
'</li>';
+ }else{
+ o+='<li>' +
+ '<a href="#" rel="sel_source" id="sc_' + source_id + '_' + supporting_players[i].id +'">' +
+ supporting_players[i].getName() + '</a>' +
+ '</li>';
}
}
- out+='</ul></div>';
- }else
- out+= source.getTitle() + ' - no player available';
+ o+='</ul>';
+ }else{
+ o+= source.getTitle() + ' - no player available';
+ }
});
- out+='</blockquote></span>';
- this.displayHTML(out);
-
+ $target.html(o);
+
//set up the click bindings:
- $j('.sel_source').each(function(){
+ $target.find("[rel='sel_source']").each(function(){
$j(this).click(function(){
var iparts = $j(this).attr( 'id' ).replace(/sc_/,'').split('_');
var source_id = iparts[0];
var default_player_id = iparts[1];
- js_log('source id: ' + source_id + ' player id: ' + default_player_id);
-
- $j('#' + this_id ).get(0).closeDisplayedHTML();
+ js_log('source id: ' + source_id + ' player id: ' + default_player_id);
+
+ $j('#' + this_id ).get(0).closeDisplayedHTML();
$j('#' + _this.id ).get(0).media_element.selectSource( source_id );
-
+
embedTypes.players.userSelectPlayer( default_player_id,
_this.media_element.sources[ source_id ].getMIMEType() );
-
+
//be sure to issue a stop
$j('#' + this_id ).get(0).stop();
-
+
//don't follow the empty # link:
return false;
});
});
},
- showVideoDownload:function(){
+ showDownload:function( $target ){
+ var _this = this;
//load the roe if available (to populate out download options:
- //js_log('f:showVideoDownload '+ this.roe + ' ' + this.media_element.addedROEData);
+ function getShowVideoDownload(){
+ var out='<div style="color:white">' +
+ '<b style="color:white;">'+gM('mwe-download_segment')+'</b><br>';
+ out+='<blockquote style="background:#000">'+
+ gM('mwe-download_right_click') + '</blockquote><br>';
+ var dl_list='';
+ var dl_txt_list='';
+ $j.each(_this.media_element.getSources(), function(index, source){
+ var dl_line = '<li>' + '<a style="color:white" href="' + source.getURI() +'"> '
+ + source.getTitle()+'</a> '+ '</li>'+"\n";
+ if( source.getURI().indexOf('?t=')!==-1){
+ out+=dl_line;
+ }else if( this.getMIMEType()=="text/cmml" || this.getMIMEType()=="text/x-srt" ){
+ dl_txt_list+=dl_line;
+ }else{
+ dl_list+=dl_line;
+ }
+ });
+
+ if(dl_list!='')
+ out+=gM('mwe-download_full') + '<blockquote style="background:#000">' + dl_list + '</blockquote>';
+ if(dl_txt_list!='')
+ out+=gM('mwe-download_text')+'<blockquote style="background:#000">' + dl_txt_list +'</blockquote>';
+ out+='</div>';
+ return out;
+ }
+ //js_log('f:showDownload '+ this.roe + ' ' + this.media_element.addedROEData);
if(this.roe && this.media_element.addedROEData == false){
var _this = this;
- this.displayHTML(gM('mwe-loading_txt'));
+ $target.html( gM('loading_txt') );
do_request(this.roe, function(data)
{
- _this.media_element.addROE(data);
- $j('#mv_disp_inner_'+_this.id).html( _this.getShowVideoDownload() );
- });
+ _this.media_element.addROE(data);
+ $target.html( getShowVideoDownload() );
+ });
}else{
- this.displayHTML( this.getShowVideoDownload() );
- }
- },
- getShowVideoDownload:function(){
- var out='<div style="color:white">' +
- '<b style="color:white;">'+gM('mwe-download_segment')+'</b><br>';
- out+='<blockquote style="background:#000">'+
- gM('mwe-download_right_click') + '</blockquote><br>';
- var dl_list='';
- var dl_txt_list='';
- $j.each(this.media_element.getSources(), function(index, source){
- var dl_line = '<li>' + '<a style="color:white" href="' + source.getURI() +'"> '
- + source.getTitle()+'</a> '+ '</li>'+"\n";
- if( source.getURI().indexOf('?t=')!==-1){
- out+=dl_line;
- }else if( this.getMIMEType()=="text/cmml" || this.getMIMEType()=="text/x-srt" ){
- dl_txt_list+=dl_line;
- }else{
- dl_list+=dl_line;
- }
- });
-
- if(dl_list!='')
- out+=gM('mwe-download_full') + '<blockquote style="background:#000">' + dl_list + '</blockquote>';
- if(dl_txt_list!='')
- out+=gM('mwe-download_text')+'<blockquote style="background:#000">' + dl_txt_list +'</blockquote>';
- out+='</div>';
- return out;
- },
+ $target.html( getShowVideoDownload() );
+ }
+ },
/*
* base embed controls
* the play button calls
*/
play:function(){
- var this_id = (this.pc!=null)?this.pc.pp.id:this.id;
+ var eid = (this.pc!=null)?this.pc.pp.id:this.id;
//js_log( "mv_embed play:" + this.id);
//js_log('thum disp:'+this.thumbnail_disp);
this.seeking=false;
}
- $j("#mv_play_pause_button_" + this_id + ' span').removeClass('ui-icon-play').addClass('ui-icon-pause');
- $j("#mv_play_pause_button_" + this_id).unbind().btnBind().click(function(){
- $j('#' + this_id ).get(0).pause();
+ $j('#' + eid + ' .play-btn span').removeClass('ui-icon-play').addClass('ui-icon-pause');
+ $j('#' + eid + ' .play-btn').unbind().btnBind().click(function(){
+ $j('#' + eid ).get(0).pause();
}).attr('title', gM('mwe-pause_clip'));
},
* must be overwritten by embed object to support this functionality.
*/
pause: function(){
- var this_id = (this.pc!=null)?this.pc.pp.id:this.id;
+ var eid = (this.pc!=null)?this.pc.pp.id:this.id;
//js_log('mv_embed:do pause');
//(playing) do pause
this.paused = true;
//update the ctrl "paused state"
- $j("#mv_play_pause_button_" + this_id + ' span').removeClass('ui-icon-pause').addClass('ui-icon-play');
- $j("#mv_play_pause_button_" + this_id).unbind().btnBind().click(function(){
- $j('#'+this_id).get(0).play();
+ $j('#' + eid + ' .play-btn span').removeClass('ui-icon-pause').addClass('ui-icon-play');
+ $j('#' + eid + ' .play-btn').unbind().btnBind().click(function(){
+ $j('#'+eid).get(0).play();
}).attr('title', gM('mwe-play_clip'));
},
/*
}
},
toggleMute:function(){
- var this_id = (this.pc!=null)?this.pc.pp.id:this.id;
+ var eid = (this.pc!=null)?this.pc.pp.id:this.id;
if(this.muted){
this.muted=false;
- $j('#volume_control_'+this_id + ' span').removeClass('ui-icon-volume-off').addClass('ui-icon-volume-on');
- $j('#volume_bar_'+this_id).slider('value', 100);
+ $j('#volume_control_'+eid + ' span').removeClass('ui-icon-volume-off').addClass('ui-icon-volume-on');
+ $j('#volume_bar_'+eid).slider('value', 100);
this.updateVolumen(1);
}else{
this.muted=true;
- $j('#volume_control_'+this_id + ' span').removeClass('ui-icon-volume-on').addClass('ui-icon-volume-off');
- $j('#volume_bar_'+this_id).slider('value', 0);
+ $j('#volume_control_'+eid + ' span').removeClass('ui-icon-volume-on').addClass('ui-icon-volume-off');
+ $j('#volume_bar_'+eid).slider('value', 0);
this.updateVolumen(0);
}
js_log('f:toggleMute::' + this.muted);
//do common monitor code like update the playhead and play status
//plugin objects are responsible for updating currentTime
monitor:function(){
+ //js_log(' us: ' + this.userSlide + ' is seek: ' + this.seeking );
if( this.currentTime && this.currentTime > 0 && this.duration){
- if( !this.userSlide && ! this.seeking ){
+ if( !this.userSlide && !this.seeking ){
if( this.start_offset ){
//if start offset include that calculation
- this.setSliderValue( ( this.currentTime - this.start_offset ) / this.duration );
- this.setStatus( seconds2npt(this.currentTime) + '/'+ seconds2npt(parseFloat(this.start_offset)+parseFloat(this.duration) ));
+ this.setSliderValue( ( this.currentTime - this.start_offset ) / this.duration );
+ var et = (this.ctrlBuilder.long_time_disp)? '/'+ seconds2npt(parseFloat(this.start_offset)+parseFloat(this.duration) ) : '';
+ this.setStatus( seconds2npt(this.currentTime) + et);
}else{
this.setSliderValue( this.currentTime / this.duration );
- this.setStatus( seconds2npt(this.currentTime) + '/' + seconds2npt(this.duration ));
+ var et = (this.ctrlBuilder.long_time_disp)? '/' + seconds2npt( this.duration ):'';
+ this.setStatus( seconds2npt( this.currentTime ) + et);
}
}
}else{
+ //media lacks duration just show end time
//js_log(' ct:' + this.currentTime + ' dur: ' + this.duration);
if( this.isStoped() ){
this.setStatus( this.getTimeReq() );
}else if( this.isPaused() ){
- this.setStatus( "paused" );
+ this.setStatus( gM('mwe-paused') );
}else if( this.isPlaying() ){
if( this.currentTime && ! this.duration )
this.setStatus( seconds2npt( this.currentTime ) + ' /' );
this.setStatus( this.getTimeReq() );
}
}
+ //could check if time > duration here and stop playback
+
//update buffer information
this.updateBufferStatus();
var _this = this;
//build the buffer targeet based for playlist vs clip
var buffer_select = (this.pc) ?
'#cl_status_' + this.id + ' .mv_buffer':
- '#mv_play_head_' + this.id + ' .mv_buffer';
+ '#' + this.id + ' .play_head .mv_buffer';
//update the buffer progress bar (if available )
if( this.bufferedPercent != 0 ){
return this.media_element.selected_source.URLTimeEncoding;
},
setSliderValue: function(perc, hide_progress){
- var this_id = (this.pc)?this.pc.pp.id:this.id;
- if(this.controls && $j( '#mv_play_head_' + this_id).length != 0){
+ var eid = (this.pc)?this.pc.pp.id:this.id;
+ if(this.controls && $j('#' + eid + ' .play_head').length != 0){
var val = parseInt( perc*1000 );
- $j('#mv_play_head_'+this_id).slider('value', val);
+ $j('#' + eid + ' .play_head').slider('value', val);
}
- //js_log('set#mv_seeker_slider_'+this_id + ' perc in: ' + perc + ' * ' + $j('#mv_seeker_'+this_id).width() + ' = set to: '+ val + ' - '+ Math.round(this.mv_seeker_width*perc) );
+ //js_log('set#mv_seeker_slider_'+eid + ' perc in: ' + perc + ' * ' + $j('#mv_seeker_'+eid).width() + ' = set to: '+ val + ' - '+ Math.round(this.mv_seeker_width*perc) );
//js_log('op:' + offset_perc + ' *('+perc+' * ' + $j('#slider_'+id).width() + ')');
},
highlightPlaySection:function(options){
js_log('highlightPlaySection');
- var this_id = (this.pc)?this.pc.pp.id:this.id;
+ var eid = (this.pc)?this.pc.pp.id:this.id;
var dur = this.getDuration();
var hide_progress = true;
//set the left percet and update the slider:
left_perc = parseInt( (rel_start_sec / dur)*100 ) ;
slider_perc = (left_perc / 100);
}
+
js_log("slider perc:" + slider_perc);
if( ! this.isPlaying() ){
this.setSliderValue( slider_perc , hide_progress);
width_perc = 100 - left_perc;
}
//js_log('should hl: '+rel_start_sec+ '/' + dur + ' re:' + rel_end_sec+' lp:' + left_perc + ' width: ' + width_perc);
- $j('#mv_seeker_' + this_id + ' .mv_highlight').css({
- 'left':left_perc+'%',
- 'width':width_perc+'%'
- }).show();
+ $j('#mv_seeker_' + eid + ' .mv_highlight').css({
+ 'left' : left_perc+'%',
+ 'width' : width_perc+'%'
+ }).show();
this.jump_time = options['start'];
this.seek_time_sec = npt2seconds( options['start']);
//trim output to
- this.setStatus( gM('mwe-seek_to')+' '+ seconds2npt( this.seek_time_sec ) );
+ this.setStatus( gM('mwe-seek_to', seconds2npt( this.seek_time_sec ) ) );
js_log('DO update: ' + this.jump_time);
this.updateThumbTime( rel_start_sec );
},
hideHighlight:function(){
- var this_id = (this.pc)?this.pc.pp.id:this.id;
- $j('#mv_seeker_' + this_id + ' .mv_highlight').hide();
+ var eid = (this.pc)?this.pc.pp.id:this.id;
+ $j('#mv_seeker_' + eid + ' .mv_highlight').hide();
this.setStatus( this.getTimeReq() );
this.setSliderValue( 0 );
},
setStatus:function(value){
- var id = (this.pc)?this.pc.pp.id:this.id;
+ var eid = (this.pc)?this.pc.pp.id:this.id;
//update status:
- $j('#mv_time_'+id).html(value);
+ $j('#' + eid + ' .time-disp').html(value);
}
}
grab_try_count:0,
onlyLoadFlag:false,
urlAppend:'',
+ prevCurrentTime:-1,
supports: {
'play_head':true,
'pause':true,
}
},
onseeking:function(){
+ js_log("onseeking");
this.seeking = true;
this.setStatus( gM('mwe-seeking') );
},
- onseeked: function(){
+ onseeked: function(){
this.seeking = false;
},
doSeek:function(perc){
doNativeSeek:function(perc){
this.seek_time_sec=0;
this.vid.currentTime = perc * this.vid.duration;
- this.parent_monitor();
+ this.monitor();
},
doPlayThenSeek:function(perc){
js_log('native::doPlayThenSeek::');
_this.vid.addEventListener('seeked', once, false);
}
},
- monitor : function(){
+ monitor : function(){
this.getVID(); //make shure we have .vid obj
if(!this.vid){
js_log('could not find video embed: '+this.id + ' stop monitor');
if(this.pc){
if(this.pc.pp.cur_clip.id != this.pc.id)
return true;
- }
-
+ }
+
+ //do a seek check (on seeked does not seem fire consistantly)
+ if( this.prevCurrentTime != -1 && this.prevCurrentTime != 0
+ && this.prevCurrentTime < this.currentTime && this.seeking)
+ this.seeking = false;
+
+ this.prevCurrentTime = this.currentTime;
+
//update currentTime
this.currentTime = this.vid.currentTime;
this.addPresTimeOffset();
loadGM({
"mwe-setting-up-proxy" : "Setting up proxy...",
"mwe-re-try" : "Retry API request",
- "mwe-re-trying": "Retrying API request...",
+ "mwe-re-trying" : "Retrying API request...",
"mwe-cancel" : "Cancel",
- "mwe-proxy-not-ready": "Proxy is not configured",
- "mwe-please-login" : "You are not <a target=\"_new\" href=\"$1\">logged in</a> on $2 or mwEmbed has not been enabled. Resolve the issue, and then retry the request.",
- "mwe-remember-loging": "General security reminder: Only login to web sites when your address bar displays that site's address."
+ "mwe-proxy-not-ready" : "Proxy is not configured",
+ "mwe-please-login" : "You are not <a target=\"_new\" href=\"$1\">logged in<\/a> on $2 or mwEmbed has not been enabled. Resolve the issue, and then retry the request.",
+ "mwe-remember-loging" : "General security reminder: Only login to web sites when your address bar displays that site's address."
});
(function( $ ) {
'height:'+(this.height+this.pl_layout.title_bar_height + this.pl_layout.control_height)+'px;position:relative;">' +
'</div>');
if(this.controls==true){
- //append title & controler:
+ //append title:
$j('#dc_'+_this.id).append(
'<div style="font-size:13px;border:solid thin;width:'+this.width+'px;" id="ptitle_'+this.id+'"></div>' +
- '<div class="videoPlayer" style="position:absolute;top:'+(_this.height+_this.pl_layout.title_bar_height+4)+'px">' +
- '<div id="mv_embedded_controls_'+_this.id+'" class="ui-widget ui-corner-bottom ui-state-default controls" '+
+ '<div class="' + this.ctrlBuilder.pClass + '" style="position:absolute;top:'+(_this.height+_this.pl_layout.title_bar_height+4)+'px">' +
+ '<div class="ui-widget-header ui-helper-clearfix control-bar" '+
'style="width:' + _this.width + 'px" >' +
_this.getControlsHTML() +
'</div>'+
}else{
//just append the video:
$j('#dc_'+_this.id).append(
- '<div class="videoPlayer" style="position:absolute;top:'+(_this.height+_this.pl_layout.title_bar_height+4)+'px"></div>'
+ '<div class="' + this.ctrlBuilder.pClass + '" style="position:absolute;top:'+(_this.height+_this.pl_layout.title_bar_height+4)+'px"></div>'
);
}
this.setupClipDisplay();
setSliderValue:function(value){
//slider is on 1000 scale:
var val = parseInt( value *1000 );
- $j('#mv_play_head_' + this.id).slider('value', val);
+ $j('#' + this.id + ' .play_head').slider('value', val);
},
getPlayHeadPos: function(prec_done){
var _this = this;
var _this = this;
if( !_this.mv_seeker_width)
- _this.mv_seeker_width = $j('#mv_play_head_'+_this.id).width();
+ _this.mv_seeker_width = $j('#' + _this.id + ' .play_head').width();
if( !_this.track_len )
- _this.track_len = $j('#mv_play_head_'+_this.id).width();
+ _this.track_len = $j('#' + _this.id + ' .play_head').width();
//total duration:
var pl_duration = _this.getDuration();
//background:#DDD +clip.getColor();
- $j('#mv_play_head_'+_this.id).append(barHtml);
+ $j('#' + _this.id + ' .play_head').append(barHtml);
//js_log('offset:' + cur_pixle +' width:'+pwidth+' add clip'+ clip.id + ' is '+clip.embed.getDuration() +' = ' + perc +' of ' + _this.track_len);
cur_pixle+=pwidth;
this['type'][tObj.type][tObj.subtype].u(tObj,percent);
},
getTransitionIcon:function( type, subtype){
- return mv_embed_path +'/skins/'+mwConfig['skin_name']+'/transition_images/'+ type+'_'+ subtype+ '.png';
+ return mv_embed_path +'/skins/common/transition_images/'+ type+'_'+ subtype+ '.png';
},
/*
* mvTransLib: functional library mapping:
$j(this.target_sequence_container).append('<div id="'+ this.timeline_id +'_pl_control"'+
' style="position:absolute;top:' + (this.plObj.height) +'px;'+
'right:1px;width:'+this.plObj.width+'px;height:'+this.plObj.org_control_height+'" '+
- 'class="videoPlayer"><div class="ui-widget ui-corner-bottom ui-state-default controls">'+
+ 'class="' + this.plObj.ctrlBuilder.pClass + '"><div class="ui-widget ui-corner-bottom ui-state-default controls">'+
this.plObj.getControlsHTML() +
'</div>'+
'</div>');
// Used to grab fresh copies of scripts.
var MV_EMBED_VERSION = '1.0r20';
-/*
- * Configuration variables should be set by extending mwConfigOptions
- * here is the default config:
- */
-var mwDefaultConfig = {
- 'skin_name': 'mvpcf',
- 'jui_skin': 'redmond',
- 'video_size':'400x300'
-}
-
-// (We install the default config values for anything not set in mwConfig once we know we have jquery)
-if( !mwConfig )
- var mwConfig = {};
/**
})
-
-
-
-
-
-
-
-
// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License
/*
* setup the empty global $mw object
-* will ensure all our functions are properly namespaced
+* will ensure all our functions and variables are properly namespaced
+* reducing chance of conflicts
*/
if(!window['$mw']){
window['$mw'] = {}
* there way into the $mw namespace
*/
(function( $ ) {
+ /*
+ * global config
+ */
+ $.conf = {
+ 'skin_name' : 'mvpcf',
+ 'jui_skin' : 'redmond',
+ 'video_size' : '400x300'
+ }
+
+ /*
+ * global flags
+ */
+ $.g = {
+ 'skin_list' : new Array(),
+ 'mv_init_done' : false,
+ 'global_cb_count' : 0,
+ 'global_player_list' : new Array(), // The global player list per page
+ 'global_req_cb' : new Array() // The global request callback array
+ }
+
/*
* Language classes $mw.lang
*
//swap in the arg values
var ms = $.lang.gMsgSwap( key, args) ;
-
+
+
+
//a quick check to see if we need to send the msg via the 'parser'
//(we can add more detailed check once we support more wiki syntax)
- if(ms.indexOf('{{')==-1){
+ if(ms.indexOf('{{') === -1 && ms.indexOf('[') === -1){
return ms;
- //return ms;
}
//make sure we have the lagMagic setup:
// All default messages in [English] should be overwritten by the CMS language message system.
$mw.lang.loadGM({
- "mwe-loading_txt" : "loading ...",
- "mwe-loading_title" : "Loading...",
+ "mwe-loading_txt" : "Loading ...",
"mwe-size-gigabytes" : "$1 GB",
"mwe-size-megabytes" : "$1 MB",
"mwe-size-kilobytes" : "$1 K",
"mwe-size-bytes" : "$1 B",
"mwe-error_load_lib" : "Error: JavaScript $1 was not retrievable or does not define $2",
- "mwe-loading-add-media-wiz": "Loading add media wizard",
+ "mwe-loading-add-media-wiz" : "Loading add media wizard",
"mwe-apiproxy-setup" : "Setting up API proxy",
- "mwe-load-drag-item" : "Loading dragged item",
- "mwe-ok" : "OK"
+ "mwe-load-drag-item" : "Loading dragged item",
+ "mwe-ok" : "OK"
});
}
/**
- * mvJsLoader class handles initialization and js file loads
- */
-
+* mvJsLoader class handles initialization and js file loads
+*/
var mvJsLoader = {
libreq : {},
libs : {},
if( _this.jQuerySetupFlag == false){
js_log('setup mv_embed jQuery bindings');
//setup our global settings using the (jQuery helper)
- mwConfig = $j.extend( mwDefaultConfig, mwConfig);
// Set up the skin path
- _global['mv_jquery_skin_path'] = mv_embed_path + 'jquery/jquery.ui/themes/' +mwConfig['jui_skin'] + '/';
- _global['mv_skin_img_path'] = mv_embed_path + 'skins/' + mwConfig['skin_name'] + '/images/';
- _global['mv_default_thumb_url'] = mv_skin_img_path + 'vid_default_thumb.jpg';
-
- //setup skin dependent dependencies
- lcCssPath({'embedVideo' : 'skins/' + mwConfig['skin_name'] + '/playerSkin.css'});
+ _global['mv_jquery_skin_path'] = mv_embed_path + 'jquery/jquery.ui/themes/' + $mw.conf['jui_skin'] + '/';
+ _global['mv_skin_img_path'] = mv_embed_path + 'skins/' + $mw.conf['skin_name'] + '/images/';
+ _global['mv_default_thumb_url'] = mv_skin_img_path + 'vid_default_thumb.jpg';
// Make sure the skin/style sheets are always available:
loadExternalCss( mv_jquery_skin_path + 'jquery-ui-1.7.1.custom.css' );
- loadExternalCss( mv_embed_path + 'skins/' + mwConfig['skin_name'] + '/styles.css' );
+ loadExternalCss( mv_embed_path + 'skins/' + $mw.conf['skin_name'] + '/styles.css' );
// Set up AJAX to not send dynamic URLs for loading scripts (we control that with
// the scriptLoader)
'$j.ui.slider'
]
];
- //add skin if set:
- if( mwConfig['skin_name'] )
- depReq[0].push( mwConfig['skin_name'] + 'Config' );
+
+ //add any requested skins (suports multiple skins per single page)
+ if( $mw.g['skin_list'] ){
+ for(var i in $mw.g['skin_list'] ){
+ depReq[0].push( $mw.g['skin_list'][i] + 'Config' );
+ }
+ }
+
// Add PNG fix if needed:
if( $j.browser.msie || $j.browser.version < 7 )
document.getElementsByTagName( "playlist" )
];
if( e[0].length != 0 || e[1].length != 0 || e[2].length != 0 ) {
+ //look for any skin classes we have to load:
+ for(var j in e){
+ for(var k in e[j]){
+ if(e[j][k] && typeof( e[j][k]) == 'object'){
+ var sn = e[j][k].getAttribute('skin_name')
+ if( sn && sn != ''){
+ $mw.g.skin_list.push( sn );
+ }
+ }
+ }
+ }
// Load libs and process them
mvJsLoader.embedVideoCheck( function() {
// Run any queued global events:
}
});
}
+
//non selector based add-media-wizard direct invocation with loader
$.addMediaWiz = function( iObj, callback ){
js_log(".addMediaWiz call");
$.fn.addMediaWiz = function( iObj, callback ) {
if( this.selector ){
// First set the cursor for the button to "loading"
- $j( this.selector ).css( 'cursor', 'wait' ).attr( 'title', gM( 'mwe-loading_title' ) );
+ $j( this.selector ).css( 'cursor', 'wait' ).attr( 'title', gM( 'mwe-loading_txt' ) );
//set the target:
iObj['target_invocation'] = this.selector;
}
// Load the mv_embed_base skin:
loadExternalCss( mv_jquery_skin_path + 'jquery-ui-1.7.1.custom.css' );
- loadExternalCss( mv_embed_path + 'skins/' + mwConfig['skin_name']+'/styles.css' );
+ loadExternalCss( mv_embed_path + 'skins/' + $mw.conf['skin_name'] + '/styles.css' );
// Load all the required libs:
mvJsLoader.jQueryCheck( function() {
// Load with staged dependencies (for IE that does not execute in order)
iObj['target_sequence_container'] = this.selector;
// Issue a request to get the CSS file (if not already included):
loadExternalCss( mv_jquery_skin_path + 'jquery-ui-1.7.1.custom.css' );
- loadExternalCss( mv_embed_path + 'skins/' + mwConfig['skin_name'] + '/mv_sequence.css' );
+ loadExternalCss( mv_embed_path + 'skins/' + $mw.conf['skin_name'] + '/mv_sequence.css' );
// Make sure we have the required mv_embed libs (they are not loaded when no video
// element is on the page)
mvJsLoader.embedVideoCheck( function() {
iObj = {};
// Add the base theme CSS:
loadExternalCss( mv_jquery_skin_path + 'jquery-ui-1.7.1.custom.css' );
- loadExternalCss( mv_embed_path + 'skins/'+mwConfig['skin_name'] + '/styles.css' );
+ loadExternalCss( mv_embed_path + 'skins/' + $mw.conf['skin_name'] + '/styles.css' );
// Check if we already have Firefogg loaded (the call just updates the element's
// properties)
*/
function js_log( string ) {
///add any prepend debug strings if nessesary
- if( mwConfig['debug_pre'] )
- string = mwConfig['debug_pre']+ string;
+ if( $mw.conf['debug_pre'] )
+ string = $mw.conf['debug_pre']+ string;
if( window.console ) {
window.console.log( string );
/*
* js file: /mv_embed.js
*/
- 'mwe-loading_txt' => 'loading ...',
- 'mwe-loading_title' => 'Loading...',
+ 'mwe-loading_txt' => 'Loading ...',
'mwe-size-gigabytes' => '$1 GB',
'mwe-size-megabytes' => '$1 MB',
'mwe-size-kilobytes' => '$1 K',
*/
ctrlBuilder.prototype = {
init:function( embedObj, opt ){
+ var _this = this;
this.embedObj = embedObj;
//check for skin overrides for ctrlBuilder
- if( _global[ embedObj.skin_name + 'Config'] )
- $j.extend(this, _global[ embedObj.skin_name + 'Config']);
-
+ if( _global[ embedObj.skin_name + 'Config'] ){
+ //clone as to not overide prototype:
+ var _this = $j.extend(true, {}, this, _global[ embedObj.skin_name + 'Config']);
+ return _this;
+ }
+ return this;
},
- pClass:'videoPlayer',
+ pClass : 'mv-player',
+ long_time_disp: true,
+ body_options : true,
height:29,
supports:{
'options':true,
'borders':true
},
+ menu_items:[
+ 'playerselect',
+ 'download',
+ 'share',
+ 'credits',
+ ],
getControls:function(){
//set up local pointer to the embedObj
var embedObj = this.embedObj;
//append options to body (if not already there)
- if($j('#mv_vid_options_' + this.id).length==0)
+ if( _this.body_options && $j('#mv_vid_options_' + this.id).length == 0 )
$j('body').append( this.components['mv_embedded_options'].o( this ) );
var o='';
//js_log('looking for: #mv_seeker_slider_'+embedObj.id + "\n " +
// 'start sec: '+embedObj.start_time_sec + ' base offset: '+embedObj.base_seeker_slider_offset);
-
+ var $tp=$j('#' + embedObj.id);
+
//add play hook:
- $j('#mv_play_pause_button_' + embedObj.id ).unbind().btnBind().click(function(){
+ $tp.find('.play-btn').unbind().btnBind().click(function(){
$j('#' + embedObj.id).get(0).play();
})
//do play-btn-large binding:
- $j('#' + embedObj.id + ' .play-btn-large' ).unbind().btnBind().click(function(){
+ $tp.find('.play-btn-large' ).unbind().btnBind().click(function(){
$j('#' + embedObj.id).get(0).play();
});
- //add recommend firefox if non-native playback:
+ //add recommend firefox if we have non-native playback:
if( embedObj.doNativeWarningCheck() ){
$j('#dc_'+ embedObj.id).hover(
function(){
});
//options binding:
- $j('#options_button_' + embedObj.id).unbind().btnBind().click(function(){
+ $tp.find('.options-btn').unbind().btnBind().click(function(){
$j('#' +embedObj.id).get(0).doOptionsHTML();
});
//fullscreen binding:
- $j('#fullscreen_'+embedObj.id).unbind().btnBind().click(function(){
+ $tp.find('.fullscreen-btn').unbind().btnBind().click(function(){
$j('#' +embedObj.id).get(0).fullscreen();
});
- js_log(" should add slider binding: " + $j('#mv_play_head_'+embedObj.id).length) ;
- $j('#mv_play_head_'+embedObj.id).slider({
+ js_log(" should add slider binding: " + $j('#'+embedObj.id + ' .play_head').length) ;
+ $tp.find('.play_head').slider({
range: "min",
value: 0,
min: 0,
var perc = ui.value/1000;
embedObj.jump_time = seconds2npt( parseFloat( parseFloat(embedObj.getDuration()) * perc ) + embedObj.start_time_sec);
//js_log('perc:' + perc + ' * ' + embedObj.getDuration() + ' jt:'+ this.jump_time);
- embedObj.setStatus( gM('mwe-seek_to')+' '+embedObj.jump_time );
+ embedObj.setStatus( gM('mwe-seek_to', embedObj.jump_time ) );
//update the thumbnail / frame
if(embedObj.isPlaying==false){
embedObj.updateThumbPerc( perc );
//set seek time (in case we have to do a url seek)
embedObj.seek_time_sec = npt2seconds( embedObj.jump_time, true );
js_log('do jump to: '+embedObj.jump_time + ' perc:' +perc + ' sts:' + embedObj.seek_time_sec);
+ embedObj.setStatus( gM('mwe-seeking') );
embedObj.doSeek(perc);
}
}
});
//up the z-index of the default status indicator:
- $j('#mv_play_head_'+embedObj.id + ' .ui-slider-handle').css('z-index', 4);
- $j('#mv_play_head_'+embedObj.id + ' .ui-slider-range').addClass('ui-corner-all').css('z-index', 2);
+ $tp.find('.play_head .ui-slider-handle').css('z-index', 4);
+ $tp.find('.play_head .ui-slider-range').addClass('ui-corner-all').css('z-index', 2);
//extended class list for jQuery ui themeing (we can probably refactor this with custom buffering highliter)
- $j('#mv_play_head_'+embedObj.id).append( this.getMvBufferHtml() );
-
- //videoOptions:
- $j('#mv_vid_options_' + this.id + ' .vo_selection').click(function(){
- embedObj.selectPlaybackMethod();
- $j('#mv_vid_options_' + embedObj.id).hide();
+ $tp.find('.play_head').append( this.getMvBufferHtml() );
+
+ $opt = $j('#mv_vid_options_'+embedObj.id);
+ //videoOptions ... @@todo should be merged with something more like kskin.js:
+ $opt.find('.vo_selection').click(function(){
+ embedObj.displayHTML();
+ embedObj.showPlayerselect( $tp.find('.videoOptionsComplete') );
+ $opt.hide();
return false;
});
- $j('#mv_vid_options_'+ctrlBuilder.id+' .vo_download').click(function(){
- embedObj.showVideoDownload();
- $j('#mv_vid_options_'+embedObj.id).hide();
+ $opt.find('.vo_download').click(function(){
+ embedObj.displayHTML();
+ embedObj.showDownload( $tp.find('.videoOptionsComplete') );
+ $opt.hide();
return false;
})
- $j('#mv_vid_options_'+ctrlBuilder.id+' .vo_showcode').click(function(){
+ $opt.find('.vo_showcode').click(function(){
embedObj.showEmbedCode();
- $j('#mv_vid_options_'+embedObj.id).hide();
+ $opt.hide();
return false;
});
//volume binding:
var hoverOverDelay=false;
- $j('#volume_control_'+embedObj.id).unbind().btnBind().click(function(){
+ $tp.find('.volume_control').unbind().btnBind().click(function(){
$j('#' +embedObj.id).get(0).toggleMute();
}).hover(
function(){
change:function(event, ui){
var perc = ui.value/100;
if (perc==0) {
- $j('#volume_control_'+embedObj.id + ' span').removeClass('ui-icon-volume-on').addClass('ui-icon-volume-off');
+ $j('#' + embedObj.id + ' .volume_control span').removeClass('ui-icon-volume-on').addClass('ui-icon-volume-off');
}else{
- $j('#volume_control_'+embedObj.id + ' span').removeClass('ui-icon-volume-off').addClass('ui-icon-volume-on');
+ $j('#' + embedObj.id + ' .volume_control span').removeClass('ui-icon-volume-off').addClass('ui-icon-volume-on');
}
//only run the onChange event if done by a user slide:
if(embedObj.userSlide){
}
}
});
-
+
+ //check if we have any custom skin hooks to run (only one per skin)
+ if( this.addSkinControlHooks && typeof( this.addSkinControlHooks) == 'function')
+ this.addSkinControlHooks();
},
getMvBufferHtml:function(){
return '<div class="ui-slider-range ui-slider-range-min ui-widget-header ' +
'o':function( ctrlObj ){
return '';
}
- },
+ },
'play-btn-large':{
'w' : 130,
'h' : 96,
.css({
'left' : ((ctrlObj.embedObj.playerPixelWidth() - this.w)/2),
'top' : ((ctrlObj.embedObj.playerPixelHeight() - this.h)/2)
- })
- //quick and dirty way to get at jquery html (might be a short cut I am missing?)
+ })
.wrap('<div/>').parent().html();
}
},
'fullscreen':{
'w':20,
'o':function( ctrlObj ){
- return '<div title="' + gM('mwe-player_fullscreen') + '" id="fullscreen_'+ctrlObj.id+'" class="ui-state-default ui-corner-all ui-icon_link rButton"><span class="ui-icon ui-icon-arrow-4-diag"></span></div>'
+ return '<div title="' + gM('mwe-player_fullscreen') + '" class="ui-state-default ui-corner-all ui-icon_link rButton fullscreen-btn">'+
+ '<span class="ui-icon ui-icon-arrow-4-diag"></span>'+
+ '</div>'
}
},
'options':{
'w':26,
'o':function( ctrlObj ){
- return '<div title="'+ gM('mwe-player_options') + '" id="options_button_'+ctrlObj.id+'" class="ui-state-default ui-corner-all ui-icon_link rButton"><span class="ui-icon ui-icon-wrench"></span></div>';
+ return '<div title="' + gM('mwe-player_options') + '" class="ui-state-default ui-corner-all ui-icon_link rButton options-btn">' +
+ '<span class="ui-icon ui-icon-wrench"></span>' +
+ '</div>';
}
},
'pause':{
'w':24,
- 'o':function( ctrlObj ){
- return '<div title="' + gM('mwe-play_clip') + '" id="mv_play_pause_button_' + ctrlObj.id + '" class="ui-state-default ui-corner-all ui-icon_link lButton"><span class="ui-icon ui-icon-play"/></div>';
+ 'o':function( ctrlObj ){
+ return '<div title="' + gM('mwe-play_clip') + '" class="ui-state-default ui-corner-all ui-icon_link lButton play-btn">'+
+ '<span class="ui-icon ui-icon-play"/>'+
+ '</div>';
}
},
'closed_captions':{
'w':23,
'o':function( ctrlObj ){
- return '<div title="' + gM('mwe-closed_captions') + '" id="timed_text_'+ctrlObj.id+'" class="ui-state-default ui-corner-all ui-icon_link rButton"><span class="ui-icon ui-icon-comment"></span></div>'
+ return '<div title="' + gM('mwe-closed_captions') + '" id="timed_text_'+ctrlObj.id+'" class="ui-state-default ui-corner-all ui-icon_link rButton">'+
+ '<span class="ui-icon ui-icon-comment"></span>'+
+ '</div>'
}
},
'volume_control':{
'w':23,
'o':function( ctrlObj ){
- return '<div title="' + gM('mwe-volume_control') + '" id="volume_control_'+ctrlObj.id+'" class="ui-state-default ui-corner-all ui-icon_link rButton">' +
+ return '<div title="' + gM('mwe-volume_control') + '" class="ui-state-default ui-corner-all ui-icon_link rButton volume_control">' +
'<span class="ui-icon ui-icon-volume-on"></span>' +
'<div style="position:absolute;display:none;" id="vol_container_'+ctrlObj.id+'" class="vol_container ui-corner-all">' +
'<div class="volume_bar" id="volume_bar_' + ctrlObj.id + '"></div>' +
'time_display':{
'w':90,
'o':function( ctrlObj ){
- return '<div id="mv_time_'+ctrlObj.id+'" class="ui-widget time">' + ctrlObj.embedObj.getTimeReq() + '</div>';
+ return '<div class="ui-widget time-disp">' + ctrlObj.embedObj.getTimeReq() + '</div>';
}
},
'play_head':{
'w':0, //special case (takes up remaining space)
'o':function( ctrlObj ){
- return '<div class="play_head" id="mv_play_head_' + ctrlObj.id + '" style="width: ' + ( ctrlObj.available_width - 30 ) + 'px;"></div>';
+ return '<div class="play_head" style="width: ' + ( ctrlObj.available_width - 30 ) + 'px;"></div>';
}
}
}
*/
var kskinConfig = {
- pClass: 'k-player'
+ pClass: 'k-player',
+ //display time progres
+ long_time_disp: false,
+ body_options: false,
+ components:{
+ 'play-btn-large' : {
+ 'h' : 55
+ },
+ 'options':{
+ 'w':50,
+ 'o':function(){
+ return '<div class="ui-state-default ui-corner-bl rButton k-options" title="'+ gM('mwe-player_options') + '" >' +
+ '<span>' + gM('mwe-menu_btn') + '</span>' +
+ '</div>'
+ }
+ },
+ 'mv_embedded_options':{
+ 'w':0,
+ 'o':function( ctrlObj ){
+ var embedObj = ctrlObj.embedObj;
+ var o= '' +
+ '<div class="k-menu ui-widget-content" ' +
+ 'style="width:' + embedObj.playerPixelWidth() + 'px; height:' + embedObj.playerPixelHeight() + 'px;">' +
+ '<ul class="k-menu-bar">';
+ //output menu item containers:
+ for(i=0; i < ctrlObj.menu_items.length; i++){
+ var mk = ctrlObj.menu_items[i];
+ o+= '<li class="k-' + mk + '-btn" rel="' + mk + '">' +
+ '<a href="#" title="' + gM( 'mwe-' + mk ) +'">' + gM( 'mwe-' + mk ) +'</a></li>';
+ }
+ o+='</ul>' +
+ //we have to substract the width of the k-menu-bar
+ '<div class="k-menu-screens" style="width:' + ( embedObj.playerPixelWidth() -75) +
+ 'px; height:' + (embedObj.playerPixelHeight() - ctrlBuilder.height) + 'px;">';
+
+ //output menu item containers:
+ for(i=0; i < ctrlObj.menu_items.length; i++){
+ o+= '<div class="menu-screen menu-' + ctrlObj.menu_items[i] + '"></div>';
+ }
+ '</div>' +
+ '</div>';
+ return o;
+ }
+ }
+ },
+ addSkinControlHooks: function(){
+ var embedObj = this.embedObj;
+ var _this = this;
+ var $tp=$j('#' + embedObj.id);
+
+ //adds options and bindings: (we do this onClick for faster vidoe tag startup times)
+ var addMvOptions = function(){
+ if($j('#' + embedObj.id + ' .k-menu').length != 0 )
+ return false;
+
+ $j('#' + embedObj.id + ' .' + _this.pClass).prepend( _this.components['mv_embedded_options'].o( $tp.get(0).ctrlBuilder ));
+
+ //by default its hidden:
+ $tp.find('.k-menu').hide();
+
+ //output menu-items:
+ for(i=0; i < _this.menu_items.length ; i++){
+ $tp.find('.k-' + _this.menu_items[i] + '-btn').click(function(){
+ var mk = $j(this).attr('rel');
+ $target = $j('#' + embedObj.id + ' .menu-'+mk).hide();
+ //gennerate the menu html not already done:
+ if( $target.children().length == 0 ){
+ //call the function show{Menuitem} with target:
+ embedObj['show' + mk.charAt(0).toUpperCase() + mk.substring(1)](
+ $j('#' + embedObj.id + ' .menu-'+mk)
+ );
+ }
+ //slide out the others
+ $j('#' + embedObj.id + ' .menu-screen').hide();
+ $target.fadeIn("fast");
+ //don't follow the # link
+ return false;
+ });
+ }
+ }
+ //options menu display:
+ $tp.find('.k-options').click(function(){
+ if($j('#' + embedObj.id + ' .k-menu').length == 0 ){
+ //stop the player if it does not support overlays:
+ if(!embedObj.supports['overlays'])
+ $tp.get(0).stop();
+ //add the options
+ addMvOptions();
+ }
+ //set up the text and menu:
+ var $ktxt = $j(this);
+ var $kmenu = $tp.find('.k-menu');
+ if( $kmenu.is(':visible') ){
+ $kmenu.fadeOut("fast",function(){
+ $ktxt.find('span').html ( gM('mwe-menu_btn') );
+ });
+ $tp.find('.play-btn-large').fadeIn('fast');
+ }else{
+ $kmenu.fadeIn("fast", function(){
+ $ktxt.find('span').html ( gM('mwe-close_btn') );
+ });
+ $tp.find('.play-btn-large').fadeOut('fast');
+ }
+ });
+
+ }
}
\ No newline at end of file
.k-player .ui-state-default .ui-icon-pause { background:url(images/ksprite.png) no-repeat 0 -17px;}
.k-player .ui-state-hover .ui-icon-pause { background-position: -16px -17px;}
+
+.k-player .control-bar {
+ border: 0px;
+ height:21px;
+ padding: 2px 0 0 6px;
+ margin-top:0px;
+ background: url(images/ksprite.png) repeat-x 0 -81px;
+ font: normal 11px arial,sans-serif;
+ color:#555;
+}
+
+.k-player .play_head {
+ background:url("images/ksprite.png") repeat-x scroll 0 -350px transparent;
+ display:inline;
+ float:left;
+ margin-left:10px;
+ border:1px solid #EEEEEE;
+ height:8px;
+ margin:6px 10px 0 7px;
+ position:relative;
+}
+
+.k-player .play_head .ui-slider-handle {
+ background:url("images/ksprite.png") no-repeat scroll -67px -341px transparent;
+ border:1px solid #888888;
+ display:block;
+ height:8px;
+ margin:-1px 0 0 -5px;
+ position:absolute;
+ top:0;
+ width:8px;
+ cursor:pointer;
+}
+
+.k-player .time-disp {
+border:medium none;
+display:inline;
+color:#555555;
+font:11px arial,sans-serif;
+line-height:20px;
+overflow:hidden;
+width:36px;
+}
+
+.k-player .lButton {
+ cursor:pointer;
+ float:left;
+ list-style:none outside none;
+ margin:2px;
+ padding:0px 0;
+ width: 24px;
+ height:16px;
+ position:relative;
+ background:none repeat scroll 0 0 transparent;
+ border:medium none;
+}
+.k-player .rButton {
+ cursor:pointer;
+ float:right;
+ list-style:none outside none;
+ margin:2px;
+ padding:0px 0;
+ width: 23px;
+ height:16px;
+ position:relative;
+ background:none repeat scroll 0 0 transparent;
+ border:medium none;
+}
+
+.k-player .k-options {
+ border:1px solid #AAAAAA !important;
+ color:#555555;
+ float:right;
+ height:22px;
+ margin-top:-2px;
+ margin-right: 0px;
+ width:50px;
+ float:right;
+ background:none repeat scroll 0 0 transparent;
+ font-family:Lucida Grande,Lucida Sans,Arial,sans-serif;
+ font-size:11px;
+ text-transform:uppercase;
+}
+.k-player .k-options span{
+ position:relative;
+ top:4px;
+ left:7px;
+}
+
+.k-player .k-menu-screens {
+ float:left;
+ font-size:11px;
+ padding:13px 10px 15px 15px;
+ width:320px;
+}
+
+.k-player ul.k-menu-bar {
+ background:url("images/ksprite.png") no-repeat scroll -99px -104px transparent;
+ bottom:5px;
+ height:128px;
+ list-style:none outside none;
+ padding:0 0 5px;
+ position:absolute;
+ right:0;
+}
+.k-player .k-menu {
+ background:none repeat scroll 0 0 #181818;
+ border:medium none;
+ display:none;
+ height:300px;
+ left:0;
+ opacity:0.9;
+ position:absolute;
+ top:0;
+ width:400px;
+ z-index:999;
+}
+.k-player .k-menu-bar li a {
+ background:url("images/ksprite.png") no-repeat scroll -51px -110px transparent;
+ display:block;
+ height:32px;
+ margin-left:1px;
+ overflow:hidden;
+ text-indent:99999px;
+ width:49px;
+}
+.k-menu-bar li a:hover { background-position: -1px -110px;}
+.k-menu-bar li.k-download-btn a { background-position: -51px -203px;}
+.k-menu-bar li.k-download-btn a:hover { background-position: -1px -203px;}
+
+.k-menu-bar li.k-share-btn a { background-position: -51px -172px;}
+.k-menu-bar li.k-share-btn a:hover { background-position: -1px -172px;}
+
+.k-menu-bar li.k-credits-btn a { background-position: -51px -141px;}
+.k-menu-bar li.k-credits-btn a:hover { background-position: -1px -141px;}
+
+.k-menu-screens { width:320px; padding: 13px 10px 15px 15px; float:left;} /* w & h inline via jq */
+.k-menu-screens h2 { padding: 0 0 5px 1px; clear:both; font-size:12px; color:#666;}
+.k-menu-screens p { margin: 6px 0;}
+.k-menu-screens a { ;}
+.k-menu-screens a img { border:none;}
+.k-menu-screens ul { padding:0; margin: 6px 0 0; list-style: none outside none;}
+
+.k-edit-screen { width:370px; height:223px; padding-top:77px; text-align:center; background:#181818; color:#fff;}
+.k-edit-screen div { }
+.k-edit-screen a { color:#7BB8FC;}
+.k-edit-screen a img { border:none;}
+
+.k-menu-screens { width:320px; padding: 13px 10px 15px 15px; float:left;} /* w & h inline via jq */
+.k-menu-screens h2 { padding: 0 0 5px 1px; clear:both; font-size:12px; color:#666;}
+.k-menu-screens p { margin: 6px 0;}
+.k-menu-screens a { ;}
+.k-menu-screens a img { border:none;}
+.k-menu-screens ul { padding:0; margin: 6px 0 0; list-style: none outside none;}
+
+.k-menu-screens li { height:14px; margin-bottom:6px;}
+.k-menu-screens li a { padding-left:22px; background:url(images/ksprite.png) no-repeat -85px -274px; text-decoration:none;}
+.k-menu-screens li a.active, .k-menu-screens li a:hover.active { background-position: -85px -247px;}
+.k-menu-screens li a:hover { background-position: -85px -260px;}
+.k-menu-screens a { color:#BBBBBB; }
*/
var mvpcfConfig = {
-
+ pClass : 'mv-player'
};
\ No newline at end of file
*/
/* large play button: */
-.play-btn-large { width:130px; height:96px; background: url(images/player_big_play_button.png) !important; position:absolute; cursor:pointer; border:none !important; }/*.ui-state-default */
+.mv-player .play-btn-large { width:130px; height:96px; background: url(images/player_big_play_button.png) !important; position:absolute; cursor:pointer; border:none !important; }/*.ui-state-default */
+.mv-player
+{
+ color: #474747;
+}
+.mv-player a:link {color: #2060c1; text-decoration: underline;}
+.mv-player a:visited {color: #2060c1; text-decoration: underline;}
+/*a:visited {color: #75a5e4; text-decoration: underline;}*/ /*Not sure if you want this*/
+.mv-player a:hover {color: #75a5e4; text-decoration: underline;}
+.mv-player img, .mv-player img a, .mv-player img a:hover {border: 0;}
+.mv-player h1, .mv-player h2, .mv-player h3, .mv-player h4, .mv-player h5, .mv-player h6 {color: #242424; margin: 5px 0; padding: 0;}
+.mv-player h1 {font-size: 24px;}
+.mv-player h2 {font-size: 18px;}
+.mv-player h3 {font-size: 16px;}
+.mv-player h4 {font-size: 14px;}
+.mv-player h5 {font-size: 13px; text-align: center;}
+.mv-player h6 {font-size: 13px; color: #6c6c6c; padding: 10px 20px 0px 20px; text-transform: uppercase;}
+
+
+/*Video player*/
+.mv-player {
+ color: white;
+}
+.mv-player .video {
+ display: block;
+ position: relative;
+ font-size: 1px;
+ height: 305px;
+}
+.mv-player .control-bar {
+ height: 29px;
+}
+.mv-player .controlInnerSmall {
+/* width: 430px;*/
+ height: 29px;
+ float: left;
+ display: inline;
+}
+
+.mv-player .lButton {
+ cursor:pointer;
+ float:left;
+ list-style:none outside none;
+ margin:2px;
+ padding:4px 0;
+ width: 24px;
+ height:16px;
+ position:relative;
+}
+.mv-player .rButton {
+ cursor:pointer;
+ float:right;
+ list-style:none outside none;
+ margin:2px;
+ padding:4px 0;
+ width: 23px;
+ height:16px;
+ position:relative;
+}
+
+.controls a{
+ display: block;
+ height: 100%;
+ width: 100%;
+}
+.mv-player .volume_icon {
+ float: right;
+ display: inline;
+ width: 22px;
+ height: 29px;
+ padding: 0 0 0 0;
+
+}
+.volume_on {
+ background: url(images/player_volume_tag.png) 0 8px no-repeat;
+}
+.volume_off{
+ background: url(images/player_volume_tag_off.png) 0 8px no-repeat;
+}
+
+.mv-player .volume_knob {
+ background: url(images/player_slider.png) 0 0 no-repeat;
+ width: 14px;
+ height: 14px;
+ position: absolute;
+ z-index: 2;
+ margin: -1px 0 0 3px;
+ cursor: pointer;
+}
+
+
+.mv-player .time-disp {
+ line-height: 32px;
+ height: 29px;
+ overflow: visible;
+ font-size: 10.2px;
+ width: 80px;
+ float: right;
+ display: inline;
+ border:none;
+}
+
+.mv-player .play_head{
+ float: left;
+ display: inline;
+ height: 10px;
+ margin-left:10px;
+ margin-top:10px;
+}
+
+.play_head .ui-slider-handle{
+ width:10px;
+ height:15px;
+ margin-left:-5px;
+ margin-top:1px;
+}
+
+.inOutSlider .ui-slider-handle{
+ width:8px;
+ cusror: move;
+}
\ No newline at end of file
-.videoPlayer
-{
- color: #474747;
-}
-
-.videoPlayer a:link {color: #2060c1; text-decoration: underline;}
-.videoPlayer a:visited {color: #2060c1; text-decoration: underline;}
-/*a:visited {color: #75a5e4; text-decoration: underline;}*/ /*Not sure if you want this*/
-.videoPlayer a:hover {color: #75a5e4; text-decoration: underline;}
-.videoPlayer img, .videoPlayer img a, .videoPlayer img a:hover {border: 0;}
-
-.videoPlayer h1, .videoPlayer h2, .videoPlayer h3, .videoPlayer h4, .videoPlayer h5, .videoPlayer h6 {color: #242424; margin: 5px 0; padding: 0;}
-.videoPlayer h1 {font-size: 24px;}
-.videoPlayer h2 {font-size: 18px;}
-.videoPlayer h3 {font-size: 16px;}
-.videoPlayer h4 {font-size: 14px;}
-.videoPlayer h5 {font-size: 13px; text-align: center;}
-.videoPlayer h6 {font-size: 13px; color: #6c6c6c; padding: 10px 20px 0px 20px; text-transform: uppercase;}
-
-
-/*Video player*/
-
-.videoPlayer {
-/* width: 100%;*/
- color: white;
-}
-.videoPlayerSmall {
-/* width: 439px;*/
- height: 334px;
-}
-.videoPlayer .video {
- display: block;
- position: relative;
- font-size: 1px;
- height: 305px;
-}
-.videoPlayer .controls {
- height: 29px;
- border-top-width: 0 !important;
- /*background: #454545;*/
- display:block;
- z-index=-1;
-}
-.videoPlayer .controlInnerSmall {
-/* width: 430px;*/
- height: 29px;
- float: left;
- display: inline;
-}
-/*
-.videoPlayer .controls span.border_left {background: url(images/player_bottom_left.png) 0 0 no-repeat; width: 4px; height: 29px; float: left; display: inline;}
-.videoPlayer .controls span.border_right {background: url(images/player_bottom_right.png) 0 0 no-repeat; width: 4px; height: 29px; float: right; display: inline;}
-*/
-
-
-.videoPlayer .lButton {
- cursor:pointer;
- float:left;
- list-style:none outside none;
- margin:2px;
- padding:4px 0;
- width: 24px;
- height:16px;
- position:relative;
-}
-.videoPlayer .rButton {
- cursor:pointer;
- float:right;
- list-style:none outside none;
- margin:2px;
- padding:4px 0;
- width: 23px;
- height:16px;
- position:relative;
-}
-
-.controls a{
- display: block;
- height: 100%;
- width: 100%;
-}
-.videoPlayer .volume_icon {
- float: right;
- display: inline;
- width: 22px;
- height: 29px;
- padding: 0 0 0 0;
-
-}
-.volume_on {
- background: url(images/player_volume_tag.png) 0 8px no-repeat;
-}
-.volume_off{
- background: url(images/player_volume_tag_off.png) 0 8px no-repeat;
-}
-
-.videoPlayer .volume_control {
- width: 42px;
- height: 12px;
- margin: 9px 4px 0 0;
- float: right;
- display: inline;
- background: url(images/player_volume_seek.png) 0 0 no-repeat;
-}
-.videoPlayer .volume_knob {
- background: url(images/player_slider.png) 0 0 no-repeat;
- width: 14px;
- height: 14px;
- position: absolute;
- z-index: 2;
- margin: -1px 0 0 3px;
- cursor: pointer;
-}
-
-.videoPlayer .time {
- line-height: 32px;
- height: 29px;
- overflow: visible;
- font-size: 10.2px;
- width: 80px;
- float: right;
- display: inline;
- border:none;
-}
-
-.videoPlayer .play_head{
- float: left;
- display: inline;
- height: 10px;
- margin-left:10px;
- margin-top:10px;
-}
-
-.play_head .ui-slider-handle{
- width:10px;
- height:15px;
- margin-left:-5px;
- margin-top:1px;
-}
-
-.inOutSlider .ui-slider-handle{
- width:8px;
- cusror: move;
-}
/*
.videoPlayer .seeker {