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