1fe1a829a2d24d79ad1382ff509e130e12a4816e
[mpd-web.git] / ajax / mpd.js
1
2 function RefreshNowPlaying() {
3
4 var req = new XMLHttpRequest();
5
6 req.onreadystatechange = function () {
7   if (this.readyState != 4 || this.status != 200) return;
8   document.getElementById('nowplaying_content').innerHTML=this.responseText;
9   document.title='MPD Player: '+this.responseText;
10 };
11
12 req.open("GET", "ajax/trackinfo.php", true);
13 req.send();
14
15 }
16
17 function RefreshPlayerState() {
18
19 var req = new XMLHttpRequest();
20
21 req.onreadystatechange = function () {
22   if (this.readyState != 4 || this.status != 200) return;
23   if (this.responseText=="play") {
24     document.getElementById('playpausebutton').innerHTML="<span onclick=\"Command('pause')\"><img class=\"button\" src=\"images/pause.png\"></span>";
25   } else {
26     document.getElementById('playpausebutton').innerHTML="<span onclick=\"Command('play')\"><img class=\"button\" src=\"images/play.png\"></span>";
27   }
28 };
29
30 req.open("GET", "ajax/playerstate.php", true);
31 req.send();
32
33 }
34
35 function RefreshRepeatState() {
36
37 var req = new XMLHttpRequest();
38
39 req.onreadystatechange = function () {
40   if (this.readyState != 4 || this.status != 200) return;
41   if (this.responseText=="1") {
42     document.getElementById('repeatstate').innerHTML="<img src=\"images/repeaton.png\"></a>";
43   } else {
44     document.getElementById('repeatstate').innerHTML="<img src=\"images/repeatoff.png\"></a>";
45   }
46 };
47
48 req.open("GET", "ajax/repeatstate.php", true);
49 req.send();
50
51 }
52
53 function RefreshVolume() {
54
55 var req = new XMLHttpRequest();
56
57 req.onreadystatechange = function () {
58   if (this.readyState != 4 || this.status != 200) return;
59   document.getElementById('volume_total').innerHTML="<div id=\"volume_actual\" style=\"width:"+this.responseText+"%\">";
60 };
61
62 req.open("GET", "ajax/volume.php", true);
63 req.send();
64
65 }
66
67 function RefreshPageStatus() {
68
69   RefreshNowPlaying();
70   RefreshPlayerState();
71   RefreshRepeatState();
72   RefreshVolume();
73
74 }
75
76 function RefreshPlaylist() {
77
78 var req = new XMLHttpRequest();
79
80 req.onreadystatechange = function () {
81   if (this.readyState != 4 || this.status != 200) return;
82   document.getElementById('playlist').innerHTML=this.responseText;
83 };
84
85 req.open("GET", "ajax/playlist.php", true);
86 req.send();
87
88 }
89
90 function EditPlayList(dir) {
91
92 var req = new XMLHttpRequest();
93
94 req.onreadystatechange = function () {
95   if (this.readyState != 4 || this.status != 200) return;
96   document.getElementById('playlist').innerHTML=this.responseText;
97 };
98
99 if (!dir) { dir = ''; };
100
101 req.open("GET", "ajax/editplaylist.php?dir="+dir, true);
102 req.send();
103
104 }
105
106 function RefreshPageContent() {
107
108   RefreshPageStatus();
109   RefreshPlaylist();
110
111 }
112
113 function Command(cmd) {
114
115 var req = new XMLHttpRequest();
116
117 req.onreadystatechange = function () {
118   if (this.readyState != 4 || this.status != 200) return;
119   RefreshPageStatus();
120 };
121
122 req.open("GET", "ajax/command.php?task="+cmd, true);
123 req.send();
124
125 }
126
127 function PlaylistCommand(cmd,item) {
128
129 var req = new XMLHttpRequest();
130
131 req.onreadystatechange = function () {
132   if (this.readyState != 4 || this.status != 200) return;
133   RefreshPageContent();
134 };
135
136 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
137 req.send();
138
139 }
140
141 function PlaylistEditCommand(cmd,item) {
142
143 var req = new XMLHttpRequest();
144
145 req.onreadystatechange = function () {
146   if (this.readyState != 4 || this.status != 200) return;
147   RefreshPageStatus();
148 };
149
150 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
151 req.send();
152
153 }
154
155
156 function PlaylistItemsCommand(cmd) {
157
158 var req = new XMLHttpRequest();
159
160 var selected = [].filter.call(document.getElementsByName('itemlist[]'), function(c) {
161   return c.checked;
162 }).map(function(c) {
163   return c.value;
164 });
165   
166 req.onreadystatechange = function () {
167   if (this.readyState != 4 || this.status != 200) return;
168   RefreshPageContent();
169 };
170
171 params=selected.map(function(el) {
172         //Map each field into a name=value string, make sure to properly escape!
173         return 'itemlist[]=' + encodeURIComponent(el);
174     }).join('&');
175
176 req.open("POST", "ajax/playlist-command.php?task="+cmd, true);
177 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
178 req.send(params);
179
180 }
181
182 function PlaylistEditItemsCommand(cmd,dir) {
183
184 var req = new XMLHttpRequest();
185
186 var selected = [].filter.call(document.getElementsByName('itemlist[]'), function(c) {
187   return c.checked;
188 }).map(function(c) {
189   return c.value;
190 });
191   
192 params=selected.map(function(el) {
193         //Map each field into a name=value string, make sure to properly escape!
194         return 'itemlist[]=' + encodeURIComponent(el);
195     }).join('&');
196
197 req.onreadystatechange = function () {
198   if (this.readyState != 4 || this.status != 200) return;
199   RefreshPageStatus();
200 };
201
202 req.open("POST", "ajax/playlist-command.php?dir="+dir+"&task="+cmd, true);
203 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
204 req.send(params);
205
206 }
207
208 setInterval(RefreshPageStatus, 10000);