c762fe2fa67fd5f91bd6d6d4e744bf4a9bbe16d0
[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 SavePlayList() {
134
135 var name=window.prompt('Имя списка','');
136
137 var req = new XMLHttpRequest();
138
139 req.onreadystatechange = function () {
140   if (this.readyState != 4 || this.status != 200) return;
141   if (this.responseText != 'OK') {
142     window.alert(this.responseText);
143   }
144 };
145
146 req.open("GET", "ajax/save.php?item="+name, true);
147 req.send();
148
149 }
150
151 function RefreshPageContent() {
152
153   RefreshPageStatus();
154   RefreshPlaylist();
155
156 }
157
158 function Command(cmd) {
159
160 var req = new XMLHttpRequest();
161
162 req.onreadystatechange = function () {
163   if (this.readyState != 4 || this.status != 200) return;
164   RefreshPageStatus();
165 };
166
167 req.open("GET", "ajax/command.php?task="+cmd, true);
168 req.send();
169
170 }
171
172 function PlaylistCommand(cmd,item) {
173
174 var req = new XMLHttpRequest();
175
176 req.onreadystatechange = function () {
177   if (this.readyState != 4 || this.status != 200) return;
178   RefreshPageContent();
179 };
180
181 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
182 req.send();
183
184 }
185
186 function PlaylistCommandRefStatus(cmd,item) {
187
188 var req = new XMLHttpRequest();
189
190 req.onreadystatechange = function () {
191   if (this.readyState != 4 || this.status != 200) return;
192   RefreshPageStatus();
193 };
194
195 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
196 req.send();
197
198 }
199
200 function PlaylistEditCommand(cmd,item) {
201
202 var req = new XMLHttpRequest();
203
204 req.onreadystatechange = function () {
205   if (this.readyState != 4 || this.status != 200) return;
206   RefreshPageStatus();
207 };
208
209 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
210 req.send();
211
212 }
213
214 function PlaylistEditCommandRefFull(cmd,item) {
215
216 var req = new XMLHttpRequest();
217
218 req.onreadystatechange = function () {
219   if (this.readyState != 4 || this.status != 200) return;
220   RefreshPageContent();
221 };
222
223 req.open("GET", "ajax/playlist-command.php?item="+item+"&task="+cmd, true);
224 req.send();
225
226 }
227
228
229 function PlaylistItemsCommand(cmd) {
230
231 var req = new XMLHttpRequest();
232
233 var selected = [].filter.call(document.getElementsByName('itemlist[]'), function(c) {
234   return c.checked;
235 }).map(function(c) {
236   return c.value;
237 });
238   
239 req.onreadystatechange = function () {
240   if (this.readyState != 4 || this.status != 200) return;
241   RefreshPageContent();
242 };
243
244 params=selected.map(function(el) {
245         //Map each field into a name=value string, make sure to properly escape!
246         return 'itemlist[]=' + encodeURIComponent(el);
247     }).join('&');
248
249 req.open("POST", "ajax/playlist-command.php?task="+cmd, true);
250 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
251 req.send(params);
252
253 }
254
255 function PlaylistEditItemsCommand(cmd,dir) {
256
257 var req = new XMLHttpRequest();
258
259 var selected = [].filter.call(document.getElementsByName('itemlist[]'), function(c) {
260   return c.checked;
261 }).map(function(c) {
262   return c.value;
263 });
264   
265 params=selected.map(function(el) {
266         //Map each field into a name=value string, make sure to properly escape!
267         return 'itemlist[]=' + encodeURIComponent(el);
268     }).join('&');
269
270 req.onreadystatechange = function () {
271   if (this.readyState != 4 || this.status != 200) return;
272   RefreshPageStatus();
273 };
274
275 req.open("POST", "ajax/playlist-command.php?dir="+dir+"&task="+cmd, true);
276 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
277 req.send(params);
278
279 }
280
281 setInterval(RefreshPageStatus, 10000);