summaryrefslogtreecommitdiff
path: root/static/playlist.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/playlist.js')
-rw-r--r--static/playlist.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/static/playlist.js b/static/playlist.js
new file mode 100644
index 0000000..5e41de5
--- /dev/null
+++ b/static/playlist.js
@@ -0,0 +1,53 @@
+function Playlist(pl, audio) {
+ this.pl = pl;
+ this.audio = audio;
+ this.current = null;
+
+ this.get = function(path) {
+ var li = this.current;
+ while(li) {
+ var a = li.getElementsByTagName('a')[0];
+ if(a.ml.path == path)
+ return li;
+ li = li.nextElementSibling;
+ }
+ return null;
+ }
+
+ this.add = function(ml) {
+ var a = document.createElement('a');
+ a.setAttribute('href', '#');
+ a.appendChild(document.createTextNode(ml.path));
+ a.ml = ml;
+ var li = document.createElement('li');
+ var pl = this;
+ a.onclick = function() {
+ while(li.previousElementSibling)
+ li.previousElementSibling.parentElement.removeChild(li.previousElementSibling);
+ a.setAttribute('class', 'playing');
+ pl.current = li;
+ ml.play();
+ return false;
+ }
+ log(a.click);
+
+ li.appendChild(a);
+ this.pl.appendChild(li);
+ }
+
+ this.next = function() {
+ log('next');
+ log('this: ' + this);
+ log('current: ' + this.current);
+ if(this.current) {
+ var old = this.current;
+ log('old: ' + old);
+ this.current = this.current.nextElementSibling;
+ old.parentElement.removeChild(old);
+ }
+ if(this.current) {
+ var a = this.current.getElementsByTagName('a')[0];
+ a.onclick();
+ }
+ }
+}