Files
dss.web/client/assets/zoom/audioplayer.js
Fergal Moran d2c529bafe Screw you git!
2015-12-01 19:50:20 +00:00

4699 lines
171 KiB
JavaScript
Executable File

/*
* Author: Audio Player with Playlist
* Website: http://digitalzoomstudio.net/
* Portfolio: http://bit.ly/nM4R6u
* Version: 2.54
* */
function htmlEncode(arg){
return jQuery('<div/>').text(arg).html();
}
function htmlDecode(value){
return jQuery('<div/>').html(arg).text();
}
var dzsap_list = [];
var dzsap_ytapiloaded = false;
var dzsap_globalidind = 20;
(function($) {
$.fn.prependOnce = function(arg, argfind) {
var _t = $(this) // It's your element
// console.info(argfind);
if(typeof(argfind) =='undefined'){
var regex = new RegExp('class="(.*?)"');
var auxarr = regex.exec(arg);
if(typeof auxarr[1] !='undefined'){
argfind = '.'+auxarr[1];
}
}
// we compromise chaining for returning the success
if(_t.children(argfind).length<1){
_t.prepend(arg);
return true;
}else{
return false;
}
};
$.fn.appendOnce = function(arg, argfind) {
var _t = $(this) // It's your element
if(typeof(argfind) =='undefined'){
var regex = new RegExp('class="(.*?)"');
var auxarr = regex.exec(arg);
if(typeof auxarr[1] !='undefined'){
argfind = '.'+auxarr[1];
}
}
// we compromise chaining for returning the success
if(_t.children(argfind).length<1){
_t.append(arg);
return true;
}else{
return false;
}
};
$.fn.audioplayer = function(o) {
var defaults = {
design_skin: 'skin-default'
,autoplay: 'off'
,cue: 'on'
,swf_location: "ap.swf"//==the location of the flash backup
,swffull_location: "apfull.swf"//==the location of the flash backup
,settings_backup_type: 'light' // == light or full
,settings_extrahtml: '' // == some extra html - can be rates, plays, likes
,settings_trigger_resize : '0'
,design_thumbh: "default"//thumbnail size
,design_thumbw: "200"
,disable_volume: 'default'
,disable_scrub: 'default'
,disable_player_navigation: 'off'
,disable_timer: 'default'
,type: 'audio'
,embed_code: ''
,skinwave_dynamicwaves: 'off' // ===dynamic scale based on volume for no spectrum wave
,soundcloud_apikey: ''
,parentgallery: undefined
,skinwave_enableSpectrum: 'off' // off or on
,skinwave_enableReflect: 'on'
,settings_useflashplayer: 'auto' // off or on or auto
,skinwave_spectrummultiplier: '1' // == number
,skinwave_comments_enable: 'off'
,settings_php_handler: 'publisher.php'
,php_retriever: 'soundcloudretriever.php'
,skinwave_mode: 'normal' // --- "normal" or "small"
,skinwave_comments_playerid: ''
,skinwave_comments_account: 'none'
,skinwave_comments_retrievefromajax: 'off'// --- retrieve the comment form ajax
,skinwave_comments_displayontime: 'on'// --- display the comment when the scrub header is over it
,skinwave_timer_static: 'off'
,skinwave_comments_avatar: 'http://www.gravatar.com/avatar/00000000000000000000000000000000?s=20'//==default image
,skinwave_spectrum_wavesbg: '4f4949' // == number
,skinwave_spectrum_wavesprog: 'ae1919' // == number
,design_menu_show_player_state_button: 'off'
,playfrom: 'off' //off or specific number of settings or set to "last"
,design_animateplaypause: 'default'
,embedded: 'off'
,sample_time_start: '0' // --- if this is a sample to a complete song, you can write here start times, if not, leave to 0.
,sample_time_end: '0'
,sample_time_total: '0'
,google_analytics_send_play_event: 'off'
}
o = $.extend(defaults, o);
if(typeof o =='undefined'){
if(typeof $(this).attr('data-options')!='undefined' && $(this).attr('data-options')!=''){
var aux = $(this).attr('data-options');
aux = 'var aux_opts = ' + aux;
eval(aux);
o = aux_opts;
}
}
this.each(function() {
var cthis = $(this);
var cchildren = cthis.children()
,cthisId = 'ap1'
;
var currNr = -1;
var busy = true;
var i = 0;
var ww
, wh
, tw
, th
,cw //controls width
,ch //controls height
,sw = 0//scrubbar width
,sh
,spos = 0 //== scrubbar prog pos
;
var _audioplayerInner
,_apControls = null
,_apControlsLeft = null
,_apControlsRight = null
,_conControls
,_conPlayPause
,_controlsVolume
,_scrubbar
,_theMedia
,_cmedia
,_theThumbCon
,_metaArtistCon
,_scrubBgReflect = null
,_scrubBgReflectCanvas = null
,_scrubBgReflectCtx = null
,_scrubProgReflect = null
,_scrubProgCanvasReflect = null
,_scrubProgCanvasReflectCtx = null
,_scrubBgCanvas = null
,_scrubBgCanvasCtx = null
,_scrubProgCanvas = null
,_scrubProgCanvasCtx = null
,_commentsHolder = null
,_commentsWriter = null
,_currTime = null
,_totalTime = null
;
var busy = false
,playing = false
,muted = false
,loaded=false
,destroyed = false
,google_analytics_sent_play_event = false
;
var time_total = 0
,time_curr=0
,real_time_curr=0
,real_time_total = 0
,sample_time_start=0
,sample_time_end=0
,sample_time_total=0
,sample_perc_start=0
,sample_perc_end=0
;
var index_extrahtml_toloads = 0;
var last_vol = 1
,last_vol_before_mute = 1
,the_player_id = ''
;
var inter_check
,inter_checkReady
,inter_audiobuffer_workaround_id = 0
,inter_trigger_resize
;
var skin_minimal_canvasplay
,skin_minimal_canvaspause
;
var is_flashplayer = false
;
var data_source
;
var res_thumbh = false; // resize thumb height
var str_ie8 = '';
//===spectrum stuff
var javascriptNode = null;
var audioCtx = null;
var audioBuffer = null;
var sourceNode = null;
var analyser = null;
var lastarray = null;
var webaudiosource = null;
var canw = 100;
var canh = 100;
var barh = 100
,design_thumbh
;
var type = '';
var sposarg = 0; // the % at which the comment will be placed
var arr_the_comments = [];
var lasttime_inseconds = 0;
var controls_left_pos = 0;
var controls_right_pos = 0;
var ajax_view_submitted = 'auto'
,increment_views = 0
;
var starrating_index = 0
,starrating_nrrates = 0
,starrating_alreadyrated = -1
;
var playfrom = 'off'
,playfrom_ready = false
;
var currIp = '127.0.0.1';
if(isNaN(parseInt(o.design_thumbh, 10))==false){
o.design_thumbh = parseInt(o.design_thumbh, 10);
}
if(String(o.design_thumbw).indexOf('%')==-1){
o.design_thumbw = parseInt(o.design_thumbw, 10);
}
if(Number(o.sample_time_start)>0){
sample_time_start = Number(o.sample_time_start);
if(Number(o.sample_time_end)>0){
sample_time_end = Number(o.sample_time_end);
if(Number(o.sample_time_total)>0){
sample_time_total = Number(o.sample_time_total);
sample_perc_start = sample_time_start/ sample_time_total;
sample_perc_end = sample_time_end/ sample_time_total;
}
}
}
//console.info(sample_perc_start,sample_perc_end);
o.settings_trigger_resize = parseInt(o.settings_trigger_resize, 10);
if(cthis.children('.extra-html').length>0 && o.settings_extrahtml==''){
o.settings_extrahtml = cthis.children('.extra-html').eq(0).html();
var re_ratesubmitted = /{{ratesubmitted=(.?)}}/g;
if(re_ratesubmitted.test(String(o.settings_extrahtml))){
re_ratesubmitted.lastIndex = 0;
var auxa = (re_ratesubmitted.exec(String(o.settings_extrahtml)));
starrating_alreadyrated = auxa[1];
o.settings_extrahtml = String(o.settings_extrahtml).replace(re_ratesubmitted, '');
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_player_rateSubmitted!=undefined){
$(o.parentgallery).get(0).api_player_rateSubmitted();
}
}
cthis.children('.extra-html').remove();
}
init();
function init(){
//console.log(typeof(o.parentgallery)=='undefined');
if(o.design_skin==''){
o.design_skin = 'skin-default';
}
if(cthis.attr('class').indexOf("skin-")==-1){
cthis.addClass(o.design_skin);
}
if(cthis.hasClass('skin-default')){
o.design_skin = 'skin-default';
}
if(cthis.hasClass('skin-wave')){
o.design_skin = 'skin-wave';
}
if(cthis.hasClass('skin-justthumbandbutton')){
o.design_skin = 'skin-justthumbandbutton';
}
if(cthis.hasClass('skin-pro')){
o.design_skin = 'skin-pro';
}
if(cthis.hasClass('skin-aria')){
o.design_skin = 'skin-aria';
}
if(cthis.attr('data-viewsubmitted')=='on'){
ajax_view_submitted='on';
}
if(cthis.attr('data-userstarrating')){
starrating_alreadyrated=Number(cthis.attr('data-userstarrating'));
}
// console.info(starrating_alreadyrated);
if(cthis.hasClass('skin-minimal')){
o.design_skin = 'skin-minimal';
if(o.disable_volume=='default'){
o.disable_volume='on';
}
if(o.disable_scrub=='default'){
o.disable_scrub='on';
}
o.disable_timer='on';
}
if(cthis.hasClass('skin-minion')){
o.design_skin = 'skin-minion';
if(o.disable_volume=='default'){
o.disable_volume='on';
}
if(o.disable_scrub=='default'){
o.disable_scrub='on';
}
o.disable_timer='on';
}
if(o.design_skin=='skin-default'){
if(o.design_thumbh=='default'){
design_thumbh = cthis.height() - 40;
res_thumbh = true;
}
}
if(o.design_skin=='skin-wave'){
cthis.addClass('skin-wave-mode-'+ o.skinwave_mode);
if(o.skinwave_mode == 'small'){
if(o.design_thumbh=='default'){
design_thumbh= 80;
}
}
}
if(o.design_skin=='skin-justthumbandbutton'){
if(o.design_thumbh=='default'){
o.design_thumbh = '';
// res_thumbh = true;
}
o.disable_timer='on';
o.disable_volume='on';
if(o.design_animateplaypause=='default'){
o.design_animateplaypause = 'on';
}
}
if(o.design_thumbh=='default'){
design_thumbh= 200;
}
if(o.embed_code==''){
if(cthis.find('div.feed-embed-code').length>0){
o.embed_code = cthis.find('div.feed-embed-code').eq(0).html();
}
}
if(o.design_animateplaypause=='default'){
o.design_animateplaypause = 'off';
}
// console.info(the_player_id, o.skinwave_comments_enable, o.skinwave_comments_playerid);
if(o.skinwave_comments_playerid==''){
if(typeof(cthis.attr('id'))!='undefined'){
the_player_id = cthis.attr('id');
}
}else{
the_player_id = o.skinwave_comments_playerid;
}
if(the_player_id==''){
o.skinwave_comments_enable='off';
}
playfrom = o.playfrom;
if(isValid(cthis.attr('data-playfrom'))){
playfrom = cthis.attr('data-playfrom');
}
if(isNaN(parseInt(playfrom,10))==false){
playfrom = parseInt(playfrom,10);
}
// console.info(the_player_id, o.skinwave_comments_enable);
if(cthis.attr('data-type')=='youtube'){
o.type='youtube';
type='youtube';
}
if(cthis.attr('data-type')=='soundcloud'){
o.type='soundcloud';
type = 'soundcloud';
}
if(cthis.attr('data-type')=='shoutcast'){
o.type='shoutcast';
type = 'audio';
o.disable_timer='on';
//===might still use it for skin-wave
if(o.design_skin=='skin-default'){
o.disable_scrub='on';
}
// o.disable_scrub = 'on';
}
if(type==''){
type='audio';
}
//====we disable the function if audioplayer inited
if(cthis.hasClass('audioplayer')){
return;
}
if(cthis.attr('id')!=undefined){
cthisId = cthis.attr('id');
}else{
cthisId = 'ap' + dzsap_globalidind++;
}
if(is_ie8()){
if(o.cue=='off'){
o.cue='on';
}
}
cthis.removeClass('audioplayer-tobe');
cthis.addClass('audioplayer');
if(cthis.find('.the-comments').length>0 && cthis.find('.the-comments').eq(0).children().length>0){
arr_the_comments = cthis.find('.the-comments').eq(0).children();
}else{
if(o.skinwave_comments_retrievefromajax=='on'){
var data = {
action: 'dzsap_get_comments',
postdata: '1',
playerid: the_player_id
};
// console.info(data);
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Ajax - get - comments - ' + response); }
cthis.prependOnce('<div class="the-comments"></div>', '.the-comments');
if(response.indexOf('a-comment')>-1){
response = response.replace(/a-comment/g, 'a-comment dzstooltip-con');
response = response.replace(/dzstooltip arrow-bottom/g, 'dzstooltip arrow-from-start transition-slidein arrow-bottom');
}
cthis.find('.the-comments').eq(0).html(response);
arr_the_comments = cthis.find('.the-comments').eq(0).children();
setup_controls_commentsHolder();
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
}
});
}
}
//===ios does not support volume controls so just let it die
//====== .. or autoplay FORCE STAFF
if(is_ios()){
o.disable_volume='on';
o.autoplay = 'off';
}
if(is_android()){
o.autoplay = 'off';
}
if(type=='youtube'){
if(dzsap_ytapiloaded==false){
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
dzsap_ytapiloaded = true;
}
}
data_source = cthis.attr('data-source');
//====sound cloud INTEGRATION //
if(cthis.attr('data-source')!=undefined && String(cthis.attr('data-source')).indexOf('https://soundcloud.com/')>-1){
type='soundcloud';
}
//console.info(o.type);
if(type=='soundcloud'){
if(o.soundcloud_apikey==''){
alert('soundcloud api key not defined, read docs!');
}
var aux = 'http://api.' + 'soundcloud.com' + '/resolve?url='+data_source+'&format=json&consumer_key=' + o.soundcloud_apikey;
//console.info(aux);
if( (o.design_skin=='skin-wave' && !cthis.attr('data-scrubbg')) || is_ie8()){
o.skinwave_enableReflect='off';
}
aux = encodeURIComponent(aux);
$.getJSON((o.php_retriever+'?scurl='+aux), function(data) {
//console.log(data, data.waveform_url);
type='audio';
if(o.design_skin=='skin-wave' && cthis.attr('data-scrubbg')==undefined){
cthis.attr('data-scrubbg', data.waveform_url);
cthis.attr('data-scrubprog', data.waveform_url);
_scrubbar.find('.scrub-bg').eq(0).append('<div class="scrub-bg-div"></div>');
_scrubbar.find('.scrub-bg').eq(0).append('<img src="'+cthis.attr('data-scrubbg')+'" class="scrub-bg-img"/>');
_scrubbar.children('.scrub-prog').eq(0).append('<div class="scrub-prog-div"></div>');
_scrubbar.find('.scrub-bg').css({
//'height' : '100%'
'top' : 0
})
}
// if(window.console) { console.info(data); };
cthis.attr('data-source', data.stream_url + '?consumer_key='+ o.soundcloud_apikey+'&origin=localhost');
if(o.cue=='on'){
setup_media();
}
});
// type='audio';
}
//====END soundcloud INTEGRATION//
if((can_play_mp3()==false && cthis.attr('data-sourceogg')==undefined) || is_ie8() || o.settings_useflashplayer=='on'){
is_flashplayer=true;
}
setup_structure();
//console.info(cthis, is_ios(), o.type);
//trying to access the youtube api with ios did not work
//console.log(is_flashplayer)
// console.info(o.design_skin, type, o.skinwave_comments_enable, o.design_skin=='skin-wave' && (type=='audio'||type=='soundcloud') && o.skinwave_comments_enable=='on');
if(o.design_skin=='skin-wave' && (type=='audio'||type=='soundcloud') && o.skinwave_comments_enable=='on'){
cthis.appendOnce('<div class="comments-holder"><div class="the-bg"></div></div><div class="clear"></div><div class="comments-writer"><div class="comments-writer-inner"><div class="setting"><div class="setting-label"></div><input placeholder="Your email.." name="comment-email" type="text" class="comment-input"/><input name="comment-text" placeholder="Your comment.." type="text" class="comment-input"/><button class="submit-ap-comment dzs-button float-right">Submit</button><button class="cancel-ap-comment dzs-button float-right">Cancel</button><div class="clear"></div></div></div></div>');
_commentsHolder = cthis.find('.comments-holder').eq(0);
_commentsWriter = cthis.find('.comments-writer').eq(0);
setup_controls_commentsHolder();
_commentsHolder.find('.the-bg').bind('click', click_comments_bg);
_commentsWriter.find('.cancel-ap-comment').bind('click', click_cancel_comment);
_commentsWriter.find('.submit-ap-comment').bind('click', click_submit_comment);
}
if(o.settings_extrahtml!=''){
if(cthis.hasClass('alternate-layout')){
_apControls.append('<div class="extra-html">'+o.settings_extrahtml+'</div>');
}else{
cthis.append('<div class="extra-html">'+o.settings_extrahtml+'</div>');
}
}
if(type=='youtube'){
dzsap_list.push(cthis);
_theMedia.append('<div id="ytplayer_'+cthisId+'"></div>');
cthis.get(0).fn_yt_ready = check_yt_ready;
}
//console.info();
if(type=='audio'){
// img = document.createElement('img');
// img.onerror = function(){
// return;
// if(cthis.children('.meta-artist').length>0){
// _audioplayerInner.children('.meta-artist').html('audio not found...');
// }else{
// _audioplayerInner.append('<div class="meta-artist">audio not found...</div>');
// _audioplayerInner.children('.meta-artist').eq(0).wrap('<div class="meta-artist-con"></div>');
// }
// };
// img.src= cthis.attr('data-source');
}
if(o.autoplay=='on' && o.cue=='on'){
increment_views=1;
}
if(type=='youtube' && is_ios()){
if(cthis.height()<200){
cthis.height(200);
}
aux = '<iframe width="100%" height="100%" src="//www.youtube.com/embed/'+data_source+'" frameborder="0" allowfullscreen></iframe>';
cthis.html(aux);
return;
}else{
//soundcloud will setupmedia when api done
if(o.cue=='on' && type!='soundcloud'){
setup_media();
}else{
cthis.bind('click', click_cthis);
handleResize();
}
}
cthis.get(0).api_destroy = destroy_it;
cthis.get(0).api_play = play_media;
cthis.get(0).api_set_playback_speed = set_playback_speed;
cthis.get(0).api_change_media = change_media;
//console.log(cthis.get(0));
cthis.find('.prev-btn').eq(0).bind('click',click_prev_btn);
cthis.find('.next-btn').eq(0).bind('click',click_next_btn);
cthis.find('.btn-menu-state').eq(0).bind('click',click_menu_state);
}
function select_all(el) {
if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
var range = document.createRange();
range.selectNodeContents(el);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.select();
}
}
function change_media(arg){
//console.info(arg);
destroy_media();
var _arg = arg;
cthis.attr('data-source', arg.attr('data-source'));
loaded=false;
if(o.design_skin=='skin-wave' && o.skinwave_mode=='small'){
cthis.addClass('transitioning-change-media');
if(_arg.find('.meta-artist').length>0){
var aux_l = _metaArtistCon.offset().left - cthis.offset().left-13;
//console.log(aux_l);
_metaArtistCon.css({
'position' : 'absolute'
,'top': '16px'
,'left' : aux_l+'px'
});
_metaArtistCon.animate({
'top': '-50px'
,'opacity': '0'
}, {
duration: 300
})
_apControlsLeft.append('<div class="meta-artist-con" style="top:55px;"><div class="meta-artist">'+_arg.find('.meta-artist').eq(0).html()+'</div></div>');
cthis.find('.meta-artist-con').eq(1).animate({
'top': '16px'
}, {
duration: 300
})
if(cthis.find('.the-thumb-con').length>0){
var aux_mec = ';';
cthis.find('.the-thumb-con').css({
'position' : 'absolute'
,'top': '0px'
,'left' : 0+'px'
});
console.log(_theThumbCon);
cthis.find('.the-thumb-con').animate({
'top': '-80px'
}, {
duration: 500
})
var aux_thumb_con_str = '';
var str_thumbh = 'width: 80px;';
if(_arg.attr('data-thumb_link')){
aux_thumb_con_str += '<a href="'+_arg.attr('data-thumb_link')+'"';
}else{
aux_thumb_con_str += '<div';
}
aux_thumb_con_str+=' class="the-thumb-con" style="top: 80px;"><div class="the-thumb" style="'+str_thumbh+' background-image:url('+_arg.attr('data-thumb')+')"></div>';
if(_arg.attr('data-thumb_link')){
aux_thumb_con_str += '</a>';
}else{
aux_thumb_con_str += '</div>';
}
_apControlsLeft.prepend(aux_thumb_con_str);
cthis.find('.the-thumb-con').eq(0).animate({
'top': '0'
}, {
duration: 700
})
}
}
setTimeout(function(){
if(cthis.find('.meta-artist-con').length>1){
cthis.find('.meta-artist-con').eq(0).remove();
_metaArtistCon = cthis.find('.meta-artist-con').eq(0);
}
if(cthis.find('.the-thumb-con').length>1){
cthis.find('.the-thumb-con').eq(1).remove();
_theThumbCon = cthis.find('.the-thumb-con').eq(0);
}
}, 900);
}
setup_media();
play_media();
}
function setup_controls_commentsHolder(){
for(i=0;i<arr_the_comments.length;i++){
if(_commentsHolder && arr_the_comments[i]!=null){
_commentsHolder.append(arr_the_comments[i]);
}
}
}
function destroy_it(){
if(destroyed) { return false; }
if(playing){
pause_media();
}
cthis.remove();
cthis = null;
destroyed = true;
}
function click_cthis(){
//console.info(cthis);
cthis.unbind('click', click_cthis);
setup_media();
}
function blur_ap(){
//console.log('ceva');
hide_comments_writer();
}
function click_menu_state(e){
if(typeof(o.parentgallery.get(0))!="undefined"){
o.parentgallery.get(0).api_toggle_menu_state();
}
}
function click_comments_bg(e){
var _t = $(this);
var lmx = parseInt(e.clientX, 10) - _t.offset().left;
sposarg = (lmx / _t.width()) * 100 + '%';
var argcomm = htmlEncode('');
if(_commentsWriter.hasClass('active')==false){
_commentsWriter.css({
'height' : _commentsWriter.find('.comments-writer-inner').eq(0).outerHeight()
})
_commentsWriter.addClass('active');
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_handleResize!=undefined){
$(o.parentgallery).get(0).api_handleResize();
}
}
if(o.skinwave_comments_account!='none'){
cthis.find('input[name=comment-email]').remove();
}
_commentsHolder.find('.a-comment.placeholder').remove();
_commentsHolder.append('<span class="dzstooltip-con placeholder" style="left:'+sposarg+';"><div class="the-avatar" style="background-image: url('+o.skinwave_comments_avatar+')"></div></span>');
//cthis.unbind('focusout', blur_ap);
//cthis.bind('blur', blur_ap);
}
function click_cancel_comment(e){
hide_comments_writer();
}
function click_submit_comment(e){
var comm_author = '';
if(cthis.find('input[name=comment-email]').length>0){
var regex_mail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(regex_mail.test(cthis.find('input[name=comment-email]').eq(0).val())==false){
alert('please insert email, your email is just used for gravatar. it will not be sent or stored anywhere');
return false;
}
comm_author = String(cthis.find('input[name=comment-email]').eq(0).val()).split('@')[0];
o.skinwave_comments_account = comm_author;
//console.info(comm_author);
o.skinwave_comments_avatar = 'https://secure.gravatar.com/avatar/'+MD5(String(cthis.find('input[name=comment-email]').eq(0).val()).toLowerCase())+'?s=20';
}else{
}
comm_author = o.skinwave_comments_account;
var aux = '<span class="dzstooltip-con" style="left:'+sposarg+'"><span class="dzstooltip arrow-from-start transition-slidein arrow-bottom skin-black" style="width: 250px;"><span class="the-comment-author">@'+comm_author+'</span> says:<br>';
aux+=htmlEncode(cthis.find('input[name=comment-text]').eq(0).val());
aux+='</span><div class="the-avatar" style="background-image: url('+o.skinwave_comments_avatar+')"></div></span>';
cthis.find('input[name=comment-text]').eq(0).val('');
skinwave_comment_publish(aux)
hide_comments_writer();
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_player_commentSubmitted!=undefined){
$(o.parentgallery).get(0).api_player_commentSubmitted();
}
return false;
}
function hide_comments_writer(){
//console.log(_commentsWriter);
_commentsHolder.find('.a-comment.placeholder').remove();
_commentsWriter.removeClass('active');
_commentsWriter.css({
'height' : 0
})
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_handleResize!=undefined){
$(o.parentgallery).get(0).api_handleResize();
}
//cthis.unbind('focusout', blur_ap);
}
function check_yt_ready(){
if(loaded==true){
return;
}
//console.log('ceva');
//var player;
_cmedia = new YT.Player('ytplayer_'+cthisId+'', {
height: '200',
width: '200',
videoId: cthis.attr('data-source'),
playerVars: { origin: ''},
events: {
'onReady': check_yt_ready_phase_two,
'onStateChange': change_yt_state
}
});
//init_loaded();
}
function check_yt_ready_phase_two(arg){
//console.log(arg);
init_loaded();
}
function change_yt_state(arg){
//console.log(arg);
}
function check_ready(){
//console.log(_cmedia);
//=== do a little ready checking
//console.log(_cmedia.readyState);
if(type=='youtube'){
}else{
if(typeof(_cmedia)!='undefined'){//|| o.type=='soundcloud'
// console.info(_cmedia.readyState, o.type);
// return false;
if(_cmedia.nodeName!="AUDIO" || o.type=='shoutcast' ){
init_loaded();
}else{
//console.info(_cmedia.readyState);
if(_cmedia.readyState>=2){
init_loaded();
}
}
}
}
}
function setup_structure(){
//alert('ceva');
cthis.append('<div class="audioplayer-inner"></div>');
_audioplayerInner = cthis.children('.audioplayer-inner');
_audioplayerInner.append('<div class="the-media"></div>');
_audioplayerInner.append('<div class="ap-controls"></div>');
_theMedia = _audioplayerInner.children('.the-media').eq(0);
_apControls = _audioplayerInner.children('.ap-controls').eq(0);
var aux_str_scrubbar = '<div class="scrubbar">';
var aux_str_con_controls = '';
var aux_str_con_controls_part2 = '';
aux_str_scrubbar+='<div class="scrub-bg"></div><div class="scrub-buffer"></div><div class="scrub-prog"></div><div class="scrubBox"></div><div class="scrubBox-prog"></div><div class="scrubBox-hover"></div>';
if(o.design_skin == 'skin-wave' && o.skinwave_enableReflect=='on'){
aux_str_scrubbar+='<div class="scrub-bg-reflect"></div>';
aux_str_scrubbar+='<div class="scrub-prog-reflect"></div>';
}
if(o.design_skin=='skin-wave' && o.disable_timer!='on'){
aux_str_scrubbar+='<div class="total-time">00:00</div><div class="curr-time">00:00</div>';
}
if(sample_perc_start){
aux_str_scrubbar+='<div class="sample-block-start" style="width: '+(sample_perc_start*100)+'%"></div>'
}
if(sample_perc_end){
aux_str_scrubbar+='<div class="sample-block-end" style="left: '+(sample_perc_end*100)+'%; width: '+(100 - (sample_perc_end*100) )+'%"></div>'
}
aux_str_scrubbar+='</div>';//==end scrubbar
aux_str_con_controls+='<div class="con-controls"><div class="the-bg"></div><div class="con-playpause"><div class="playbtn"><div class="play-icon"></div><div class="play-icon-hover"></div></div><div class="pausebtn" style="display:none"><div class="pause-icon"><div class="pause-part-1"></div><div class="pause-part-2"></div></div><div class="pause-icon-hover"></div></div></div>';
if(o.design_skin!='skin-wave' && o.disable_timer!='on'){
aux_str_con_controls+='<div class="curr-time">00:00</div><div class="total-time">00:00</div>';
}
if(o.design_skin=='skin-default'){
if(o.disable_volume!='on'){
aux_str_con_controls+='<div class="ap-controls-right"><div class="controls-volume"><div class="volumeicon"></div><div class="volume_static"></div><div class="volume_active"></div><div class="volume_cut"></div></div></div>';
}
}
aux_str_con_controls+='</div>';//===end con-controls
if(o.design_skin == 'skin-wave' && o.skinwave_mode=='small'){
aux_str_con_controls = '<div class="the-bg"></div><div class="ap-controls-left"><div class="con-playpause"><div class="playbtn"><div class="play-icon"></div><div class="play-icon-hover"></div></div><div class="pausebtn" style="display:none"><div class="pause-icon"><div class="pause-part-1"></div><div class="pause-part-2"></div></div><div class="pause-icon-hover"></div></div></div></div><div class="ap-controls-right"><div class="controls-volume"><div class="volumeicon"></div><div class="volume_static"></div><div class="volume_active"></div><div class="volume_cut"></div></div></div>';
_apControls.append(aux_str_con_controls+aux_str_scrubbar);
}else{
if(o.design_skin == 'skin-aria'){
aux_str_con_controls = '<div class="the-bg"></div><div class="ap-controls-left"><div class="con-playpause"><div class="playbtn"><div class="play-icon"><svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="25px" height="30px" viewBox="0 0 25 30" xml:space="preserve"> <path d="M24.156,13.195L2.406,0.25C2.141,0.094,1.867,0,1.555,0C0.703,0,0.008,0.703,0.008,1.562H0v26.875h0.008 C0.008,29.297,0.703,30,1.555,30c0.32,0,0.586-0.109,0.875-0.266l21.727-12.93C24.672,16.375,25,15.727,25,15 S24.672,13.633,24.156,13.195z"/> </svg> </div><div class="play-icon-hover"></div></div><div class="pausebtn" style="display:none"><div class="pause-icon"><svg version="1.2" baseProfile="tiny" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="25px" height="30px" viewBox="0 0 25 30" xml:space="preserve"> <path d="M9.812,29.7c0,0.166-0.178,0.3-0.398,0.3H2.461c-0.22,0-0.398-0.134-0.398-0.3V0.3c0-0.166,0.178-0.3,0.398-0.3h6.953 c0.22,0,0.398,0.134,0.398,0.3V29.7z"/> <path d="M23.188,29.7c0,0.166-0.178,0.3-0.398,0.3h-6.953c-0.22,0-0.398-0.134-0.398-0.3V0.3c0-0.166,0.178-0.3,0.398-0.3h6.953 c0.22,0,0.398,0.134,0.398,0.3V29.7z"/> </svg></div><div class="pause-icon-hover"></div></div></div></div><div class="ap-controls-right">'+aux_str_scrubbar+'';
if(o.disable_timer!='on'){
aux_str_con_controls+='<div class="total-time">00:00</div>';
}
aux_str_con_controls+='</div>';
_apControls.append(aux_str_con_controls);
}else{
if(cthis.hasClass('alternate-layout')){
_apControls.append(aux_str_con_controls+aux_str_scrubbar);
}else{
_apControls.append(aux_str_scrubbar+aux_str_con_controls);
}
}
}
if(_apControls.children('.ap-controls-left').length>0){
_apControlsLeft = _apControls.children('.ap-controls-left');
}
if(_apControls.children('.ap-controls-right').length>0){
_apControlsRight = _apControls.children('.ap-controls-right');
}
if(o.disable_timer!='on'){
_currTime = cthis.find('.curr-time').eq(0);
_totalTime = cthis.find('.total-time').eq(0);
}
_scrubbar = _apControls.find('.scrubbar').eq(0);
_conControls = _apControls.children('.con-controls');
_conPlayPause = cthis.find('.con-playpause').eq(0);
_controlsVolume = _conControls.children('.controls-volume');
if(!_metaArtistCon){
if(cthis.children('.meta-artist').length>0){
//console.info(cthis.hasClass('alternate-layout'));
if(cthis.hasClass('alternate-layout')){
_conControls.append(cthis.children('.meta-artist'));
}else{
_audioplayerInner.append(cthis.children('.meta-artist'));
}
}
_audioplayerInner.find('.meta-artist').eq(0).wrap('<div class="meta-artist-con"></div>');
_metaArtistCon = _audioplayerInner.children('.meta-artist-con').eq(0);
if(o.design_skin == 'skin-wave' && o.skinwave_mode=='small'){
_conPlayPause.after(_metaArtistCon);
}
if(o.design_skin == 'skin-aria'){
_apControlsRight.prepend(_metaArtistCon);
}
}
var str_thumbh = "";
if(design_thumbh!=''){
str_thumbh = ' height:'+o.design_thumbh+'px;';
}
if(cthis.attr('data-thumb')!=undefined && cthis.attr('data-thumb')!=''){
var aux_thumb_con_str = '';
if(cthis.attr('data-thumb_link')){
aux_thumb_con_str += '<a href="'+cthis.attr('data-thumb_link')+'"';
}else{
aux_thumb_con_str += '<div';
}
aux_thumb_con_str+=' class="the-thumb-con"><div class="the-thumb" style="'+str_thumbh+' background-image:url('+cthis.attr('data-thumb')+')"></div>';
if(cthis.attr('data-thumb_link')){
aux_thumb_con_str += '</a>';
}else{
aux_thumb_con_str += '</div>';
}
if(o.design_skin == 'skin-wave' && o.skinwave_mode=='small'){
_apControlsLeft.prepend(aux_thumb_con_str);
}else{
_audioplayerInner.prepend(aux_thumb_con_str);
}
_theThumbCon = _audioplayerInner.children('.the-thumb-con').eq(0);
}
//console.info(cthis, o.disable_volume);
if(o.disable_volume=='on'){
_controlsVolume.hide();
}
if(o.disable_volume=='off'){
_controlsVolume.show();
}
if(o.disable_scrub=='on'){
_scrubbar.hide();
}
if(o.design_skin=='skin-wave' && typeof(o.parentgallery)!='undefined' && o.design_menu_show_player_state_button=='on'){
_audioplayerInner.appendOnce('<div class="btn-menu-state"></div>');
}
// console.info(o.embed_code);
if(o.design_skin=='skin-wave' && o.embed_code!=''){
if(o.design_skin == 'skin-wave' && o.skinwave_mode=='small'){
_apControlsRight.prependOnce('<div class="btn-embed-code-con dzstooltip-con "><div class="btn-embed-code"><svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="15px" height="15px" viewBox="0 0 15 15" xml:space="preserve"> <g id="Layer_1"> <polygon fill="#E6E7E8" points="1.221,7.067 0.494,5.422 4.963,1.12 5.69,2.767 "/> <polygon fill="#E6E7E8" points="0.5,5.358 1.657,4.263 3.944,10.578 2.787,11.676 "/> <polygon fill="#E6E7E8" points="13.588,9.597 14.887,8.34 12.268,2.672 10.969,3.93 "/> <polygon fill="#E6E7E8" points="14.903,8.278 14.22,6.829 9.714,11.837 10.397,13.287 "/> </g> <g id="Layer_2"> <rect x="6.416" y="1.713" transform="matrix(0.9663 0.2575 -0.2575 0.9663 2.1699 -1.6329)" fill="#E6E7E8" width="1.805" height="11.509"/> </g> </svg></div><span class="dzstooltip transition-slidein arrow-bottom align-right skin-black " style="width: 350px; "><span style="max-height: 150px; overflow:hidden; display: block;">'+o.embed_code+'</span></span></div>');
}else{
_audioplayerInner.appendOnce('<div class="btn-embed-code-con dzstooltip-con "><div class="btn-embed-code"><svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="15px" height="15px" viewBox="0 0 15 15" xml:space="preserve"> <g id="Layer_1"> <polygon fill="#E6E7E8" points="1.221,7.067 0.494,5.422 4.963,1.12 5.69,2.767 "/> <polygon fill="#E6E7E8" points="0.5,5.358 1.657,4.263 3.944,10.578 2.787,11.676 "/> <polygon fill="#E6E7E8" points="13.588,9.597 14.887,8.34 12.268,2.672 10.969,3.93 "/> <polygon fill="#E6E7E8" points="14.903,8.278 14.22,6.829 9.714,11.837 10.397,13.287 "/> </g> <g id="Layer_2"> <rect x="6.416" y="1.713" transform="matrix(0.9663 0.2575 -0.2575 0.9663 2.1699 -1.6329)" fill="#E6E7E8" width="1.805" height="11.509"/> </g> </svg></div><span class="dzstooltip transition-slidein arrow-bottom align-right skin-black " style="width: 350px; "><span style="max-height: 150px; overflow:hidden; display: block;">'+o.embed_code+'</span></span></div>');
}
cthis.find('.btn-embed-code-con').bind('click', function(){
var _t = $(this);
select_all(_t.find('.dzstooltip').get(0));
})
}
if(o.design_skin=='skin-wave'){
//console.info((o.design_thumbw + 20));
//console.info('url('+cthis.attr('data-scrubbg')+')');
if(o.skinwave_enableSpectrum!='on'){
if(cthis.attr('data-scrubbg')!=undefined){
_scrubbar.children('.scrub-bg').eq(0).append('<img class="scrub-bg-img" src="'+cthis.attr('data-scrubbg')+'"/>');
}
if(cthis.attr('data-scrubprog')!=undefined){
_scrubbar.children('.scrub-prog').eq(0).append('<img class="scrub-prog-img" src="'+cthis.attr('data-scrubprog')+'"/>');
}
_scrubbar.find('.scrub-bg-img').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
_scrubbar.find('.scrub-prog-img').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
//console.info(o.skinwave_enableReflect);
if(o.skinwave_enableReflect=='on'){
_scrubbar.children('.scrub-bg-reflect').eq(0).append('<img class="scrub-bg-img-reflect" src="'+cthis.attr('data-scrubbg')+'"/>');
if(cthis.attr('data-scrubprog')!=undefined){
_scrubbar.children('.scrub-prog-reflect').eq(0).append('<img class="scrub-prog-img-reflect" src="'+cthis.attr('data-scrubprog')+'"/>');
}
_scrubbar.find('.scrub-bg-img').eq(0).css({
'transform-origin' : '100% 100%'
})
_scrubbar.find('.scrub-prog-img').eq(0).css({
'transform-origin' : '100% 100%'
})
}
}else{
_scrubbar.children('.scrub-bg').eq(0).append('<canvas class="scrub-bg-canvas" style="width: 100%; height: 100%;"></canvas><div class="wave-separator"></div>');
_scrubBgCanvas = cthis.find('.scrub-bg-canvas').eq(0);
_scrubBgCanvasCtx = _scrubBgCanvas.get(0).getContext("2d");
if(type=='audio'){
_scrubbar.children('.scrub-prog').eq(0).append('<canvas class="scrub-prog-canvas" style="width: 100%; height: 100%;"></canvas>');
_scrubProgCanvas = cthis.find('.scrub-prog-canvas').eq(0);
_scrubProgCanvasCtx = _scrubProgCanvas.get(0).getContext("2d");
}
if(o.skinwave_enableReflect=='on'){
_scrubbar.children('.scrub-bg-reflect').eq(0).append('<canvas class="scrub-bg-canvas-reflect" style="width: 100%; height: 100%;"></canvas>');
_scrubBgReflectCanvas = _scrubbar.find('.scrub-bg-canvas-reflect').eq(0);
_scrubBgReflectCtx = _scrubBgReflectCanvas.get(0).getContext("2d");
if(type=='audio'){
_scrubbar.children('.scrub-prog-reflect').eq(0).append('<canvas class="scrub-prog-canvas-reflect" style="width: 100%; height: 100%;"></canvas>');
_scrubProgCanvasReflect = _scrubbar.find('.scrub-prog-canvas-reflect').eq(0);
_scrubProgCanvasReflectCtx = _scrubProgCanvasReflect.get(0).getContext("2d");
}
}
}
if(o.skinwave_timer_static=='on'){
if(_currTime){
_currTime.addClass('static');
}
if(_totalTime){
_totalTime.addClass('static');
}
}
_apControls.css({
//'height': design_thumbh
})
}
// --- END skin-wave
if(cthis.hasClass('skin-minimal')){
_conPlayPause.children('.playbtn').append('<canvas width="100" height="100" class="playbtn-canvas"/>');
skin_minimal_canvasplay = _conPlayPause.find('.playbtn-canvas').eq(0).get(0);
_conPlayPause.children('.pausebtn').append('<canvas width="100" height="100" class="pausebtn-canvas"/>');
skin_minimal_canvaspause = _conPlayPause.find('.pausebtn-canvas').eq(0).get(0);
}
//console.info(o.parentgallery, o.disable_player_navigation);
if(typeof(o.parentgallery)!='undefined' && o.disable_player_navigation!='on'){
// _conControls.appendOnce('<div class="prev-btn"></div><div class="next-btn"></div>','.prev-btn');
}
if(cthis.hasClass('skin-minion')){
if(cthis.find('.menu-description').length>0){
//console.log('ceva');
_conPlayPause.addClass('with-tooltip');
_conPlayPause.prepend('<span class="dzstooltip" style="left:-7px;">'+cthis.find('.menu-description').html()+'</span>');
//console.info(_conPlayPause.children('span').eq(0), _conPlayPause.children('span').eq(0).textWidth());
_conPlayPause.children('span').eq(0).css('width', _conPlayPause.children('span').eq(0).textWidth() + 10);
}
}
// === setup_structore for both flash and html5
if(typeof(o.parentgallery)!='undefined' && o.disable_player_navigation!='on'){
//console.info('ceva', is_flashplayer , o.settings_backup_type);
var auxs = '<div class="prev-btn"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="10px" height="13.325px" viewBox="0 0 10 13.325" enable-background="new 0 0 10 13.325" xml:space="preserve"> <g id="Layer_2"> <polygon opacity="0.5" fill="#E6E7E8" points="3.208,7.674 5.208,9.104 5.208,5.062 3.208,5.652 "/> </g> <g id="Layer_1"> <rect x="0.306" y="3.074" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -1.4203 4.7299)" fill="#E6E7E8" width="9.386" height="2.012"/> <rect x="0.307" y="8.29" transform="matrix(0.7072 0.707 -0.707 0.7072 8.0362 -0.8139)" fill="#E6E7E8" width="9.387" height="2.012"/> </g> </svg></div><div class="next-btn"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="10px" height="13.325px" viewBox="0 0 10 13.325" enable-background="new 0 0 10 13.325" xml:space="preserve"> <g id="Layer_2"> <polygon opacity="0.5" fill="#E6E7E8" points="7.035,5.695 5.074,4.292 5.074,8.257 7.035,7.678 "/> </g> <g id="Layer_1"> <rect x="0.677" y="8.234" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 15.532 12.0075)" fill="#E6E7E8" width="9.204" height="1.973"/> <rect x="0.674" y="3.118" transform="matrix(-0.7072 -0.707 0.707 -0.7072 6.1069 10.7384)" fill="#E6E7E8" width="9.206" height="1.974"/> </g> </svg></div>';
if(o.design_skin == 'skin-wave' && o.skinwave_mode=='small') {
_apControlsLeft.appendOnce(auxs,'.prev-btn');
}else{
_audioplayerInner.appendOnce(auxs,'.prev-btn');
}
}
}
function ajax_get_likes(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_get_likes',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
var auxls = false;
if(response.indexOf('likesubmitted')>-1){
response = response.replace('likesubmitted', '');
auxls = true;
}
if(response==''){
response=0;
}
var auxhtml = cthis.find('.extra-html').eq(0).html();
auxhtml = auxhtml.replace('{{get_likes}}', response);
cthis.find('.extra-html').eq(0).html(auxhtml);
index_extrahtml_toloads--;
if(auxls){
cthis.find('.extra-html').find('.btn-like').addClass('active');
}
if(index_extrahtml_toloads==0){
cthis.find('.extra-html').addClass('active');
}
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
index_extrahtml_toloads--;
if(index_extrahtml_toloads==0){
cthis.find('.extra-html').addClass('active');
}
}
});
}
function ajax_get_rates(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_get_rate',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
var auxls = false;
if(response.indexOf('likesubmitted')>-1){
response = response.replace('likesubmitted', '');
auxls = true;
}
if(response==''){
response='0|0';
}
var auxresponse = response.split('|');
starrating_nrrates = auxresponse[1];
cthis.find('.extra-html .counter-rates .the-number').eq(0).html(starrating_nrrates);
index_extrahtml_toloads--;
cthis.find('.star-rating-set-clip').width(auxresponse[0]*(parseInt(cthis.find('.star-rating-bg').width(), 10)/5));
//===ratesubmitted
if(typeof(auxresponse[2])!='undefined'){
starrating_alreadyrated = auxresponse[2];
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_player_rateSubmitted!=undefined){
$(o.parentgallery).get(0).api_player_rateSubmitted();
}
}
if(index_extrahtml_toloads<=0){
cthis.find('.extra-html').addClass('active');
}
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
index_extrahtml_toloads--;
if(index_extrahtml_toloads<=0){
cthis.find('.extra-html').addClass('active');
}
}
});
}
function ajax_get_views(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_get_views',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
// console.info(response);
if(response.indexOf('viewsubmitted')>-1){
response = response.replace('viewsubmitted', '');
ajax_view_submitted = 'on';
increment_views = 0;
}
if(response==''){
response=0;
}
if(String(response).indexOf('{{theip')>-1){
var auxa = /{{theip-(.*?)}}/g.exec(response);
if(auxa[1]){
currIp = auxa[1];
}
response = response.replace(/{{theip-(.*?)}}/g, '');
}
// console.info('increment_views', increment_views);
if(increment_views==1){
ajax_submit_views();
//console.info('response iz '+response);
response = Number(response)+increment_views;;
//console.info(response);
increment_views=2;
}
var auxhtml = cthis.find('.extra-html').eq(0).html();
auxhtml = auxhtml.replace('{{get_plays}}', response);
cthis.find('.extra-html').eq(0).html(auxhtml);
index_extrahtml_toloads--;
if(index_extrahtml_toloads==0){
cthis.find('.extra-html').addClass('active');
}
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
index_extrahtml_toloads--;
if(index_extrahtml_toloads==0){
cthis.find('.extra-html').addClass('active');
}
}
});
}
function ajax_submit_rating(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_submit_rate',
postdata: mainarg,
playerid: the_player_id
};
if(starrating_alreadyrated>-1){
return;
}
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); };
var aux = cthis.find('.star-rating-set-clip').outerWidth() / cthis.find('.star-rating-bg').outerWidth();
var nrrates = parseInt(cthis.find('.counter-rates .the-number').html(), 10);
nrrates++;
var aux2 = ( (nrrates-1) * (aux*5) + starrating_index) / (nrrates)
// console.info(aux, aux2, nrrates);
cthis.find('.star-rating-set-clip').width(aux2*(parseInt(cthis.find('.star-rating-bg').width(), 10)/5));
cthis.find('.counter-rates .the-number').html(nrrates);
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_player_rateSubmitted!=undefined){
$(o.parentgallery).get(0).api_player_rateSubmitted();
}
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
var aux = cthis.find('.star-rating-set-clip').outerWidth() / cthis.find('.star-rating-bg').outerWidth();
var nrrates = parseInt(cthis.find('.counter-rates .the-number').html(), 10);
nrrates++;
var aux2 = ( (nrrates-1) * (aux*5) + starrating_index) / (nrrates)
// console.info(aux, aux2, nrrates);
cthis.find('.star-rating-set-clip').width(aux2*(parseInt(cthis.find('.star-rating-bg').width(), 10)/5));
cthis.find('.counter-rates .the-number').html(nrrates);
if(o.parentgallery!=undefined && $(o.parentgallery).get(0)!=undefined && $(o.parentgallery).get(0).api_player_rateSubmitted!=undefined){
$(o.parentgallery).get(0).api_player_rateSubmitted();
}
}
});
};
function ajax_submit_download(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_submit_download',
postdata: mainarg,
playerid: the_player_id
};
if(starrating_alreadyrated>-1){
return;
}
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); };
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
}
});
};
function ajax_submit_views(argp){
var data = {
action: 'dzsap_submit_views',
postdata: 1,
playerid: the_player_id,
currip : currIp
};
// console.info(ajax_view_submitted);
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
var auxnr = cthis.find('.counter-hits .the-number').html();
auxnr = parseInt(auxnr,10);
if(increment_views!=2){
auxnr++;
}
cthis.find('.counter-hits .the-number').html(auxnr);
ajax_view_submitted = 'on';
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
var auxlikes = cthis.find('.counter-hits .the-number').html();
auxlikes = parseInt(auxlikes,10);
auxlikes++;
cthis.find('.counter-hits .the-number').html(auxlikes);
ajax_view_submitted = 'on';
}
});
}
function ajax_submit_like(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_submit_like',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
cthis.find('.btn-like').addClass('active');
var auxlikes = cthis.find('.counter-likes .the-number').html();
auxlikes = parseInt(auxlikes,10);
auxlikes++;
cthis.find('.counter-likes .the-number').html(auxlikes);
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
cthis.find('.btn-like').addClass('active');
var auxlikes = cthis.find('.counter-likes .the-number').html();
auxlikes = parseInt(auxlikes,10);
auxlikes++;
cthis.find('.counter-likes .the-number').html(auxlikes);
}
});
}
function ajax_retract_like(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_retract_like',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + response); }
cthis.find('.btn-like').removeClass('active');
var auxlikes = cthis.find('.counter-likes .the-number').html();
auxlikes = parseInt(auxlikes,10);
auxlikes--;
cthis.find('.counter-likes .the-number').html(auxlikes);
},
error:function(arg){
if(typeof window.console != "undefined" ){ console.log('Got this from the server: ' + arg, arg); };
cthis.find('.btn-like').removeClass('active');
var auxlikes = cthis.find('.counter-likes .the-number').html();
auxlikes = parseInt(auxlikes,10);
auxlikes--;
cthis.find('.counter-likes .the-number').html(auxlikes);
}
});
}
function skinwave_comment_publish(argp){
//only handles ajax call + result
var mainarg = argp;
var data = {
action: 'dzsap_front_submitcomment',
postdata: mainarg,
playerid: the_player_id
};
$.ajax({
type: "POST",
url: o.settings_php_handler,
data: data,
success: function(response) {
if(response.charAt(response.length-1) == '0'){
response = response.slice(0,response.length-1);
}
if(typeof window.console != "undefined" ){
console.log('Got this from the server: ' + response);
}
//console.info(data.postdata);
_commentsHolder.append(data.postdata);
//jQuery('#save-ajax-loading').css('visibility', 'hidden');
},
error:function(arg){
if(typeof window.console != "undefined" ){
console.log('Got this from the server: ' + arg, arg);
};
_commentsHolder.append(data.postdata);
}
});
}
function setup_media(){
//== order = init, setup_media, init_loaded
//console.info('setup_media()', o.cue,ajax_view_submitted);
// return;
if(o.cue=='off'){
if(ajax_view_submitted=='auto'){
increment_views = 1;
ajax_view_submitted = 'on';
}
}
if(loaded==true){
return;
}
if(type=='youtube'){
if(is_ie()){
_theMedia.css({
'left' : '-478em'
})
}
return;
}
var aux = '';
aux+= '<audio>';
if(cthis.attr('data-source')!=undefined){
aux+='<source src="'+cthis.attr('data-source')+'" type="audio/mpeg">';
if(cthis.attr('data-sourceogg')!=undefined){
aux+='<source src="'+cthis.attr('data-sourceogg')+'" type="audio/ogg">';
}
}
aux+= '</audio>';
//alert(is_ie8());
if(is_ie8() && dzsap_list.length>0){
str_ie8 = '&isie8=on';
}
if(is_flashplayer){
if(o.settings_backup_type=='light'){
aux='<object type="application/x-shockwave-flash" data="'+ o.swf_location+'" width="100" height="50" id="flashcontent_'+cthisId+'" allowscriptaccess="always" style="visibility: visible; "><param name="movie" value="ap.swf"><param name="menu" value="false"><param name="allowScriptAccess" value="always"><param name="scale" value="noscale"><param name="allowFullScreen" value="true"><param name="wmode" value="opaque"><param name="flashvars" value="media='+cthis.attr("data-source")+"&fvid="+cthisId+str_ie8+'"><embed src="'+ o.swf_location+'" width="100" height="100" allowScriptAccess="always"></object>';
cthis.addClass('lightflashbackup');
}else{
// console.info(cthis.attr('data-source'));
var str_vol = '';
var str_skip_buttons = '';
var str_design_menu_show_player_state_button = '';
if(typeof(o.parentgallery)!='undefined' && o.disable_player_navigation!='on'){
str_skip_buttons='&design_skip_buttons=on';
}
if(typeof(o.parentgallery)!='undefined' && o.design_menu_show_player_state_button!='on'){
str_design_menu_show_player_state_button='&design_menu_show_player_state_button=on';
}
if(o.disable_volume=='on'){
str_vol+='&settings_enablevolume=off';
}
aux='<object class="the-full-flash-backup" type="application/x-shockwave-flash" data="'+ o.swffull_location+'" width="100%" height="100%" style="height:50px" id="flashcontent_'+cthisId+'" allowscriptaccess="always" style="visibility: visible; "><param name="movie" value="'+ o.swffull_location+'"><param name="menu" value="false"><param name="allowScriptAccess" value="always"><param name="scale" value="noscale"><param name="allowFullScreen" value="true"><param name="wmode" value="transparent"><param name="flashvars" value="media='+cthis.attr("data-source")+"&fvid="+cthisId+str_ie8+str_vol+'&autoplay='+o.autoplay+'&skinwave_mode'+ o.skinwave_mode+str_skip_buttons+str_design_menu_show_player_state_button;
cthis.addClass('fullflashbackup');
if(typeof(cthis.attr("data-scrubbg"))!='undefined'){
aux+='&scrubbg='+cthis.attr("data-scrubbg");
}
if(typeof(cthis.attr("data-scrubprog"))!='undefined'){
aux+='&scrubprog='+cthis.attr("data-scrubprog");
}
if(typeof(cthis.attr("data-thumb"))!='undefined' && cthis.attr("data-thumb")!=''){
aux+='&thumb='+cthis.attr("data-thumb");
}
aux+='&settings_enablespectrum='+ o.skinwave_enableSpectrum;
aux+='&skinwave_enablereflect='+ o.skinwave_enableReflect;
aux+='&skin='+ o.design_skin;
aux+='&settings_multiplier='+ o.skinwave_spectrummultiplier;
aux+='">You need Flash Player.</object>';
_audioplayerInner.find('.the-thumb-con,.ap-controls,.the-media').remove();
_audioplayerInner.prepend(aux);
if(o.design_skin=='skin-wave'){
_audioplayerInner.find('.the-full-flash-backup').css("height", 200);
}
if(typeof(cthis.attr("data-thumb"))!='undefined' && cthis.attr("data-thumb")!=''){
_audioplayerInner.find('.the-full-flash-backup').css("height", 200);
}
aux='';
//return;
}
}
//<embed src="'+ o.swf_location+'" width="100" height="100" allowScriptAccess="always">
//console.log(aux, _theMedia);
_theMedia.append(aux);
//return;
//_theMedia.children('audio').get(0).autoplay = false;
_cmedia = (_theMedia.children('audio').get(0));
if(is_flashplayer && o.settings_backup_type=='light'){
setTimeout(function(){
_cmedia = (_theMedia.find('object').eq(0).get(0));
}, 500)
}
//alert(_cmedia);
if(is_ios() || is_ie8() || is_flashplayer==true){
if(o.settings_backup_type=='full'){
init_loaded();
}else{
setTimeout(init_loaded, 1000);
}
}else{
inter_checkReady = setInterval(check_ready, 50);
}
}
function destroy_media(){
pause_media();
_theMedia.children().remove();
_cmedia.remove();
}
function setup_listeners(){
//console.info('setup_listeners()');
_scrubbar.bind('mousemove', mouse_scrubbar);
_scrubbar.bind('mouseleave', mouse_scrubbar);
_scrubbar.bind('click', mouse_scrubbar);
_controlsVolume.children('.volumeicon').bind('click', click_mute);
_controlsVolume.children('.volume_active').bind('click', mouse_volumebar);
_controlsVolume.children('.volume_static').bind('click', mouse_volumebar);
_conPlayPause.bind('click', click_playpause);
var scrubbar_moving = false;
var scrubbar_moving_x =0 ;
var aux3 = 0;
_scrubbar.bind('touchstart', function(e){
scrubbar_moving = true;
})
$(document).bind('touchmove', function(e){
if(scrubbar_moving){
scrubbar_moving_x = e.originalEvent.touches[0].pageX;
aux3 = scrubbar_moving_x - _scrubbar.offset().left;
if(aux3<0){ aux3 = 0; }
if(aux3>_scrubbar.width()){ aux3 = _scrubbar.width(); }
seek_to_perc(aux3/_scrubbar.width());
//console.info(aux3);
}
})
$(document).bind('touchend', function(e){
scrubbar_moving = false;
})
$(document).delegate('.btn-like','click', click_like);
$(document).delegate('.star-rating-con', 'mousemove', mouse_starrating);
$(document).delegate('.star-rating-con', 'mouseleave', mouse_starrating);
$(document).delegate('.star-rating-con', 'click', mouse_starrating);
// console.log('setup_listeners()');
$(window).bind('resize', handleResize);
handleResize();
setTimeout(handleResize,1000);
setTimeout(handleResize,2000);
if(o.settings_trigger_resize > 0){
inter_trigger_resize = setInterval(handleResize, o.settings_trigger_resize);
}
cthis.get(0).fn_pause_media = pause_media;
cthis.get(0).fn_play_media = play_media;
return false;
// console.info('ceva');
}
function click_like(){
var _t = $(this);
if(cthis.has(_t).length==0){
return;
}
if(_t.hasClass('active')){
ajax_retract_like();
}else{
ajax_submit_like();
}
}
function init_loaded(){
//console.info('init_loaded()');
if(cthis.hasClass('loaded')){
return;
}
// console.info(cthis.hasClass('loaded'))
if(is_flashplayer==false){
totalDuration = _cmedia.duration;
}else{
if(o.settings_backup_type=='light'){
if(typeof(_cmedia)!="undefined" && _cmedia.fn_getSoundDuration){
eval("totalDuration = parseFloat(_cmedia.fn_getsoundduration"+cthisId+"())");
}
}
}
if(typeof(_cmedia)!="undefined"){
if(_cmedia.nodeName=='AUDIO'){
//console.info(_cmedia);
_cmedia.addEventListener('ended', handle_end);
}
}
clearTimeout(inter_checkReady);
setup_listeners();
if(is_ie8()){
cthis.addClass('lte-ie8')
}
//===ie7 and ie8 does not have the indexOf property so let us add it
if(is_ie8()){
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
}
if(dzsap_list.indexOf(cthis)==-1){
dzsap_list.push(cthis);
}
if(o.design_skin=='skin-wave'){
if(o.skinwave_enableSpectrum=='on'){
//console.info(typeof AudioContext);
if (typeof AudioContext !== 'undefined') {
audioCtx = new AudioContext();
} else if (typeof webkitAudioContext !== 'undefined') {
audioCtx = new webkitAudioContext();
} else {
audioCtx = null;
}
//console.info(audioCtx);
if(audioCtx){
function loadSound(url) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
// . . . step 3 code above this line, step 4 code below
request.onload = function() {
//if(window.console){ console.info('sound load'); };
audioCtx.decodeAudioData(request.response, function(buffer) {
//alert("sound decode"); //test
//console.log(buffer);
webaudiosource = audioCtx.createBufferSource()
webaudiosource.buffer = buffer;
audioBuffer = buffer;
webaudiosource.connect(analyser)
analyser.connect(audioCtx.destination);
// Start playing the buffer.
inter_audiobuffer_workaround_id = setInterval(function(){
if(playing){
time_curr+=0.1;
}
},100);
// console.info(audioBuffer);
webaudiosource.connect(audioCtx.destination);
//webaudiosource.start(0);
}, onError);
_conControls.css({
'opacity':1
});
}
request.send();
}
//if(!)
if(typeof audioCtx.createJavaScriptNode!='undefined'){
javascriptNode = audioCtx.createJavaScriptNode(2048, 1, 1);
}
if(typeof audioCtx.createScriptProcessor!='undefined'){
javascriptNode = audioCtx.createScriptProcessor(4096, 1, 1);
//console.log(javascriptNode);
}
function generateFakeArray(){
var maxlen = 256;
var arr = [];
for (var it1 = 0 ;it1<maxlen;it1++){
arr[it1] = (maxlen-it1)/2 + Math.random()*100;
}
return arr;
}
if(is_android()){
analyser = audioCtx.createAnalyser();
analyser.smoothingTimeConstant = 0.3;
analyser.fftSize = 512;
//oscillator = audioCtx.createOscillator();
//oscillator.start(0);
// Set up a script node that sets output to white noise
var url = data_source;
javascriptNode.onaudioprocess = function(event) {
//var output = event.outputBuffer.getChannelData(0);
//for (i = 0; i < output.length; i++) {
// output[i] = Math.random() / 10;
//}
var array = new Uint8Array(analyser.frequencyBinCount);
//console.info(analyser, analyser.getByteFrequencyData(array), new Uint8Array(analyser.frequencyBinCount));
//console.log('Processing buffer', array);
analyser.getByteFrequencyData(array);
lastarray = array;
if(playing){
lastarray = generateFakeArray();
}
//console.info(playing, lastarray);
};
// Connect oscillator to script node and script node to destination
// (should output white noise)
// oscillator.connect(javascriptNode);
webaudiosource = audioCtx.createMediaElementSource(_cmedia);
webaudiosource.connect(analyser);
//console.log(webaudiosource);
analyser.connect(audioCtx.destination);
javascriptNode.connect(audioCtx.destination);
//console.info('ceva');
}else{
if(javascriptNode){
// setup a analyzer
analyser = audioCtx.createAnalyser();
analyser.smoothingTimeConstant = 0.3;
analyser.fftSize = 512;
//console.log(analyser);
// create a buffer source node
//Steps 3 and 4
//console.log(data_source);
//console.log('hmm');
var url = data_source;
//if( is_ios()){
// //console.log('is_safari');
// loadSound(url);
// audioBuffer = 'placeholder';
// _conControls.css({
// 'opacity':0.5
// });
//}
//console.log('cevaal');
javascriptNode.onaudioprocess = function() {
if(stopaudioprocessfordebug){
return;
}
// - not implemented in safari yet.
// get the average for the first channel
var array = new Uint8Array(analyser.frequencyBinCount);
//console.info(analyser, analyser.getByteFrequencyData(array), new Uint8Array(analyser.frequencyBinCount));
//console.info(array);
analyser.getByteFrequencyData(array);
lastarray = array;
//console.info(array);
// clear the current state
// set the fill style
if(playing && (is_ios() || is_safari())){
lastarray = generateFakeArray();
}
}
//console.log(_cmedia, _cmedia.get(0))
//console.info(is_chrome(), is_firefox());
if(type=='audio' && ( is_chrome() || is_firefox() || is_safari() || is_ios()) ){
webaudiosource = audioCtx.createMediaElementSource(_cmedia);
webaudiosource.connect(analyser)
analyser.connect(audioCtx.destination);
//var node = audioCtx.createGain(4096, 2, 2);
//node.connect(javascriptNode);
javascriptNode.connect(audioCtx.destination);
//console.log(_cmedia, analyser, audioCtx.destination);
}
//playSound();
var stopaudioprocessfordebug = false;
setTimeout(function(){
//stopaudioprocessfordebug = true;
},3000);
}
}
}
}
}
if(o.settings_extrahtml!=''){
if(String(o.settings_extrahtml).indexOf('{{get_likes}}')>-1 && is_ie8()==false){
index_extrahtml_toloads++;
ajax_get_likes();
}
if(String(o.settings_extrahtml).indexOf('{{get_plays}}')>-1 && is_ie8()==false){
index_extrahtml_toloads++;
ajax_get_views();
}else{
if(increment_views===1){
ajax_submit_views();
increment_views=2;
}
}
if(String(o.settings_extrahtml).indexOf('{{get_rates}}')>-1){
index_extrahtml_toloads++;
ajax_get_rates();
}
if(index_extrahtml_toloads==0){
cthis.find('.extra-html').addClass('active');
}
}
//console.info(ajax_view_submitted);
if(ajax_view_submitted=='auto'){
setTimeout(function(){
if(ajax_view_submitted=='auto'){
ajax_view_submitted = 'off';
}
}, 1000);
}
loaded=true;
cthis.addClass('loaded');
// console.info(playfrom);
if(isInt(playfrom)){
seek_to(playfrom);
}
if(playfrom=='last'){
if(typeof Storage!='undefined'){
setTimeout(function(){
playfrom_ready = true;
})
if(typeof localStorage['dzsap_'+the_player_id+'_lastpos']!='undefined'){
seek_to(localStorage['dzsap_'+the_player_id+'_lastpos']);
}
}
}
// console.info(cthis, o.autoplay);
if(is_ie8()==false && o.autoplay=='on'){
play_media();
};
setTimeout(function(){
//console.info(cthis.find('.wave-download'));
cthis.find('.wave-download').bind('click',handle_mouse);
},500)
}
function isInt(n) {
return typeof n == 'number' && Math.round(n) % 1 == 0;
}
function isValid(n) {
return typeof n != 'undefined' && n!='';
}
function handle_mouse(e){
var _t = $(this);
if(e.type=='click'){
if(_t.hasClass('wave-download')){
ajax_submit_download();
}
}
}
function mouse_starrating(e){
var _t = $(this);
if(cthis.has(_t).length==0){
return;
}
if(e.type=='mouseout' || e.type=='mouseleave'){
cthis.find('.star-rating-prog-clip').css({
'width': 0
})
cthis.find('.star-rating-set-clip').css({
'opacity': 1
})
}
if(e.type=='mousemove'){
//console.log(_t);
var mx = e.pageX - _t.offset().left;
var my = e.pageX - _t.offset().left;
//console.info(Math.round(mx/ (_t.outerWidth()/5)) );
if(starrating_alreadyrated>-1){
starrating_index = starrating_alreadyrated;
}else{
starrating_index = mx/ (_t.outerWidth()/5);
}
if(starrating_index> 4){
starrating_index = 5;
}else{
starrating_index = Math.round(starrating_index);
}
// console.info(starrating_index, cthis.find('.star-rating-prog-clip'));
cthis.find('.star-rating-prog-clip').css({
'width': _t.outerWidth()/5 * starrating_index
})
cthis.find('.star-rating-set-clip').css({
'opacity': 0
})
}
if(e.type=='click'){
if(starrating_alreadyrated>-1){
return;
}
ajax_submit_rating(starrating_index);
}
}
function onError(){
}
function drawSpectrum(array) {
//console.info(array);
//console.info()
//console.log($('.scrub-bg-canvas').eq(0).get(0).width, canw);
//console.log(_scrubBgCanvas.get(0).width, _scrubBgCanvas.width())
_scrubBgCanvas.get(0).width = _scrubBgCanvas.width();
_scrubBgCanvas.get(0).height = _scrubBgCanvas.height();
if(_scrubProgCanvas){
_scrubProgCanvas.get(0).width = _scrubBgCanvas.width();
_scrubProgCanvas.get(0).height = _scrubBgCanvas.height();
}
if(o.skinwave_enableReflect=='on'){
_scrubBgReflectCanvas.get(0).width = _scrubBgCanvas.width();
_scrubBgReflectCanvas.get(0).height = _scrubBgCanvas.height();
if(_scrubProgCanvasReflect){
_scrubProgCanvasReflect.get(0).width = _scrubBgCanvas.width();
_scrubProgCanvasReflect.get(0).height = _scrubBgCanvas.height();
}
};
var gradient = _scrubBgCanvasCtx.createLinearGradient(0,0,canw,canh);
/*
gradient.addColorStop(1,'#000000');
gradient.addColorStop(0.75,'#ff0000');
gradient.addColorStop(0.25,'#ffff00');
gradient.addColorStop(0,'#ffffff');
*/
_scrubBgCanvasCtx.clearRect(0, 0, canw, canh);
_scrubBgCanvasCtx.fillStyle='#'+ o.skinwave_spectrum_wavesbg;
if(_scrubProgCanvasCtx){
_scrubProgCanvasCtx.clearRect(0, 0, canw, canh);
_scrubProgCanvasCtx.fillStyle='#'+ o.skinwave_spectrum_wavesprog;
}
for ( var i = 0; i < (array.length); i++ ){
var value = array[i];
//console.log(i, value, canh - (canh-value/256));
_scrubBgCanvasCtx.fillRect(i/256 * canw,canh-((value/256)*canh),canw/array.length,canh);
// console.log([i,value])
if(_scrubProgCanvasCtx){
_scrubProgCanvasCtx.fillRect(i/256 * canw,canh-((value/256)*canh),canw/array.length,canh);
}
}
if(o.skinwave_enableReflect=='on'){
//console.info(_scrubBgReflectCtx);
_scrubBgReflectCtx.clearRect(0, 0, canw, canh);
_scrubBgReflectCtx.drawImage(_scrubBgCanvas.get(0), 0, 0);
if(_scrubProgCanvasReflect){
_scrubProgCanvasReflectCtx.clearRect(0, 0, canw, canh);
_scrubProgCanvasReflectCtx.drawImage(_scrubProgCanvas.get(0), 0, 0);
}
}
};
// log if an error occurs
function onError(e) {
console.log(e);
}
function click_prev_btn(){
if(typeof(o.parentgallery.get(0))!="undefined"){
o.parentgallery.get(0).api_goto_prev();
}
}
function click_next_btn(){
if(typeof(o.parentgallery.get(0))!="undefined"){
o.parentgallery.get(0).api_goto_next();
}
}
function check_time(){
// console.log('check');
if(destroyed) { return false; }
if(type=='youtube'){
if(_cmedia && _cmedia.getDuration){
real_time_total = _cmedia.getDuration();
real_time_curr = _cmedia.getCurrentTime();
}
if(playfrom=='last' && playfrom_ready){
if(typeof Storage!='undefined'){
localStorage['dzsap_'+the_player_id+'_lastpos'] = time_curr;
}
}
}
if(type=='audio'){
if(is_flashplayer==true){
if(o.settings_backup_type=='light'){
if(str_ie8=='' && typeof(_cmedia)!="undefined"){
eval("if(typeof _cmedia.fn_getsoundduration"+cthisId+" != 'undefined'){time_total = parseFloat(_cmedia.fn_getsoundduration"+cthisId+"())};");
eval("if(typeof _cmedia.fn_getsoundcurrtime"+cthisId+" != 'undefined'){time_curr = parseFloat(_cmedia.fn_getsoundcurrtime"+cthisId+"())};");
}
}
//console.log(_cmedia.fn_getSoundCurrTime());
}else{
if(o.type!='shoutcast'){
if(_cmedia){
real_time_total = _cmedia.duration;
if(inter_audiobuffer_workaround_id==0){
real_time_curr = _cmedia.currentTime;
}
}
// console.info(time_curr, time_total, inter_audiobuffer_workaround_id);
// console.info(audioBuffer, audioCtx, webaudiosource);
if(audioBuffer && audioBuffer!='placeholder'){
// console.info(time_curr);
// time_total = audioBuffer.duration;
// time_curr = audioCtx.currentTime;
// console.log(audioBuffer, audioBuffer.currentTime, audioBuffer.duration);
}
if(audioCtx && is_firefox()){
// time_curr = audioCtx.currentTime;
}
if(playfrom=='last' && playfrom_ready){
if(typeof Storage!='undefined'){
localStorage['dzsap_'+the_player_id+'_lastpos'] = time_curr;
// console.info(localStorage['dzsap_'+the_player_id+'_lastpos']);
}
}
if(o.design_skin=='skin-wave'){
if(o.skinwave_comments_displayontime=='on'){
var timer_curr_perc = Math.round((real_time_curr / real_time_total) * 100) / 100
// console.info(timer_curr_perc);
if(_commentsHolder){
_commentsHolder.children().each(function(){
var _t = $(this);
if(_t.hasClass('a-comment')){
var aux = Math.round((parseFloat(_t.css('left')) / _commentsHolder.outerWidth()) * 100) / 100;
if(aux){
if(Math.abs(aux - timer_curr_perc) < 0.02 ){
_commentsHolder.find('.dzstooltip').removeClass('active');
_t.find('.dzstooltip').addClass('active');
}else{
_t.find('.dzstooltip').removeClass('active');
}
}
}
})
}
}
}
}
}
}
//if(cthis.hasClass("skin-minimal")){ console.log(time_curr, time_total) };
// console.info(time_curr, time_total, sw);
time_curr = real_time_curr;
time_total = real_time_total;
if(sample_time_start>0){
time_curr = sample_time_start + real_time_curr;
}
if(sample_time_total>0){
time_total = sample_time_total;
}
//--- incase of new skin - watch sw it will be 0
spos = (time_curr / time_total) * sw;
if(isNaN(spos)){
spos = 0;
}
if(spos>sw){
spos = sw;
}
//console.log(_scrubbar, _scrubbar.children('.scrub-prog'), spos, time_total, '-timecurr ', time_curr, sw);
// console.info(audioBuffer);
if(audioBuffer==null){
//console.info(spos, _scrubbar.width());
_scrubbar.children('.scrub-prog').css({
'width' : spos
})
if(o.skinwave_enableReflect=='on'){
_scrubbar.children('.scrub-prog-reflect').css({
'width' : spos
})
}
}
if(o.design_skin=='skin-pro'){
// console.info(spos,sw,spos/sw,Math.easeOutQuart(spos/sw, 0, sw,1));
var spos_eased = parseInt(Math.easeOutQuad(spos/sw, 0, sw,1), 10);
_scrubbar.children('.scrub-prog').css({
'width' : spos_eased
})
}
if(cthis.hasClass('skin-minimal')){
//console.log(skin_minimal_canvasplay);
//alert(can_canvas());
if(is_ie8() || !can_canvas() || is_opera()){
_conPlayPause.addClass('canvas-fallback');
}else{
var ctx = skin_minimal_canvasplay.getContext('2d');
//console.log(ctx);
var ctx_w = $(skin_minimal_canvasplay).width();
var ctx_h = $(skin_minimal_canvasplay).height();
var pw = ctx_w/100;
var ph = ctx_h/100;
spos = Math.PI*2 * (time_curr / time_total);
if(isNaN(spos)){
spos = 0;
}
if(spos>Math.PI*2){
spos = Math.PI*2;
}
ctx.clearRect(0,0,ctx_w, ctx_h);
//console.log(ctx_w, ctx_h);
var gradient = gradient = ctx.createLinearGradient(0, 0, 0, ctx_h);
gradient.addColorStop("0", "#ea8c52");
gradient.addColorStop("1.0", "#cb7641");
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(40*pw),0,Math.PI*2,false);
ctx.fillStyle = "rgba(0,0,0,0.1)";
ctx.fill();
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(30*pw),0,Math.PI*2,false);
//ctx.moveTo(110,75);
ctx.fillStyle = gradient;
ctx.fill();
//console.log(spos);
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(34*pw),0,spos,false);
//ctx.fillStyle = "rgba(0,0,0,0.3)";
ctx.lineWidth=(10*pw);
ctx.strokeStyle = 'rgba(0,0,0,0.3)';
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = "red";
//==draw the triangle
ctx.moveTo((44*pw),(40*pw));
ctx.lineTo((57*pw),(50*pw));
ctx.lineTo((44*pw),(60*pw));
ctx.lineTo((44*pw),(40*pw));
ctx.fillStyle="#ddd";
ctx.fill();
ctx = skin_minimal_canvaspause.getContext('2d');
//console.log(ctx);
ctx_w = $(skin_minimal_canvaspause).width();
ctx_h = $(skin_minimal_canvaspause).height();
pw = ctx_w/100;
ph = ctx_h/100;
ctx.clearRect(0,0,ctx_w, ctx_h);
//console.log(ctx_w, ctx_h);
//console.log((time_curr / time_total));
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(40*pw),0,Math.PI*2,false);
ctx.fillStyle = "rgba(0,0,0,0.1)";
ctx.fill();
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(30*pw),0,Math.PI*2,false);
//ctx.moveTo(110,75);
ctx.fillStyle = gradient;
ctx.fill();
//console.log(spos);
ctx.beginPath();
ctx.arc((50*pw),(50*ph),(34*pw),0,spos,false);
//ctx.fillStyle = "rgba(0,0,0,0.3)";
ctx.lineWidth=(10*pw);
ctx.strokeStyle = 'rgba(0,0,0,0.35)';
ctx.stroke();
ctx.fillStyle="#ddd";
ctx.fillRect((43*pw),(40*pw),(6*pw),(20*pw));
ctx.fillRect((53*pw),(40*pw),(6*pw),(20*pw));
}
//console.log('ceva');
}
// console.info(o.design_skin);
if(o.design_skin=='skin-wave'){
if(o.skinwave_enableSpectrum=='on'){
//console.info(_scrubBgCanvas.width());
if(lastarray){
drawSpectrum(lastarray);
}
}
if(_currTime){
// console.info(_currTime, time_curr, time_total, formatTime(time_curr))
if(o.skinwave_timer_static!='on'){
_currTime.css({
'left':spos
});
if(spos>sw-_currTime.outerWidth()){
_currTime.css({
'left':sw - _currTime.outerWidth()
})
}
if(spos>sw-30){
_totalTime.css({
'opacity':1-( ((spos-(sw-30)) / 30) )
});
}else{
if(_totalTime.css('opacity')!='1'){
_totalTime.css({
'opacity':1
});
}
};
};
}
}
if(_currTime){
//console.info(_currTime, time_curr, formatTime(time_curr))
_currTime.html(formatTime(time_curr));
_totalTime.html(formatTime(time_total));
}
// console.log(time_curr, time_total);
if(time_total>0 && time_curr >= time_total - 0.07){
handle_end();
}
if(is_flashplayer==true || type=='youtube'){
inter_check = setTimeout(check_time, 500);
}else{
requestAnimFrame(check_time);
}
}
function click_playpause(e){
//console.log('click_playpause');
var _t = $(this);
//console.log(_t);
if(o.design_skin == 'skin-minimal'){
var center_x = _t.offset().left + 50;
var center_y = _t.offset().top + 50;
var mouse_x = e.pageX;
var mouse_y = e.pageY;
var pzero_x = center_x + 50;
var pzero_y = center_y;
//var angle = Math.acos(mouse_x - center_x);
//console.log(pzero_x, pzero_y, mouse_x, mouse_y, center_x, center_y, mouse_x - center_x, angle);
//A = center, B = mousex, C=pointzero
var AB = Math.sqrt(Math.pow((mouse_x - center_x),2) + Math.pow((mouse_y - center_y),2));
var AC = Math.sqrt(Math.pow((pzero_x - center_x),2) + Math.pow((pzero_y - center_y),2));
var BC = Math.sqrt(Math.pow((pzero_x - mouse_x),2) + Math.pow((pzero_y - mouse_y),2));
var angle = Math.acos((AB + AC + BC)/(2*AC*AB));
var angle2 = Math.acos((mouse_x - center_x)/50);
//console.info(AB, AC, BC, angle, (mouse_x - center_x), angle2, Math.PI);
var perc = -(mouse_x - center_x - 50) * 0.005;//angle2 / Math.PI / 2;
if(mouse_y < center_y){
perc = 0.5 + (0.5 - perc)
}
if( !(is_flashplayer==true && is_firefox()) && AB > 20){
seek_to_perc(perc);
return;
}
}
//unghi = acos (x - centruX) = asin(centruY - y)
if(playing==false){
play_media();
}else{
pause_media();
}
}
function handle_end(){
//console.log('end');
seek_to(0); pause_media();
if(typeof(o.parentgallery)!='undefined'){
//console.log(o.parentgallery);
o.parentgallery.get(0).api_handle_end();
}
}
Math.easeOutQuart = function (t, b, c, d) {
t /= d;
t--;
return -c * (t*t*t*t - 1) + b;
};
Math.easeOutQuad = function (t, b, c, d) {
t /= d;
return -c * t*(t-2) + b;
};
function handleResize() {
ww = $(window).width();
tw = cthis.width();
th = cthis.height();
if(_scrubBgCanvas){
canw = _scrubBgCanvas.width();
canh = _scrubBgCanvas.height();
}
// console.info('handleResize', _commentsHolder)
sw = tw;
if(o.design_skin=='skin-default'){
sw = tw;
}
if(o.design_skin=='skin-pro'){
sw = tw;
}
if(o.design_skin=='skin-justthumbandbutton'){
tw = cthis.children('.audioplayer-inner').outerWidth();
sw = tw;
}
if(o.design_skin=='skin-wave'){
sw = _scrubbar.outerWidth(false);
if(_commentsHolder){
_commentsHolder.css({
'width' : sw,
'left' : _scrubbar.offset().left - cthis.offset().left
})
_commentsHolder.addClass('active');
_commentsHolder.find('.a-comment').each(function(){
var _t = $(this);
// console.info(_t, _t.offset(), _t.find('.dzstooltip').eq(0).width(), _t.offset().left + _t.find('.dzstooltip').eq(0).width(), _t.offset().left + _t.find('.dzstooltip').eq(0).width() > ww - 50)
if(_t.offset().left + _t.find('.dzstooltip').eq(0).width() > ww - 50){
_t.find('.dzstooltip').eq(0).addClass('align-right');
}else{
_t.find('.dzstooltip').eq(0).removeClass('align-right');
}
})
}
if(cthis.hasClass('fullflashbackup')){
if(_commentsHolder){
_commentsHolder.css({
'width' : tw-212,
'left' : 212
})
if(tw<=480){
_commentsHolder.css({
'width' : tw-112,
'left' : 112
})
}
_commentsHolder.addClass('active');
}
}
}
//console.info(o.design_skin, tw, sw);
check_time();
if(res_thumbh==true){
// console.info(cthis.get(0).style.height);
if(o.design_skin=='skin-default'){
if(cthis.get(0)!=undefined){
// if the height is auto then
if(cthis.get(0).style.height=='auto'){
cthis.height(200);
}
}
var cthis_height = _audioplayerInner.height();
if(typeof cthis.attr('data-initheight') == 'undefined' && cthis.attr('data-initheight')!=''){
cthis.attr('data-initheight', _audioplayerInner.height());
}else{
cthis_height = Number(cthis.attr('data-initheight'));
}
if(o.design_thumbh=='default'){
design_thumbh = cthis_height - 44;
}
}
_audioplayerInner.find('.the-thumb').eq(0).css({
'height': design_thumbh
})
}
//===display none + overflow hidden hack does not work .. yeah
//console.log(cthis, _scrubbar.children('.scrub-bg').width());
if(cthis.css('display')!='none'){
_scrubbar.find('.scrub-bg-img').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
_scrubbar.find('.scrub-prog-img').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
_scrubbar.find('.scrub-prog-canvas').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
_scrubbar.find('.scrub-prog-img-reflect').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
_scrubbar.find('.scrub-prog-canvas-reflect').eq(0).css({
'width' : _scrubbar.children('.scrub-bg').width()
});
}
cthis.removeClass('under-240 under-400');
if(tw<=240){
cthis.addClass('under-240');
}
if(tw<=400){
cthis.addClass('under-400');
if(_controlsVolume){
if(o.disable_volume=='on'){
_controlsVolume.hide();
}else{
_controlsVolume.hide();
}
}
}else{
if(o.disable_volume=='on'){
_controlsVolume.hide();
}else{
_controlsVolume.show();
}
}
//console.info(_conPlayPause.outerWidth(), o.design_skin);
var aux2 = 50;
if(o.design_skin=='skin-wave'){
//console.info((o.design_thumbw + 20));
controls_left_pos = 0;
if(cthis.find('.the-thumb').length>0){
controls_left_pos += cthis.find('.the-thumb').width() + 20;
}
controls_left_pos += 70;
var sh = _scrubbar.eq(0).height();
if(is_flashplayer && o.settings_backup_type=='full'){
sh = 140;
controls_left_pos = 280;
if(tw<=480){
controls_left_pos = 180;
}
}
if(o.skinwave_mode=='small'){
controls_left_pos-=80;
sh = 5;
controls_left_pos+=13;
_conPlayPause.css({
//'left' : controls_left_pos
})
controls_left_pos+=_conPlayPause.outerWidth() + 10;
}
if(o.skinwave_mode=='small' && is_flashplayer && o.settings_backup_type=='full'){
controls_left_pos = 140;
cthis.find('.meta-artist-con').hide();
}
//== adding the prev and next buttons
if(typeof(o.parentgallery)!='undefined' && o.disable_player_navigation!='on'){
if(o.skinwave_mode!='small') {
if (cthis.find('.prev-btn').eq(0).css('display') != 'none') {
cthis.find('.prev-btn').eq(0).css({
'top': sh + 19
, 'left': controls_left_pos
})
controls_left_pos += 33;
cthis.find('.next-btn').eq(0).css({
'top': sh + 19
, 'left': controls_left_pos
})
controls_left_pos += 40;
}
}
}
if(_metaArtistCon && _metaArtistCon.css('display')!='none'){
if(o.skinwave_mode=='small'){
controls_left_pos+=10;
}
if(!(o.design_skin=='skin-wave' && o.skinwave_mode=='small')) {
_metaArtistCon.css({
'left': controls_left_pos
});
}
controls_left_pos+=_metaArtistCon.outerWidth();
}
controls_right_pos = 0;
if(_controlsVolume && _controlsVolume.css('display')!='none'){
controls_right_pos+=55;
}
cthis.find('.btn-menu-state').eq(0).css({
'right': controls_right_pos
})
if(cthis.find('.btn-menu-state').eq(0).css('display')!='none'){
controls_right_pos += cthis.find('.btn-menu-state').eq(0).outerWidth();
}
if(!o.skinwave_mode=='small') {
cthis.find('.btn-embed-code-con').eq(0).css({
'right': controls_right_pos
})
}
if(cthis.find('.btn-menu-state').eq(0).css('display')!='none'){
controls_right_pos += cthis.find('.btn-menu-state').eq(0).outerWidth();
}
// ---------- calculate dims small
if(o.skinwave_mode=='small'){
controls_left_pos+=10;
_scrubbar.css({
//'left' : controls_left_pos
})
cthis.find('.btn-menu-state').eq(0).css({
'bottom': 'auto'
,'top' : 25
});
sw = ( tw - controls_left_pos - controls_right_pos );
controls_right_pos+=10;
_scrubbar.css({
//'width' : sw
});
_scrubbar.find('.scrub-bg-img').eq(0).css({
'width' : _scrubbar.width()
})
_scrubbar.find('.scrub-prog-img').eq(0).css({
'width' : _scrubbar.width()
})
cthis.find('.comments-holder').eq(0).css({
'width' : _scrubbar.width()
,'left' : controls_left_pos
});
}
}
if(o.design_skin=='skin-pro'){
controls_right_pos = 10;
if(_controlsVolume && _controlsVolume.css('display')!='none'){
controls_right_pos+=60;
}
_totalTime.css({
'left':'auto',
'right':controls_right_pos
})
controls_right_pos+=50;
_currTime.css({
'left':'auto',
'right':controls_right_pos
})
}
if(o.design_skin=='skin-default'){
if(_currTime){
//console.info(o.design_skin, parseInt(_metaArtistCon.css('left'),10) + _metaArtistCon.outerWidth() + 10);
_metaArtistCon_l = parseInt(_metaArtistCon.css('left'),10);
_metaArtistCon_w = _metaArtistCon.outerWidth();
if(_metaArtistCon.css('display')=='none'){
_metaArtistCon_w = 0;
}
if(isNaN(_metaArtistCon_l)){
_metaArtistCon_l = 20;
}
// console.info(o.design_skin, _currTime, _metaArtistCon, _metaArtistCon.css('left'), parseInt(_metaArtistCon.css('left'),10), parseInt(_metaArtistCon.css('left'),10) + _metaArtistCon_w + 10);
_currTime.css({
//'left': _metaArtistCon_l + _metaArtistCon_w + 10
})
_totalTime.css({
//'left': _metaArtistCon_l + _metaArtistCon_w + 55
})
/*
*/
}
}
if(o.design_skin=='skin-minion'){
//console.info();
aux2 = parseInt(_conControls.find('.con-playpause').eq(0).offset().left,10) - parseInt(_conControls.eq(0).offset().left,10) - 18;
_conControls.find('.prev-btn').eq(0).css({
'top':0
,'left':aux2
})
aux2+=36;
_conControls.find('.next-btn').eq(0).css({
'top':0
,'left':aux2
})
}
}
function mouse_volumebar(e){
var _t = $(this);
if(e.type=='mousemove'){
}
if(e.type=='mouseleave'){
}
if(e.type=='click'){
//console.log(_t, _t.offset().left)
aux = (e.pageX - (_controlsVolume.children('.volume_static').offset().left)) / (_controlsVolume.children('.volume_static').width());
set_volume(aux);
muted=false;
}
}
function mouse_scrubbar(e){
var mousex = e.pageX;
if($(e.target).hasClass('sample-block-start') || $(e.target).hasClass('sample-block-end')){
return false;
}
if(e.type=='mousemove'){
_scrubbar.children('.scrubBox-hover').css({
'left' : (mousex - _scrubbar.offset().left)
})
}
if(e.type=='mouseleave'){
}
if(e.type=='click'){
if(audioBuffer){
time_total = audioBuffer.duration;
}
var aux = ((e.pageX - (_scrubbar.offset().left)) / (sw) * time_total);
if(is_flashplayer==true){
aux = (e.pageX - (_scrubbar.offset().left)) / (sw);
}
//console.info(e.target,e.pageX, (_scrubbar.offset().left), (sw), time_total, aux);
if(sample_time_start>0){
aux-=sample_time_start;
}
seek_to(aux);
if(playing==false){
play_media();
}
}
}
function seek_to_perc(argperc){
seek_to((argperc * time_total));
}
function seek_to(arg){
//arg = nr seconds
if(type=='youtube'){
_cmedia.seekTo(arg);
}
if(type=='audio'){
if(audioBuffer!=null){
lasttime_inseconds = arg;
audioCtx.currentTime = lasttime_inseconds;
if(inter_audiobuffer_workaround_id!=0){
time_curr=arg;
}
pause_media({'audioapi_setlasttime':false});
play_media();
}else{
if(is_flashplayer==true){
if(o.settings_backup_type=='light'){
if(str_ie8==''){
eval("_cmedia.fn_seek_to"+cthisId+"("+arg+")");
}
}
play_media();
}else{
_cmedia.currentTime = arg;
}
}
}
}
function set_playback_speed(arg) {
//=== outputs a playback speed from 0.1 to 10
if(type=='youtube') {
_cmedia.setPlaybackRate(arg);
}
if(type=='audio') {
if (is_flashplayer == false) {
_cmedia.playbackRate=arg;
}
}
}
function set_volume(arg){
//=== outputs a volume from 0 to 1
if(type=='youtube'){
_cmedia.setVolume(arg*100);
}
if(type=='audio'){
if(is_flashplayer==true){
if(o.settings_backup_type=='light'){
if(str_ie8==''){
eval("_cmedia.fn_volumeset"+cthisId+"(arg)");
}
}
//play_cmedia();
}else{
_cmedia.volume = arg;
}
}
//console.log(_controlsVolume.children('.volume_active'));
_controlsVolume.children('.volume_active').css({
'width':(_controlsVolume.children('.volume_static').width() * arg)
});
if(o.design_skin=='skin-wave' && o.skinwave_dynamicwaves=='on'){
//console.log(arg);
_scrubbar.find('.scrub-bg-img').eq(0).css({
'transform' : 'scaleY('+arg+')'
})
_scrubbar.find('.scrub-prog-img').eq(0).css({
'transform' : 'scaleY('+arg+')'
})
if(o.skinwave_enableReflect=='on'){
if(arg==0){
cthis.find('.scrub-bg-img-reflect').fadeOut('slow');
}else{
cthis.find('.scrub-bg-img-reflect').fadeIn('slow');
}
}
}
last_vol = arg;
}
function click_mute(){
if(muted==false){
last_vol_before_mute = last_vol;
set_volume(0);
muted=true;
}else{
set_volume(last_vol_before_mute);
muted=false;
}
}
function pause_media(pargs){
var margs = {
'audioapi_setlasttime' : true
};
if(destroyed){ return false; }
if(pargs){
margs = $.extend(margs,pargs);
}
if(o.design_animateplaypause!='on'){
_conPlayPause.children('.playbtn').css({
'display' : 'block'
});
_conPlayPause.children('.pausebtn').css({
'display' : 'none'
});
}else{
_conPlayPause.children('.playbtn').stop().fadeIn('fast');
_conPlayPause.children('.pausebtn').stop().fadeOut('fast');
}
if(type=='youtube'){
_cmedia.pauseVideo();
}
if(type=='audio'){
if(audioBuffer!=null){
//console.log(audioCtx.currentTime, audioBuffer.duration);
//console.log(lasttime_inseconds);
///==== on safari we need to wait a little for the sound to load
if(audioBuffer!='placeholder'){
if(margs.audioapi_setlasttime==true){
lasttime_inseconds = audioCtx.currentTime;
}
//console.log('trebuie doar la pauza', lasttime_inseconds);
webaudiosource.stop(0);
}
}else{
if(is_flashplayer==true && o.settings_backup_type=='light' && cthis.css('display')!='none'){
if(o.settings_backup_type=='light'){
eval("_cmedia.fn_pausemedia"+cthisId+"()");
}
}else{
if(_cmedia){
if(_cmedia.pause!=undefined){
_cmedia.pause();
}
}
}
}
}
playing=false;
cthis.removeClass('is-playing');
}
function play_media(){
//console.log('play_media()');
// console.log(dzsap_list);
for(i=0;i<dzsap_list.length;i++){
// console.info(!is_ie8(), dzsap_list[i].get(0), typeof dzsap_list[i].get(0)!="undefined", typeof dzsap_list[i].get(0).fn_pause_media!="undefined")
if(!is_ie8() && typeof dzsap_list[i].get(0)!="undefined" && typeof dzsap_list[i].get(0).fn_pause_media!="undefined"){
// console.info(dzsap_list[i].get(0))
dzsap_list[i].get(0).fn_pause_media({'audioapi_setlasttime':false});
}
}
//console.info(o.google_analytics_send_play_event, window._gaq, google_analytics_sent_play_event);
if(o.google_analytics_send_play_event=='on' && window._gaq && google_analytics_sent_play_event==false){
//if(window.console){ console.info( 'sent event'); }
window._gaq.push(['_trackEvent', 'ZoomSounds Play', 'Play', 'zoomsounds play - '+cthis.attr('data-source')]);
google_analytics_sent_play_event = true;
}
//===media functions
if(type=='youtube'){
_cmedia.playVideo();
}
if(type=='audio'){
//console.log('ceva', type, audioBuffer, is_flashplayer);
if(audioBuffer!=null){
//console.log(audioBuffer);
///==== on safari we need to wait a little for the sound to load
if(audioBuffer!='placeholder'){
webaudiosource = audioCtx.createBufferSource();
webaudiosource.buffer = audioBuffer;
//javascriptNode.connect(audioCtx.destination);
webaudiosource.connect(audioCtx.destination);
webaudiosource.connect(analyser)
//analyser.connect(audioCtx.destination);
//console.log("play ctx", lasttime_inseconds);
webaudiosource.start(0, lasttime_inseconds);
}else{
return;
}
}else{
if(is_flashplayer==true && cthis.css('display')!='none'){
//alert("_cmedia.fn_playMedia"+cthisId+"()");
//console.log(cthis);
if(o.settings_backup_type=='light'){
eval("_cmedia.fn_playmedia"+cthisId+"()");
}
}else{
if(_cmedia){
if(typeof _cmedia.play!= 'undefined'){
_cmedia.play();
}
}
}
}
}
if(o.design_animateplaypause!='on'){
_conPlayPause.children('.playbtn').css({
'display' : 'none'
});
_conPlayPause.children('.pausebtn').css({
'display' : 'block'
});
}else{
_conPlayPause.children('.playbtn').stop().fadeOut('fast');
_conPlayPause.children('.pausebtn').stop().fadeIn('fast');
}
playing=true;
cthis.addClass('is-playing');
//console.info(ajax_view_submitted);
if(ajax_view_submitted=='off'){
ajax_submit_views();
}
}
function formatTime(arg) {
//formats the time
var s = Math.round(arg);
var m = 0;
if (s > 0) {
while (s > 59) {
m++;
s -= 60;
}
return String((m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s);
} else {
return "00:00";
}
}
return this;
})
}
window.dzsap_init = function(selector, settings) {
if(typeof(settings)!="undefined" && typeof(settings.init_each)!="undefined" && settings.init_each==true ){
var element_count = 0;
for (e in settings) { element_count++; }
if(element_count==1){
settings = undefined;
}
$(selector).each(function(){
var _t = $(this);
_t.audioplayer(settings)
});
}else{
$(selector).audioplayer(settings);
}
};
//////=======
// AUDIO GALLERY
/////========
$.fn.audiogallery = function(o) {
var defaults = {
design_skin: 'skin-default'
,cueFirstMedia : 'on'
,autoplay: 'off'
,autoplayNext: 'on'
,design_menu_position: 'bottom'
,design_menu_state: 'open'
,design_menu_show_player_state_button: 'off'
,design_menu_width: 'default'
,design_menu_height: '200'
,design_menu_space: 'default'
,design_menuitem_width: 'default'
,design_menuitem_height: 'default'
,design_menuitem_space: 'default'
,disable_menu_navigation: 'off'
,enable_easing: 'off'// -- enable easing for menu animation
,settings_ap: {}
,transition: 'direct' //fade or direct
,embedded: 'off'
}
if(typeof o =='undefined'){
if(typeof $(this).attr('data-options')!='undefined' && $(this).attr('data-options')!=''){
var aux = $(this).attr('data-options');
aux = 'var aux_opts = ' + aux;
eval(aux);
o = aux_opts;
}
}
Math.easeIn = function(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
};
o = $.extend(defaults, o);
this.each(function() {
var cthis = $(this);
var cchildren = cthis.children()
,cthisId = 'ag1'
;
var currNr = -1 //===the current player that is playing
,lastCurrNr = 0
,tempNr = 0
;
var busy = true;
var i = 0;
var ww
, wh
, tw
, th
,n_maindim // the navmain main dimension for scrolling
,nc_maindim
,sw = 0//scrubbar width
,sh
,spos = 0 //== scrubbar prog pos
;
var _sliderMain
,_sliderClipper
,_navMain
,_navClipper
,_cache
;
var busy = false
,playing = false
,muted = false
,loaded=false
,first=true
;
var time_total = 0
,time_curr=0
;
var last_vol = 1
,last_vol_before_mute = 1
;
var inter_check
,inter_checkReady
;
var skin_minimal_canvasplay
,skin_minimal_canvaspause
;
var is_flashplayer = false
;
var data_source
;
var aux_error = 20;//==erroring for the menu scroll
var res_thumbh = false;
var str_ie8 = '';
var arr_menuitems = [];
var str_alertBeforeRate = 'You need to comment or rate before downloading.';
var duration_viy = 20
;
var target_viy = 0
;
var begin_viy = 0
;
var finish_viy = 0
;
var change_viy = 0
;
if(window.dzsap_settings && typeof( window.dzsap_settings.str_alertBeforeRate)!='undefined'){
str_alertBeforeRate = window.dzsap_settings.str_alertBeforeRate;
}
init();
function init(){
if(o.design_menu_width=='default'){
o.design_menu_width = '100%';
}
if(o.design_menu_height=='default'){
o.design_menu_height = '200';
}
cthis.append('<div class="slider-main"><div class="slider-clipper"></div></div>');
cthis.addClass('menu-position-'+ o.design_menu_position);
_sliderMain = cthis.find('.slider-main').eq(0);
var auxlen = cthis.find('.items').children().length;
// --- if there is a single audio player in the gallery - theres no point of a menu
if(auxlen==0 || auxlen==1){
o.design_menu_position = 'none';
o.settings_ap.disable_player_navigation = 'on';
}
if(o.design_menu_position=='top'){
_sliderMain.before('<div class="nav-main"><div class="nav-clipper"></div></div>');
}
if(o.design_menu_position=='bottom'){
_sliderMain.after('<div class="nav-main"><div class="nav-clipper"></div></div>');
}
_sliderClipper = cthis.find('.slider-clipper').eq(0);
_navMain = cthis.find('.nav-main').eq(0);
_navClipper = cthis.find('.nav-clipper').eq(0);
for(i=0;i<auxlen;i++){
arr_menuitems.push(cthis.find('.items').children().eq(0).find('.menu-description').html())
//cthis.find('.items').children().eq(0).find('.menu-description').remove();
_sliderClipper.append(cthis.find('.items').children().eq(0));
}
//console.info(arr_menuitems);
for(i=0;i<arr_menuitems.length;i++){
var extra_class = '';
if(arr_menuitems[i] && arr_menuitems[i].indexOf('<div class="menu-item-thumb-con"><div class="menu-item-thumb" style="')==-1){
extra_class += ' no-thumb';
}
_navClipper.append('<div class="menu-item'+extra_class+'">'+arr_menuitems[i]+'</div>')
}
if(o.disable_menu_navigation=='on'){
_navMain.hide();
}
// console.info(o.design_menu_height, o.design_menu_state);
_navMain.css({
'height' : o.design_menu_height
})
if(is_ios() || is_android()){
_navMain.css({
'overflow':'auto'
})
}
if(o.design_menu_state=='closed'){
_navMain.css({
'height' : 0
})
}
if(cthis.css('opacity')==0){
cthis.animate({
'opacity' : 1
}, 1000);
}
$(window).bind('resize', handleResize);
handleResize();
setTimeout(handleResize, 1000);
goto_item(tempNr);
_navClipper.children().bind('click', click_menuitem);
cthis.find('.download-after-rate').bind('click', click_downloadAfterRate);
cthis.get(0).api_goto_next = goto_next;
cthis.get(0).api_goto_prev = goto_prev;
cthis.get(0).api_handle_end = handle_end;
cthis.get(0).api_toggle_menu_state = toggle_menu_state;
cthis.get(0).api_handleResize = handleResize;
cthis.get(0).api_player_commentSubmitted = player_commentSubmitted;
cthis.get(0).api_player_rateSubmitted = player_rateSubmitted;
setTimeout(init_loaded, 700);
if(o.enable_easing=='on'){
handle_frame();
}
//console.info(cthis);
cthis.addClass('dzsag-inited');
}
function init_loaded(){
cthis.addClass('dzsag-loaded');
}
function click_downloadAfterRate(){
var _t = $(this);
if(_t.hasClass('active')==false){
alert(str_alertBeforeRate)
return false;
}
}
function handle_frame(){
if(isNaN(target_viy)){
target_viy=0;
}
if(duration_viy===0){
requestAnimFrame(handle_frame);
return false;
}
begin_viy = target_viy;
change_viy = finish_viy - begin_viy;
//console.info('handle_frame', finish_viy, duration_viy, target_viy);
//console.log(duration_viy);
target_viy = Number(Math.easeIn(1, begin_viy, change_viy, duration_viy).toFixed(4));;
_navClipper.css({
'transform': 'translateY('+target_viy+'px)'
});
//console.info(_blackOverlay,target_bo);;
requestAnimFrame(handle_frame);
}
function toggle_menu_state(){
if(_navMain.height()==0){
_navMain.css({
'height' : o.design_menu_height
})
}else{
_navMain.css({
'height' : 0
})
}
setTimeout(function(){
handleResize();
}, 400); // -- animation delay
}
function handle_end(){
goto_next();
}
function player_commentSubmitted(){
_navClipper.children('.menu-item').eq(currNr).find('.download-after-rate').addClass('active');
}
function player_rateSubmitted(){
_navClipper.children('.menu-item').eq(currNr).find('.download-after-rate').addClass('active');
}
function calculateDims(){
// console.info('calculateDims');
_sliderClipper.css('height', _sliderClipper.children().eq(currNr).height());
// _navMain.show();
n_maindim = _navMain.height();
nc_maindim = _navClipper.outerHeight();
// return;
// console.info(nc_maindim, n_maindim)
if(nc_maindim > n_maindim && n_maindim>0){
_navMain.unbind('mousemove', navMain_mousemove);
_navMain.bind('mousemove', navMain_mousemove);
}else{
_navMain.unbind('mousemove', navMain_mousemove);
}
if(o.embedded=='on'){
// console.info(window.frameElement)
if(window.frameElement){
window.frameElement.height = cthis.height();
// console.info(window.frameElement.height, cthis.outerHeight())
}
}
}
function navMain_mousemove(e){
var _t = $(this);
var mx = e.pageX - _t.offset().left;
var my = e.pageY - _t.offset().top;
// console.info(nc_maindim, n_maindim, nc_maindim <= n_maindim);
if(nc_maindim <= n_maindim){
return;
}
n_maindim = _navMain.outerHeight();
//console.log(mx);
var vix = 0;
var viy = 0;
viy = (my / n_maindim) * -(nc_maindim - n_maindim+10 + aux_error*2) + aux_error;
//console.log(viy);
if(viy>0){
viy = 0;
}
if(viy < -(nc_maindim - n_maindim+10)){
viy = -(nc_maindim - n_maindim+10);
}
finish_viy = viy;
//console.log(viy, nc_maindim, n_maindim, (my / n_maindim))
if(o.enable_easing!='on'){
_navClipper.css({
'transform': 'translateY('+finish_viy+'px)'
});
}
}
function click_menuitem(e){
var _t = $(this);
var ind = _t.parent().children().index(_t);
goto_item(ind);
}
function handleResize(){
setTimeout(function(){
//console.info(_sliderClipper.children().eq(currNr), _sliderClipper.children().eq(currNr).height())
_sliderClipper.css('height', _sliderClipper.children().eq(currNr).height());
},500);
calculateDims();
}
function transition_end(){
_sliderClipper.children().eq(lastCurrNr).hide();
lastCurrNr = currNr;
busy= false;
}
function transition_bg_end(){
cthis.parent().children('.the-bg').eq(0).remove();
busy= false;
}
function goto_prev(){
tempNr = currNr;
tempNr--;
if(tempNr<0){
tempNr = _sliderClipper.children().length-1;
}
goto_item(tempNr);
}
function goto_next(){
tempNr = currNr;
tempNr++;
if(tempNr>=_sliderClipper.children().length){
tempNr = 0;
}
goto_item(tempNr);
}
function goto_item(arg){
if(busy==true){
return;
}
if(currNr==arg){
return;
}
_cache = _sliderClipper.children().eq(arg);
if(currNr>-1){
if(typeof(_sliderClipper.children().eq(currNr).get(0))!='undefined'){
if(typeof(_sliderClipper.children().eq(currNr).get(0).fn_pause_media)!='undefined'){
_sliderClipper.children().eq(currNr).get(0).fn_pause_media();
}
}
if(o.transition=='fade'){
_sliderClipper.children().eq(currNr).removeClass('active');
_navClipper.children().eq(currNr).removeClass('active');
_sliderClipper.children().eq(currNr).css({
'position':'absolute'
,'left' : 0
,'top' : 0
})
_sliderClipper.children().eq(currNr).animate({
},{queue:false });
setTimeout(transition_end, 300);
}
if(o.transition=='direct'){
transition_end();
}
}
//============ setting settings
if(o.settings_ap.design_skin == 'sameasgallery'){
o.settings_ap.design_skin = o.design_skin;
}
//===if this is the first audio
if(currNr == -1 && o.autoplay=='on'){
o.settings_ap.autoplay = 'on';
}
//===if this is not the first audio
if(currNr > -1 && o.autoplayNext=='on'){
o.settings_ap.autoplay = 'on';
}
o.settings_ap.parentgallery = cthis;
o.settings_ap.design_menu_show_player_state_button = o.design_menu_show_player_state_button;
o.settings_ap.cue = 'on';
if(first==true){
if(o.cueFirstMedia=='off'){
o.settings_ap.cue = 'off';
}
first = false;
}
//============ setting settings END
if(_cache.hasClass('audioplayer-tobe')){
_cache.audioplayer(o.settings_ap);
}
if(o.autoplayNext=='on'){
if(currNr>-1 && _cache.get(0) && _cache.get(0).api_play){
_cache.get(0).api_play();
}
}
if(o.transition=='fade'){
_cache.css({
'position':'absolute'
,display:'block'
,'left' : 0
,'top' : 0
})
_cache.animate({
},{queue:false})
}
if(o.transition=='direct'){
}
_cache.addClass('active');
_navClipper.children().eq(arg).addClass('active');
if(_cache.attr("data-bgimage")!=undefined && cthis.parent().hasClass('ap-wrapper') && cthis.parent().children('.the-bg').length>0){
cthis.parent().children('.the-bg').eq(0).after('<div class="the-bg" style="background-image: url('+_cache.attr("data-bgimage")+');"></div>')
cthis.parent().children('.the-bg').eq(0).css({
'opacity':1
})
cthis.parent().children('.the-bg').eq(1).css({
'opacity':0
})
cthis.parent().children('.the-bg').eq(1).animate({
'opacity':1
},{queue:false, duration:1000, complete:transition_bg_end, step:function(){
busy=true;
} })
busy=true;
}
currNr = arg;
calculateDims();
}
});
}
window.dzsag_init = function(selector, settings) {
if(typeof(settings)!="undefined" && typeof(settings.init_each)!="undefined" && settings.init_each==true ){
var element_count = 0;
for (e in settings) { element_count++; }
if(element_count==1){
settings = undefined;
}
$(selector).each(function(){
var _t = $(this);
_t.audiogallery(settings)
});
}else{
$(selector).audiogallery(settings);
}
};
})(jQuery);
jQuery(document).ready(function($){
//console.info($('.zoomvideogallery.auto-init'));
dzsap_init('.audioplayer-tobe.auto-init', {init_each: true});
dzsag_init('.audiogallery.auto-init', {init_each: true});
$('.audioplayer-song-changer').bind('click', function(){
var _t = $(this);
//console.info()
var _c = $(_t.attr('data-target')).eq(0);
//console.info(_t, _t.attr('data-target'), _c, _c.get(0));
if(_c && _c.get(0) && _c.get(0).api_change_media){
_c.get(0).api_change_media(_t);
}
return false;
})
});
function is_ios() {
return ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) || (navigator.platform.indexOf("iPad") != -1)
);
}
function is_android() {
//return false;
//return true;
var ua = navigator.userAgent.toLowerCase();
return (ua.indexOf("android") > -1);
}
function is_ie() {
if (navigator.appVersion.indexOf("MSIE") != -1) {
return true;
}
;
return false;
}
;
function is_firefox() {
if (navigator.userAgent.indexOf("Firefox") != -1) {
return true;
}
;
return false;
}
;
function is_opera() {
if (navigator.userAgent.indexOf("Opera") != -1) {
return true;
}
;
return false;
}
;
function is_chrome() {
return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
}
;
function is_safari() {
return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
}
function version_ie() {
return parseFloat(navigator.appVersion.split("MSIE")[1]);
}
;
function version_firefox() {
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
var aversion = new Number(RegExp.$1);
return(aversion);
}
;
}
;
function version_opera() {
if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
var aversion = new Number(RegExp.$1);
return(aversion);
}
;
}
;
function is_ie8() {
if (is_ie() && version_ie() < 9) {
return true;
}
return false;
}
function is_ie9() {
if (is_ie() && version_ie() == 9) {
return true;
}
return false;
}
function can_play_mp3(){
var a = document.createElement('audio');
return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
}
function can_canvas(){
// check if we have canvas support
var oCanvas = document.createElement("canvas");
if (oCanvas.getContext("2d")) {
return true;
}
return false;
}
function onYouTubeIframeAPIReady() {
for(i=0;i<dzsap_list.length;i++){
//console.log(dzsap_list[i].get(0).fn_yt_ready);
if(dzsap_list[i].get(0)!=undefined && typeof dzsap_list[i].get(0).fn_yt_ready!='undefined'){
dzsap_list[i].get(0).fn_yt_ready();
}
}
}
jQuery.fn.textWidth = function(){
var _t = jQuery(this);
var html_org = _t.html();
if(_t[0].nodeName=='INPUT'){
html_org = _t.val();
}
var html_calcS = '<span class="forcalc">' + html_org + '</span>';
jQuery('body').append(html_calcS);
var _lastspan = jQuery('span.forcalc').last();
//console.log(_lastspan, html_calc);
_lastspan.css({
'font-size' : _t.css('font-size')
,'font-family' : _t.css('font-family')
})
var width =_lastspan.width() ;
//_t.html(html_org);
_lastspan.remove();
return width;
};
window.requestAnimFrame = (function() {
//console.log(callback);
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(/* function */callback, /* DOMElement */element) {
window.setTimeout(callback, 1000 / 60);
};
})();
var MD5 = function (string) {
//==== snippet from http://css-tricks.com/ - author unknown
function RotateLeft(lValue, iShiftBits) {
return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
}
function AddUnsigned(lX,lY) {
var lX4,lY4,lX8,lY8,lResult;
lX8 = (lX & 0x80000000);
lY8 = (lY & 0x80000000);
lX4 = (lX & 0x40000000);
lY4 = (lY & 0x40000000);
lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
if (lX4 & lY4) {
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
}
if (lX4 | lY4) {
if (lResult & 0x40000000) {
return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
} else {
return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
}
} else {
return (lResult ^ lX8 ^ lY8);
}
}
function F(x,y,z) { return (x & y) | ((~x) & z); }
function G(x,y,z) { return (x & z) | (y & (~z)); }
function H(x,y,z) { return (x ^ y ^ z); }
function I(x,y,z) { return (y ^ (x | (~z))); }
function FF(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function GG(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function HH(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function II(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function ConvertToWordArray(string) {
var lWordCount;
var lMessageLength = string.length;
var lNumberOfWords_temp1=lMessageLength + 8;
var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
var lWordArray=Array(lNumberOfWords-1);
var lBytePosition = 0;
var lByteCount = 0;
while ( lByteCount < lMessageLength ) {
lWordCount = (lByteCount-(lByteCount % 4))/4;
lBytePosition = (lByteCount % 4)*8;
lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
lByteCount++;
}
lWordCount = (lByteCount-(lByteCount % 4))/4;
lBytePosition = (lByteCount % 4)*8;
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
lWordArray[lNumberOfWords-2] = lMessageLength<<3;
lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
return lWordArray;
};
function WordToHex(lValue) {
var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
for (lCount = 0;lCount<=3;lCount++) {
lByte = (lValue>>>(lCount*8)) & 255;
WordToHexValue_temp = "0" + lByte.toString(16);
WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
}
return WordToHexValue;
};
function Utf8Encode(string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
};
var x=Array();
var k,AA,BB,CC,DD,a,b,c,d;
var S11=7, S12=12, S13=17, S14=22;
var S21=5, S22=9 , S23=14, S24=20;
var S31=4, S32=11, S33=16, S34=23;
var S41=6, S42=10, S43=15, S44=21;
string = Utf8Encode(string);
x = ConvertToWordArray(string);
a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
for (k=0;k<x.length;k+=16) {
AA=a; BB=b; CC=c; DD=d;
a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
d=GG(d,a,b,c,x[k+10],S22,0x2441453);
c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
a=II(a,b,c,d,x[k+0], S41,0xF4292244);
d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
c=II(c,d,a,b,x[k+6], S43,0xA3014314);
b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
a=AddUnsigned(a,AA);
b=AddUnsigned(b,BB);
c=AddUnsigned(c,CC);
d=AddUnsigned(d,DD);
}
var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
return temp.toLowerCase();
};
function formatTime(arg) {
//formats the time
var s = Math.round(arg);
var m = 0;
if (s > 0) {
while (s > 59) {
m++;
s -= 60;
}
return String((m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s);
} else {
return "00:00";
}
}
dzsag_init