Вход Регистрация
Файл: js/al/audioplayer.js
Строк: 1652
<?php
var oldAudioPlayer window.audioPlayer || {};
var 
audioPlayer = {
  
idoldAudioPlayer.id || null,
  
controlsoldAudioPlayer.controls || null,
  
playeroldAudioPlayer.player || null,
  
lastSongoldAudioPlayer.lastSong || null,
  
eventsInitedoldAudioPlayer.eventsInited || null,
  
statusExportoldAudioPlayer.statusExport || null,
  
addHasholdAudioPlayer.addHash || null,
  
volW33,
  
prX14,
  
gpSz330,
  
gpMinW154,
  
gpMaxW553,
  
prStep10,
  
images: {
    
icon'/images/favicon' + (vk.intnat '_vk' 'new') + '.ico',
    
playicon'/images/playiconnew'+(window.devicePixelRatio >= '_2x' '')+'.ico',
    
pauseicon'/images/pauseiconnew'+(window.devicePixelRatio >= '_2x' '')+'.ico'
  
},
  
songInfos: {},
  
shareMusic: function() {
    var 
mus = ((window._pads && _pads.shown == 'mus' && audioPlayer.isPlaylistGlobal() ? ls.get('audio_id') : null) || currentAudioId() || (audioPlayer.lastSong && audioPlayer.lastSong.aid) || (cur.defaultTrack && cur.defaultTrack.id) || window.audioPlaylist && audioPlaylist.start || '').match(/^(-?d+_d+)/);
    if (!
mus) return;
    return !
showBox('like.php', {act'publish_box'object'audio' mus[1], to'mail'}, {stat: ['page.js''page.css''wide_dd.js''wide_dd.css''sharebox.js']});
  },
  
initPlayer: function(id) {
    var 
_a audioPlayer;
    var 
html5AudioSupport false;
    try {
      var 
audioObj ce('audio');
      if ((
'no' != audioObj.canPlayType('audio/mpeg')) && ('' != audioObj.canPlayType('audio/mpeg'))) html5AudioSupport=true;
    } catch (
e){}
    if (
browser.mobile || browser.msie6_a.gpDisabled true;
    if (
browser.flash >= && !(browser.mac && (browser.chrome || browser.safari) && html5AudioSupport)) {
      var 
opts = {
        
url'/swf/audio_lite.swf',
        
id'player',
        
height2
      
}
      var 
params = {
        
swliveconnect'true',
        
allowscriptaccess'always',
        
wmode'opaque'
      
}
      var 
vars = {
        
onLoadComplete'audioPlayer.onLoadComplete',
        
onError'audioPlayer.onError',
        
onPlayFinish'audioPlayer.onPlayFinish',
        
onLoadProgress'audioPlayer.onLoadProgress',
        
onPlayProgress'audioPlayer.onPlayProgress'
      
}
      var 
'flash_audio';
      if (!
ge(t)) document.body.appendChild(ce('div',{idtclassName'fixed'}));
      if (
renderFlash(toptsparamsvars)) {
        
setTimeout(function(){_a.checkFlashLoaded(id);},50);
      }
    } else {
      if (
html5AudioSupport) {
        var 
'html5_audio';
        if (!
ge(t)) document.body.appendChild(ce('audio',{idt}));
        
stManager.add('audio_html5.js',function(){
          
_a.isHTML5 true;
          
_a.setPlayer(audio_html5id);
        });
      } else {
        
_a.setPlayer(null,id);
      }
    }
    if (!
_a.eventsInited_a.initEvents();
    if (!
ge('gp') && !_a.gpDisabled) {
      
document.body.appendChild(ce('div', {id'gp'className'fixed'}));
      
addEvent(ge('gp'), 'dragstart', function() {return false;});
      
addEvent(ge('gp'), 'selectstart', function() {return false;});
      
ge('gp').innerHTML '<div class="wrap" onmouseover="addClass(this, 'over');" onmouseout="removeClass(this, 'over');">
  <div id="gp_back"><div><!-- --></div></div>
  <div id="gp_wrap">
    <div class="audio" id="audio_global">
      <div id="gp_small">
        <div id="gp_play_btn" class="fl_l"></div>
        <div id="gp_info" class="fl_l" onmouseover="if (!vk.id) return; Pads.preload('
mus')" onclick="if (!vk.id) return; window._pads.gpClicked = true; Pads.show('mus', event)">
          <div id="gp_performer"></div>
          <div id="gp_title"></div>
        </div>
      </div>
    </div>
  </div>
</div>'
;
      
toggle('gp', !_a.gpHidden && !cur.gpHidden);
      var 
barHeight getXY('page_layout')[1];
      var 
headFixed ge('head_play_btn') && getStyle(ge('page_header'), 'position') == 'fixed',
        
gpTop headFixed || scrollGetY() < 29 barHeight 49 barHeight 20;
      
setStyle(gp, {topgpTop});
      
// toggleClass(gp, 'z_index', !browser.mac);
    
}
  },
  
initEvents: function() {
    var 
_n window.Notifier_a audioPlayer;
    if (
_a.eventsInited) return;
    if (
_n) {
      
_n.addRecvClbk('audio_start''audio', function(data) {
        var 
_a window.audioPlayer;
        if (
_a) {
          if (
_a.player && !_a.player.paused()) _a.pauseTrack();
          
_a.pausedByVideo null;
          if (
window.Pads && window._pads && _pads.shown == 'mus') {
            
Pads.hide();
          }
        }
      });
      
_n.addRecvClbk('audio_mediakey''audio'this.keyPressed.pbind(true));
      
_n.addRecvClbk('video_start''audio', function (data) {
        var 
_a window.audioPlayer;
        if (
_a && _a.player && !_a.player.paused()) {
          
_a.pauseTrack();
          
_a.pausedByVideo 1;
        }
      });
      
_n.addRecvClbk('video_hide''audio', function (data) {
        var 
_a window.audioPlayer;
        if (
_a) {
          if (
_a.player && _a.player.paused() && _a.pausedByVideo_a.playTrack();
          
_a.pausedByVideo null;
        }
      });
      
_n.addRecvClbk('videocall_start''audio', function (data) {
        var 
_a window.audioPlayer;
        if (
_a && _a.player && !_a.player.paused()) {
          
_a.pauseTrack();
          
_a.pausedByVideo 1;
        }
      });
      
_n.addRecvClbk('videocall_end''audio', function (data) {
        var 
_a window.audioPlayer;
        if (
_a) {
          if (
_a.player && _a.player.paused() && _a.pausedByVideo_a.playTrack();
          
_a.pausedByVideo null;
        }
      });
    }
    
addEvent(document'mouseup'_a.mouseUp);
    
addEvent(document'mousemove'_a.mouseMove);
    
_a.timeLeft intval(getCookie('audio_time_left') || 1);
    if (
cur.hashes && cur.hashes.add_hash && !_a.addHash) {
      
_a.addHash cur.hashes.add_hash;
    }

    
_a.eventsInited true;
  },
  
checkFlashLoaded: function(id) {
    var 
player=ge("player");
    var 
_a=audioPlayer;
    if (
player && player.paused_a.setPlayer(player,id);
    else 
setTimeout(function(){_a.checkFlashLoaded(id);},50);
  },
  
hasStatusExport: function() {
    var 
_a audioPlayer;
    
_a.statusExport _a.statusExport || {};
    for (var 
i in _a.statusExport) {
      if (
_a.statusExport[i]) return true;
    }
    return 
false;
  },
  
setPlayer: function(elementid) {
    if (
element) {
      var 
_a audioPlayer;
      
_a.player element;
      var 
volume browser.mobile 80 parseInt(getCookie('audio_vol'));
      if (!
isNaN(volume)) _a.player.setVolume(volume 100);
      
_a.operate(idtrue);
      if (!
_a.gotData) {
        
_a.gotData = -1;
        
ajax.post('audio', {act'get_data'}, {
          
onDone: function(hashexplangs) {
            
window.lang extend(window.lang || {}, langs);
            
_a.addHash hash;
            
_a.statusExport exp && !_a.hasStatusExport() ? exp _a.statusExport || {};
            
checkbox('currinfo_audio'_a.hasStatusExport());
            if (
_a.hasStatusExport()) {
              
_a.playback(_a.paused);
              
_a.showCurrentTrack();
            }
            
_a.gotData 1;
          }
        })
      }
    } else {
      var 
message getLang('audio_you_need_flash') + '<br/><br/>' getLang('audio_do_you_want_flash');
      
showFastBox({titlegetLang('audio_need_flash_title')}, messagegetLang('share_go'), function() {
        
document.location 'http://get.adobe.com/flash/';
      }, 
getLang('global_cancel'));
      
_a.gpHidden true;
    }
  },
  
setIcon: function(icon) {
    
setFavIcon(audioPlayer.images[icon]);
  },
  
getSongInfoFromDOM: function(aid) {
    var 
arttitlenfo geByClass1('info'ge('audio' aid)), full_id aidl;
    if (!
nfo) {
      
nfo geByClass1('info'ge('audio' aid '_pad'));
    }
    if (!
ge('audio_info' aid)) return null;
    
art geByTag1('b'nfo);
    
geByTag1('a'art);
    if (
lart l;
    var 
reArr = ['<span>''</span>''<span class="match">''<font>''</font>'], re = new RegExp(reArr.join('|'), "gi");
    
art art.innerHTML.replace(re'');
    
title geByClass1('title'nfo);
    if (!
titletitle ge('title' aid);
    
geByTag1('a'title);
    if (
ltitle l.innerHTML;
    else 
title title.innerHTML;
    
title title.replace(re'');
    var 
data ge('audio_info' aid).value.split(','), url data[0], duration parseInt(data[1]);
    
dur audioPlayer.formatTime(duration);
    
data aid.split('_');
    var 
oid data[0], aid data[1], res = {
      
0oid,
      
1aid,
      
2url,
      
3duration,
      
4dur,
      
5art,
      
6title,
      
70,
      
80,
      
9oid != vk.id 0
    
};
    
res.full_id full_id;
    return 
res;
  },
  
setSongInfo: function() {
    var 
_a audioPlayeraid currentAudioId(), pl;

    if (
window.Pads && Pads.audioSearchCleared && (pl cur.nextPlaylist) && pl[aid]) {
      
_a.lastSong pl[aid];
    } else if ((
pl padAudioPlaylist()) && pl[aid]) {
      
_a.lastSong pl[aid];
    } else if (
_a.songInfos[aid]) {
      
_a.lastSong _a.songInfos[aid];
    } else if (
cur.defaultTrack && cur.defaultTrack.id == aid) {
      
_a.lastSong cur.defaultTrack;
    } else {
      
_a.lastSong _a.getSongInfoFromDOM(aid);
    }
    if (!
_a.lastSong) return;
    
ls.set('pad_lastsong'_a.lastSong);
    
_a.lastSong.aid aid;
  },
  
updateURL: function(full_idaudio_idurlduration) {
    if (
ge('audio_info'+full_id)) {
      
ge('audio_info'+full_id).value url+','+duration;
    }
    if (
window.cur && cur.audios && cur.audios[audio_id]) {
      
cur.audios[audio_id][2] = url;
      
cur.audios[audio_id][3] = duration;
    }
    if (
window.audioPlaylist && window.audioPlaylist[full_id]) {
      
window.audioPlaylist[full_id][2] = url;
      
window.audioPlaylist[full_id][3] = duration;
    }
    var 
pad_plist ls.get('pad_playlist');
    if (
pad_plist && pad_plist[full_id]) {
      
this.setPadPlaylist(window.audioPlaylist);
    }
    if (
window.cur && cur.nextPlaylist && cur.nextPlaylist[full_id]) {
      
cur.nextPlaylist[full_id][2] = url;
      
cur.nextPlaylist[full_id][3] = duration;
    }
  },
  
reloadPlaylist: function() {
    if (
window.cur && cur.audiosReloadedAll) return;
    if (
window.audioPlaylist || window.cur && cur.audiosList && cur.audiosList['all'] && cur.oid) {
      var 
_a audioPlayer;
      var 
query = {act'reload_playlist'};
      if (
window.audioPlaylist) {
        var 
= [];
        var 
00;
        for (var 
audio in window.audioPlaylist) {
          if (
>= 100) { 0i++; }
          if (!
q[i]) q[i] = [];
          
q[i].push(audio);
          
j++;
        }
        for (var 
i in q) {
          
q[i] = q[i].join(',');
        }
        for (var 
i in q) {
          
query['l['+i+']'] = q[i];
        }
      }
      if (
window.cur && cur.audiosList && cur.audiosList['all'] && cur.oid) {
        
query['oid'] = cur.oid;
      }
      
ajax.post('audio'query, {onDone: function(list) {
        if (list) for (var 
i in list) {
          var 
= list[i];
          var 
audio_id i.split('_')[1];
          
_a.updateURL(iaudio_ida[0], a[1]);
        }
        if (!
window.curwindow.cur = {};
        
cur.audiosReloadedAll true;
        
setTimeout(function(){delete cur.audiosReloadedAll;}, 60000);
      }});
    }
  },
  
reloadAudio: function(id) {
    
ids id.split('_');
    if (
window.cur && (cur.audiosReloadedAll || cur.audiosReloaded && cur.audiosReloaded[id])) {
      
setTimeout(showFastBox({titlegetLang('global_error')}, getLang('audio_error_loading'), getLang('global_close')).hide2000);
    } else {
      
ajax.post('audio', {act'reload_audio'owner_idids[0], audio_idids[1]}, {onDone: function(res) {
        if (
res) {
          var 
_a audioPlayer;
          
_a.updateURL(idids[1], res[0], res[1]);
          
_a.setSongInfo();
          
_a.duration res[1];
          
_a.player.loadAudio(res[0]);
          
_a.setControlsTitle();
          
_a.setGraphics('load');
          
_a.playback();
        }
        if (!
window.curwindow.cur = {};
        if (!
cur.audiosReloadedcur.audiosReloaded = {};
        
cur.audiosReloaded[id] = true;
        
setTimeout(function(){delete cur.audiosReloaded[id];}, 60000);
      }});
    }
  },
  
sendNotification: function(data) {
    var 
_n window.Notifier;
    if (
_n_n.lcSend('audio_start'data);
    try {
      if (
ge('video_player') && ge('video_player').playVideoge('video_player').playVideo(false);
    } catch(
e) {}
  },
  
setAid: function(aid) {
    
audioPlayer.id aid;
    
ls.set('audio_id'aid);
  },
  
operate: function(idnextPlaylistopts) {
    var 
_a audioPlayeraid currentAudioId();

    if (
opts && opts.songInfo) {
      
_a.songInfos[id] = opts.songInfo;
    }
    if (!
_a.player || (!ge('flash_audio') && !ge('html5_audio'))) {
      
_a.initPlayer(id);
      return;
    }

    if (
aid == id) {
      if (
_a.player.paused()) {
        
_a.sendNotification({idid});
        if (
_a.pausedByVideo_a.pausedByVideo null;
        if (
_a.time != undefined) {
          try {
_a.player.playAudio(_a.time)}catch(e){};
          
_a.time null;
        } else 
_a.player.playAudio();
        
_a.setGraphics('play');
        
_a.playback();
        if (!
nextPlaylist && (cur.module == 'audio' || window._pads && _pads.shown == 'mus')) {
          if (
ge('audio' aid)) _a.scrollToTrack(aid);
        }
      } else {
        
_a.player.pauseAudio();
        
_a.setGraphics('pause');
        
_a.playback(true);
      }
    } else {
      
_a.sendNotification({idid});
      if (
_a.pausedByVideo_a.pausedByVideo null;
      if (
aid_a.stop();
      
_a.setAid(id);
      if (
window.padPlClicked) {
        var 
pList _a.isPlaylistGlobal() ? ls.get('pad_playlist') || window.audioPlaylist padAudioPlaylist();
        if (
pList) {
          if (
window.curNotifier && curNotifier.instance_id) {
            
pList.instance curNotifier.instance_id;
            
_a.setPadPlaylist(pList);
          }
          
nextPlaylist = !!pList[aid] && cur.nextPlaylist && cur.nextPlaylist[id];
        }
        
delete window.padPlClicked;
      }
      if (
nextPlaylist) {
        if (
cur.curSection == 'popular' || cur.audioTop) {
          
_a.top true;
        } else {
          
delete _a.top;
        }
        
_a.setPlaybackParams();
        if (
cur && cur.nextPlaylist && cur.nextPlaylist[id]) {
          
window.audioPlaylist = clone(cur.nextPlaylist);
          if (!
window.audioPlaylist.searchStr) {
            
window.lastPlaylist = clone(window.audioPlaylist);
          }
          if (
window._pads && _pads.shown == 'mus' && Pads.audioSearchStr) {
            
window.audioPlaylist.searchStr cur.nextPlaylist.searchStr Pads.audioSearchStr;
            var 
pl ge('pad_playlist');
            if (
pl && window.sorter) {
              if (
pl.sorter) {
                try {
                  
each (pl.sorter.elems, function() {
                    
setStyle(this, {top'auto'left'auto'});
                  });
                  
pl.sorter.destroy();
                } catch(
e) {}
              }
              
sorter.init(pl, {onReorderPads.onAudioReordernoMoveCursor1});
            }
          }
          
audioPlaylist.address nav.strLoc;
          
cur.nextPlaylist null;
        } else {
          if (!
window.audioPlaylist || !window.audioPlaylist[id]) {
            if (
ge('audio'+id)) {
              
_a.createDynamicPlaylist(idtrue);
              if (
window._pads && _pads.shown == 'mus' && Pads.audioSearchStr) {
                
window.audioPlaylist.searchStr cur.nextPlaylist.searchStr Pads.audioSearchStr;
              }
            } else if (
window.audioPlaylist) {
              
window.audioPlaylist null;
            }
          }
        }
        
_a.setPadPlaylist(window.audioPlaylist);
      }
      if (
_a.lastSong == undefined || id != _a.lastSong.aid_a.setSongInfo();
      if (!
_a.lastSong) return;
      if (
_a.lastSong[0] && _a.lastSong[1] && parseInt(_a.lastSong[11])) {
        
showAudioClaimWarning(_a.lastSong[0], _a.lastSong[0], '', -1_a.lastSong[5] + ' &ndash; ' _a.lastSong[6]);
        
_a.setAid(null);
        return;
      }
      var 
url _a.lastSong[2];
      
_a.duration _a.lastSong[3];
      if (
url) {
        try {
          
_a.player.loadAudio(url);
        } catch(
e){}
      } else {
        
_a.reloadAudio(id);
      }
      
_a.setControlsTitle();
      var 
ids id.split('_');
      var 
uid = (ids && ids.length 1) ? ids[0] : vk.id;
      if (
intval(uid) == cur.audioFriend) {
        
cur.audioFriendPlaying cur.audioFriend;
        if (
window.AudioAudio.cacheFriendsList();
      }
      
_a.setGraphics('load');
      
updGlobalPlayer();
      if (
url_a.playback();
      if (
cur.curSection == 'recommendations') {
        var 
el ge('audio'+id);
        if (
el && !el.nextSibling) {
          
Audio.loadRecommendations();
        }
      }
    }
    if (
_a.gpHidden) {
      
_a.gpHidden false;
      
updGlobalPlayer();
    }
  },
  
setGraphics: function(act) {
    var 
_a audioPlayerhead_play ge('head_play_btn'), aid currentAudioId(),
      
_row ge('audio' +aid), pad_row ge('audio'+aid+'_pad'), gp_play ge('gp_play');
    if (!
aid) return;
    switch (
act) {
      case 
'play':
        
_a.setIcon('playicon');
        if (
_row) {
          
addClass(ge('play' aid), 'playing');
          
addClass(_row'current');
        }
        if (
pad_row) {
          
addClass(ge('play' aid '_pad'), 'playing');
          
addClass(pad_row'current');
        }
        if (
head_play) {
          
addClass(head_play'playing');
        }
        if (
gp_play) {
          
addClass(gp_play'playing');
        }
        if (
_a.controls) {
          for (var 
i in _a.controls) {
            var 
obj _a.controls[i];
            if (
obj.playaddClass(obj.play'playing');
          }
        }
        break;
      case 
'pause':
        
_a.setIcon('pauseicon');
        if (
_row) {
          
removeClass(ge('play' aid), 'playing');
        }
        if (
pad_row) {
          
removeClass(ge('play' aid '_pad'), 'playing');
        }
        if (
head_play) {
          
removeClass(head_play'playing');
        }
        if (
gp_play) {
          
removeClass(gp_play'playing');
        }
        if (
_a.controls) {
          for (var 
i in _a.controls) {
            var 
obj _a.controls[i];
            if (
obj.playremoveClass(obj.play'playing');
          }
        }
        break;
      case 
'stop':
        
_a.setIcon('icon');
        if (
_row) {
          if (
ge('repeat' aid)) hide('repeat' aid);
          
removeClass(ge('play' aid), 'playing');
          
removeClass(_row'current');

          if (
aid) {
            var 
_a.duration || _a.lastSong && _a.lastSong[3] || ge('audio_info' aid).value.split(',')[1],
                
res _a.formatTime(t),
                
dur geByClass1('duration'ge('audio' aid));
            if (
dur && resdur.innerHTML res;
          }

        }
        if (
pad_row) {
          
removeClass(ge('play' aid '_pad'), 'playing');
          
removeClass(pad_row'current');
        }
        if (
head_play) {
          
removeClass(head_play'playing');
        }
        if (
gp_play) {
          
removeClass(gp_play'playing');
        }
        if (
_a.controls) {
          for (var 
i in _a.controls) {
            var 
obj _a.controls[i];
            if (
obj.playremoveClass(obj.play'playing');
          }
        }
        break;
      case 
'load':
        var 
loaded 0playerVol _a.player.getVolume(),
            
vol Math.round(_a.volW playerVol);
        if (
vk.rtlvol = -vol;
        
_a.setIcon('playicon');
        if (
_a.controls) {
          for (var 
i in _a.controls) {
            var 
obj _a.controls[i];
            if (
obj.volume) {
              
setStyle(obj.volume, {width: (playerVol 100) + '%'})
            }
          }
        }
        if (
_row) {
          
addClass(ge('play' aid), 'playing');
          
addClass(_row'current');
          if (
ge('player' aid)) {
            if (
ge('audio_vol' aid) && browser.mobile) {
              
hide('audio_vol' aid);
            }
            if (
ge('audio_vol_line' aid)) {
              
setStyle(ge('audio_vol_line' aid), {width: (playerVol 100) + '%'});
            }
          }
          var 
ge('repeat' aid);
          if (
r) {
            
show(r);
            if (
_a.repeat) {
              
addClass(r'on');
            } else {
              
removeClass(r'on');
            }
          }
        }
        var 
tabCurRow geByClass1('tab_current'ge('pad_playlist'));
        if (
tabCurRow) {
          
removeClass(tabCurRow'tab_current');
        }
        if (
pad_row) {
          
addClass(ge('play' aid '_pad'), 'playing');
          
addClass(pad_row'current');
        }
        if (
head_play) {
          
addClass(head_play'playing');
        }
        if (
gp_play) {
          
addClass(gp_play'playing');
        }
        if (
_a.controls) {
          for (var 
i in _a.controls) {
            var 
obj _a.controls[i];
            if (
obj.playaddClass(obj.play'playing');
            if (
obj.add && obj.container) {
              var 
mid aid.split('_')[0];
              
toggleClass(obj.container'add'mid != vk.id);
            }
          }
        }
        break;
    }
  },
  
stop: function() {
    var 
_a audioPlayeraid currentAudioId();
    if (
aid) {
      if (
_a.player && !_a.player.paused()) _a.player.stopAudio();
      
_a.setGraphics('stop');
      
_a.setAid(null);
    }
  },
  
pauseTrack: function() {
    var 
_a audioPlayeraid currentAudioId();
    if (
aid && _a.player && !_a.player.paused()) {
      
_a.operate(aid);
    }
  },
  
playTrack: function() {
    var 
_a audioPlayeraid currentAudioId();
    if (
aid && _a.player && _a.player.paused()) {
      
_a.operate(aid);
    }
  },
  
setPlaybackParams: function() {
    var 
_a audioPlayeraid currentAudioId(), ids = (aid || '').split('_'), params = {};
    if (
cur.curSection == 'recommendations'params.recommendation 1;
    if (
cur.module == 'search' && nav.objLoc['c[section]'] == 'audio' && !nav.objLoc['c[q]']) params.top 1;
    if (
cur.module == 'audio' && nav.objLoc['act'] == 'popular' && !nav.objLoc['q']) params.top_audio 1;
    if (
cur.module == 'audio' && nav.objLoc['act'] == 'feed' && !nav.objLoc['q']) params.feed_audio 1;
    if ((
aid '').match(/^-?d+_d+_s(-?d+)$/) && window.audioPlaylist && audioPlaylist[aid]) params.status 1;
    if (
_a.isAudioFriend(ids[0], aid)) params.friend ids[0];
    if ((
cur.module == 'groups' || cur.module == 'public' || cur.module == 'audio') && cur.oid == ids[0] && cur.oid 0params.group 1;
    if ((
cur.module == 'audio' || cur.module == 'feed') && nav.objLoc['q'] || cur.module == 'search' && nav.objLoc['c[q]']) params.search 1;
    if (
cur.module == 'audio' && nav.objLoc['album_id'] && cur.album_idparams.album 1;
    if (
cur.module == 'audio' && cur.clubparams.club cur.club;
    if (!
params.search && cur.module == 'feed'params.feed 1;
    
_a.playbackParams params;
  },
  
isAudioFriend: function(oidfull_id) {
    return (
oid != vk.id && cur.allAudiosIndex && cur.allAudiosIndex != 'all' && cur.audioFriend && cur.curSection != 'recommendations' && cur.curSection != 'popular') || ge('audio_playback'+full_id) || (cur.isAudioFriend && cur.curSection != 'recommendations' && cur.allAudiosIndex && cur.allAudiosIndex == 'all');
  },
  
playbackSent0,
  
statusSent0,
  
playback: function(paused) {
    var 
_a audioPlayeraid currentAudioId(), ids = (aid || '').split('_');
    if (
ids.length && cur.oid) { // edit mode
      
ids = [cur.oidaid];
      
aid ids.join('_');
    }
    if (
_a.hasStatusExport() && ids[1] != _a.statusSent) {
      
setTimeout(ajax.post.pbind('audio', {act'audio_status'full_idaidhash_a.addHashtop_a.playbackParams && (_a.playbackParams.top_audio || _a.playbackParams.top) ? ''}), 0);
      
_a.statusSent ids[1];
    }
    
clearTimeout(_a.playbackTimer);
    if (!
paused && aid && vk.id) {
      if (
ids[1] != _a.playbackSent) {
        var 
sendPlayback = function() {
          if (!
cur.startedAids || !cur.startedAids[aid]) {
            
_a.playbackTimer setTimeout(sendPlayback10000);
            return;
          }
          var 
query = {act'playback'full_idaidhash_a.addHash};
          if (
ids[0] == vk.id && ids[1]) query.id ids[1];
          if (
_a.playbackParamsextend(query_a.playbackParams);
          
ajax.post('audio'query, {onDone: function() {
            
_a.playbackSent ids[1];
          }});
        };
        
_a.playbackTimer setTimeout(sendPlayback10000);
      }
    }
  },
  
keyPressed: function(otherTabe) {
    
normEvent(e);
    if (!
e.keyCode) return;
    var 
keyCodes = [176177178179KEY.LEFTKEY.RIGHT], inArr false;
    
each(keyCodes, function(kv){
      if (
e.keyCode == v) {
        
inArr true;
        return 
false;
      }
    });
    if ((
e.keyCode == KEY.LEFT || e.keyCode == KEY.RIGHT) && otherTab) return;
    if (!
inArr) return;
    var 
cn window.curNotifierpData ls.get('pad_pldata'), anotherTab cn && pData && cn.instance_id && pData.instance && cn.instance_id !== pData.instance;
    if (!
e.noBroadcast) {
      if (
anotherTab) {
        var 
_n window.Notifier;
        if (
_n_n.lcSend('audio_mediakey', {keyCodee.keyCodenoBroadcast1});
        return;
      }
    } else {
      if (
anotherTab) return;
    }
    var 
_a audioPlayeraid currentAudioId();
    if (!
aid) return;
    switch (
e.keyCode) {
      case 
179:
        
playAudioNew(aid);
        break;
      case 
178:
        
_a.stop();
        
audioPlayer.onPlayProgress(01true);
        break;
      case 
177:
        
_a.prevTrack();
        break;
      case 
176:
        
_a.nextTrack();
        break;
      case 
KEY.LEFT:
        if (
_a.canChangePr()) {
          
_a.changePr(-1);
        }
        break;
      case 
KEY.RIGHT:
        if (
_a.canChangePr()) {
          
_a.changePr(1);
        }
        break;
    }
  },
  
canChangePr: function() {
    var 
inp cur.__focused || window.curFastChat && curFastChat.peer && geByTag1('textarea'ge('rb_box_fc_peer' curFastChat.peer)) || window._pads && _pads.shown && geByTag1('textarea'_pads.content);
    return (
cur.module == 'audio' || window._pads && _pads.shown == 'mus') && !cur.pvShown && !curBox() && !(inp && inp.value);
  },
  
changePr: function(delta) {
    var 
_a audioPlayeraid currentAudioId();
    if (!
aid) return;
    
_a.time = (_a.curTime || 0) + delta _a.prStep;
    if (
_a.time 0_a.time 0;
    if (
_a.duration && _a.time _a.duration_a.time _a.duration;
    try{
      if (!
_a.player.paused()) {
        
_a.player.playAudio(_a.time);
      }
      
_a.player.callPlayProgress();
    }catch(
e){};
  },
  
mouseUp: function(e) {
    var 
_a audioPlayer;
    if (
_a.player && _a.player.paused) {
      if (
_a.prClicked) {
        if (
_a.time !== undefined) try{
          if (!
_a.player.paused()) {
            
_a.player.playAudio(_a.time);
            
_a.time null;
          }
        }catch(
e){};
      }
      
_a.player.callPlayProgress();
    }
    if (
_a.volClicked) {
      if (
_a.controls && _a.controls[_a.volClicked]) {
        
removeClass(_a.controls[_a.volClicked].volumeArea'down');
      }
      
hide('audio_tip_wrap');
    }
    if (
_a.prClicked && _a.controls && _a.controls[_a.prClicked]) {
      
removeClass(_a.controls[_a.prClicked].progressArea'down');
    }
    
_a.volClicked null;
    
_a.prClicked null;
  },
  
tipOver: function() {
    if (
cur.hideTipTO) {
      
clearTimeout(cur.hideTipTO);
    }
  },
  
tipOut: function() {
    
cur.hideTipTO setTimeout(hide.pbind('audio_tip_wrap'), 100);
  },
  
showTip: function(textxyfixedpad) {
    if (!
ge('audio_tip_wrap')) {
      
bodyNode.appendChild(se('<div id="audio_tip_wrap" onmouseover="audioPlayer.tipOver();" onmouseout="audioPlayer.tipOut();"><div id="audio_tip"></div><div id="audio_tip_arrow"></div></div>'));
    }
    
ge('audio_tip').innerHTML text;
    var 
sz getSize('audio_tip_wrap'), sz[0] || 32sz[1] || 18- (1) / 23;
    
setStyle(ge('audio_tip_wrap'), {leftltop7positionfixed 'fixed' 'absolute'zIndexcurBox() ? 1001 : (pad 401 101)});
    
setStyle(ge('audio_tip_arrow'), {lefta});
    
show('audio_tip_wrap');
  },
  
mouseMove: function(e) {
    var 
_a audioPlayer;
    if (
_a.volClicked_a.volClick(e_a.volClicked);
    if (
_a.prClicked_a.prClick(e_a.prClicked);
    if (!
audioPlayer.duration) return;

    var 
overFound falseaid currentAudioId();
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.progressArea && hasClass(obj.progressArea'over')) {
          
overFound true;
          var 
time intval(_a.getPrPos(ei) * _a.duration 100), fixed _a.controls[i].fixed,
              
timeText _a.formatTime(time);
          
_a.showTip(timeText_a.defX(e), getXY(obj.progressAreafixed)[1], fixed== 'pd');
          break;
        }
      }
    }
    if (!
overFound && aid && hasClass(ge('audio_pr' aid), 'over')) {
      
overFound true;
      var 
time intval(_a.getPrPos(enull) * _a.duration 100), timeText _a.formatTime(time);
      
_a.showTip(timeText_a.defX(e), getXY(ge('audio_pr'+aid))[1]);
    }
  },
  
defX: function(e) {
    if (!
ewindow.event;
    var 
hscroll = !document.body.scrollLeft && (browser.ipad || browser.iphone4 || browser.ipod4) ? : (document.all document.body.scrollLeft window.pageXOffset);
    return 
intval(e.clientX hscroll);
  },
  
getPrPos: function(eobjName) {
    var 
_a audioPlayerelposprSizevaldefX;
    if (
objName && _a.controls && _a.controls[objName]) {
      
el _a.controls[objName].progressAreapos getXY(el,_a.controls[objName].fixed)[0],
      
val _a.defX(e) - posprSize getSize(el)[0];
    } else {
      var 
aid currentAudioId();
      
el ge('audio_back_line' aid), pos getXY(el)[0],
      
val _a.defX(e) - posprSize getSize(el)[0];
    }
    
val Math.min(100Math.max(0val prSize 100));
    if (
vk.rtlval 100 val;
    return 
val;
  },
  
prClick: function(eobjName) {
    if (!
ewindow.event
    
if (e.button == 2) return;
    var 
_a audioPlayeraid currentAudioId();
    if (
objName && _a.controls && _a.controls[objName] && _a.controls[objName].progressArea) {
      if (!
_a.player) return;
      if (!
_a.prClicked) {
        
_a.prClicked objName;
        
addClass(_a.controls[objName].progressArea'down');
      }
    } else {
      if (!
_a.prClicked) {
        
_a.prClicked true;
      }
    }
    var 
val _a.getPrPos(eobjName);
    
_a.time val 100 _a.duration;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.progress) {
          
setStyle(obj.progress, {widthval '%'});
        }
      }
    }
    if (
aid && ge('player' aid)) {
      
setStyle(ge('audio_pr_line' aid), {widthval '%'});
    }
    
cancelEvent(e);
  },
  
volClick: function(eobjName) {
    if (!
ewindow.event
    
if (e.button == 2) return;
    var 
_a audioPlayerelxyvalposaid currentAudioId();
    if (
objName && _a.controls && _a.controls[objName] && _a.controls[objName].volumeArea) {
      var 
obj _a.controls[objName], fixed _a.controls[objName].fixed;
      
el obj.volumeAreapos getXY(elfixed), val _a.defX(e) - pos[0];
      var 
volSize getSize(el)[0], val val volSize 100;
      
val Math.min(100Math.max(0val));
      if (
vk.rtlval 100 val;
      if (!
_a.volClicked) {
        
_a.volClicked objName;
        
addClass(obj.volumeArea'down');
      }
      var 
tipX Math.min(pos[0] + volSizeMath.max(pos[0], _a.defX(e)));
      
_a.showTip(intval(val) + '%'tipXpos[1], fixedobjName == 'pd');
    } else {
      
el ge('audio_vol_back_line' aid), pos getXY(el), val _a.defX(e) - pos[0];
      var 
volSize getSize(el)[0], val val volSize 100;
      
val Math.min(100Math.max(0val));
      if (
vk.rtlval 100 val;
      if (!
_a.volClicked) {
        
_a.volClicked true;
      }
      var 
tipX Math.min(pos[0] + volSizeMath.max(pos[0], _a.defX(e)));
      
_a.showTip(intval(val) + '%'tipXpos[1]);
    }
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.volume) {
          
setStyle(obj.volume, {widthval '%'});
        }
      }
    }
    if (
aid && ge('player' aid)) {
      
setStyle(ge('audio_vol_line' aid), {widthval '%'});
    }
    if (
_a.player_a.player.setVolume(val 100);
    
setCookie('audio_vol'Math.round(val), 365);
    
cancelEvent(e);
  },
  
toggleRepeat: function() {
    var 
_a audioPlayeraid currentAudioId();
    if (!
aid && _a.lastSong) {
      
aid _a.lastSong.aid;
    }
    
_a.repeat = !_a.repeat;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.repeat) {
          
toggleClass(obj.repeat'on'_a.repeat);
        }
      }
    }
    if (!
aid) return;
    var 
ge('repeat' aid);
    if (
r) {
      
toggleClass(r'on'_a.repeat);
    }
  },
  
showRec: function(aidfromPad) {
    var 
_a audioPlayer;
    
aid aid || currentAudioId() ||  _a.lastSong && _a.lastSong.aid || cur.defaultTrack && cur.defaultTrack.id || window.audioPlaylist && audioPlaylist.start || '';
    if (!
aid) return;
    if (
fromPad) {
      
_a.loadTrackRecommendations(aid);
    } else if (
window.Audio) {
      
Audio.loadRecommendations({updatetrueaudioIdaid});
    }
  },
  
updateStatusChecks: function(cont) {
    var 
_a audioPlayerchks geByClass('checkbox'cont);
    
each(chks, function() {
      
checkbox(thisfalse);
    });
    if (
_a.statusExport) {
      for (var 
i in _a.statusExport) {
        
checkbox(geByClass1('status' icont), true);
      }
    }
  },
  
updateAllStatusChecks: function() {
    var 
_a audioPlayer;
    for (var 
i in _a.controls) {
      var 
obj _a.controls[i];
      if (
obj.status && obj.status.tt) {
        
_a.updateStatusChecks(obj.status.tt.container);
      }
    }
  },
  
toggleStatus: function(oid) {
    var 
_a audioPlayeraid currentAudioId(), expoid intval(oid);
    
_a.statusExport _a.statusExport || {};
    if (!
oid) {
      if (
_a.hasStatusExport()) {
        for (var 
i in _a.statusExport) {
          
delete _a.statusExport[i];
          
_a.updateAllStatusChecks();
        }
        
exp false;
      } else {
        
oid vk.id;
        
_a.statusExport[oid] = 1;
        
_a.updateAllStatusChecks();
        
exp true;
      }
    } else {
      if (
_a.statusExport[oid]) {
        
delete _a.statusExport[oid];
        
exp false
      
} else {
        
_a.statusExport[oid] = 1;
        
exp true;
      }
    }
    if (!
_a.addHash) return;
    if (
oid == vk.id || !oidcheckbox('currinfo_audio'_a.hasStatusExport());
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.status) {
          
toggleClass(obj.status'on'_a.hasStatusExport());
        }
      }
    }
    
ajax.post('audio', {act'toggle_status'exp: (exp ''), oidoidhash_a.addHashidaidtop_a.playbackParams && (_a.playbackParams.top_audio || _a.playbackParams.top) ? ''});
  },
  
setControlsTitle: function() {
    var 
_a audioPlayer;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i], songInfo obj.padPlaylist && _a.isPlaylistGlobal() ? ls.get('pad_lastsong') || _a.lastSong _a.lastSong;
        if (
obj.performer) {
          
obj.performer.innerHTML clean(replaceEntities(songInfo[5]));
        }
        if (
obj.title) {
          
obj.title.innerHTML clean(replaceEntities(songInfo[6]));
        }
        if (
obj.titleWrap) {
          if (
obj.titleWrap.scrollWidth obj.titleWrap.clientWidth) {
            var 
el ce('div', {innerHTMLclean(replaceEntities(songInfo[5])) + ' &ndash; ' clean(replaceEntities(songInfo[6])) });
            
obj.titleWrap.title el.innerText || el.textContent;
          } else {
            
obj.titleWrap.removeAttribute('title');
          }
        }
        if (
obj.duration) {
          
obj.duration.innerHTML songInfo[4];
        }
        if (
obj.add) {
          var 
aid currentAudioId(), cur_aids aid && aid.split('_') || [], raw_id aid && cur_aids[0] + '_' cur_aids[1] || null;
          
toggleClass(obj.add'added', !!(raw_id && cur.addedIds && cur.addedIds[raw_id]));
        }
      }
    }
    if (
ge('gp')) _a.loadGlobal();
  },
  
loadGlobal: function() {
    var 
l_a audioPlayeraid currentAudioId(), cl aid && _a.player && !_a.player.paused() || !aid && _a.lastSong 'playing' '';
    
ge('gp_play_btn').innerHTML '<a onmousedown="cancelEvent(event)" onclick="playAudioNew('' + aid + '', false)"><div class="gp_play_wrap"><div id="gp_play" class="' cl '"></div></div></a>';
    var 
arttitle;
    
art clean(replaceEntities(_a.lastSong[5]));
    
title clean(replaceEntities(_a.lastSong[6]));
    
ge('gp_performer').innerHTML art;
    
ge('gp_title').innerHTML title;
    
updGlobalPlayer();
  },
  
onError: function(error_msg) {
    var 
_a audioPlayeraid currentAudioId();
    if (
aid_a.reloadAudio(aid);
    
_a.reloadPlaylist();
  },
  
onLoadComplete: function(len) {
    if (
lenaudioPlayer.duration len;
  },
  
onPlayFinish: function() {
    var 
_a audioPlayer;
    
_a.playbackSent _a.statusSent 0;
    var 
next_idcur_id currentAudioId(), = (cur_id '').match(/^-?d+_d+_s(-?d+)$/);
    if (
cur.startedAidsdelete cur.startedAids[cur_id];
    if (
_a.repeat) {
      
next_id cur_id;
    } else if (
&& window.audioPlaylist && audioPlaylist[cur_id]) {
      
next_id audioPlaylist[cur_id]['_next'];
      if (!
next_id) {
        
ajax.post('audio', {act'get_audio_status'oidm[1]}, {
          
onDone: function(idinfo) {
            if (!
info) return;

            if (
cur_id !== id) {
              
info['_prev'] = cur_id;
              
audioPlaylist[cur_id]['_next'] = id;
              
audioPlaylist[id] = info;
              
audioPlaylist.start id;
              if (!
audioPlaylist.searchStr) {
                
window.lastPlaylist = clone(audioPlaylist);
              }
              
_a.setPadPlaylist(window.audioPlaylist);
            }
            if (!
currentAudioId()) {
              
_a.operate(id);
            }
          }
        });
      }
    } else {
      var 
pList _a.isPlaylistGlobal() ? ls.get('pad_playlist') || window.audioPlaylist padAudioPlaylist();
      
next_id = (pList && pList[cur_id] && pList[cur_id]['_next']) ? pList[cur_id]['_next'] : _a.getNextSibling();
    }
    
_a.stop();
    if (
next_id && (_a.repeat || cur_id != next_id)) {
      
_a.operate(next_id);
      if (
window._pads && _pads.shown == 'mus' && window.Pads && Pads.setAudioCurPos) {
        
Pads.setAudioCurPos(400);
        return;
      }
    }
  },
  
scrollToTrack: function(nid) {
    var 
windowde document.documentElementplay_btn ge('play'+nid);
    if (
window._pads && _pads.shown == 'mus' && window.Pads && Pads.setAudioCurPos) {
      
Pads.setAudioCurPos(400);
      return;
    }
    if (!
w.pageNode || !play_btn || cur.module == 'im') return;
    var 
xy getXY(play_btn);
    var 
dheight Math.max(intval(w.innerHeight), intval(de.clientHeight));
    var 
height Math.max(0xy[1] - (dheight 16) / 2);
    
scrollToY(height400);
  },
  
nextTrack: function(no_scrollfromPad) {
    var 
nid_a audioPlayer
    fromPad 
fromPad && _a.isPlaylistGlobal();
    var 
aid fromPad ls.get('audio_id') || currentAudioId() : currentAudioId(), pList fromPad ls.get('pad_playlist') || window.audioPlaylist window.audioPlaylist;
    
nid = (pList && pList[aid]) ? pList[aid]['_next'] : _a.getNextSibling();
    if (
nid) {
      
_a.stop();
      if (
fromPad) {
        
window.padPlClicked true;
      }
      
_a.operate(nid);
      if (!
no_scroll_a.scrollToTrack(nid);
    }
  },
  
prevTrack: function(no_scrollfromPad) {
    var 
nid_a audioPlayer
    fromPad 
fromPad && _a.isPlaylistGlobal();
    var 
aid fromPad ls.get('audio_id') || currentAudioId() : currentAudioId(), pList fromPad ls.get('pad_playlist') || window.audioPlaylist window.audioPlaylist;
    
pid = (pList && pList[aid]) ? pList[aid]['_prev'] : _a.getPrevSibling();
    if (
pid) {
      
_a.stop();
      if (
fromPad) {
        
window.padPlClicked true;
      }
      
_a.operate(pid);
      if (!
no_scroll_a.scrollToTrack(pid);
    }
  },
  
getNextSibling: function(aid) {
    var 
getAId = function(el){return el && el.id && el.id.substr(05) == 'audio' && parseInt(el.id.substr(5)) ? el.id.substr(5) : 0; }
    if (!
aidaid currentAudioId();
    var 
cur ge('audio' aid);
    if (!
cur) return null;
    var 
aid 0;
    for (var 
el cur.nextSiblingelel el.nextSibling) {
      if (
aid getAId(el)) return aid;
      if (
isVisible(el) && (aid getAId(el.firstChild))) return aid;
    }
    var 
cur.parentNode.nextSibling;
    while (
&& p.nodeType != && p.nextSiblingp.nextSibling;
    if (
&& p.nodeType == 1) {
      var 
el geByClass1('audio'p);
      if (
aid getAId(el)) return aid;
    }
    for (
cur.parentNode.parentNode.firstChildpp.nextSibling) {
      if (
&& p.nodeType == && != cur.parentNode) {
        var 
el geByClass1('audio'p);
        if (
aid getAId(el)) return aid;
      }
    }
    for (var 
el cur.parentNode.firstChildelel el.nextSibling) {
      if (
aid getAId(el)) return aid;
    }
  },
  
getPrevSibling: function(aid) {
    var 
getAId = function(el){return el && el.id && el.id.substr(05) == 'audio' && parseInt(el.id.substr(5)) ? el.id.substr(5) : 0; }
    if (!
aidaid currentAudioId();
    var 
cur ge('audio' aid);
    if (!
cur) return null;
    var 
aid 0;
    for (var 
el cur.previousSiblingelel el.previousSibling) {
      if (
aid getAId(el)) return aid;
      if (
isVisible(el) && (aid getAId(el.firstChild))) return aid;
    }
    var 
cur.parentNode.previousSibling;
    while (
&& p.nodeType != && p.previousSiblingp.previousSibling;
    if (
&& p.nodeType == 1) {
      var 
el geByClass1('audio'p);
      if (
aid getAId(el)) return aid;
    }
    for (
cur.parentNode.parentNode.lastChildpp.previousSibling) {
      if (
&& p.nodeType == && != cur.parentNode) {
        var 
el geByClass1('audio'p);
        if (
aid getAId(el)) return aid;
      }
    }
    for (var 
el cur.parentNode.lastChildelel el.previousSibling) {
      if (
aid getAId(el)) return aid;
    }
  },

  
genPlaylist: function(list, copyToMainallMy) {
    var 
res = clone(list);
    if (!
res || !res.length) return;
    for (var 
i in res) {
      if (
res[i][11] && parseInt(res[i][11])) {
        
res.splice(i1);
      }
    }
    if (!
res.length) return;
    if (
res[0]._order !== undefined) {
      
res res.sort(function(a,b) {return a._order b._order});
    }
    
cur.nextPlaylist = {};
    for (var 
i in res) {
      
parseInt(i);
      var 
extend({}, res[i]);
      var 
aid a.full_id || a[0]+'_'+a[1];
      
cur.nextPlaylist[aid] = clone(a);
      if (
0cur.nextPlaylist[aid]['_prev'] = res[i-1].full_id || res[i-1][0]+'_'+res[i-1][1];
      if (
res.length 1cur.nextPlaylist[aid]['_next'] = res[i+1].full_id || res[i+1][0]+'_'+res[i+1][1];
    }
    var 
firstId res[0].full_id || res[0][0]+'_'+res[0][1],
        
lastId res[res.length-1].full_id || res[res.length-1][0]+'_'+res[res.length-1][1];
    
cur.nextPlaylist[firstId]['_prev'] = lastId;
    
cur.nextPlaylist[lastId]['_next'] = firstId;
    
cur.nextPlaylist.start firstId;
    
cur.nextPlaylist.length res.length;
    
cur.nextPlaylist.instance cur.nextPlaylist.source window.curNotifier && curNotifier.instance_id || '';
    
cur.nextPlaylist.address nav.strLoc;
    if (
allMycur.nextPlaylist.my 1;
    if (
window._pads && _pads.shown == 'mus' && Pads.audioSearchStr) {
      
cur.nextPlaylist.searchStr Pads.audioSearchStr;
    }
    var 
aid currentAudioId();
    if (
copyToMain || cur.justShuffled && aid && cur.nextPlaylist[aid]) {
      
window.audioPlaylist = clone(cur.nextPlaylist);
      if (
window.curNotifier && (padPlData ls.get('pad_pldata')) && padPlData.instance == curNotifier.instance_id) {
        
this.setPadPlaylist(window.audioPlaylist);
      }
      if (!
window.audioPlaylist.searchStr) {
        
window.lastPlaylist = clone(window.audioPlaylist);
      }
    }
  },

  
isPlaylistGlobal: function() {
    var 
padPlData;
    return (!
window.audioPlaylist || window.curNotifier && (padPlData ls.get('pad_pldata')) && padPlData.source == curNotifier.instance_id);
  },

  
setPadPlaylist: function(pList) {
    if (
pList) {
      
ls.set('pad_playlist'pList);
      
ls.set('pad_pltime'vkNow());
      if (!
pList.instance && !pList.source && window.curNotifier && curNotifier.instance_id) {
        
pList.instance pList.source curNotifier.instance_id;
      }
      if (
pList.instance && pList.source) {
        
this.setPadPlData({instancepList.instancesourcepList.source});
      } else {
        
this.setPadPlData();
      }
    } else {
      
ls.remove('pad_playlist');
      
ls.remove('pad_pltime');
    }
  },

  
setPadPlData: function(obj) {
    if (
obj) {
      
ls.set('pad_pldata'obj);
    } else {
      
ls.remove('pad_pldata');
    }
  },

  
updateCurrentPlaylist: function(objaid) {
    var 
_a audioPlayer;
    if (
obj && obj.all && window.audioPlaylist && audioPlaylist[aid]) {
      var 
found falseaudio_id aid.split('_')[1], curId aidfullIds = {};
      do {
        var 
curAudioId curId.split('_')[1];
        
fullIds[curAudioId] = curId;
        
curId audioPlaylist[curId]._next;
      } while (
curId && curId != aid);
      for (var 
i in obj.all) {
        if (
obj.all[i][1] == audio_id) {
          
found true;
        }
        if (
fullIds[obj.all[i][1]] && !obj.all[i].full_id) {
          
obj.all[i].full_id fullIds[obj.all[i][1]];
        }
      }
      if (
found) {
        
_a.genPlaylist(obj.alltrue);
      }
    }
  },

  
loadTrackRecommendations: function(aid) {
    var 
_a audioPlayerids aid.split('_');
    if (!
ids[0] || !ids[1]) return;
    
ajax.post('/audio', {act'audio_recommendations'oidids[0], aidids[1]}, {
      
onDone: function(obj) {
        if (
obj && obj.all && obj.all.length) {
          var 
curPlist window.audioPlaylist;
          
_a.genPlaylist(obj.allfalse);
          if (
cur.nextPlaylist)  cur.nextPlaylist.rec 1;
          if (
window.Pads) {
            
Pads.audioSearchCleared true;
            if (
window._pads && _pads.shown == 'mus') {
              
_a.recsLoaded 1;
              
Pads.updateAudioPlaylist();
            }
          }
        }
      },
      
onFail: function(msg) {
        
setTimeout(showFastBox(getLang('global_error'), msg).hide3000);
        return 
true;
      }
    });
  },

  
showMyAudios: function(el) {
    var 
_a audioPlayerallMy = (cur.module == 'audio' && cur.oid == vk.id && cur.audiosList && cur.audiosList.all);
    if (
allMy) {
      
_a.genPlaylist(allMyfalsetrue);
      if (
window.Pads) {
        
Pads.audioSearchCleared true;
        if (
window._pads && _pads.shown == 'mus'Pads.updateAudioPlaylist();
      }
      
re(el);
    } else {
      
ajax.post('/audio', {act'load_audios_silent'idvk.id}, {
        
cache1,
        
showProgress: function() {
          
ge('pad_footer_text').innerHTML '<div class="progress" style="display: block;"></div>';
        },
        
hideProgress: function() {
          
ge('pad_footer_text').innerHTML '';
        },
        
onDone: function(dataopts) {
          var 
obj = eval('('+data+')');
          if (!
obj || !obj.all) return;
          
_a.genPlaylist(obj.allfalsetrue);
          if (
window.Pads) {
            
Pads.audioSearchCleared true;
            if (
window._pads && _pads.shown == 'mus'Pads.updateAudioPlaylist();
          }
          
re(el);
        }
      });
    }
  },

  
createDynamicPlaylist: function(aidcopyToMainlimit) {
    var 
_a audioPlayer;
    if (!
aid) return;
    var 
nextId startId aidel ge('audio' aid), dynPl = [_a.getSongInfoFromDOM(startId)], 1;
    if (!
limitlimit 200;
    while (
nextId _a.getNextSibling(nextId)) {
      if (
nextId == startId || k++ >= limit) break;
      
dynPl.push(_a.getSongInfoFromDOM(nextId));
    }
    
_a.genPlaylist(dynPlcopyToMain);
    if (
hasClass(el.parentNode'module_body')) {
      
ajax.post('/audio', {act'get_playlist'oidcur.oid}, {
        
onDone: function(res) {
          var 
obj = eval('(' res ')');
          
_a.updateCurrentPlaylist(objaid);
        }
      })
    } else if (
vk.id && (cur.module == 'groups' || cur.module == 'public' || cur.module == 'profile' || cur.module == 'feed' || cur.module == 'wall')) {
      var 
ids aid.split('_'), local_id ids && ids[3] || '';
      if (
local_id && ge('post'+ids[2]+'_'+ids[3])) {
        var 
wallType cur.wallType;
        if (
wallType == 'full_own'wallType 'own';
        if (
wallType == 'full_all'wallType 'all';
        if (
wallType != 'own' && wallType != 'all') {
          
wallType 'own';
        }
        var 
params = {act'get_wall_playlist'oidids[2], wall_typewallTypelocal_idlocal_id};
        if (
cur.module == 'wall' && ge('wall_search') && ge('wall_search').value) {
          
params.ge('wall_search').value;
        }
        
ajax.post('/audio'params, {
          
onDone: function(obj) {
            if (
obj && obj.all && obj.all.length) {
              
_a.updateCurrentPlaylist(objaid);
            }
          }
        });
      }
    }
  },
  
showCurrentTrack: function() {
    
each(geByClass('current'), function() {
      if (
hasClass(this'audio')) {
        
removeClass(this'current');
        var 
btn geByClass1('play_new'this);
        if (
btnremoveClass(btn'playing');
      }
    })
    var 
_a audioPlayeraid currentAudioId(), pad_aid pad_aid_raw ls.get('audio_id') || aidcur_aids aid && aid.split('_') || [], raw_id aid && cur_aids[0] + '_' cur_aids[1] || null;
    if (
aid && _a.player) {
      
_a.setGraphics('load');
      if (
_a.player.paused()) {
        
_a.setGraphics('pause');
      } else {
        
_a.setGraphics('play');
      }
      
_a.setControlsTitle();
      
_a.player.callPlayProgress();
      if (
_a.player.callLoadProgress_a.player.callLoadProgress();
      if (
aid.substr(-4) !== '_pad' && ge('audio' aid)) {
        
addClass('audio' aid'current');
      }
      if (
pad_aid.substr(-4) !== '_pad') {
        
pad_aid += '_pad';
      }
      if (
ge('audio' pad_aid) && _a.isPlaylistGlobal()) {
        var 
padClass = (window.curNotifier && (padPlData ls.get('pad_pldata')) && padPlData.instance == curNotifier.instance_id) ? 'current' 'tab_current';
        
addClass('audio' pad_aidpadClass);
        if (
padClass == 'tab_current') {
          var 
curRow geByClass1('current'ge('pad_playlist'));
          if (
curRow) {
            
removeClass(curRow'current');
          }
        }
      }
    }
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.repeattoggleClass(obj.repeat'on', !!_a.repeat);
        if (
obj.statustoggleClass(obj.status'on', !!_a.hasStatusExport());
        if (
obj.shuffletoggleClass(obj.shuffle'on', !!_a.shuffle);
        if (
obj.addtoggleClass(obj.add'added', !!(raw_id && cur.addedIds && cur.addedIds[raw_id]));
      }
    }
  },
  
hideCurrentTrack: function() {
    var 
audios geByClass('audio'), playBtns geByClass('play_new');
    
each(audios, function() {
      if (
hasClass(this'current')) {
        
removeClass(this'current');
      }
    });
    
each(playBtns, function() {
      if (
hasClass(this'playing')) {
        
removeClass(this'playing');
      }
    });
  },
  
formatTime: function(t) {
    var 
ressecminhour;
    
Math.max(t0);
    
sec 60;
    
res = (sec 10) ? '0'+sec sec;
    
Math.floor(60);
    
min 60;
    
res min+':'+res;
    
Math.floor(60);
    if (
0) {
      if (
min 10res '0' res;
      
res t+':'+res;
    }
    return 
res;
  },
  
setCurTime: function(curlen) {
    var 
_a audioPlayeraid currentAudioId();
    var 
_a.timeLeft len cur curres _a.formatTime(t);
    
_a.curTime cur;
    if (
_a.timeLeftres vk.rtl res+'-' '-'+res;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.durationobj.duration.innerHTML res;
      }
    }
    var 
dur ge('audio' aid) && geByClass1('duration'ge('audio' aid));
    if (
dur && resdur.innerHTML res;
  },
  
switchTimeFormat: function(idevent) {
    var 
_a audioPlayeraid currentAudioId();
    if (
aid && id) {
      var 
aids aid.split('_'), ids id.split('_');
      if (
aids[0] != ids[0] || aids[1] != ids[1]) return false;
    }
    
_a.timeLeft = (_a.timeLeft 1) % 2;
    if (
_a.player) {
      
_a.player.callPlayProgress();
    }
    
setCookie('audio_time_left'_a.timeLeft);
    
cancelEvent(event);
  },
  
onLoadProgress: function(bLoadedbTotal) {
    var 
_a audioPlayeraid currentAudioId();
    if (
isNaN(bTotal) && _a.player.onCanPlaybTotal _a.duration;
    var 
per Math.ceil(bLoaded/bTotal*100);
    
per Math.min(100Math.max(0per));
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.loadsetStyle(obj.load, {widthper '%'});
      }
    }
    if (
ge('player' aid)) {
      
setStyle(ge('audio_load_line' aid), {widthper '%'});
    }
  },
  
onPlayProgress: function(poslenforce) {
    var 
barSize_a audioPlayeraid currentAudioId();
    if (
Math.abs(len _a.duration) > || isNaN(len)) len _a.duration;
    if (
pos 1) {
      
cur.startedAids cur.startedAids || {};
      
cur.startedAids[aid] = 1;
    }
    if (
_a.time && _a.player.paused()) pos _a.time;
    
_a.setCurTime(Math.round(pos), Math.round(len));
    if (
_a.player.paused() && !force) return;
    var 
per pos len 100;
    
per Math.min(100Math.max(0per));
    if (!
_a.prClicked) {
      if (
_a.controls) {
        for (var 
i in _a.controls) {
          var 
obj _a.controls[i];
          if (
obj.progress) {
            
setStyle(obj.progress, {widthper '%'});
          }
        }
      }
      if (
ge('player' aid)) {
        
setStyle(ge('audio_pr_line' aid), {widthper '%'});
      }
    }
  },
  
showCurrentAdded: function() {
    var 
_a audioPlayer;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.add) {
          
addClass(obj.add'added');
          if (
obj.add.tt) {
            
obj.add.tt.hide();
          }
        }
      }
    }
  },
  
addCurrentTrack: function() {
    if (
cur.addingAudio) return false;
    var 
_a audioPlayeraid currentAudioId();
    if (!
aid && _a.lastSong) {
      
aid _a.lastSong.aid;
    }
    if (
aid && _a.addHash) {
      var 
ids aid.split('_');
      if (
ids.length == 1) {
        
ids[1] = ids[0];
        
ids[0] = vk.id;
      }
      var 
raw_id ids[0] + '_' ids[1];
      if (
cur.addedIds && cur.addedIds[raw_id]) return false;
      if (
ids && ids[0] && ids[1]) {
        var 
query = {act'add'oidids[0], aidids[1], hash_a.addHash};
        if (
_a.topquery.top 1;
        
cur.addingAudio true;
        
ajax.post('audio'query, {
          
onDone: function (datarestext) {
            if (
data && window.Audio && cur.id == vk.id && cur.audiosIndex && cur.audiosList && cur.audiosList['all'] && cur.aSearch) {
              var 
aobj = eval('('+data+')');
              
aobj aobj['all'][0];
              
setTimeout(function(){
                var 
all_list cur.audiosList['all'];
                if (
all_list && all_list.length) {
                  
aobj._order all_list[0]._order 1;
                  
cur.audiosList['all'].splice(0,0,aobj);
                } else {
                  
aobj._order 0;
                  
cur.audiosList['all'] = [aobj];
                }
                
cur.audios[aobj[1]] = aobj;
                
cur.audiosIndex.add(aobj);
              }, 
0);
            }
            if (!
cur.addedIdscur.addedIds = {};
            
cur.addedIds[raw_id] = 1;
            
showDoneBox(text, {out2000});
            
cur.addingAudio false;
            
_a.showCurrentAdded();
            
each([raw_idraw_id '_pad'aidaid '_pad'], function() {
              var 
Actions window.Audio || window.searchActions || {},
                  
addEl ge('audio' this) && geByClass1('audio_add_wrap'ge('audio' this));
              if (
Actions && Actions.animateAdded && addEl && !hasClass(addEl'anim')) {
                
Actions.animateAdded(addElisVisible(addEl) ? 200 0);
              }
            });
          },
          
onFail: function() {
            
cur.addingAudio false;
          }
        });
      }
    }
  },
  
shuffleAudios: function(fromPad) {
    var 
_a audioPlayerplaid;
    if (
fromPad && window.Pads) {
      
pl Pads.audioSearchCleared cur.nextPlaylist || {} : ((!window.audioPlaylist || window.curNotifier && (padPlData ls.get('pad_pldata')) && padPlData.source == curNotifier.instance_id) ? ls.get('pad_playlist') || window.audioPlaylist padAudioPlaylist());
      
aid = ((_a window.audioPlayer) && _a.isPlaylistGlobal()) ? ls.get('audio_id') || currentAudioId() : currentAudioId();
    } else {
      
pl window.audioPlaylist;
      
aid currentAudioId();
    }
    if (
aid) {
      var 
aid.match(/^-?d+_d+_s(-?d+)$/);
      if (
&& m[1] && _a.statusData && _a.statusData[m[1]]) {
        return 
false;
      }
    }
    if (!
pl && _a.isPlaylistGlobal()) {
      
pl ls.get('pad_playlist');
      if (
pl) {
        
window.audioPlaylist pl;
      }
    }
    if (
cur.module != 'audio' && !pl) {
      return 
false;
    }
    
_a.shuffle = !_a.shuffle;
    if (
_a.controls) {
      for (var 
i in _a.controls) {
        var 
obj _a.controls[i];
        if (
obj.shuffle) {
          
toggleClass(obj.shuffle'on'_a.shuffle);
        }
      }
    }
    if (
cur.module == 'audio' && window.Audio) {
      
Audio.mixAudios();
    } else {
      var 
aid currentAudioId(), startId pl.startres = [], other = [];
      if (
_a.shuffle) {
        for (var 
i in pl) {
          
each(['_prev''_next'], function() {
            if (
pl[i][this] !== undefined) {
              
pl[i]['_old'+this] = pl[i][this];
            }
          });
        }
        
pl[startId]._start true;
        if (
aid && pl[aid]) {
          
res.push(pl[aid]);
          
startId aid;
        } else {
          
other.push(pl[startId]);
        }
      } else {
        for (var 
i in pl) {
          if (
pl[i]._old_prev !== undefined && pl[i]._old_next !== undefined) {
            
pl[i]._prev pl[i]._old_prev;
            
pl[i]._next pl[i]._old_next;
            
delete pl[i]._old_prev;
            
delete pl[i]._old_next;
          }
          if (
pl[i]._start) {
            
startId i;
            
delete pl[i]._start;
          }
        }
        
other.push(pl[startId]);
      }
      var 
curId pl[startId]._next;
      while (
curId && curId != startId && pl[curId]) {
        var 
obj pl[curId];
        
delete obj._order;
        
other.push(obj);
        
curId pl[curId]._next;
      }
      if (
other && _a.shuffle) {
        var 
shuffle = function(arr) {
          for(var 
jxarr.lengthiparseInt(Math.random() * i), arr[--i], arr[i] = arr[j], arr[j] = x);
          return 
true;
        }
        
shuffle(other);
        
other = clone(other);
      }
      for (var 
i in other) {
        
res.push(other[i]);
      }
      
_a.genPlaylist(restruepl && pl.my);
      if (
Pads.updateAudioPlaylist) {
        
Pads.updateAudioPlaylist();
      }
    }
    return 
false;
  },
  
showStatusTT: function(obj) {
    var 
_a audioPlayer;
    if (
cur.statusTTPreloading) {
      return 
false;
    }
    
cur.statusTTPreloading true;
    
ajax.post('audio', {act'status_tt'}, {
      
cache1,
      
onDone: function(richTThtml) {
        if (
richTT) {
          
showTooltip(obj, {
            
texthtml,
            
className'audio_status_tt',
            
showdt0,
            
slide15,
            
hidedt400,
            
hasover1,
            
asrtl1,
            
shift: [3005],
            
onShowStart: function() {
              var 
clubs_content geByClass1('audio_status_wrap'obj.tt.container);
              if (!
cur.clubsScroll || !hasClass(clubs_content'ready')) {
                
cur.clubsScroll = new Scrollbar(clubs_content, {
                  
prefix'audio_clubs_',
                  
nomargintrue,
                  global: 
true,
                  
nokeystrue,
                  
rightvk.rtl 'auto' 0,
                  
left: !vk.rtl 'auto' 0,
                  
wheelObjclubs_content
                
});
                
addClass(clubs_content'ready');
              }
              
_a.updateAllStatusChecks();
            },
            
onShowEnd: function() {
              if (!
cur.clubsScroll) return;
              
cur.clubsScroll.update(falsetrue);
            },
          });
        } else {
          
showTooltip(obj, {textgetLang('audio_export_tip'), showdt0black1shift: [1100]});
        }
        
cur.statusTTPreloading false;
      }
    });
  },
  
updateStatus: function(eloid) {
    
checkbox(el);
    
audioPlayer.toggleStatus(oid);
  },
  
registerPlayer: function(nameobj) {
    var 
_a audioPlayer;
    
_a.controls _a.controls || {};
    
_a.controls[name] = obj;
    if (
obj.duration) {
      
addEvent(obj.duration'mousedown', function(){
        
_a.switchTimeFormat();
      });
    }
    if (
obj.volume && obj.volumeArea) {
      
addEvent(obj.volumeArea'mousedown', function(e){
        
_a.volClick(ename);
      });
      var 
volume browser.mobile 80 parseInt(getCookie('audio_vol'));
      
volume Math.max(0Math.min(volume100));
      
setStyle(obj.volume, {widthvolume '%'});
    }
    if (
obj.progress && obj.progressArea) {
      
addEvent(obj.progressArea'mousedown', function(e){
        
_a.prClick(ename);
      });
      
addEvent(obj.progressArea'mouseover', function(){
        if (
audioPlayer.playeraddClass(obj.progressArea'over');
        if (
cur.hideTipTO) {
          
clearTimeout(cur.hideTipTO);
        }
      });
      
addEvent(obj.progressArea'mouseout', function() {
        
removeClass(obj.progressArea'over');
        
cur.hideTipTO setTimeout(hide.pbind('audio_tip_wrap'), 100);
      });
    }
    if (
obj.play) {
      
addEvent(obj.play'click', function(e){
        var 
aid = (obj.padPlaylist && audioPlayer.isPlaylistGlobal() ? ls.get('audio_id') : null) || currentAudioId() || (audioPlayer.lastSong && audioPlayer.lastSong.aid) || (cur.defaultTrack && cur.defaultTrack.id) || window.audioPlaylist && audioPlaylist.start || '';
        if (
obj.padPlaylist) {
          
window.padPlClicked true;
        }
        if (
aidplayAudioNew(aidfalse);
      });
      
addEvent(obj.play'mousedown'addClass.pbind(obj.play'down'));
      
addEvent(obj.play'mouseup'removeClass.pbind(obj.play'down'));
    }
    var 
clickClbks = {
      
prev_a.prevTrack.pbind(false, !!obj.padPlaylist),
      
next_a.nextTrack.pbind(false, !!obj.padPlaylist),
      
add_a.addCurrentTrack,
      
repeat_a.toggleRepeat,
      
shuffle_a.shuffleAudios.pbind(!!obj.padPlaylist),
      
rec_a.showRec.pbind(false, !!obj.padPlaylist),
      
status_a.toggleStatus
    
};
    for (var 
i in clickClbks) {
      if (
obj[i]) {
        var 
callback clickClbks[i];
        
addEvent(obj[i], 'click'callback.pbind(false));
      }
    }
    var 
overTTs = {
      
add'audio_add_to_audio',
      
repeat'audio_repeat_tooltip',
      
shuffle'audio_shuffle',
      
rec'audio_show_recommendations'
    
};
    
each(['prev''next''play''add''repeat''rec''status''shuffle''volumeArea'], function(){
      if (
obj[this]) {
        var 
self this;
        
addEvent(obj[this], 'mouseover', function() {
          
addClass(this'over');
          if (
self == 'status'_a.showStatusTT(this);
          if (
overTTs[self] && !(self == 'add' && hasClass(this'added'))) {
            
showTooltip(this, {textgetLang(overTTs[self]), showdt0black1shift: [1100]});
          }
        });
      }
    });
    
each(['prev''next''play''add''repeat''rec''status''shuffle''volumeArea'], function(){
      if (
obj[this]) {
        
addEvent(obj[this], 'mouseout', function() {
          
removeClass(this'over');
          
removeClass(this'down');
        });
      }
    });
  },
  
deregisterPlayer: function(name) {
    var 
_a audioPlayerobj audioPlayer.controls[name];
    if (
obj.duration) {
      
removeEvent(obj.duration'mousedown', function(){
        
_a.switchTimeFormat();
      });
    }
    if (
obj.volume && obj.volumeArea) {
      
removeEvent(obj.volumeArea'mousedown', function(e){
        
_a.volClick(ename);
      });
    }
    if (
obj.progress && obj.progressArea) {
      
removeEvent(obj.progressArea'mousedown', function(e){
        
_a.prClick(ename);
      });
      
removeEvent(obj.progressArea'mouseover', function(){
        if (
audioPlayer.playeraddClass(obj.progressArea'over');
        if (
cur.hideTipTO) {
          
clearTimeout(cur.hideTipTO);
        }
      });
      
removeEvent(obj.progressArea'mouseout', function() {
        
removeClass(obj.progressArea'over');
        
cur.hideTipTO setTimeout(hide.pbind('audio_tip_wrap'), 100);
      });
    }
    if (
obj.play) {
      
removeEvent(obj.play'click', function(e){
        var 
aid = (obj.padPlaylist && audioPlayer.isPlaylistGlobal() ? ls.get('audio_id') : null) || currentAudioId() || (audioPlayer.lastSong && audioPlayer.lastSong.aid) || (cur.defaultTrack && cur.defaultTrack.id) || window.audioPlaylist && audioPlaylist.start || '';
        if (
obj.padPlaylist) {
          
window.padPlClicked true;
        }
        if (
aidplayAudioNew(aidfalse);
      });
      
removeEvent(obj.play'mousedown'addClass.pbind(obj.play'down'));
      
removeEvent(obj.play'mouseup'removeClass.pbind(obj.play'down'));
    }
    var 
clickClbks = {
      
prev_a.prevTrack.pbind(false, !!obj.padPlaylist),
      
next_a.nextTrack.pbind(false, !!obj.padPlaylist),
      
add_a.addCurrentTrack,
      
repeat_a.toggleRepeat,
      
shuffle_a.shuffleAudios.pbind(!!obj.padPlaylist),
      
rec_a.showRec.pbind(false, !!obj.padPlaylist),
      
status_a.toggleStatus
    
};
    for (var 
i in clickClbks) {
      if (
obj[i]) {
        var 
callback clickClbks[i];
        
removeEvent(obj[i], 'click'callback.pbind(false));
      }
    }
    var 
overTTs = {
      
add'audio_add_to_audio',
      
repeat'audio_repeat_tooltip',
      
shuffle'audio_shuffle',
      
rec'audio_show_recommendations'
    
};
    
each(['prev''next''play''add''repeat''rec''status''shuffle''volumeArea'], function(){
      if (
obj[this]) {
        var 
self this;
        
removeEvent(obj[this], 'mouseover', function() {
          
addClass(this'over');
          if (
self == 'status'_a.showStatusTT(this);
          if (
overTTs[self] && !(self == 'add' && hasClass(this'added'))) {
            
showTooltip(this, {textgetLang(overTTs[self]), showdt0black1shift: [1100]});
          }
        });
      }
    });
    
each(['prev''next''play''add''repeat''rec''status''shuffle''volumeArea'], function(){
      if (
obj[this]) {
        
removeEvent(obj[this], 'mouseout', function() {
          
removeClass(this'over');
          
removeClass(this'down');
        });
      }
    });
    
delete audioPlayer.controls[name];
  }
}

try{
stManager.done('audioplayer.js');}catch(e){}
?>
Онлайн: 2
Реклама