');
},
/* player control functions
************************************************/
_audioplayer_play : function() {
this._toggleButton('audioplayer_play');
this._player.play();
},
_audioplayer_pause : function() {
this._toggleButton('audioplayer_pause');
this._player.pause();
},
_audioplayer_mute : function() {
this._toggleButton('audioplayer_mute');
this._setVolumeLevelIndicator(0);
this._player.mute();
this._muted = true;
},
_audioplayer_unmute : function() {
this._toggleButton('audioplayer_unmute');
this._setVolumeLevelIndicator(this._currentVolumeLevel);
this._player.unmute(this._currentVolumeLevel);
this._muted = false;
},
_setVolume : function(level) {
if(this._muted && level > 0) {
this._audioplayer_unmute();
};
this._setVolumeLevelIndicator(level);
this._player.setVolume(Math.round(level*100/10));
this._currentVolumeLevel = level;
},
_getVolume : function() {
return Math.round(this._player.getVolume()*10/100);
},
/* html button manipulation
************************************************/
// play <--> pause
// mute <--> unmute
// button can be string or dom element
_toggleButton : function(button) {
if (typeof button == 'string') {
var yqButton = this._container.find('.audioplayer_button.' + button);
} else {
var yqButton = yq(button);
};
yqButton.hide().siblings().show();
},
_setVolumeLevelIndicator : function(level) {
if (level > 0) {
yqButton = this._container.find('.audioplayer_volume .audioplayer_level .audioplayer_level_button[level=' + level + ']');
yqButton.addClass('on');
yqButton.prevAll().addClass('on');
yqButton.nextAll().removeClass('on');
} else {
this._container.find('.audioplayer_volume .audioplayer_level .audioplayer_level_button').removeClass('on');
};
}
};
/* HTML PLAYER
* - controls the html5 audioElement
************************************************/
YnetAudioPlayer.HtmlPlayer = function(container) {
this._player = container.find('audio').get(0);
this._container=container;
this._init();
var self=this;
this._player.addEventListener("loadedmetadata", function(_event) {
var total = parseInt(self._player.duration, 10);
var totalmins = Math.floor(total/60,10);
var totalsecs = total - totalmins*60;
var timeleft = self._container.find('.audioplayer_timeleft');
timeleft.text(totalmins +':'+totalsecs +' / '+ totalmins +':'+totalsecs);
});
};
YnetAudioPlayer.HtmlPlayer.prototype = {
_init: function (){
var self = this;
this._player.volume=0.5;
var loaded=0;
var _slider_bar=this._container.find('.audioplayer_gutter');
var loadingIndicator = this._container.find('.audioplayer_loading');
var positionIndicator = this._container.find('.audioplayer_handle');
var playedIndicator = this._container.find('.audioplayer_played');
var loundnessIndicator = this._container.find('.audioplayer_loudness');
var timeleft = this._container.find('.audioplayer_timeleft');
var manualSeek=0;
yq(this._player).bind('timeupdate', function() {
var rem = parseInt(self._player.duration - self._player.currentTime, 10);
var total = parseInt(self._player.duration, 10);
var totalmins = Math.floor(total/60,10);
var totalsecs = total - totalmins*60;
var pos = (self._player.currentTime / self._player.duration) * 100;
var mins = Math.floor(rem/60,10);
var secs = rem - mins*60;
timeleft.text(totalmins +':'+totalsecs +' / '+ mins + ':' + (secs > 9 ? secs : '0' + secs));
if (!manualSeek) {
positionIndicator.css({left: pos + '%'});
playedIndicator.css({width: pos + '%'});
}
if (!self._sliderLoaded) {
_slider_bar.slider({
value: 0,
step: 0.01,
orientation: "horizontal",
range: "min",
max: self._player.duration,
animate: true,
slide: function() {
manualSeek = true;
},
stop:function(e,ui) {
manualSeek = false;
self._player.currentTime = ui.value;
}
});
self._sliderLoaded = true;
}
if (self._player.ended) {
ga('audioTracker.send', {
'hitType': 'event',
'eventCategory': dcPath,
'eventAction': 'Finish',
'eventLabel': yq(this._player).find('source').attr('src'),
'eventValue': self._player.duration - self._player.currentTime
});
self._container.find('.audioplayer_button.audioplayer_pause').hide().siblings().show();
pos=0;
positionIndicator.css({left: pos + '%'});
playedIndicator.css({width: pos + '%'});
}
});
if (!window.YnetAudioPlayerHtmlLoaded) {
var path=location.href;
var startId=path.indexOf('L-');
var pathId=path.substr(startId+2,path.length-1);
var endId=pathId.indexOf(',');
var showId=pathId.substr(0,endId);
var UgooglePrefix='';
if (path.indexOf('/home')>-1) {
UgooglePrefix = "h";
} else if (path.indexOf('/article')>-1) {
UgooglePrefix = "a";
} else {
UgooglePrefix = "o";
}
if (navigator.userAgent.match(/(iPod|iPhone|iPad|Android|BlackBerry|IEMobile)/)) {
ga('create', 'UA-17826742-22', 'realcommerce.co.il', {'name': 'audioTracker'});
ga('audioTracker.send', {'hitType': 'pageview','page': path+'?prof='+showId+'.ECentral','title': UgooglePrefix+showId+' - '+document.title});
}
}
},
play : function() {
this._player.play();
ga('audioTracker.send', {
'hitType': 'event',
'eventCategory': dcPath,
'eventAction': 'Play',
'eventLabel': yq(this._player).find('source').attr('src'),
'eventValue': this._player.duration - this._player.currentTime
});
},
pause : function() {
this._player.pause();
ga('audioTracker.send', {
'hitType': 'event',
'eventCategory': dcPath,
'eventAction': 'Pause',
'eventLabel': yq(this._player).find('source').attr('src'),
'eventValue': this._player.duration - this._player.currentTime
});
},
mute : function() {
this._player.volume=0;
},
unmute : function(level) {
this.setVolume(level*10);
},
setVolume : function(level) {
this._player.volume=level/100;
},
getVolume : function() {
return this._player.volume * 100;
},
getStatus : function() {
return {
muted: false
};
},
_onTimeUpdate : function() {
}
};
YnetAudioPlayer.utils = {
_getFlashVersion : function() {
var replaceRegexp = new RegExp(String.fromCharCode(92)+'D+','g');
var matchRegexp = new RegExp('^,?(.+),?' + String.fromCharCode(36));
try {
try {
var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
try { axo.AllowScriptAccess = 'always'; }
catch(e) { return '6,0,0'; }
} catch(e) {}
return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(replaceRegexp, ',').match(matchRegexp)[1];
} catch(e) {
try {
if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(replaceRegexp, ',').match(matchRegexp)[1];
}
} catch(e) {}
}
return '0,0,0';
},
hasFlash : function() {
var version = this._getFlashVersion().split(',').shift();
var hasFlash=version=='0'?false:true;
return hasFlash;
}
};