/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.ux.SliderTip = Ext.extend(Ext.Tip, {
minWidth: 10,
offsets : [0, -10],
init : function(slider){
slider.on('dragstart', this.onSlide, this);
slider.on('drag', this.onSlide, this);
slider.on('dragend', this.hide, this);
slider.on('destroy', this.destroy, this);
},
onSlide : function(slider){
this.show();
this.body.update(this.getText(slider));
this.doAutoWidth();
this.el.alignTo(slider.thumb, 'b-t?', this.offsets);
},
getText : function(slider){
return slider.getValue();
}
});
var player_bar_tip = new Ext.ux.SliderTip({
getText: function(slider){
return String.format('{0}', renderDuration(Math.round(player_obj.duration*slider.getValue()/100)));
}
});
player_bar = new Ext.Slider({
renderTo: 'player',
id:'player_bar',
minValue: 0,
maxValue: 100,
value: 0,
width: 180,
disabled: true,
plugins: player_bar_tip,
listeners: {
dragstart: function(s,e)
{
player_obj.stop_updating = true;
},
dragend: function(s,e)
{
player_obj.seek_percent(s.getValue());
},
changecomplete: function(s,v){
player_obj.seek_percent(v);
},
render: function(s)
{
var parent = document.getElementById("player_bar").firstChild.firstChild;
var child = document.getElementById("player_bar").firstChild.firstChild.firstChild;
var ladebalken = document.getElementById("ladebalken");
parent.insertBefore(ladebalken,child);
}
}
});
var volume_tip = new Ext.ux.SliderTip({
getText: function(slider){
return String.format('{0}% volume', slider.getValue());
}
});
player_volume_bar = new Ext.Slider({
renderTo: 'player_volume',
minValue: 0,
maxValue: 100,
value: 100,
width: 50,
vertical: false,
plugins: volume_tip,
listeners: {
change: function(s,v){
player_obj.set_volume(v);
}
}
});
Ext.get('player_bar').applyStyles('cursor:pointer');
if(DEMO_MODE)
{
Ext.MessageBox.show({
title: 'Welcome to the demo-version of MyWebJukebox!',
msg: 'On this site, no copyright-protected material is available for download or streaming!
Whatever entry you will choose, will always be played \"Feel the Love\" from Sinusblitz which he contributed to this project.
In the demo-version, all changes on playlists won\'t be saved.',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
});
}
var dir_tree = new Ext.tree.TreePanel({
useArrows:true,
title: 'Folder',
autoScroll:true,
iconCls: 'icon-folder',
id:'dir_treeID',
animate:true,
border: false,
enableDD:false,
containerScroll: true,
trackMouseOver: false,
listeners: {
'render': function(tp){
tp.getSelectionModel().on('selectionchange', function(tree, node){
if(!dont_select_tree_node)
{
filter_setting("tree",node.attributes.full_path);
}
else
dont_select_tree_node = false;
})
}
},
// auto create TreeLoader
dataUrl: 'get_tree.php',
rootVisible: false,
layout:'fit',
root: {
text: 'MP3s',
draggable:false,
id:-1
}
});
player_obj = new player();
mp3_list_obj = mp3_list();
play_list_obj = play_list();
artist_obj = artist_list();
album_obj = album_list();
var filter_panel = new Ext.Panel({
region:'west',
id: 'filter_panelID',
width: 234,
border: false,
minSize: 90,
header: false,
title:'Filter',
iconCls: 'icon-filter',
animFloat: false,
layout:'accordion',
items: [dir_tree, artist_obj, album_obj]
});
/*playing_info_panel = new Ext.Panel({
split: true,
border: false,
region:'south',
id: 'playing_infoID',
height:161,
minHeight: 161,
maxHeight: 322,
items: [{
xtype:'box',
el:'playing_info',
border:false
}]});*/
/*right_panel = new Ext.Panel({
layout:'border',
border: false,
items: [
{
layout:'fit',
border: false,
width: 240,
region:'center',
items: [play_list_obj]
},
playing_info_panel
]
}); */
/*player_obj.undock_button = new Ext.Button({
iconCls:'icon-undock',
tooltip: 'undock player',
id: 'player_undock_buttonID',
handler: undock_player
}
).render("window_options");// where you want to render*/
var viewport = new Ext.Viewport({
layout:'border',
items:[
new Ext.Panel(
{
header: true,
title:'Filter',
iconCls: 'icon-filter',
collapsible:true,
floatable:true,
split: true,
width: 185,
minSize: 185,
id: 'left_pangelID',
layout:'border',
region:'west',
items:[
{
region:'north',
hidden:'true',
border: false,
id:'left_northID',
layout: 'fit',
items: []
},
{
region:'center',
border: false,
id:'left_regionID',
layout: 'fit',
items: [filter_panel]
},
{
region:'south',
border: false,
hidden:'true',
id:'left_southID',
layout: 'fit',
items: []
}
]
}),
new Ext.Panel(
{
header: true,
iconCls: 'icon-playlist',
title:'Playlists',
listeners: {
beforecollapse: function()
{
undock_player();
}
},
collapsible:true,
floatable:true,
split: true,
width: 242,
minSize: 242,
id: 'right_pangelID',
layout:'border',
region:'east',
items:[
{
region:'north',
border: false,
hidden:'true',
id:'right_northID',
layout: 'fit',
items: []
},
{
region:'center',
border: false,
id:'right_regionID',
layout: 'fit',
items: [play_list_obj]
},
{
region:'south',
split: true,
height:161,
minHeight: 161,
maxHeight: 322,
id:'right_southID',
layout: 'fit',
items: [
{
xtype:'box',
el:'playing_info',
id: 'playing_info_content',
border:false
}
]
}
]
}),
new Ext.Panel(
{
id: 'center_pangelID',
layout:'border',
region:'center',
items:[
{
region:'north',
hidden:'true',
border: false,
id:'center_northID',
layout: 'fit',
items: []
},
{
region:'center',
border: false,
id:'center_regionID',
layout: 'fit',
items: [mp3_list_obj]
},
{
region:'south',
hidden:'true',
border: false,
id:'center_southID',
layout: 'fit',
items: []
}
]
})]
});
//Ext.getCmp("artist_list").selModel.on('beforerowselect', function() { if(from_cellclick) return true; else return false; });
player_obj.undock_button = new Ext.Button({
iconCls:'icon-undock',
tooltip: 'undock player',
id: 'player_undock_buttonID',
handler: undock_player
}
).render("window_options");// where you want to render
player_obj.prev_button = new Ext.Button({
iconCls:'icon-previous',
tooltip: 'Play previous song in playlist',
id: "player_previous_buttonID",
handler : function(){
player_obj.prev_next(-1);
}
}
).render("control");// where you want to render
player_obj.stop_button = new Ext.Button({
iconCls:'icon-stop',
tooltip: '[stop_song_from_list]',
id: "player_stop_buttonID",
handler : function(){
player_obj.stop_playing();
}
}
).render("control");// where you want to render
player_obj.pause_button = new Ext.Button({
iconCls:'icon-play',
tooltip: 'Pause',
id: "player_pause_buttonID",
handler : function(){
player_obj.pause_playlist();
}
}
).render("control");// where you want to render
player_obj.next_button = new Ext.Button({
iconCls:'icon-next',
tooltip: 'Play next song in playlist',
id: "player_next_buttonID",
handler : function(){
player_obj.prev_next(1);
}
}
).render("control");// where you want to render
player_obj.shuffle_button = new Ext.Button({
iconCls:'icon-shuffle',
enableToggle: true,
tooltip: 'Shuffle on/off',
id: 'player_shuffle_buttonID',
handler : function(btn){
if(btn.pressed)
{
player_obj.list_random = true;
player_obj.played_songs = new Array();
}
else
{
player_obj.list_random = false;
player_obj.played_songs = new Array();
}
}
}
).render("player_options");// where you want to render
player_obj.extras_button = new Ext.Button({
iconCls:'icon-extras',
tooltip: 'Extras',
disabled: true,
id: 'player_extras_buttonID'
}
).render("player_options");// where you want to render
player_obj.extras_button.addListener({
'click' : {
fn : function(btn){
var menu = extras_menu(player_obj.current_data,"player");
menu.show(document.getElementById("player_extras_buttonID"));
}
}
})
Ext.getCmp("album_list").addListener({
'resize' : {
fn : function() {
Ext.getCmp('album_list').view.refresh();
},
scope : this
}
});
if(cp.get("player_window_show",0))
undock_player();
player_obj.set_time_display_mode();
dir_tree.getRootNode().expand(false);
soundManager = new SoundManager();
soundManager.onload = function() { player_obj.inited = 1; }
soundManager.url = 'soundmanager/swf/'; // directory where SM2 .SWFs live
soundManager.debugMode = false;
soundManager.nullURL = 'soundmanager/demo/jsAMP-preview/data/null.mp3'
player_obj.last_position = 0;
soundManager.waitForWindowLoad = true;
soundManager.consoleOnly = true;
//soundManager.useConsole = true;
})