<?php
preg_match('/.*\//', $_SERVER['SCRIPT_NAME'], $matches);
$web_prefix = 'http://'.$_SERVER['SERVER_NAME'].$matches[0].'..';
?>
<html>
<head>
<title>Directory Player</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="browser.css" title="dark" media="screen" />
<link rel="stylesheet" type="text/css" href="player.css" title="dark" media="screen" />
<script type="text/javascript" src="script/soundmanager2-jsmin.js"></script>
<script type="text/javascript" src="script/mootools11nc.js"></script>
<script type="text/javascript" src="script/jsamp-preview.js"></script>
<script type="text/javascript" src="collection.js"></script>
<script type="text/javascript" language="javascript">
var web_prefix = '<?=$web_prefix?>';
var drop = 0;
var dropFx = 0;
function nodeclick(event) {
event = new Event(event);
if (event.target.getSize().size.y == '14') {
event.target.style.height = 'auto';
event.target.style.background = 'url("image/minus.gif") left 2px no-repeat';
} else {
event.target.style.height = '14px';
event.target.style.background = 'url("image/plus.gif") left 2px no-repeat';
}
event.stopPropagation();
}
function leafclick(event) {
event = new Event(event);
event.stopPropagation();
if ($(event.target).files) {
if ($('songs')) $('songs').remove();
var songs = new Element('TABLE', {
'id': 'songs',
'class': 'songs',
'border': '0',
'cellspacing': '0',
'cellpadding': '2'
})
var trbody = new Element('TBODY').injectInside(songs);
var tr = new Element('TR').injectInside(trbody);
new Element('TH').setHTML('#').injectInside(tr);
new Element('TH').setHTML('Artist').injectInside(tr);
new Element('TH').setHTML('Album').injectInside(tr);
new Element('TH').setHTML('Song Title').injectInside(tr);
$(event.target).files.each(function(value, key) {
var tr = new Element('TR', { 'events': { 'mouseover': songover, 'mouseout': songout } } ).injectInside(trbody);
if ( key % 2 != 0 ) tr.className = 'even';
tr.addEvent('mousedown', function(e) {
e = new Event(e).stop();
var clone = this.clone()
.setStyles(this.getCoordinates([$('view')]))
.setStyles({'opacity': 0.7, 'position': 'absolute', 'border': '1px solid #999', 'z-index': '100'})
.addEvent('emptydrop', function() {
this.remove();
drop.removeEvents();
}).inject(document.body);
drop.addEvents({
'drop': function() {
drop.removeEvents();
clone.remove();
$('lst').empty();
soundPlayer.oPlaylist.links[soundPlayer.oPlaylist.links.length] = new Element('A', {href: tr.file}).setHTML(tr.song);
soundPlayer.oPlaylist.addItem({url:tr.file, name:tr.song})
soundPlayer.oPlaylist.createPlaylist();
soundPlayer.oPlaylist.createTweens();
dropFx.start('7389AE').chain(dropFx.start.pass('000000', dropFx));
},
'over': function() {
dropFx.start('98B5C1');
},
'leave': function() {
dropFx.start('000000');
}
});
var drag = clone.makeDraggable({
droppables: [drop]
});
drag.start(e);
});
new Element('TD', {'class': 'track'} ).setHTML(this.track.get(key)).injectInside(tr);
new Element('TD', {'class': 'artist'} ).setHTML(this.artist.get(key)).injectInside(tr);
new Element('TD', {'class': 'album'} ).setHTML(this.album.get(key)).injectInside(tr);
new Element('TD', {'class': 'title'} ).setHTML(this.titles.get(key)).injectInside(tr);
tr.file = web_prefix+this.files.get(key).replace(/\w+\/\.\.\//i, '');
tr.song = this.titles.get(key);
}, $(event.target));
songs.injectInside($('view'));
}
}
function songover(event) {
event = new Event(event);
event.target.parentNode.addClass('songover');
}
function songout(event) {
event = new Event(event);
event.target.parentNode.removeClass('songover');
}
function initialize() {
drop = $('droptarget');
dropFx = drop.effect('background-color', {wait: false});
$$('.leaf').each(function(item){
item.addEvent('mousedown', function(e) {
e = new Event(e).stop();
var clone = this.clone()
.setStyles(this.getCoordinates([$('tree')]))
.setStyles({'opacity': 0.7, 'position': 'absolute', 'border': '1px solid #999'})
.addEvent('emptydrop', function() {
this.remove();
drop.removeEvents();
}).inject(document.body);
drop.addEvents({
'drop': function() {
drop.removeEvents();
clone.remove();
$('lst').empty();
item.files.each(function(fl, key) {
var slink = (web_prefix+fl).replace(/\w+\/\.\.\//i, '');
soundPlayer.oPlaylist.links[soundPlayer.oPlaylist.links.length] = new Element('A', {href: slink}).setHTML(this.titles.get(key));
soundPlayer.oPlaylist.addItem({url:slink, name:this.titles.get(key)})
}, item);
soundPlayer.oPlaylist.createPlaylist();
soundPlayer.oPlaylist.createTweens();
dropFx.start('7389AE').chain(dropFx.start.pass('000000', dropFx));
},
'over': function() {
dropFx.start('98B5C1');
},
'leave': function() {
dropFx.start('000000');
}
});
var drag = clone.makeDraggable({
droppables: [drop]
});
drag.start(e);
});
});
}
window.addEvent('domready', initialize);
</script>
</head>
<body>
<div id="logo"></div>
<div id="droptarget">Drop here to append to the playlist</div>
<div id="tree"></div>
<div id="view"></div>
<div>
<!-- <a href="rescan.php">Rescan your collection.</a> -->
<!-- skin / control stuff -->
<div id="player-template" class="sm2player">
<!-- player UI (bar) -->
<div class="ui">
<div class="left">
<a href="#" title="Pause/Play" false" class="trigger pauseplay"><span></span></a>
</div>
<div class="mid">
<div class="progress"></div>
<div class="info"><span class="caption text">%{artist} - %{title} [%{album}], (%{year}) (%{time})</span></div>
<div class="default">--------------------</div>
<div class="seek">Seek to %{time1} of %{time2} (%{percent}%)</div>
<div class="divider"> --- </div>
<a href="#" title="" class="slider"></a>
</div>
<div class="right">
<div class="divider"></div>
<div class="time" title="Time">0:00</div>
<a href="#" title="Previous" class="trigger prev" false"><span></span></a>
<a href="#" title="Next" class="trigger next" false"><span></span></a>
<a href="#" title="Shuffle" class="trigger s1 shuffle" false"><span></span></a>
<a href="#" title="Repeat" class="trigger s2 loop" false"><span></span></a>
<a href="#" title="Mute" class="trigger s3 mute" false"><span></span></a>
<a href="#" title="Volume" false" false" class="trigger s4 volume"><span></span></a>
<a href="#" title="Playlist" class="trigger dropdown" false"><span></span></a>
</div>
</div>
<div class="sm2playlist-box">
<!-- playlist / controls -->
<div id="playlist-template" class="sm2playlist">
<div class="hd"><div class="c"></div></div>
<div class="bd">
<ul id="lst">
<!-- playlist items created, inserted here
<li><a href="/path/to/some.mp3"><span>Artist - Song Name, etc.</span></a></li>
-->
</ul>
</div>
<div class="ft"><div class="c"></div></div>
</div>
<!-- close container -->
</div>
</div>
<div style="position:absolute;left:-9999px;top:-9999px;width:30em">
<ul id="playlst">
</ul>
</div>
</div>
<script type="text/javascript">soundManager.createMovie('soundmanager2.swf');</script>
</body>
</html>