MP3-jPlayer - Version 1.3.0

Version Description

  • Updated jquery.jplayer.min.js to version 1.2.0 (including the new .swf file). The plugin should now work on the iPad.
  • Fixed admin side broken display of the uploads folder path that occured when a path had been specified but didn't yet exist.
  • Fixed the broken link to the (new) media settings page when running in Wordpress 3.
  • Changed the 'Use my media library titles...' option logic to allow any titles or captions to independently over-ride the library by default. The option is now 'Always use my media library titles...' which when ticked will give preference to library titles/captions over those in the custom fields.
  • Modified the css for compatibility with Internet Explorer 6. The player should now display almost the same in IE6 as in other browsers.
Download this release

Release Info

Developer simon.ward
Plugin Icon 128x128 MP3-jPlayer
Version 1.3.0
Comparing to
See all releases

Version 1.3.0

css/images/Copy of buttons2.png ADDED
Binary file
css/images/Copy of buttons2H.png ADDED
Binary file
css/images/Thumbs.db ADDED
Binary file
css/images/blue-bar.gif ADDED
Binary file
css/images/buttons.png ADDED
Binary file
css/images/buttonsH.png ADDED
Binary file
css/images/case2-l.png ADDED
Binary file
css/images/case2-r.png ADDED
Binary file
css/images/case2-tabr.png ADDED
Binary file
css/images/case2-x.png ADDED
Binary file
css/images/finding-bar10.gif ADDED
Binary file
css/images/finding-bar10b.gif ADDED
Binary file
css/images/finding-bar9.gif ADDED
Binary file
css/images/finding-bar9b.gif ADDED
Binary file
css/images/finding-barBc.gif ADDED
Binary file
css/images/green-bar2.gif ADDED
Binary file
css/images/grey-bar.gif ADDED
Binary file
css/images/grey-bar2.gif ADDED
Binary file
css/images/list-x.gif ADDED
Binary file
css/images/pos-bar2.gif ADDED
Binary file
css/images/pos-handle.gif ADDED
Binary file
css/images/pos-handle3.gif ADDED
Binary file
css/images/pos-handle3H.gif ADDED
Binary file
css/images/pos-handleH.gif ADDED
Binary file
css/images/vol-handle.gif ADDED
Binary file
css/images/vol-handle2.gif ADDED
Binary file
css/images/vol-handleH.gif ADDED
Binary file
css/mp3-jplayer-cyanALT.css ADDED
@@ -0,0 +1,350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ____________________________________________
2
+
3
+ MP3-jPlayer CSS - ALT cyan - www.sjward.org
4
+ ____________________________________________
5
+ */
6
+
7
+
8
+ div.jp-playlist-player {
9
+
10
+ /* NOTE position or float is set at the admin panel */
11
+
12
+ border: 0px solid #f00;
13
+ margin: 0px;
14
+ font-family: Verdana, Arial, sans-serif;
15
+ color: #666;
16
+ width: auto; }
17
+
18
+
19
+ /* skin
20
+ ----------------------------------------- */
21
+ div.jp-innerwrap { position: relative;
22
+ width: 281px; }
23
+
24
+ #innerx { position: absolute;
25
+ width: 261px; /* IE6 - need to specify widths/height */
26
+ height: 103px;
27
+ left: 10px;
28
+ right: 10px;
29
+ top: 0px;
30
+ background: url('images/case2-x.png') repeat-x left top; }
31
+
32
+ #innerleft { position: absolute;
33
+ width: 10px;
34
+ height: 103px; /* IE6 - need to specify height */
35
+ left: 0px;
36
+ top: 0px;
37
+ background: url('images/case2-l.png') no-repeat left top; }
38
+
39
+ #innerright { position: absolute;
40
+ width: 10px;
41
+ height: 103px; /* IE6 - need to specify height */
42
+ right: 0px;
43
+ top: 0px;
44
+ background: url('images/case2-r.png') no-repeat left top; }
45
+
46
+ #innertab { position: absolute;
47
+ width: 100px;
48
+ height: 20px;
49
+ right: 0px;
50
+ top: 0px;
51
+ background: url('images/case2-tabr.png') no-repeat right top; }
52
+
53
+
54
+ /* interface
55
+ ----------------------------------------- */
56
+ div.jp-interface { position: relative;
57
+ width:281px;
58
+ height: 103px;
59
+ border: 0px solid #505050;
60
+ cursor: default; }
61
+
62
+
63
+ /* display */
64
+ #player-track-title {
65
+ position: absolute;
66
+ font: normal normal 500 12px 'verdana', 'Lucida Grande', 'arial', sans-serif;
67
+ top: 22px;
68
+ left: 10px;
69
+ width: auto;
70
+ max-width: 232px;
71
+ color: #4f9ad4; /* 444 01ace5 */
72
+ line-height: 14px;
73
+ white-space: nowrap;
74
+ overflow: hidden; }
75
+
76
+ #player-artist {
77
+ position: absolute;
78
+ font: normal normal 500 9px 'verdana', 'Lucida Grande', 'arial', sans-serif;
79
+ top: 9px;
80
+ left: 26px;
81
+ width: auto;
82
+ color: #909090;
83
+ line-height: 12px;
84
+ max-width: 165px;
85
+ white-space: nowrap;
86
+ overflow: hidden; }
87
+
88
+ div.jp-play-time,
89
+ div.jp-total-time,
90
+ #status { position: absolute;
91
+ font: normal normal 500 8px 'verdana', 'Lucida Grande', 'arial', sans-serif;
92
+ color: #aaacad;
93
+ text-align: left; }
94
+
95
+
96
+
97
+
98
+
99
+ div.jp-play-time { left: 177px; top: 42px; }
100
+ div.jp-total-time { right: 8px; top: 42px; }
101
+ #status { right: 35px; top: 42px; width: 40px; }
102
+
103
+
104
+ #status { font-size: 8px; }
105
+
106
+
107
+
108
+ span.mp3-finding { background: url('../css/images/finding-bar9.gif') no-repeat left top; }
109
+ span.mp3-loading { background: url('../css/images/finding-bar9b.gif') no-repeat right top; }
110
+
111
+
112
+ /* transport buttons */
113
+ div.jp-interface ul.jp-controls {
114
+ list-style-type:none;
115
+ padding:0;
116
+ margin: 0px 0px 0px 16px; }
117
+
118
+ div.jp-interface ul.jp-controls li {
119
+ position: absolute; }
120
+
121
+ div.jp-interface ul.jp-controls a {
122
+ display: block;
123
+ position: absolute;
124
+ overflow:hidden;
125
+ text-indent:-9999px;
126
+ outline: none; }
127
+
128
+ a.jp-play,
129
+ a.jp-pause,
130
+ a.jp-stop,
131
+ a.jp-previous,
132
+ a.jp-next {
133
+ top:65px;
134
+ width:30px;
135
+ height:30px;
136
+ border: 0px solid #b2b2b2; }
137
+
138
+ a.jp-play { left: 229px; width:29px; height:31px; background: url("images/buttons.png") -110px 1px no-repeat; }
139
+ a.jp-play:hover { background: url("images/buttonsH.png") -110px 1px no-repeat; }
140
+
141
+ a.jp-pause { left: 229px; width:29px; height:31px; background: url("images/buttons.png") -2px 1px no-repeat; }
142
+ a.jp-pause:hover { background: url("images/buttonsH.png") -2px 1px no-repeat; }
143
+
144
+ a.jp-stop { left: 199px; width:28px; height:31px; background: url("images/buttons.png") -80px 1px no-repeat; }
145
+ a.jp-stop:hover { background: url("images/buttonsH.png") -80px 1px no-repeat; }
146
+
147
+ a.jp-previous { left:141px; width:22px; top:66px; background: url("images/buttons.png") -32px 0px no-repeat; }
148
+ a.jp-previous:hover { background: url("images/buttonsH.png") -32px 0px no-repeat; }
149
+
150
+ a.jp-next { left:165px; width:22px; top:66px; background: url("images/buttons.png") -55px 0px no-repeat; }
151
+ a.jp-next:hover { background: url("images/buttonsH.png") -55px 0px no-repeat; }
152
+
153
+
154
+ /* other buttons*/
155
+ #playlist-toggle, #downloadmp3-button {
156
+ position: absolute;
157
+ font: normal normal 500 9px 'trebuchet ms', 'Lucida Grande', 'arial', sans-serif;
158
+ top: 82px;
159
+ left: 1px;
160
+ color: #696969;
161
+ padding: 2px 5px 2px 5px;
162
+ line-height: 11px;
163
+ border: 1px solid #acacac;
164
+ border-left: 1px solid #b1b1b1;
165
+ background: #bbb;
166
+ -moz-border-radius-topright: 3px;
167
+ -webkit-border-top-right-radius: 3px;
168
+ cursor: default; }
169
+
170
+ #playlist-toggle:hover { background: #ccc; color: #777; }
171
+
172
+ #downloadmp3-button { top: 41px; left: 3px; width: 75px;
173
+ padding: 1px 3px 2px 0px;
174
+ border: 0px;
175
+ background-color: #dadada;
176
+ color: #fff;
177
+ -moz-border-radius-topleft: 0px; -moz-border-radius-topright: 5px;
178
+ -webkit-border-top-left-radius: 0px; -webkit-border-top-right-radius: 5px;
179
+ overflow: hidden; }
180
+
181
+ /* #downloadmp3-button:hover { background-color: #49bbff; } */
182
+
183
+ #downloadmp3-button.betweenlinks { background-color: #dadada; }
184
+
185
+ #downloadmp3-button.whilelinks { background-color: #bbb; } /* c7b9a0 d4be96 bbb */
186
+ #downloadmp3-button.whilelinks:hover { background-color: #c7b9a0; }
187
+
188
+ #downloadmp3-button a { color: #ececec;
189
+ display: block;
190
+ width: 100%;
191
+ padding: 0px 5px 0px 5px;
192
+ background: transparent;
193
+ text-decoration: none; }
194
+
195
+ /* #downloadmp3-button a:hover { color: #fff; } */
196
+
197
+ #downloadmp3-button.betweenlinks a { color: #ececec; }
198
+ #downloadmp3-button.whilelinks a { color: #fff; }
199
+
200
+
201
+ /* sliders/bars */
202
+ .ui-state-disabled { cursor: default !important; }
203
+ .ui-slider { position: relative; text-align: left; }
204
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
205
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
206
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
207
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
208
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
209
+
210
+ .ui-state-default, .ui-widget-content .ui-state-default {
211
+ outline: none; }
212
+
213
+
214
+ .ui-widget-header { border: 1px solid #888;
215
+ border-left: 0px;
216
+ border-right: 0px;
217
+ background: #77ccff url('images/pos-bar2.gif') repeat-x left top;
218
+ color: #888;
219
+ font-weight: bold; }
220
+
221
+ #sliderVolume { position:absolute;
222
+ top:7px;
223
+ right: 10px;
224
+ width: 58px;
225
+ height:2px;
226
+ background: #777;
227
+ border: 1px solid #444;
228
+ font-size: 1px; /* IE6 - sorts out div height */
229
+ cursor: default; }
230
+
231
+ #sliderVolume .ui-widget-header { background: #ccc; /* 5d84dcb4a488 */ }
232
+
233
+ #sliderVolume .ui-slider-handle {
234
+ height: 10px;
235
+ width: 9px;
236
+ margin-left: -4px;
237
+ top: -4px;
238
+ border: 0px;
239
+ -moz-border-radius: 2px;
240
+ -webkit-border-radius: 2px;
241
+ background: transparent url('images/pos-handle.gif') no-repeat -2px -2px; }
242
+
243
+ #sliderVolume .ui-slider-handle:hover {
244
+ border-color: #888;
245
+ background: #606060;
246
+ background: transparent url('images/pos-handleH.gif') no-repeat -2px -2px; }
247
+
248
+ #sliderVolume .ui-state-active,
249
+ #sliderVolume .ui-widget-content .ui-state-active {
250
+ border: 0px solid #777;
251
+ background: transparent url('images/pos-handleH.gif') no-repeat -2px -2px;
252
+ outline: none; }
253
+
254
+ #bars_holder { position:absolute;
255
+ top: 55px;
256
+ left: 2px;
257
+ width:277px;
258
+ height: 9px;
259
+ background: #888;
260
+ font-size: 1px; /* IE6 - sorts out div height */
261
+ cursor: default; }
262
+
263
+ #sliderPlayback { position: absolute;
264
+ width: 269px;
265
+ background: #888;
266
+ top: 0px;
267
+ font-size: 5px; /* IE6 - sorts out div height */
268
+ border: 1px solid #888;
269
+ border-bottom: 0px solid #888;
270
+ border-left: 0px solid #888; }
271
+
272
+ #sliderPlayback .ui-slider-handle {
273
+ top: -2px;
274
+ margin-left: -2px;
275
+ border: 0px;
276
+ height: 13px;
277
+ width: 12px;
278
+ background: transparent url('images/pos-handle3.gif') no-repeat left top; }
279
+
280
+ #sliderPlayback .ui-slider-handle:hover {
281
+ background: transparent url('images/pos-handle3H.gif') no-repeat left top; }
282
+
283
+ #sliderPlayback .ui-state-active, #sliderPlayback .ui-widget-content .ui-state-active {
284
+ border: 0px solid #777;
285
+ background: transparent url('images/pos-handle3H.gif') no-repeat left top;
286
+ outline: none; }
287
+
288
+ #loaderBar { position: absolute;
289
+ top: 6px;
290
+ background: #888; }
291
+
292
+ #loaderBar.ui-progressbar {
293
+ text-align: left;
294
+ height: 1px;
295
+ border: 0px solid #888;
296
+ width: 277px;
297
+ background: #888; }
298
+
299
+ .ui-progressbar .ui-progressbar-value {margin: 0px; height:100%; background: #77ccff; }
300
+
301
+ #bars_holder .ui-slider-horizontal { height: 5px; }
302
+
303
+
304
+ /* playlist
305
+ ----------------------------------------- */
306
+ #playlist-wrap { position: relative; }
307
+
308
+ div.jp-playlist { width: 279px; }
309
+
310
+ div.jp-playlist ul{
311
+ list-style-type:none;
312
+ margin:-1px 0 0 1px;
313
+ padding:2px 0px 3px 0px;
314
+ background: #f1f1f1 url('images/list-x.gif') repeat-x left -60px;
315
+ border:0px solid #666;
316
+ border-top:none; }
317
+
318
+ div.jp-playlist-player div.jp-playlist li {
319
+ padding:0px 0px 0px 2px;
320
+ border-bottom:1px solid #ebebeb;
321
+ font-family: 'verdana', 'Lucida Grande', 'arial';
322
+ font-weight: 500;
323
+ font-size: 11px;
324
+ line-height: 18px;
325
+ letter-spacing: 0px;
326
+ word-spacing: 0px; }
327
+
328
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_item_last { border-bottom:none; }
329
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_current {}
330
+
331
+
332
+ div.jp-playlist-player div.jp-playlist a {
333
+ color: #444;
334
+ text-decoration: none;
335
+ display: block;
336
+ width: 254px;
337
+ padding: 5px 0px 4px 20px;
338
+ white-space: nowrap;
339
+ overflow: hidden; }
340
+
341
+ div.jp-playlist-player div.jp-playlist a:hover {
342
+ color:#00c0f0;
343
+ background: #f7f7f7; }
344
+
345
+ div.jp-playlist-player div.jp-playlist a.jplayer_playlist_current {
346
+ color:#77c0f0;
347
+ background: #f4f4f4; }
348
+
349
+
350
+ /* ______________________________________________________________________ */
css/mp3jplayer-blu.css ADDED
@@ -0,0 +1,376 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ________________________________________
2
+
3
+ MP3-jPlayer CSS - Blue - www.sjward.org
4
+ ________________________________________
5
+ */
6
+
7
+
8
+ div.jp-playlist-player {
9
+
10
+ /* NOTE position or float is set at the admin panel */
11
+
12
+ border: 0px solid #f00;
13
+ margin: 0px;
14
+ font-family: Verdana, Arial, sans-serif;
15
+ color: #666;
16
+ width: auto; }
17
+
18
+
19
+ /* skin
20
+ ----------------------------------------- */
21
+ div.jp-innerwrap { position: relative;
22
+ width: 281px;
23
+ background: transparent;
24
+ }
25
+
26
+ #innerx { position: absolute;
27
+ width: 263px; /* IE6 - need to specify widths/height */
28
+ height: 96px;
29
+ left: 9px;
30
+ right: 9px;
31
+ top: 0px;
32
+ background: url('images/case2-x.png') repeat-x left bottom; }
33
+
34
+ #innerleft { position: absolute;
35
+ width: 10px;
36
+ height: 96px; /* IE6 - need to specify height */
37
+ left: -1px;
38
+ top: 0px;
39
+ background: url('images/case2-l.png') no-repeat left bottom; }
40
+
41
+ #innerright { position: absolute;
42
+ width: 10px;
43
+ height: 50px; /* IE6 - need to specify height */
44
+ right: -1px;
45
+ bottom: 0px;
46
+ background: url('images/case2-r.png') no-repeat left bottom; }
47
+
48
+ #innertab { position: absolute;
49
+ width: 100px;
50
+ height: 20px;
51
+ right: 0px;
52
+ top: 0px;
53
+ background: url('images/case3-tabr.png') no-repeat right top; }
54
+
55
+
56
+ /* interface
57
+ ----------------------------------------- */
58
+ div.jp-interface { position: relative;
59
+ width:281px;
60
+ height: 96px;
61
+ border: 0px solid #505050;
62
+ cursor: default; }
63
+
64
+
65
+ /* display */
66
+ #player-track-title {
67
+ position: absolute;
68
+ font: normal normal 500 12px 'verdana', 'Lucida Grande', 'arial', sans-serif;
69
+ top: 6px;
70
+ left: 10px;
71
+ width: auto;
72
+ max-width: 262px;
73
+ color: #fff; /* 01ace5 444 01ace5 */
74
+ line-height: 14px;
75
+ white-space: nowrap;
76
+ overflow: hidden;
77
+ z-index: 50; }
78
+
79
+ #player-artist {
80
+ position: absolute;
81
+ font: normal normal 500 9px 'verdana', 'Lucida Grande', 'arial', sans-serif;
82
+ top: 22px;
83
+ left: 26px;
84
+ width: auto;
85
+ color: #fff;
86
+ line-height: 12px;
87
+ max-width: 245px;
88
+ white-space: nowrap;
89
+ overflow: hidden;
90
+ z-index: 50; }
91
+
92
+ div.jp-play-time,
93
+ div.jp-total-time,
94
+ #status { position: absolute;
95
+ font: normal normal 500 8px 'verdana', 'Lucida Grande', 'arial', sans-serif;
96
+ color: #eee;
97
+ top: 43px;
98
+ text-align: left;
99
+ z-index: 50; }
100
+
101
+
102
+
103
+
104
+
105
+ div.jp-play-time { left: 175px; color: #fff; }
106
+ div.jp-total-time { right: 10px; }
107
+ #status { right: 37px; width: 40px; }
108
+
109
+
110
+ #status { font-size: 8px; }
111
+
112
+ span.mp3-finding { background: url('../css/images/finding-bar10.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
113
+ span.mp3-loading { background: url('../css/images/finding-barBc.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
114
+
115
+ /* span.mp3-finding { background: url('../css/images/finding-bar11.gif') repeat-y 0px 3px; padding-left: 6px; }
116
+ span.mp3-loading { background: url('../css/images/finding-bar11b.gif') repeat-y 0px 3px; padding-left: 6px; } */
117
+
118
+
119
+ /* transport buttons */
120
+ div.jp-interface ul.jp-controls {
121
+ list-style-type:none;
122
+ padding:0;
123
+ margin: 0px 0px 0px 16px; }
124
+
125
+ div.jp-interface ul.jp-controls li {
126
+ position: absolute; }
127
+
128
+ div.jp-interface ul.jp-controls a {
129
+ display: block;
130
+ position: absolute;
131
+ overflow:hidden;
132
+ text-indent:-9999px;
133
+ outline: none; }
134
+
135
+ a.jp-play,
136
+ a.jp-pause,
137
+ a.jp-stop,
138
+ a.jp-previous,
139
+ a.jp-next {
140
+ top:58px;
141
+ width:28px;
142
+ height:34px;
143
+ border: 0px solid #b2b2b2;
144
+ cursor: default; }
145
+
146
+ a.jp-play { left: 233px; background: url("images/buttons.png") -110px 1px no-repeat; }
147
+ a.jp-play:hover { background: url("images/buttonsH.png") -110px 1px no-repeat; }
148
+
149
+ a.jp-pause { left: 233px; background: url("images/buttons.png") -2px 1px no-repeat; }
150
+ a.jp-pause:hover { background: url("images/buttonsH.png") -2px 1px no-repeat; }
151
+
152
+ a.jp-stop { left: 203px; background: url("images/buttons.png") -80px 1px no-repeat; }
153
+ a.jp-stop:hover { background: url("images/buttonsH.png") -80px 1px no-repeat; }
154
+
155
+ a.jp-previous { left:151px; width:22px; top:57px; background: url("images/buttons.png") -32px 0px no-repeat; }
156
+ a.jp-previous:hover { background: url("images/buttonsH.png") -32px 0px no-repeat; }
157
+
158
+ a.jp-next { left:175px; width:22px; top:57px; background: url("images/buttons.png") -55px 0px no-repeat; }
159
+ a.jp-next:hover { background: url("images/buttonsH.png") -55px 0px no-repeat; }
160
+
161
+
162
+ /* other buttons*/
163
+ #playlist-toggle, #downloadmp3-button {
164
+ position: absolute;
165
+ font: normal normal 500 9px 'trebuchet ms', 'Lucida Grande', 'arial', sans-serif;
166
+ top: 75px;
167
+ left: 1px;
168
+ color: #696969;
169
+ padding: 2px 5px 2px 5px;
170
+ line-height: 11px;
171
+ border: 1px solid #acacac;
172
+ border-left: 1px solid #b1b1b1;
173
+ background: #bbb;
174
+ -moz-border-radius-topright: 3px;
175
+ -webkit-border-top-right-radius: 3px;
176
+ cursor: default; }
177
+
178
+ #playlist-toggle:hover { background: #ccc; color: #777; }
179
+
180
+ #downloadmp3-button { top: 42px; left: 1px; width: 87px;
181
+ padding: 1px 3px 2px 0px;
182
+ border: 0px;
183
+ background-color: #ccc;
184
+ color: #fff;
185
+ -moz-border-radius-topleft: 0px; -moz-border-radius-topright: 7px;
186
+ -webkit-border-top-left-radius: 0px; -webkit-border-top-right-radius: 7px;
187
+
188
+ -moz-border-radius-bottomleft: 0px; -moz-border-radius-bottomright: 0px;
189
+ -webkit-border-bottom-left-radius: 0px; -webkit-border-bottom-right-radius: 0px;
190
+ overflow: hidden;
191
+ z-index: 150; }
192
+
193
+ /* #downloadmp3-button:hover { background-color: #49bbff; } */
194
+
195
+ #downloadmp3-button.betweenlinks { background-color: #c0c0c0; }
196
+
197
+ #downloadmp3-button.whilelinks { background-color: #676767; }
198
+ #downloadmp3-button.whilelinks:hover { background-color: #737373; }
199
+
200
+ #downloadmp3-button a { color: #ececec;
201
+ display: block;
202
+ width: 100%;
203
+ padding: 0px 11px 0px 11px;
204
+ background: transparent;
205
+ text-decoration: none; }
206
+
207
+ /* #downloadmp3-button a:hover { color: #fff; } */
208
+
209
+ #downloadmp3-button.betweenlinks a { color: #d7d7d7; }
210
+ #downloadmp3-button.whilelinks a { color: #f3f3f3; }
211
+ #downloadmp3-button.whilelinks a:hover { color: #fff; }
212
+
213
+
214
+ /* sliders/bars */
215
+ .ui-state-disabled { cursor: default !important; }
216
+ .ui-slider { position: relative; text-align: left; }
217
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 100; width: 1.2em; height: 1.2em; cursor: default; }
218
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
219
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
220
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
221
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
222
+
223
+ .ui-state-default, .ui-widget-content .ui-state-default {
224
+ outline: none;
225
+ border: 0px;
226
+ }
227
+
228
+
229
+ .ui-widget-header { border: 0px solid #888;
230
+ border-left: 0px;
231
+ border-right: 0px;
232
+ background: #a8bdda url('images/blue-bar.gif') repeat-y right top;
233
+ color: #888;
234
+ font-weight: bold; }
235
+
236
+ #sliderVolume { position:absolute;
237
+ top:0px;
238
+ right: 1px;
239
+ width: 108px;
240
+ height:2px;
241
+ background: #778;
242
+ border: 1px solid #aab;
243
+ font-size: 1px; /* IE6 - sorts out div height */
244
+ cursor: default;
245
+ z-index: 150; }
246
+
247
+ #sliderVolume .ui-widget-header { background: #ccc; /* 5d84dcb4a488 */ }
248
+
249
+ #sliderVolume .ui-slider-handle {
250
+ height: 11px;
251
+ width: 10px;
252
+ margin-left: -8px;
253
+ top: -4px;
254
+ border: 0px;
255
+ -moz-border-radius: 2px;
256
+ -webkit-border-radius: 2px;
257
+ background: transparent url('images/vol-handle2.gif') no-repeat -1px 0px;
258
+ z-index: 150;
259
+ cursor: default; }
260
+
261
+ #sliderVolume .ui-slider-handle:hover {
262
+ border-color: #888;
263
+ background: #606060;
264
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px; }
265
+
266
+ #sliderVolume .ui-state-active,
267
+ #sliderVolume .ui-widget-content .ui-state-active {
268
+ border: 0px solid #777;
269
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px;
270
+ outline: none; }
271
+
272
+ #bars_holder { position:absolute;
273
+ top: 0px;
274
+ left: 0px;
275
+ width:281px;
276
+ height: 57px;
277
+ background: #f0f0f0;
278
+ font-size: 1px; /* IE6 - sorts out div height */
279
+ cursor: default; }
280
+
281
+ #sliderPlayback { position:absolute;
282
+ width: 279px;
283
+ left: 1px;
284
+ top: 0px;
285
+ background: transparent;
286
+ font-size: 5px; /* IE6 - sorts out div height */
287
+ border: 0px solid #888;
288
+ border-bottom: 0px solid #888;
289
+ border-left: 0px solid #888; }
290
+
291
+ #sliderPlayback .ui-slider-handle {
292
+ top: -6px;
293
+ margin-left: -10px;
294
+ border: 0px;
295
+ height: 60px;
296
+ width: 20px;
297
+ z-index: 100;
298
+ background: transparent url('images/pos-handle40.png') no-repeat 0px top;
299
+ cursor: e-resize; }
300
+
301
+ #sliderPlayback .ui-slider-handle:hover {
302
+ background: transparent url('images/pos-handle40H.png') no-repeat 0px top; }
303
+
304
+ #sliderPlayback .ui-state-active, #sliderPlayback .ui-widget-content .ui-state-active {
305
+ border: 0px solid #777;
306
+ background: transparent url('images/pos-handle40H.gpng') no-repeat 0px top;
307
+ outline: none;
308
+ z-index: 100; }
309
+
310
+ #loaderBar { position:absolute;
311
+ top: 0px;
312
+ left: 1px;
313
+ background: #ddd; }
314
+
315
+ #loaderBar.ui-progressbar {
316
+ text-align: left;
317
+ height: 56px;
318
+ border: 0px solid #888;
319
+ width: 279px;
320
+ background: #c0c0c0; }
321
+
322
+ .ui-progressbar .ui-progressbar-value {margin: 0px; height:100%;
323
+ background: #90a0b7; /* 92abcd 8ca4c7 92abcd 819abd */
324
+ }
325
+
326
+ #bars_holder .ui-slider-horizontal { height: 55px; }
327
+
328
+
329
+ /* playlist
330
+ ----------------------------------------- */
331
+ #playlist-wrap { position: relative; }
332
+
333
+ div.jp-playlist { width: 279px; }
334
+
335
+ div.jp-playlist ul{
336
+ list-style-type:none;
337
+ margin:-1px 0 0 1px;
338
+ padding:2px 0px 3px 0px;
339
+ background: #f1f1f1 url('images/list-x.gif') repeat-x left -60px;
340
+ border:0px solid #666;
341
+ border-top:none; }
342
+
343
+ div.jp-playlist-player div.jp-playlist li {
344
+ padding:0px 0px 0px 2px;
345
+ border-bottom:1px solid #ebebeb;
346
+ font-family: 'verdana', 'Lucida Grande', 'arial';
347
+ font-weight: 500;
348
+ font-size: 11px;
349
+ line-height: 18px;
350
+ letter-spacing: 0px;
351
+ word-spacing: 0px; }
352
+
353
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_item_last { border-bottom:none; }
354
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_current {}
355
+
356
+
357
+ div.jp-playlist-player div.jp-playlist a {
358
+ color: #444;
359
+ text-decoration: none;
360
+ display: block;
361
+ width: 254px;
362
+ padding: 5px 0px 4px 20px;
363
+ white-space: nowrap;
364
+ overflow: hidden;
365
+ outline: none; }
366
+
367
+ div.jp-playlist-player div.jp-playlist a:hover {
368
+ color:#b4b4b4; /* 00c0f0 */
369
+ background: #f7f7f7; }
370
+
371
+ div.jp-playlist-player div.jp-playlist a.jplayer_playlist_current {
372
+ color:#b8a47e; /* 77c0f0 */
373
+ background: #f4f4f4; }
374
+
375
+
376
+ /* ______________________________________________________________________ */
css/mp3jplayer-green.css ADDED
@@ -0,0 +1,373 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* _________________________________________
2
+
3
+ MP3-jPlayer CSS - Green - www.sjward.org
4
+ _________________________________________
5
+ */
6
+
7
+
8
+ div.jp-playlist-player {
9
+
10
+ /* NOTE position or float is set at the admin panel */
11
+
12
+ border: 0px solid #f00;
13
+ margin: 0px;
14
+ font-family: Verdana, Arial, sans-serif;
15
+ color: #666;
16
+ width: auto; }
17
+
18
+
19
+ /* skin
20
+ ----------------------------------------- */
21
+ div.jp-innerwrap { position: relative;
22
+ width: 281px;
23
+ background: transparent;
24
+ }
25
+
26
+ #innerx { position: absolute;
27
+ width: 263px; /* IE6 - need to specify widths/height */
28
+ height: 96px;
29
+ left: 9px;
30
+ right: 9px;
31
+ top: 0px;
32
+ background: url('images/case2-x.png') repeat-x left bottom; }
33
+
34
+ #innerleft { position: absolute;
35
+ width: 10px;
36
+ height: 96px; /* IE6 - need to specify height */
37
+ left: -1px;
38
+ top: 0px;
39
+ background: url('images/case2-l.png') no-repeat left bottom; }
40
+
41
+ #innerright { position: absolute;
42
+ width: 10px;
43
+ height: 50px; /* IE6 - need to specify height */
44
+ right: -1px;
45
+ bottom: 0px;
46
+ background: url('images/case2-r.png') no-repeat left bottom; }
47
+
48
+ #innertab { position: absolute;
49
+ width: 100px;
50
+ height: 20px;
51
+ right: 0px;
52
+ top: 0px;
53
+ background: url('images/case3-tabr.png') no-repeat right top; }
54
+
55
+
56
+ /* interface
57
+ ----------------------------------------- */
58
+ div.jp-interface { position: relative;
59
+ width:281px;
60
+ height: 96px;
61
+ border: 0px solid #505050;
62
+ cursor: default; }
63
+
64
+
65
+ /* display */
66
+ #player-track-title {
67
+ position: absolute;
68
+ font: normal normal 500 12px 'verdana', 'Lucida Grande', 'arial', sans-serif;
69
+ top: 6px;
70
+ left: 10px;
71
+ width: auto;
72
+ max-width: 262px;
73
+ color: #fff; /* 01ace5 444 01ace5 */
74
+ line-height: 14px;
75
+ white-space: nowrap;
76
+ overflow: hidden;
77
+ z-index: 50; }
78
+
79
+ #player-artist {
80
+ position: absolute;
81
+ font: normal normal 500 9px 'verdana', 'Lucida Grande', 'arial', sans-serif;
82
+ top: 22px;
83
+ left: 26px;
84
+ width: auto;
85
+ color: #fff;
86
+ line-height: 12px;
87
+ max-width: 245px;
88
+ white-space: nowrap;
89
+ overflow: hidden;
90
+ z-index: 50; }
91
+
92
+ div.jp-play-time,
93
+ div.jp-total-time,
94
+ #status { position: absolute;
95
+ font: normal normal 500 8px 'verdana', 'Lucida Grande', 'arial', sans-serif;
96
+ color: #eee;
97
+ top: 43px;
98
+ text-align: left;
99
+ z-index: 50; }
100
+
101
+
102
+
103
+
104
+
105
+ div.jp-play-time { left: 175px; color: #fff; }
106
+ div.jp-total-time { right: 10px; }
107
+ #status { right: 37px; width: 40px; color: #fff; }
108
+
109
+
110
+ #status { font-size: 8px; }
111
+
112
+ span.mp3-finding { background: url('../css/images/finding-bar10.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
113
+ span.mp3-loading { background: url('../css/images/finding-bar10b.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
114
+
115
+
116
+ /* transport buttons */
117
+ div.jp-interface ul.jp-controls {
118
+ list-style-type:none;
119
+ padding:0;
120
+ margin: 0px 0px 0px 16px; }
121
+
122
+ div.jp-interface ul.jp-controls li {
123
+ position: absolute; }
124
+
125
+ div.jp-interface ul.jp-controls a {
126
+ display: block;
127
+ position: absolute;
128
+ overflow:hidden;
129
+ text-indent:-9999px;
130
+ outline: none; }
131
+
132
+ a.jp-play,
133
+ a.jp-pause,
134
+ a.jp-stop,
135
+ a.jp-previous,
136
+ a.jp-next {
137
+ top:58px;
138
+ width:28px;
139
+ height:34px;
140
+ border: 0px solid #b2b2b2;
141
+ cursor: default; }
142
+
143
+ a.jp-play { left: 233px; background: url("images/buttons.png") -110px 1px no-repeat; }
144
+ a.jp-play:hover { background: url("images/buttonsH.png") -110px 1px no-repeat; }
145
+
146
+ a.jp-pause { left: 233px; background: url("images/buttons.png") -2px 1px no-repeat; }
147
+ a.jp-pause:hover { background: url("images/buttonsH.png") -2px 1px no-repeat; }
148
+
149
+ a.jp-stop { left: 203px; background: url("images/buttons.png") -80px 1px no-repeat; }
150
+ a.jp-stop:hover { background: url("images/buttonsH.png") -80px 1px no-repeat; }
151
+
152
+ a.jp-previous { left:151px; width:22px; top:57px; background: url("images/buttons.png") -32px 0px no-repeat; }
153
+ a.jp-previous:hover { background: url("images/buttonsH.png") -32px 0px no-repeat; }
154
+
155
+ a.jp-next { left:175px; width:22px; top:57px; background: url("images/buttons.png") -55px 0px no-repeat; }
156
+ a.jp-next:hover { background: url("images/buttonsH.png") -55px 0px no-repeat; }
157
+
158
+
159
+ /* other buttons*/
160
+ #playlist-toggle, #downloadmp3-button {
161
+ position: absolute;
162
+ font: normal normal 500 9px 'trebuchet ms', 'Lucida Grande', 'arial', sans-serif;
163
+ top: 75px;
164
+ left: 1px;
165
+ color: #696969;
166
+ padding: 2px 5px 2px 5px;
167
+ line-height: 11px;
168
+ border: 1px solid #acacac;
169
+ border-left: 1px solid #b1b1b1;
170
+ background: #bbb;
171
+ -moz-border-radius-topright: 3px;
172
+ -webkit-border-top-right-radius: 3px;
173
+ cursor: default; }
174
+
175
+ #playlist-toggle:hover { background: #ccc; color: #777; }
176
+
177
+ #downloadmp3-button { top: 42px; left: 1px; width: 87px;
178
+ padding: 1px 3px 2px 0px;
179
+ border: 0px;
180
+ background-color: #ccc;
181
+ color: #fff;
182
+ -moz-border-radius-topleft: 0px; -moz-border-radius-topright: 7px;
183
+ -webkit-border-top-left-radius: 0px; -webkit-border-top-right-radius: 7px;
184
+
185
+ -moz-border-radius-bottomleft: 0px; -moz-border-radius-bottomright: 0px;
186
+ -webkit-border-bottom-left-radius: 0px; -webkit-border-bottom-right-radius: 0px;
187
+ overflow: hidden;
188
+ z-index: 150; }
189
+
190
+ /* #downloadmp3-button:hover { background-color: #49bbff; } */
191
+
192
+ #downloadmp3-button.betweenlinks { background-color: #c0c0c0; }
193
+
194
+ #downloadmp3-button.whilelinks { background-color: #676767; }
195
+ #downloadmp3-button.whilelinks:hover { background-color: #737373; }
196
+
197
+ #downloadmp3-button a { color: #ececec;
198
+ display: block;
199
+ width: 100%;
200
+ padding: 0px 11px 0px 11px;
201
+ background: transparent;
202
+ text-decoration: none; }
203
+
204
+ /* #downloadmp3-button a:hover { color: #fff; } */
205
+
206
+ #downloadmp3-button.betweenlinks a { color: #d7d7d7; }
207
+ #downloadmp3-button.whilelinks a { color: #f3f3f3; }
208
+ #downloadmp3-button.whilelinks a:hover { color: #fff; }
209
+
210
+
211
+ /* sliders/bars */
212
+ .ui-state-disabled { cursor: default !important; }
213
+ .ui-slider { position: relative; text-align: left; }
214
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 100; width: 1.2em; height: 1.2em; cursor: default; }
215
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
216
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
217
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
218
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
219
+
220
+ .ui-state-default, .ui-widget-content .ui-state-default {
221
+ outline: none;
222
+ border: 0px;
223
+ }
224
+
225
+
226
+ .ui-widget-header { border: 0px solid #888;
227
+ border-left: 0px;
228
+ border-right: 0px;
229
+ background: #a9cfac url('images/green-bar2.gif') repeat-y right top;
230
+ color: #888;
231
+ font-weight: bold; }
232
+
233
+ #sliderVolume { position:absolute;
234
+ top:0px;
235
+ right: 1px;
236
+ width: 108px;
237
+ height:2px;
238
+ background: #777;
239
+ border: 1px solid #aaa;
240
+ font-size: 1px; /* IE6 - sorts out div height ignorance */
241
+ cursor: default;
242
+ z-index: 150; }
243
+
244
+ #sliderVolume .ui-widget-header { background: #bbb; /* b4a488 */ }
245
+
246
+ #sliderVolume .ui-slider-handle {
247
+ height: 11px;
248
+ width: 10px;
249
+ margin-left: -8px;
250
+ top: -4px;
251
+ border: 0px;
252
+ -moz-border-radius: 2px;
253
+ -webkit-border-radius: 2px;
254
+ background: transparent url('images/vol-handle2.gif') no-repeat -1px 0px;
255
+ z-index: 150;
256
+ cursor: default; }
257
+
258
+ #sliderVolume .ui-slider-handle:hover {
259
+ border-color: #888;
260
+ background: #606060;
261
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px; }
262
+
263
+ #sliderVolume .ui-state-active,
264
+ #sliderVolume .ui-widget-content .ui-state-active {
265
+ border: 0px solid #777;
266
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px;
267
+ outline: none; }
268
+
269
+ #bars_holder { position:absolute;
270
+ top: 0px;
271
+ left: 0px;
272
+ width:281px;
273
+ height: 57px;
274
+ background: #f0f0f0;
275
+ font-size: 1px; /* IE6 - sorts out div height ignorance */
276
+ cursor: default; }
277
+
278
+ #sliderPlayback { position:absolute;
279
+ width: 279px;
280
+ left: 1px;
281
+ top: 0px;
282
+ background: transparent;
283
+ font-size: 5px; /* IE6 - sorts out div height ignorance */
284
+ border: 0px solid #888;
285
+ border-bottom: 0px solid #888;
286
+ border-left: 0px solid #888; }
287
+
288
+ #sliderPlayback .ui-slider-handle {
289
+ top: -6px;
290
+ margin-left: -10px;
291
+ border: 0px;
292
+ height: 60px;
293
+ width: 20px;
294
+ z-index: 100;
295
+ background: transparent url('images/pos-handle40.png') no-repeat 0px top;
296
+ cursor: e-resize; }
297
+
298
+ #sliderPlayback .ui-slider-handle:hover {
299
+ background: transparent url('images/pos-handle40H.png') no-repeat 0px top; }
300
+
301
+ #sliderPlayback .ui-state-active, #sliderPlayback .ui-widget-content .ui-state-active {
302
+ border: 0px solid #777;
303
+ background: transparent url('images/pos-handle40H.gpng') no-repeat 0px top;
304
+ outline: none;
305
+ z-index: 100; }
306
+
307
+ #loaderBar { position:absolute;
308
+ top: 0px;
309
+ left: 1px;
310
+ background: #ddd; }
311
+
312
+ #loaderBar.ui-progressbar {
313
+ text-align: left;
314
+ height: 56px;
315
+ border: 0px solid #888;
316
+ width: 279px;
317
+ background: #c7c7c7; }
318
+
319
+ .ui-progressbar .ui-progressbar-value {margin: 0px; height:100%;
320
+ background: #a3baa5; /* b0b8b1 b8 a3baa5 94c098 8dc392 83b387 b5cfb7 */
321
+ }
322
+
323
+ #bars_holder .ui-slider-horizontal { height: 55px; }
324
+
325
+
326
+ /* playlist
327
+ ----------------------------------------- */
328
+ #playlist-wrap { position: relative; }
329
+
330
+ div.jp-playlist { width: 279px; }
331
+
332
+ div.jp-playlist ul{
333
+ list-style-type:none;
334
+ margin:-1px 0 0 1px;
335
+ padding:2px 0px 3px 0px;
336
+ background: #f1f1f1 url('images/list-x.gif') repeat-x left -60px;
337
+ border:0px solid #666;
338
+ border-top:none; }
339
+
340
+ div.jp-playlist-player div.jp-playlist li {
341
+ padding:0px 0px 0px 2px;
342
+ border-bottom:1px solid #ebebeb;
343
+ font-family: 'verdana', 'Lucida Grande', 'arial';
344
+ font-weight: 500;
345
+ font-size: 11px;
346
+ line-height: 18px;
347
+ letter-spacing: 0px;
348
+ word-spacing: 0px; }
349
+
350
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_item_last { border-bottom:none; }
351
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_current {}
352
+
353
+
354
+ div.jp-playlist-player div.jp-playlist a {
355
+ color: #444;
356
+ text-decoration: none;
357
+ display: block;
358
+ width: 254px;
359
+ padding: 5px 0px 4px 20px;
360
+ white-space: nowrap;
361
+ overflow: hidden;
362
+ outline: none; }
363
+
364
+ div.jp-playlist-player div.jp-playlist a:hover {
365
+ color:#b4b4b4; /* c7b67f d1b37c 00c0f0 */
366
+ background: #f7f7f7; }
367
+
368
+ div.jp-playlist-player div.jp-playlist a.jplayer_playlist_current {
369
+ color:#b8a47e; /* 77c0f0 */
370
+ background: #f4f4f4; }
371
+
372
+
373
+ /* ______________________________________________________________________ */
css/mp3jplayer-grey.css ADDED
@@ -0,0 +1,375 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ___________________________________________________
2
+
3
+ MP3-jPlayer CSS - Neutral colours - www.sjward.org
4
+ ___________________________________________________
5
+ */
6
+
7
+
8
+ div.jp-playlist-player {
9
+
10
+ /* NOTE position or float is set at the admin panel */
11
+
12
+ border: 0px solid #f00;
13
+ margin: 0px;
14
+ font-family: Verdana, Arial, sans-serif;
15
+ color: #666;
16
+ width: auto; }
17
+
18
+
19
+ /* skin
20
+ ----------------------------------------- */
21
+ div.jp-innerwrap { position: relative;
22
+ width: 281px;
23
+ background: transparent;
24
+ }
25
+
26
+ #innerx { position: absolute;
27
+ width: 263px; /* IE6 - need to specify widths/height */
28
+ height: 96px;
29
+ left: 9px;
30
+ right: 9px;
31
+ top: 0px;
32
+ background: url('images/case2-x.png') repeat-x left bottom; }
33
+
34
+ #innerleft { position: absolute;
35
+ width: 10px;
36
+ height: 96px; /* IE6 - need to specify height */
37
+ left: -1px;
38
+ top: 0px;
39
+ background: url('images/case2-l.png') no-repeat left bottom; }
40
+
41
+ #innerright { position: absolute;
42
+ width: 10px;
43
+ height: 50px; /* IE6 - need to specify height */
44
+ right: -1px;
45
+ bottom: 0px;
46
+ background: url('images/case2-r.png') no-repeat left bottom; }
47
+
48
+ #innertab { position: absolute;
49
+ width: 100px;
50
+ height: 20px;
51
+ right: 0px;
52
+ top: 0px;
53
+ background: url('images/case3-tabr.png') no-repeat right top; }
54
+
55
+
56
+ /* interface
57
+ ----------------------------------------- */
58
+ div.jp-interface { position: relative;
59
+ width:281px;
60
+ height: 96px;
61
+ border: 0px solid #505050;
62
+ cursor: default; }
63
+
64
+
65
+ /* display */
66
+ #player-track-title {
67
+ position: absolute;
68
+ font: normal normal 500 12px 'verdana', 'Lucida Grande', 'arial', sans-serif;
69
+ top: 6px;
70
+ left: 10px;
71
+ width: auto;
72
+ max-width: 262px;
73
+ color: #fff; /* 01ace5 444 01ace5 */
74
+ line-height: 14px;
75
+ white-space: nowrap;
76
+ overflow: hidden;
77
+ z-index: 50; }
78
+
79
+ #player-artist {
80
+ position: absolute;
81
+ font: normal normal 500 9px 'verdana', 'Lucida Grande', 'arial', sans-serif;
82
+ top: 22px;
83
+ left: 26px;
84
+ width: auto;
85
+ color: #fff;
86
+ line-height: 12px;
87
+ max-width: 245px;
88
+ white-space: nowrap;
89
+ overflow: hidden;
90
+ z-index: 50; }
91
+
92
+ div.jp-play-time,
93
+ div.jp-total-time,
94
+ #status { position: absolute;
95
+ font: normal normal 500 8px 'verdana', 'Lucida Grande', 'arial', sans-serif;
96
+ color: #eee;
97
+ top: 43px;
98
+ text-align: left;
99
+ z-index: 50; }
100
+
101
+
102
+
103
+
104
+
105
+ div.jp-play-time { left: 175px; color: #fff; }
106
+ div.jp-total-time { right: 10px; }
107
+ #status { right: 37px; width: 40px; color: #fff; }
108
+
109
+
110
+ #status { font-size: 8px; }
111
+
112
+
113
+
114
+ span.mp3-finding { background: url('../css/images/finding-bar10.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
115
+ span.mp3-loading { background: url('../css/images/finding-bar10b.gif') repeat-y -2px 3px; margin-left: -3px; padding-left: 4px; }
116
+
117
+
118
+ /* transport buttons */
119
+ div.jp-interface ul.jp-controls {
120
+ list-style-type:none;
121
+ padding:0;
122
+ margin: 0px 0px 0px 16px; }
123
+
124
+ div.jp-interface ul.jp-controls li {
125
+ position: absolute; }
126
+
127
+ div.jp-interface ul.jp-controls a {
128
+ display: block;
129
+ position: absolute;
130
+ overflow:hidden;
131
+ text-indent:-9999px;
132
+ outline: none; }
133
+
134
+ a.jp-play,
135
+ a.jp-pause,
136
+ a.jp-stop,
137
+ a.jp-previous,
138
+ a.jp-next {
139
+ top:58px;
140
+ width:28px;
141
+ height:34px;
142
+ border: 0px solid #b2b2b2;
143
+ cursor: default; }
144
+
145
+ a.jp-play { left: 233px; background: url("images/buttons.png") -110px 1px no-repeat; }
146
+ a.jp-play:hover { background: url("images/buttonsH.png") -110px 1px no-repeat; }
147
+
148
+ a.jp-pause { left: 233px; background: url("images/buttons.png") -2px 1px no-repeat; }
149
+ a.jp-pause:hover { background: url("images/buttonsH.png") -2px 1px no-repeat; }
150
+
151
+ a.jp-stop { left: 203px; background: url("images/buttons.png") -80px 1px no-repeat; }
152
+ a.jp-stop:hover { background: url("images/buttonsH.png") -80px 1px no-repeat; }
153
+
154
+ a.jp-previous { left:151px; width:22px; top:57px; background: url("images/buttons.png") -32px 0px no-repeat; }
155
+ a.jp-previous:hover { background: url("images/buttonsH.png") -32px 0px no-repeat; }
156
+
157
+ a.jp-next { left:175px; width:22px; top:57px; background: url("images/buttons.png") -55px 0px no-repeat; }
158
+ a.jp-next:hover { background: url("images/buttonsH.png") -55px 0px no-repeat; }
159
+
160
+
161
+ /* other buttons*/
162
+ #playlist-toggle, #downloadmp3-button {
163
+ position: absolute;
164
+ font: normal normal 500 9px 'trebuchet ms', 'Lucida Grande', 'arial', sans-serif;
165
+ top: 75px;
166
+ left: 1px;
167
+ color: #696969;
168
+ padding: 2px 5px 2px 5px;
169
+ line-height: 11px;
170
+ border: 1px solid #acacac;
171
+ border-left: 1px solid #b1b1b1;
172
+ background: #bbb;
173
+ -moz-border-radius-topright: 3px;
174
+ -webkit-border-top-right-radius: 3px;
175
+ cursor: default; }
176
+
177
+ #playlist-toggle:hover { background: #ccc; color: #777; }
178
+
179
+ #downloadmp3-button { top: 42px; left: 1px; width: 87px;
180
+ padding: 1px 3px 2px 0px;
181
+ border: 0px;
182
+ background-color: #ccc;
183
+ color: #fff;
184
+ -moz-border-radius-topleft: 0px; -moz-border-radius-topright: 7px;
185
+ -webkit-border-top-left-radius: 0px; -webkit-border-top-right-radius: 7px;
186
+
187
+ -moz-border-radius-bottomleft: 0px; -moz-border-radius-bottomright: 0px;
188
+ -webkit-border-bottom-left-radius: 0px; -webkit-border-bottom-right-radius: 0px;
189
+ overflow: hidden;
190
+ z-index: 150; }
191
+
192
+ /* #downloadmp3-button:hover { background-color: #49bbff; } */
193
+
194
+ #downloadmp3-button.betweenlinks { background-color: #c0c0c0; }
195
+
196
+ #downloadmp3-button.whilelinks { background-color: #676767; }
197
+ #downloadmp3-button.whilelinks:hover { background-color: #737373; }
198
+
199
+ #downloadmp3-button a { color: #ececec;
200
+ display: block;
201
+ width: 100%;
202
+ padding: 0px 11px 0px 11px;
203
+ background: transparent;
204
+ text-decoration: none; }
205
+
206
+ /* #downloadmp3-button a:hover { color: #fff; } */
207
+
208
+ #downloadmp3-button.betweenlinks a { color: #d7d7d7; }
209
+ #downloadmp3-button.whilelinks a { color: #f3f3f3; }
210
+ #downloadmp3-button.whilelinks a:hover { color: #fff; }
211
+
212
+
213
+ /* sliders/bars */
214
+ .ui-state-disabled { cursor: default !important; }
215
+ .ui-slider { position: relative; text-align: left; }
216
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 100; width: 1.2em; height: 1.2em; cursor: default; }
217
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
218
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
219
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
220
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
221
+
222
+ .ui-state-default, .ui-widget-content .ui-state-default {
223
+ outline: none;
224
+ border: 0px;
225
+ }
226
+
227
+
228
+ .ui-widget-header { border: 0px solid #888;
229
+ border-left: 0px;
230
+ border-right: 0px;
231
+ background: #b4b4b4 url('images/grey-bar2.gif') repeat-y right top;
232
+ color: #888;
233
+ font-weight: bold; }
234
+
235
+ #sliderVolume { position:absolute;
236
+ top:0px;
237
+ right: 1px;
238
+ width: 108px;
239
+ height:2px;
240
+ background: #777;
241
+ border: 1px solid #bbb;
242
+ font-size: 1px; /* IE6 - sorts out div height ignorance */
243
+ cursor: default;
244
+ z-index: 150; }
245
+
246
+ #sliderVolume .ui-widget-header { background: #d5d5d5; /* b4a488 */ }
247
+
248
+ #sliderVolume .ui-slider-handle {
249
+ height: 11px;
250
+ width: 10px;
251
+ margin-left: -8px;
252
+ top: -4px;
253
+ border: 0px;
254
+ -moz-border-radius: 2px;
255
+ -webkit-border-radius: 2px;
256
+ background: transparent url('images/vol-handle2.gif') no-repeat -1px 0px;
257
+ z-index: 150;
258
+ cursor: default; }
259
+
260
+ #sliderVolume .ui-slider-handle:hover {
261
+ border-color: #888;
262
+ background: #606060;
263
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px; }
264
+
265
+ #sliderVolume .ui-state-active,
266
+ #sliderVolume .ui-widget-content .ui-state-active {
267
+ border: 0px solid #777;
268
+ background: transparent url('images/vol-handleH.gif') no-repeat -1px 0px;
269
+ outline: none; }
270
+
271
+ #bars_holder { position:absolute;
272
+ top: 0px;
273
+ left: 0px;
274
+ width:281px;
275
+ height: 57px;
276
+ background: #f0f0f0;
277
+ font-size: 1px; /* IE6 - sorts out div height ignorance */
278
+ cursor: default; }
279
+
280
+ #sliderPlayback { position:absolute;
281
+ width: 279px;
282
+ left: 1px;
283
+ top: 0px;
284
+ background: transparent;
285
+ font-size: 5px; /* IE6 - sorts out div height ignorance */
286
+ border: 0px solid #888;
287
+ border-bottom: 0px solid #888;
288
+ border-left: 0px solid #888; }
289
+
290
+ #sliderPlayback .ui-slider-handle {
291
+ top: -6px;
292
+ margin-left: -10px;
293
+ border: 0px;
294
+ height: 60px;
295
+ width: 20px;
296
+ z-index: 100;
297
+ background: transparent url('images/pos-handle40.png') no-repeat 0px top;
298
+ cursor: e-resize; }
299
+
300
+ #sliderPlayback .ui-slider-handle:hover {
301
+ background: transparent url('images/pos-handle40H.png') no-repeat 0px top; }
302
+
303
+ #sliderPlayback .ui-state-active, #sliderPlayback .ui-widget-content .ui-state-active {
304
+ border: 0px solid #777;
305
+ background: transparent url('images/pos-handle40H.gpng') no-repeat 0px top;
306
+ outline: none;
307
+ z-index: 100; }
308
+
309
+ #loaderBar { position:absolute;
310
+ top: 0px;
311
+ left: 1px;
312
+ background: #ddd; }
313
+
314
+ #loaderBar.ui-progressbar {
315
+ text-align: left;
316
+ height: 56px;
317
+ border: 0px solid #888;
318
+ width: 279px;
319
+ background: #c7c7c7; }
320
+
321
+ .ui-progressbar .ui-progressbar-value {margin: 0px; height:100%;
322
+ background: #bababa; /* 94c098 8dc392 83b387 b5cfb7 */
323
+ }
324
+
325
+ #bars_holder .ui-slider-horizontal { height: 55px; }
326
+
327
+
328
+ /* playlist
329
+ ----------------------------------------- */
330
+ #playlist-wrap { position: relative; }
331
+
332
+ div.jp-playlist { width: 279px; }
333
+
334
+ div.jp-playlist ul{
335
+ list-style-type:none;
336
+ margin:-1px 0 0 1px;
337
+ padding:2px 0px 3px 0px;
338
+ background: #f1f1f1 url('images/list-x.gif') repeat-x left -60px;
339
+ border:0px solid #666;
340
+ border-top:none; }
341
+
342
+ div.jp-playlist-player div.jp-playlist li {
343
+ padding:0px 0px 0px 2px;
344
+ border-bottom:1px solid #ebebeb;
345
+ font-family: 'verdana', 'Lucida Grande', 'arial';
346
+ font-weight: 500;
347
+ font-size: 11px;
348
+ line-height: 18px;
349
+ letter-spacing: 0px;
350
+ word-spacing: 0px; }
351
+
352
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_item_last { border-bottom:none; }
353
+ div.jp-playlist-player div.jp-playlist li.jplayer_playlist_current {}
354
+
355
+
356
+ div.jp-playlist-player div.jp-playlist a {
357
+ color: #444;
358
+ text-decoration: none;
359
+ display: block;
360
+ width: 254px;
361
+ padding: 5px 0px 4px 20px;
362
+ white-space: nowrap;
363
+ overflow: hidden;
364
+ outline: none; }
365
+
366
+ div.jp-playlist-player div.jp-playlist a:hover {
367
+ color:#b4b4b4; /* d1b37c 00c0f0 */
368
+ background: #f7f7f7; }
369
+
370
+ div.jp-playlist-player div.jp-playlist a.jplayer_playlist_current {
371
+ color:#b8a47e; /* 77c0f0 */
372
+ background: #f4f4f4; }
373
+
374
+
375
+ /* ______________________________________________________________________ */
js/Jplayer.swf ADDED
Binary file
js/jquery.jplayer.min.js ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jPlayer Plugin for jQuery JavaScript Library
3
+ * http://www.happyworm.com/jquery/jplayer
4
+ *
5
+ * Copyright (c) 2009 - 2010 Happyworm Ltd
6
+ * Dual licensed under the MIT and GPL licenses.
7
+ * - http://www.opensource.org/licenses/mit-license.php
8
+ * - http://www.gnu.org/copyleft/gpl.html
9
+ *
10
+ * Author: Mark J Panaghiston
11
+ * Version: 1.2.0
12
+ * Date: 11th July 2010
13
+ */
14
+
15
+ (function(c){function k(a,b){var d=function(e){e=c[a][e]||[];return typeof e=="string"?e.split(/,?\s+/):e}("getter");return c.inArray(b,d)!=-1}c.fn.jPlayer=function(a){var b=typeof a=="string",d=Array.prototype.slice.call(arguments,1);if(b&&a.substring(0,1)=="_")return this;if(b&&k("jPlayer",a,d)){var e=c.data(this[0],"jPlayer");return e?e[a].apply(e,d):undefined}return this.each(function(){var h=c.data(this,"jPlayer");!h&&!b&&c.data(this,"jPlayer",new c.jPlayer(this,a))._init();h&&b&&c.isFunction(h[a])&&
16
+ h[a].apply(h,d)})};c.jPlayer=function(a,b){this.options=c.extend({},b);this.element=c(a)};c.jPlayer.getter="jPlayerOnProgressChange jPlayerOnSoundComplete jPlayerVolume jPlayerReady getData jPlayerController";c.jPlayer.defaults={cssPrefix:"jqjp",swfPath:"js",volume:80,oggSupport:false,nativeSupport:true,preload:"none",customCssIds:false,graphicsFix:true,errorAlerts:false,warningAlerts:false,position:"absolute",width:"0",height:"0",top:"0",left:"0",quality:"high",bgcolor:"#ffffff"};c.jPlayer._config=
17
+ {version:"1.2.0",swfVersionRequired:"1.2.0",swfVersion:"unknown",jPlayerControllerId:undefined,delayedCommandId:undefined,isWaitingForPlay:false,isFileSet:false};c.jPlayer._diag={isPlaying:false,src:"",loadPercent:0,playedPercentRelative:0,playedPercentAbsolute:0,playedTime:0,totalTime:0};c.jPlayer._cssId={play:"jplayer_play",pause:"jplayer_pause",stop:"jplayer_stop",loadBar:"jplayer_load_bar",playBar:"jplayer_play_bar",volumeMin:"jplayer_volume_min",volumeMax:"jplayer_volume_max",volumeBar:"jplayer_volume_bar",
18
+ volumeBarValue:"jplayer_volume_bar_value"};c.jPlayer.count=0;c.jPlayer.timeFormat={showHour:false,showMin:true,showSec:true,padHour:false,padMin:true,padSec:true,sepHour:":",sepMin:":",sepSec:""};c.jPlayer.convertTime=function(a){var b=new Date(a),d=b.getUTCHours();a=b.getUTCMinutes();b=b.getUTCSeconds();d=c.jPlayer.timeFormat.padHour&&d<10?"0"+d:d;a=c.jPlayer.timeFormat.padMin&&a<10?"0"+a:a;b=c.jPlayer.timeFormat.padSec&&b<10?"0"+b:b;return(c.jPlayer.timeFormat.showHour?d+c.jPlayer.timeFormat.sepHour:
19
+ "")+(c.jPlayer.timeFormat.showMin?a+c.jPlayer.timeFormat.sepMin:"")+(c.jPlayer.timeFormat.showSec?b+c.jPlayer.timeFormat.sepSec:"")};c.jPlayer.prototype={_init:function(){var a=this,b=this.element;this.config=c.extend({},c.jPlayer.defaults,this.options,c.jPlayer._config);this.config.diag=c.extend({},c.jPlayer._diag);this.config.cssId={};this.config.cssSelector={};this.config.cssDisplay={};this.config.clickHandler={};this.element.data("jPlayer.config",this.config);c.extend(this.config,{id:this.element.attr("id"),
20
+ swf:this.config.swfPath+(this.config.swfPath!=""&&this.config.swfPath.slice(-1)!="/"?"/":"")+"Jplayer.swf",fid:this.config.cssPrefix+"_flash_"+c.jPlayer.count,aid:this.config.cssPrefix+"_audio_"+c.jPlayer.count,hid:this.config.cssPrefix+"_force_"+c.jPlayer.count,i:c.jPlayer.count,volume:this._limitValue(this.config.volume,0,100),autobuffer:this.config.preload!="none"});c.jPlayer.count++;if(this.config.ready!=undefined)if(c.isFunction(this.config.ready))this.jPlayerReadyCustom=this.config.ready;else this._warning("Constructor's ready option is not a function.");
21
+ this.config.audio=document.createElement("audio");this.config.audio.id=this.config.aid;c.extend(this.config,{canPlayMP3:!!(this.config.audio.canPlayType?""!=this.config.audio.canPlayType("audio/mpeg")&&"no"!=this.config.audio.canPlayType("audio/mpeg"):false),canPlayOGG:!!(this.config.audio.canPlayType?""!=this.config.audio.canPlayType("audio/ogg")&&"no"!=this.config.audio.canPlayType("audio/ogg"):false),aSel:c("#"+this.config.aid)});c.extend(this.config,{html5:!!(this.config.oggSupport?this.config.canPlayOGG?
22
+ true:this.config.canPlayMP3:this.config.canPlayMP3)});c.extend(this.config,{usingFlash:!(this.config.html5&&this.config.nativeSupport),usingMP3:!(this.config.oggSupport&&this.config.canPlayOGG&&this.config.nativeSupport)});var d={setButtons:function(g,f){a.config.diag.isPlaying=f;if(a.config.cssId.play!=undefined&&a.config.cssId.pause!=undefined)if(f){a.config.cssSelector.play.css("display","none");a.config.cssSelector.pause.css("display",a.config.cssDisplay.pause)}else{a.config.cssSelector.play.css("display",
23
+ a.config.cssDisplay.play);a.config.cssSelector.pause.css("display","none")}if(f)a.config.isWaitingForPlay=false}},e={setFile:function(g,f){try{a._getMovie().fl_setFile_mp3(f);a.config.autobuffer&&b.trigger("jPlayer.load");a.config.diag.src=f;a.config.isFileSet=true;b.trigger("jPlayer.setButtons",false)}catch(j){a._flashError(j)}},clearFile:function(){try{b.trigger("jPlayer.setButtons",false);a._getMovie().fl_clearFile_mp3();a.config.diag.src="";a.config.isFileSet=false}catch(g){a._flashError(g)}},
24
+ load:function(){try{a._getMovie().fl_load_mp3()}catch(g){a._flashError(g)}},play:function(){try{a._getMovie().fl_play_mp3()&&b.trigger("jPlayer.setButtons",true)}catch(g){a._flashError(g)}},pause:function(){try{a._getMovie().fl_pause_mp3()&&b.trigger("jPlayer.setButtons",false)}catch(g){a._flashError(g)}},stop:function(){try{a._getMovie().fl_stop_mp3()&&b.trigger("jPlayer.setButtons",false)}catch(g){a._flashError(g)}},playHead:function(g,f){try{a._getMovie().fl_play_head_mp3(f)&&b.trigger("jPlayer.setButtons",
25
+ true)}catch(j){a._flashError(j)}},playHeadTime:function(g,f){try{a._getMovie().fl_play_head_time_mp3(f)&&b.trigger("jPlayer.setButtons",true)}catch(j){a._flashError(j)}},volume:function(g,f){a.config.volume=f;try{a._getMovie().fl_volume_mp3(f)}catch(j){a._flashError(j)}}},h={setFile:function(g,f,j){a.config.diag.src=a.config.usingMP3?f:j;a.config.isFileSet&&!a.config.isWaitingForPlay&&b.trigger("jPlayer.pause");a.config.audio.autobuffer=a.config.autobuffer;a.config.audio.preload=a.config.preload;
26
+ if(a.config.autobuffer){a.config.audio.src=a.config.diag.src;a.config.audio.load()}else a.config.isWaitingForPlay=true;a.config.isFileSet=true;a.jPlayerOnProgressChange(0,0,0,0,0);clearInterval(a.config.jPlayerControllerId);if(a.config.autobuffer)a.config.jPlayerControllerId=window.setInterval(function(){a.jPlayerController(false)},100);clearInterval(a.config.delayedCommandId)},clearFile:function(){a.setFile("","");a.config.isWaitingForPlay=false;a.config.isFileSet=false},load:function(){if(a.config.isFileSet)if(a.config.isWaitingForPlay){a.config.audio.autobuffer=
27
+ true;a.config.audio.preload="auto";a.config.audio.src=a.config.diag.src;a.config.audio.load();a.config.isWaitingForPlay=false;clearInterval(a.config.jPlayerControllerId);a.config.jPlayerControllerId=window.setInterval(function(){a.jPlayerController(false)},100)}},play:function(){if(a.config.isFileSet){if(a.config.isWaitingForPlay){a.config.audio.src=a.config.diag.src;a.config.audio.load()}a.config.audio.play();b.trigger("jPlayer.setButtons",true);clearInterval(a.config.jPlayerControllerId);a.config.jPlayerControllerId=
28
+ window.setInterval(function(){a.jPlayerController(false)},100);clearInterval(a.config.delayedCommandId)}},pause:function(){if(a.config.isFileSet){a.config.audio.pause();b.trigger("jPlayer.setButtons",false);clearInterval(a.config.delayedCommandId)}},stop:function(){if(a.config.isFileSet)try{b.trigger("jPlayer.pause");a.config.audio.currentTime=0;clearInterval(a.config.jPlayerControllerId);a.config.jPlayerControllerId=window.setInterval(function(){a.jPlayerController(true)},100)}catch(g){clearInterval(a.config.delayedCommandId);
29
+ a.config.delayedCommandId=window.setTimeout(function(){a.stop()},100)}},playHead:function(g,f){if(a.config.isFileSet)try{b.trigger("jPlayer.load");if(typeof a.config.audio.buffered=="object"&&a.config.audio.buffered.length>0)a.config.audio.currentTime=f*a.config.audio.buffered.end(a.config.audio.buffered.length-1)/100;else if(a.config.audio.duration>0&&!isNaN(a.config.audio.duration))a.config.audio.currentTime=f*a.config.audio.duration/100;else throw"e";b.trigger("jPlayer.play")}catch(j){b.trigger("jPlayer.play");
30
+ b.trigger("jPlayer.pause");a.config.delayedCommandId=window.setTimeout(function(){a.playHead(f)},100)}},playHeadTime:function(g,f){if(a.config.isFileSet)try{b.trigger("jPlayer.load");a.config.audio.currentTime=f/1E3;b.trigger("jPlayer.play")}catch(j){b.trigger("jPlayer.play");b.trigger("jPlayer.pause");a.config.delayedCommandId=window.setTimeout(function(){a.playHeadTime(f)},100)}},volume:function(g,f){a.config.volume=f;a.config.audio.volume=f/100;a.jPlayerVolume(f)}};this.config.usingFlash?c.extend(d,
31
+ e):c.extend(d,h);for(var i in d){e="jPlayer."+i;this.element.unbind(e);this.element.bind(e,d[i])}if(this.config.usingFlash)if(this._checkForFlash(8))if(c.browser.msie){i='<object id="'+this.config.fid+'"';i+=' classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';i+=' codebase="'+document.URL.substring(0,document.URL.indexOf(":"))+'://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"';i+=' type="application/x-shockwave-flash"';i+=' width="'+this.config.width+'" height="'+this.config.height+
32
+ '">';i+="</object>";d=[];d[0]='<param name="movie" value="'+this.config.swf+'" />';d[1]='<param name="quality" value="high" />';d[2]='<param name="FlashVars" value="id='+escape(this.config.id)+"&fid="+escape(this.config.fid)+"&vol="+this.config.volume+'" />';d[3]='<param name="allowScriptAccess" value="always" />';d[4]='<param name="bgcolor" value="'+this.config.bgcolor+'" />';i=document.createElement(i);for(e=0;e<d.length;e++)i.appendChild(document.createElement(d[e]));this.element.html(i)}else{d=
33
+ '<embed name="'+this.config.fid+'" id="'+this.config.fid+'" src="'+this.config.swf+'"';d+=' width="'+this.config.width+'" height="'+this.config.height+'" bgcolor="'+this.config.bgcolor+'"';d+=' quality="high" FlashVars="id='+escape(this.config.id)+"&fid="+escape(this.config.fid)+"&vol="+this.config.volume+'"';d+=' allowScriptAccess="always"';d+=' type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';this.element.html(d)}else this.element.html("<p>Flash 8 or above is not installed. <a href='http://get.adobe.com/flashplayer'>Get Flash!</a></p>");
34
+ else{this.config.audio.autobuffer=this.config.autobuffer;this.config.audio.preload=this.config.preload;this.config.audio.addEventListener("canplay",function(){var g=0.1*Math.random();a.config.audio.volume=(a.config.volume+(a.config.volume<50?g:-g))/100},false);this.config.audio.addEventListener("ended",function(){clearInterval(a.config.jPlayerControllerId);a.jPlayerOnSoundComplete()},false);this.element.append(this.config.audio)}this.element.css({position:this.config.position,top:this.config.top,
35
+ left:this.config.left});if(this.config.graphicsFix){this.element.append('<div id="'+this.config.hid+'"></div>');c.extend(this.config,{hSel:c("#"+this.config.hid)});this.config.hSel.css({"text-indent":"-9999px"})}this.config.customCssIds||c.each(c.jPlayer._cssId,function(g,f){a.cssId(g,f)});if(!this.config.usingFlash){this.element.css({left:"-9999px"});window.setTimeout(function(){a.volume(a.config.volume);a.jPlayerReady()},100)}},jPlayerReady:function(a){if(this.config.usingFlash){this.config.swfVersion=
36
+ a;this.config.swfVersionRequired!=this.config.swfVersion&&this._error("jPlayer's JavaScript / SWF version mismatch!\n\nJavaScript requires SWF : "+this.config.swfVersionRequired+"\nThe Jplayer.swf used is : "+this.config.swfVersion)}else this.config.swfVersion="n/a";this.jPlayerReadyCustom()},jPlayerReadyCustom:function(){},setFile:function(a,b){this.element.trigger("jPlayer.setFile",[a,b])},clearFile:function(){this.element.trigger("jPlayer.clearFile")},load:function(){this.element.trigger("jPlayer.load")},
37
+ play:function(){this.element.trigger("jPlayer.play")},pause:function(){this.element.trigger("jPlayer.pause")},stop:function(){this.element.trigger("jPlayer.stop")},playHead:function(a){this.element.trigger("jPlayer.playHead",[a])},playHeadTime:function(a){this.element.trigger("jPlayer.playHeadTime",[a])},volume:function(a){a=this._limitValue(a,0,100);this.element.trigger("jPlayer.volume",[a])},cssId:function(a,b){var d=this;if(typeof b=="string")if(c.jPlayer._cssId[a]){this.config.cssId[a]!=undefined&&
38
+ this.config.cssSelector[a].unbind("click",this.config.clickHandler[a]);this.config.cssId[a]=b;this.config.cssSelector[a]=c("#"+b);this.config.clickHandler[a]=function(h){d[a](h);c(this).blur();return false};this.config.cssSelector[a].click(this.config.clickHandler[a]);var e=this.config.cssSelector[a].css("display");if(a=="play")this.config.cssDisplay.pause=e;if(!(a=="pause"&&e=="none")){this.config.cssDisplay[a]=e;a=="pause"&&this.config.cssSelector[a].css("display","none")}}else this._warning("Unknown/Illegal function in cssId\n\njPlayer('cssId', '"+
39
+ a+"', '"+b+"')");else this._warning("cssId CSS Id must be a string\n\njPlayer('cssId', '"+a+"', "+b+")")},loadBar:function(a){if(this.config.cssId.loadBar!=undefined){var b=this.config.cssSelector.loadBar.offset();a=a.pageX-b.left;b=this.config.cssSelector.loadBar.width();this.playHead(100*a/b)}},playBar:function(a){this.loadBar(a)},onProgressChange:function(a){if(c.isFunction(a))this.onProgressChangeCustom=a;else this._warning("onProgressChange parameter is not a function.")},onProgressChangeCustom:function(){},
40
+ jPlayerOnProgressChange:function(a,b,d,e,h){this.config.diag.loadPercent=a;this.config.diag.playedPercentRelative=b;this.config.diag.playedPercentAbsolute=d;this.config.diag.playedTime=e;this.config.diag.totalTime=h;this.config.cssId.loadBar!=undefined&&this.config.cssSelector.loadBar.width(a+"%");this.config.cssId.playBar!=undefined&&this.config.cssSelector.playBar.width(b+"%");this.onProgressChangeCustom(a,b,d,e,h);this._forceUpdate()},jPlayerController:function(a){var b=0,d=0,e=0,h=0,i=0;if(this.config.audio.readyState>=
41
+ 1){b=this.config.audio.currentTime*1E3;d=this.config.audio.duration*1E3;d=isNaN(d)?0:d;e=d>0?100*b/d:0;if(typeof this.config.audio.buffered=="object"&&this.config.audio.buffered.length>0){h=100*this.config.audio.buffered.end(this.config.audio.buffered.length-1)/this.config.audio.duration;i=100*this.config.audio.currentTime/this.config.audio.buffered.end(this.config.audio.buffered.length-1)}else{h=100;i=e}}!this.config.diag.isPlaying&&h>=100&&clearInterval(this.config.jPlayerControllerId);a?this.jPlayerOnProgressChange(h,
42
+ 0,0,0,d):this.jPlayerOnProgressChange(h,i,e,b,d)},volumeMin:function(){this.volume(0)},volumeMax:function(){this.volume(100)},volumeBar:function(a){if(this.config.cssId.volumeBar!=undefined){var b=this.config.cssSelector.volumeBar.offset();a=a.pageX-b.left;b=this.config.cssSelector.volumeBar.width();this.volume(100*a/b)}},volumeBarValue:function(a){this.volumeBar(a)},jPlayerVolume:function(a){if(this.config.cssId.volumeBarValue!=null){this.config.cssSelector.volumeBarValue.width(a+"%");this._forceUpdate()}},
43
+ onSoundComplete:function(a){if(c.isFunction(a))this.onSoundCompleteCustom=a;else this._warning("onSoundComplete parameter is not a function.")},onSoundCompleteCustom:function(){},jPlayerOnSoundComplete:function(){this.element.trigger("jPlayer.setButtons",false);this.onSoundCompleteCustom()},getData:function(a){for(var b=a.split("."),d=this.config,e=0;e<b.length;e++)if(d[b[e]]!=undefined)d=d[b[e]];else{this._warning("Undefined data requested.\n\njPlayer('getData', '"+a+"')");return}return d},_getMovie:function(){return document[this.config.fid]},
44
+ _checkForFlash:function(a){var b=false,d;if(window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+a);b=true}catch(e){}else if(navigator.plugins&&navigator.mimeTypes.length>0)if(d=navigator.plugins["Shockwave Flash"])if(navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1")>=a)b=true;return b},_forceUpdate:function(){this.config.graphicsFix&&this.config.hSel.text(""+Math.random())},_limitValue:function(a,b,d){return a<b?b:a>d?d:a},_flashError:function(a){this._error("Problem with Flash component.\n\nCheck the swfPath points at the Jplayer.swf path.\n\nswfPath = "+
45
+ this.config.swfPath+"\nurl: "+this.config.swf+"\n\nError: "+a.message)},_error:function(a){this.config.errorAlerts&&this._alert("Error!\n\n"+a)},_warning:function(a){this.config.warningAlerts&&this._alert("Warning!\n\n"+a)},_alert:function(a){alert("jPlayer "+this.config.version+" : id='"+this.config.id+"' : "+a)}}})(jQuery);
js/jquery.js ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery JavaScript Library v1.4.2
3
+ * http://jquery.com/
4
+ *
5
+ * Copyright 2010, John Resig
6
+ * Dual licensed under the MIT or GPL Version 2 licenses.
7
+ * http://jquery.org/license
8
+ *
9
+ * Includes Sizzle.js
10
+ * http://sizzlejs.com/
11
+ * Copyright 2010, The Dojo Foundation
12
+ * Released under the MIT, BSD, and GPL Licenses.
13
+ *
14
+ * Date: Sat Feb 13 22:33:48 2010 -0500
15
+ */
16
+ (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
17
+ e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
18
+ j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
19
+ "&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
20
+ true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
21
+ Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
22
+ (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
23
+ a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
24
+ "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
25
+ function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
26
+ c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
27
+ L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
28
+ "isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
29
+ a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
30
+ d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
31
+ a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
32
+ !c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
33
+ true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
34
+ var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
35
+ parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
36
+ false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
37
+ s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
38
+ applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
39
+ else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
40
+ a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
41
+ w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
42
+ cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
43
+ i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
44
+ " ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
45
+ this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
46
+ e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
47
+ c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
48
+ a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
49
+ function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
50
+ k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
51
+ C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
52
+ null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
53
+ e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
54
+ f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
55
+ if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
56
+ fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
57
+ d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
58
+ "events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
59
+ a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
60
+ isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
61
+ {setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
62
+ if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
63
+ e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
64
+ "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
65
+ d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
66
+ !a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
67
+ toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
68
+ u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
69
+ function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
70
+ if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
71
+ e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
72
+ t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
73
+ g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
74
+ for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
75
+ 1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
76
+ CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
77
+ relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
78
+ l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
79
+ h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
80
+ CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
81
+ g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
82
+ text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
83
+ setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
84
+ h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
85
+ m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
86
+ "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
87
+ h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
88
+ !h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
89
+ h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
90
+ q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
91
+ if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
92
+ (function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
93
+ function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
94
+ gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
95
+ c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
96
+ {},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
97
+ "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
98
+ d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
99
+ a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
100
+ 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
101
+ a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
102
+ c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
103
+ wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
104
+ prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
105
+ this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
106
+ return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
107
+ ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
108
+ this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
109
+ u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
110
+ 1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
111
+ return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
112
+ ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
113
+ c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
114
+ c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
115
+ function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
116
+ Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
117
+ "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
118
+ a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
119
+ a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
120
+ "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
121
+ serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
122
+ function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
123
+ global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
124
+ e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
125
+ "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
126
+ false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
127
+ false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
128
+ c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
129
+ d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
130
+ g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
131
+ 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
132
+ "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
133
+ if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
134
+ this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
135
+ "olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
136
+ animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
137
+ j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
138
+ this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
139
+ "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
140
+ c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
141
+ this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
142
+ this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
143
+ e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
144
+ c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
145
+ function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
146
+ this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
147
+ k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
148
+ f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
149
+ a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
150
+ c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
151
+ d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
152
+ f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
153
+ "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
154
+ e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);jQuery.noConflict();
js/mp3-jplayer.js ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ // MP3-jPlayer for Wordpress - www.sjward.org
3
+
4
+ if (document.images) { pic1= new Image(138,32); pic1.src="/wp-content/plugins/mp3-jplayer/css/images/buttons.png";
5
+ pic2= new Image(138,32); pic2.src="/wp-content/plugins/mp3-jplayer/css/images/buttonsH.png";
6
+ pic3= new Image(12,13); pic3.src="/wp-content/plugins/mp3-jplayer/css/images/pos-handle.gif";
7
+ pic4= new Image(12,13); pic4.src="/wp-content/plugins/mp3-jplayer/css/images/pos-handleH.gif";
8
+ pic5= new Image(12,13); pic5.src="/wp-content/plugins/mp3-jplayer/css/images/pos-handle3.gif";
9
+ pic6= new Image(12,13); pic6.src="/wp-content/plugins/mp3-jplayer/css/images/pos-handle3H.gif";
10
+ pic7= new Image(12,13); pic7.src="/wp-content/plugins/mp3-jplayer/css/images/vol-handle2.gif";
11
+ pic8= new Image(12,13); pic8.src="/wp-content/plugins/mp3-jplayer/css/images/vol-handleH.gif";
12
+ }
13
+
14
+ var foxcurrentstate = "open";
15
+ var togglediv = "playlist-wrap";
16
+ var togglebutton = "playlist-toggle";
17
+ var togglecount = 0;
18
+
19
+ function toggleplaylist(){
20
+ if (foxcurrentstate == "open") {
21
+ jQuery("#" + togglediv).fadeOut(300);
22
+ jQuery("#" + togglebutton).empty();
23
+ if (togglecount == 1){
24
+ jQuery("#" + togglebutton).append('SHOW PLAYLIST');
25
+ togglecount = 0;
26
+ }
27
+ else {
28
+ jQuery("#" + togglebutton).append('SHOW');
29
+ }
30
+ foxcurrentstate = "closed";
31
+ return;
32
+ }
33
+ if (foxcurrentstate == "closed") {
34
+ jQuery("#" + togglediv).fadeIn("slow");
35
+ jQuery("#" + togglebutton).empty();
36
+ jQuery("#" + togglebutton).append('HIDE&nbsp;');
37
+ foxcurrentstate = "open"
38
+ return;
39
+ }
40
+ }
41
+
42
+ jQuery(document).ready(function(){
43
+
44
+ var playItem = 0;
45
+ var global_lp = 0;
46
+ var jpPlayTime = jQuery("#jplayer_play_time");
47
+ var jpTotalTime = jQuery("#jplayer_total_time");
48
+
49
+ jQuery("#jquery_jplayer").jPlayer({
50
+ ready: function() {
51
+ displayPlayList();
52
+ playListInit(foxAutoPlay);
53
+ },
54
+ oggSupport: false,
55
+ swfPath: foxpathtoswf
56
+ })
57
+ .jPlayer("onProgressChange", function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
58
+ var lpInt = parseInt(loadPercent);
59
+ var ppaInt = parseInt(playedPercentAbsolute);
60
+ global_lp = lpInt;
61
+ jQuery('#loaderBar').progressbar('option', 'value', lpInt);
62
+ if(jQuery("#jquery_jplayer").jPlayer("getData", "diag.isPlaying")){
63
+ if (playedTime==0 && lpInt==0){
64
+ jQuery("#status").empty();
65
+ jQuery("#status").append('<span class="mp3-finding">Connecting</span>');
66
+ jQuery("#downloadmp3-button").removeClass("whilelinks");
67
+ jQuery("#downloadmp3-button").addClass("betweenlinks");
68
+ jQuery("div.jp-total-time").hide();
69
+ }
70
+ if (playedTime==0 && lpInt>0){
71
+ jQuery("#status").empty();
72
+ jQuery("#status").append('<span class="mp3-loading">Buffering</span>');
73
+ jQuery("#downloadmp3-button").removeClass("betweenlinks");
74
+ jQuery("#downloadmp3-button").addClass("whilelinks");
75
+ jQuery("div.jp-total-time").show();
76
+ }
77
+ else if (playedTime>0){
78
+ jQuery("#status").empty();
79
+ jQuery("#status").append('Playing');
80
+ jQuery("#downloadmp3-button").removeClass("betweenlinks");
81
+ jQuery("#downloadmp3-button").addClass("whilelinks");
82
+ jQuery("div.jp-total-time").show();
83
+ }
84
+ }
85
+ else {
86
+
87
+ if (playedTime>0){
88
+ jQuery("#status").empty();
89
+ jQuery("#status").append('Paused');
90
+ jQuery("#downloadmp3-button").removeClass("betweenlinks");
91
+ jQuery("#downloadmp3-button").addClass("whilelinks");
92
+ jQuery("div.jp-total-time").show();
93
+ }
94
+ else if (playedTime==0){
95
+ if(lpInt>0){
96
+ jQuery("#status").empty();
97
+ jQuery("#status").append('Stopped');
98
+ jQuery("#downloadmp3-button").removeClass("betweenlinks");
99
+ jQuery("#downloadmp3-button").addClass("whilelinks");
100
+ jQuery("div.jp-total-time").show();
101
+ }
102
+ else {
103
+ jQuery("#status").empty();
104
+ jQuery("#status").append('Ready');
105
+ }
106
+ }
107
+ }
108
+ jQuery('#sliderPlayback').slider('option', 'value', ppaInt);
109
+ jpPlayTime.text(jQuery.jPlayer.convertTime(playedTime));
110
+ jpTotalTime.text(jQuery.jPlayer.convertTime(totalTime));
111
+ })
112
+ .jPlayer("onSoundComplete", function() {
113
+ playListNext();
114
+ });
115
+ jQuery("#player_progress_ctrl_bar a").live( "click", function() {
116
+ jQuery("#jquery_jplayer").jPlayer("playHead", this.id.substring(3)*(100.0/global_lp));
117
+ return false;
118
+ });
119
+ jQuery('#sliderPlayback').slider({
120
+ max: 100,
121
+ range: 'min',
122
+ animate: true,
123
+ slide: function(event, ui) {
124
+ jQuery("#jquery_jplayer").jPlayer("playHead", ui.value*(100.0/global_lp));
125
+ }
126
+ });
127
+ jQuery('#sliderVolume').slider({
128
+ value : foxInitialVolume,
129
+ max: 100,
130
+ range: 'min',
131
+ animate: true,
132
+
133
+ slide: function(event, ui) {
134
+ jQuery("#jquery_jplayer").jPlayer("volume", ui.value);
135
+ }
136
+ });
137
+ jQuery('#loaderBar').progressbar();
138
+ jQuery('#dialog_link, ul#icons li').hover(
139
+ function() { jQuery(this).addClass('ui-state-hover'); },
140
+ function() { jQuery(this).removeClass('ui-state-hover'); }
141
+ );
142
+ jQuery("#jplayer_previous").click( function() {
143
+ playListPrev();
144
+ jQuery(this).blur();
145
+ return false;
146
+ });
147
+ jQuery("#jplayer_next").click( function() {
148
+ playListNext();
149
+ jQuery(this).blur();
150
+ return false;
151
+ });
152
+
153
+ function displayPlayList() {
154
+ jQuery("#jplayer_playlist ul").empty();
155
+ for (i=0; i < foxPlayList.length; i++) {
156
+ var listItem = (i == foxPlayList.length-1) ? "<li class='jplayer_playlist_item_last'>" : "<li>";
157
+ listItem += "<a href='#' id='jplayer_playlist_item_"+i+"' tabindex='1'>"+ foxPlayList[i].name +"</a></li>";
158
+ jQuery("#jplayer_playlist ul").append(listItem);
159
+ jQuery("#jplayer_playlist_item_"+i).data( "index", i ).click( function() {
160
+ var index = jQuery(this).data("index");
161
+ if (playItem != index) {
162
+ playListChange( index );
163
+ } else {
164
+ jQuery("#jquery_jplayer").jPlayer("play");
165
+ }
166
+ jQuery(this).blur();
167
+ return false;
168
+ });
169
+ }
170
+ }
171
+ function playListInit(autoplay) {
172
+ if(autoplay) {
173
+ playListChange( playItem );
174
+ } else {
175
+ playListConfig( playItem );
176
+ }
177
+ }
178
+ function playListConfig( index ) {
179
+ jQuery("#jplayer_playlist_item_"+playItem).removeClass("jplayer_playlist_current").parent().removeClass("jplayer_playlist_current");
180
+ jQuery("#jplayer_playlist_item_"+index).addClass("jplayer_playlist_current").parent().addClass("jplayer_playlist_current");
181
+ playItem = index;
182
+ jQuery("#jquery_jplayer").jPlayer("setFile", foxPlayList[playItem].mp3, foxPlayList[playItem].ogg);
183
+ jQuery("#player-track-title").empty();
184
+ jQuery("#player-artist").empty();
185
+ jQuery("#player-track-title").append(foxPlayList[playItem].name);
186
+ jQuery("#player-artist").append(foxPlayList[playItem].artist);
187
+ // download mp3 link
188
+ jQuery("#downloadmp3-button").empty();
189
+ jQuery("#downloadmp3-button").append("<a href=\"" + foxPlayList[playItem].mp3 + "\">DOWNLOAD MP3</a>");
190
+ }
191
+ function playListChange( index ) {
192
+ playListConfig( index );
193
+ jQuery("#jquery_jplayer").jPlayer("play");
194
+ }
195
+ function playListNext() {
196
+ var index = (playItem+1 < foxPlayList.length) ? playItem+1 : 0;
197
+ playListChange( index );
198
+ }
199
+ function playListPrev() {
200
+ var index = (playItem-1 >= 0) ? playItem-1 : foxPlayList.length-1;
201
+ playListChange( index );
202
+ }
203
+
204
+ if (foxShowPlaylist == "false"){
205
+ togglecount = 1;
206
+ toggleplaylist();
207
+ }
208
+
209
+ });
210
+ //-->
js/ui.core.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI 1.7.3
3
+ *
4
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * http://docs.jquery.com/UI
9
+ */
js/ui.progressbar.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI Progressbar 1.7.3
3
+ *
4
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * http://docs.jquery.com/UI/Progressbar
9
+ *
10
+ * Depends:
11
+ * ui.core.js
12
+ */
js/ui.slider.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI Slider 1.7.3
3
+ *
4
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * http://docs.jquery.com/UI/Slider
9
+ *
10
+ * Depends:
11
+ * ui.core.js
12
+ */
mp3jplayer.php ADDED
@@ -0,0 +1,818 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: MP3-jPlayer
4
+ Plugin URI: http://sjward.org/jplayer-for-wordpress
5
+ Description: Adds an mp3 player with a playlist to any Wordpress pages and posts that you have assigned mp3's to.
6
+ Version: 1.3.0
7
+ Author: Simon Ward
8
+ Author URI: http://www.sjward.org
9
+ License: GPL2
10
+ */
11
+
12
+ /* Copyright 2010 Simon Ward (email: sinomward@yahoo.co.uk)
13
+
14
+ This program is free software; you can redistribute it and/or modify
15
+ it under the terms of the GNU General Public License, version 2, as
16
+ published by the Free Software Foundation.
17
+
18
+ This program is distributed in the hope that it will be useful,
19
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
+ GNU General Public License for more details.
22
+
23
+ You should have received a copy of the GNU General Public License
24
+ along with this program; if not, write to the Free Software
25
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
+ */
27
+
28
+ if (!class_exists("mp3Fox"))
29
+ {
30
+ class mp3Fox
31
+ {
32
+ var $playerHasBeenSet = "false";
33
+ var $customFieldsGrabbed = "false";
34
+
35
+ var $adminOptionsName = "mp3FoxAdminOptions";
36
+ var $theSettings = array();
37
+
38
+ var $postMetaKeys = array();
39
+ var $postMetaValues = array();
40
+
41
+ /**
42
+ * CHECKS IF THERE'S TRACKS
43
+ * (HOOKED to wp_head and runs first)
44
+ *
45
+ * Checks only when page is singular at the mo and runs add_scripts if there are tracks. (Currently always adding
46
+ * scripts to posts index page when player is allowed, and then checking for tracks during content hook)
47
+ *
48
+ * @todo: conditional enqueuing for post's index - need a fail-safe way of grabbing the post ids that are gonna be be displayed
49
+ */
50
+ function check_if_scripts_needed() {
51
+
52
+ $this->theSettings = get_option( $this->adminOptionsName );
53
+ if (is_singular()) {
54
+ if ( $this->grab_Custom_Meta() > 0 ) {
55
+ $this->add_Scripts( $this->theSettings['player_theme'] );
56
+ }
57
+ }
58
+ if ( is_home() && $this->theSettings['player_onblog'] == "true" ) {
59
+ $this->add_Scripts( $this->theSettings['player_theme'] );
60
+ }
61
+ return;
62
+ }
63
+
64
+
65
+ /**
66
+ * HANDLES PLAYER ADDITION LOGIC.
67
+ * (HOOKED to the_content)
68
+ *
69
+ * The meta key match is done now (rather than in header) on each loop if the page is the posts index.
70
+ *
71
+ * @todo: move all key-matching (and array-building) to header once a fail-safe method of pulling the posts that
72
+ * will be displayed when not in the loop is figured out).
73
+ */
74
+ function add_player($content='') {
75
+
76
+ if ($this->playerHasBeenSet == "true") {
77
+ return $content;
78
+ }
79
+ if ( is_home() && $this->theSettings['player_onblog'] == "true" ) {
80
+ if ( $this->grab_Custom_Meta() > 0 ) {
81
+ $customvalues = $this->postMetaValues;
82
+ $customkeys = $this->postMetaKeys;
83
+ }
84
+ else {
85
+ return $content;
86
+ }
87
+ }
88
+ else if ( is_singular() && $this->customFieldsGrabbed == "true" ) {
89
+ $customvalues = $this->postMetaValues;
90
+ $customkeys = $this->postMetaKeys;
91
+ }
92
+ else {
93
+ return $content;
94
+ }
95
+
96
+ $theSplitMeta = $this->splitup_meta( $customkeys, $customvalues );
97
+ $theAssembledMeta = $this->compare_swap( $theSplitMeta, $customkeys, $customvalues );
98
+ $theTrackLists = $this->sort_tracks( $theAssembledMeta, $customkeys );
99
+ $thePlayList = $this->remove_mp3remote( $theTrackLists );
100
+ if ( $thePlayList['count'] == 0 ) {
101
+ return $content;
102
+ }
103
+
104
+ $this->write_startup_vars( $thePlayList['count'] );
105
+ $this->write_playlist( $thePlayList );
106
+ $theplayer = $this->write_player_html( $thePlayList['count'] );
107
+ $content = $theplayer . $content . "<br clear=\"all\" />";
108
+ $this->playerHasBeenSet = "true";
109
+ return $content;
110
+ }
111
+
112
+
113
+ /**
114
+ * GETS RELEVANT META keys/values from the current page/post and
115
+ * creates arrays with common indexes.
116
+ *
117
+ * Returns number of tracks
118
+ */
119
+ function grab_Custom_Meta() {
120
+
121
+ global $wpdb;
122
+ global $post;
123
+ $pagesmeta = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE post_id =" .$post->ID. " ORDER BY meta_key ASC");
124
+
125
+ $i = 0;
126
+ $metacount = 0;
127
+ foreach ( $pagesmeta as $obj ) {
128
+ $flag = 0;
129
+ foreach ( $obj as $k => $value ) {
130
+ if ( $k == "meta_key" ){
131
+ if ( preg_match('/^([0-9]+(\s)?)?mp3(\..*)?$/', $value) == 1 ) {
132
+ $this->postMetaKeys[$i] = $value;
133
+ $metacount++;
134
+ $flag = 1;
135
+ }
136
+ }
137
+ if ( $k == "meta_value" ){
138
+ if ( $flag == 1 ) {
139
+ $this->postMetaValues[$i++] = $value;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ if ( $metacount > 0 ) {
145
+ $this->customFieldsGrabbed = "true";
146
+ }
147
+
148
+ return $metacount;
149
+ }
150
+
151
+
152
+ /**
153
+ * GRABS LIBRARY titles/excerpts/uri's of any audio in wp's library
154
+ *
155
+ * Return: excerpts, titles, uri's, filenames, count.
156
+ */
157
+ function grab_library_info() {
158
+
159
+ global $wpdb;
160
+ $audioInLibrary = $wpdb->get_results("SELECT DISTINCT guid, post_title, post_excerpt FROM $wpdb->posts WHERE post_mime_type = 'audio/mpeg'");
161
+ $j=0;
162
+ $Lcount = count($audioInLibrary);
163
+
164
+ foreach ( $audioInLibrary as $libkey => $libvalue ) {
165
+ foreach ( $libvalue as $itemkey => $itemvalue ) {
166
+ if ( $itemkey == "guid" ) {
167
+ $libraryURLs[$j] = $itemvalue;
168
+ $libraryFilenames[$j] = strrchr( $libraryURLs[$j], "/");
169
+ $libraryFilenames[$j] = str_replace( "/", "", $libraryFilenames[$j]);
170
+ }
171
+ if ( $itemkey == "post_title" ) {
172
+ $libraryTitles[$j] = $itemvalue;
173
+ }
174
+ if ( $itemkey == "post_excerpt" ) {
175
+ $libraryExcerpts[$j] = $itemvalue;
176
+ }
177
+ }
178
+ $j++;
179
+ }
180
+ $theLibrary = array( 'excerpts' => $libraryExcerpts,
181
+ 'titles' => $libraryTitles,
182
+ 'urls' => $libraryURLs,
183
+ 'filenames' => $libraryFilenames,
184
+ 'count' => $Lcount );
185
+ return $theLibrary;
186
+ }
187
+
188
+
189
+ /**
190
+ * SPLITS up the custom keys/values into artist/title/file arrays with correlating indices. if there's
191
+ * no title then uses the filename, if there's no artist then checks whether to use the previous artist.
192
+ *
193
+ * @todo: merging this function with compare_swap is prob more efficient
194
+ *
195
+ * Return arrays: artists, titles, filenames.
196
+ */
197
+ function splitup_meta($customkeys, $customvalues) {
198
+
199
+ /* artists */
200
+ $prevArtist = "";
201
+ foreach ( $customkeys as $i => $ckvalue ) {
202
+ $splitkey = explode('.', $ckvalue, 2);
203
+ if ( $splitkey[1] == "" ) {
204
+ if ( preg_match('/^([0-9]+(\s)?)?mp3\.$/', $ckvalue) == 1 ) {
205
+ $customArtists[$i] = "";
206
+ }
207
+ else {
208
+ $customArtists[$i] = $prevArtist;
209
+ }
210
+ }
211
+ else {
212
+ $customArtists[$i] = $splitkey[1];
213
+ }
214
+ $prevArtist = $customArtists[$i];
215
+ }
216
+
217
+ /* titles & filenames */
218
+ foreach ( $customvalues as $i => $cvvalue ) {
219
+
220
+ $checkfortitle = strpos($cvvalue, '@');
221
+ if ( $checkfortitle === false ) {
222
+ $customTitles[$i] = str_replace(".mp3", "", $cvvalue);
223
+ $customFilenames[$i] = $cvvalue;
224
+ if ( $this->theSettings['hide_mp3extension'] == "false" ) {
225
+ $customTitles[$i] .= ".mp3";
226
+ }
227
+ }
228
+ else {
229
+ $reversevalue = strrev($cvvalue);
230
+ $splitvalue = explode('@', $reversevalue, 2);
231
+ $customTitles[$i] = strrev($splitvalue[1]);
232
+ $customFilenames[$i] = strrev($splitvalue[0]);
233
+ }
234
+ if ( preg_match('/\.mp3$/', $customFilenames[$i]) == 0 ) {
235
+ $customFilenames[$i] .= ".mp3";
236
+ }
237
+ if ( strpos($customFilenames[$i], "www.") !== false ) {
238
+ $customFilenames[$i] = str_replace("www.", "", $customFilenames[$i]);
239
+ if ( strpos($customFilenames[$i], "http://") === false ) {
240
+ $customFilenames[$i] = "http://" .$customFilenames[$i];
241
+ }
242
+ }
243
+ }
244
+
245
+ $theSplitMeta = array( 'artists' => $customArtists,
246
+ 'titles' => $customTitles,
247
+ 'files' => $customFilenames );
248
+ return $theSplitMeta;
249
+ }
250
+
251
+
252
+ /**
253
+ * LOOKS FOR any $customFilenames that exist in the library and grabs their full uri's, otherwise
254
+ * adds the default path or makes sure has an http if uri/remote. Then if needed cleans up titles or swaps
255
+ * titles or artists for the library ones. Returns sanitized arrays ready for playlist
256
+ *
257
+ * Return: artists, titles, urls.
258
+ */
259
+ function compare_swap($theSplitMeta, $customkeys, $customvalues) {
260
+
261
+ $library = $this->grab_library_info();
262
+
263
+ foreach ( $theSplitMeta['files'] as $i => $cfvalue ) {
264
+ if ( $library['count'] == 0 ) {
265
+ $inLibraryID = false;
266
+ }
267
+ else {
268
+ $inLibraryID = array_search( $cfvalue, $library['filenames'] );
269
+ }
270
+ $mp3haswww = strpos($cfvalue, 'http://');
271
+
272
+ /* if file is local but not in library */
273
+ if ( $mp3haswww === false && $inLibraryID === false ) {
274
+ if ( $this->theSettings['mp3_dir'] == "/" ) {
275
+ $theSplitMeta['files'][$i] = $this->theSettings['mp3_dir'] . $theSplitMeta['files'][$i];
276
+ }
277
+ else {
278
+ $theSplitMeta['files'][$i] = $this->theSettings['mp3_dir']. "/" . $theSplitMeta['files'][$i];
279
+ }
280
+ }
281
+
282
+ /* if file is in library */
283
+ if ( $inLibraryID !== false ) {
284
+ $theSplitMeta['files'][$i] = $library['urls'][$inLibraryID];
285
+ if ( $this->theSettings['playlist_UseLibrary'] == "true" ) {
286
+ $theSplitMeta['titles'][$i] = $library['titles'][$inLibraryID];
287
+ $theSplitMeta['artists'][$i] = $library['excerpts'][$inLibraryID];
288
+ }
289
+ else {
290
+ if ( preg_match('/^([0-9]+(\s)?)?mp3$/', $customkeys[$i]) == 1 ) {
291
+ $theSplitMeta['artists'][$i] = $library['excerpts'][$inLibraryID];
292
+ }
293
+ if ( preg_match('/^([0-9]+(\s)?)?mp3\.$/', $customkeys[$i]) == 1 ) {
294
+ $theSplitMeta['artists'][$i] = "";
295
+ }
296
+ if ( strpos($customvalues[$i], '@') === false ) {
297
+ $theSplitMeta['titles'][$i] = $library['titles'][$inLibraryID];
298
+ }
299
+ }
300
+ }
301
+
302
+ /* if file is remote or user is over-riding the default path */
303
+ if ( $mp3haswww !== false && $inLibraryID === false ) {
304
+ if ( strpos($theSplitMeta['titles'][$i], 'http://') !== false || strpos($theSplitMeta['titles'][$i], 'www.') !== false ) {
305
+ $theSplitMeta['titles'][$i] = strrchr($theSplitMeta['titles'][$i], "/");
306
+ $theSplitMeta['titles'][$i] = str_replace( "/", "", $theSplitMeta['titles'][$i]);
307
+ }
308
+ }
309
+ }
310
+
311
+ $theAssembledMeta = array( 'artists' => $theSplitMeta['artists'],
312
+ 'titles' => $theSplitMeta['titles'],
313
+ 'files' => $theSplitMeta['files'] );
314
+ return $theAssembledMeta;
315
+
316
+ }
317
+
318
+
319
+ /**
320
+ * SORTS either the titles(if a-z ticked) or the keys (only if there's
321
+ * any numbering in them) and makes an ordering array
322
+ *
323
+ * Return: artists, titles, files, order.
324
+ */
325
+ function sort_tracks($theAssembledMeta, $customkeys) {
326
+
327
+ $x = 0;
328
+ if ( $this->theSettings['playlist_AtoZ'] == "true" ) {
329
+ natcasesort($theAssembledMeta['titles']);
330
+ foreach ($theAssembledMeta['titles'] as $kt => $vt) {
331
+ $indexorder[$x++] = $kt;
332
+ }
333
+ }
334
+ else {
335
+ $numberingexists = 0;
336
+ foreach ( $customkeys as $ki => $val ) {
337
+ if ( preg_match('/^[0-9]/', $val) ) {
338
+ $numberingexists++;
339
+ break;
340
+ }
341
+ }
342
+ if ( $numberingexists > 0 ) {
343
+ natcasesort($customkeys);
344
+ foreach ( $customkeys as $kf => $vf ) {
345
+ $indexorder[$x++] = $kf;
346
+ }
347
+ }
348
+ else {
349
+ foreach ( $theAssembledMeta['titles'] as $kt => $vt ) {
350
+ $indexorder[$x++] = $kt;
351
+ }
352
+ }
353
+ }
354
+
355
+ $theTrackLists = array( 'artists' => $theAssembledMeta['artists'],
356
+ 'titles' => $theAssembledMeta['titles'],
357
+ 'files' => $theAssembledMeta['files'],
358
+ 'order' => $indexorder );
359
+ return $theTrackLists;
360
+ }
361
+
362
+
363
+ /**
364
+ * REMOVES any REMOTE tracks from the playlist arrays if allow_remoteMp3 is unticked.
365
+ * current logic requires this filter be run after filenames have been sanitized/replaced by compare_swap() which
366
+ * is not ideal.
367
+ *
368
+ * return: artists, titles, filenames, order, count
369
+ *
370
+ * @todo: re-write function to filter pre compare_swap() 'cos if no tracks left then don't want to have searched
371
+ * library and enqueued stuff etc.
372
+ */
373
+ function remove_mp3remote( $theTrackLists ) {
374
+
375
+ if ( $this->theSettings['allow_remoteMp3'] == "false" ) {
376
+ $localurl = get_bloginfo('url');
377
+ foreach ( $theTrackLists['order'] as $ik => $i ) {
378
+ if ( strpos($theTrackLists['files'][$i], $localurl) !== false || strpos($theTrackLists['files'][$i], "http://") === false || (strpos($this->theSettings['mp3_dir'], "http://") !== false && strpos($theTrackLists['files'][$i], $this->theSettings['mp3_dir']) !== false) ) {
379
+ $playlistFilenames[$i] = $theTrackLists['files'][$i];
380
+ $playlistTitles[$i] = $theTrackLists['titles'][$i];
381
+ $playlistArtists[$i] = $theTrackLists['artists'][$i];
382
+ $indexorderAllowed[$x++] = $i;
383
+ }
384
+ }
385
+ }
386
+ else {
387
+ $playlistFilenames = $theTrackLists['files'];
388
+ $playlistTitles = $theTrackLists['titles'];
389
+ $playlistArtists = $theTrackLists['artists'];
390
+ $indexorderAllowed = $theTrackLists['order'];
391
+ }
392
+ $playlistTitles = str_replace('"', '\"', $playlistTitles); // escapes quotes for the js array
393
+ $nAllowed = count($playlistFilenames);
394
+
395
+ $thePlayList = array( 'artists' => $playlistArtists,
396
+ 'titles' => $playlistTitles,
397
+ 'files' => $playlistFilenames,
398
+ 'order' => $indexorderAllowed,
399
+ 'count' => $nAllowed );
400
+ return $thePlayList;
401
+ }
402
+
403
+
404
+ /**
405
+ * ENQUEUES the js and css scripts.
406
+ */
407
+ function add_Scripts($theme='') {
408
+
409
+ wp_enqueue_script( 'jquery', '/wp-content/plugins/mp3-jplayer/js/jquery.js' );
410
+ wp_enqueue_script( 'ui.core', '/wp-content/plugins/mp3-jplayer/js/ui.core.js', array( 'jquery' ) );
411
+ wp_enqueue_script( 'ui.progressbar.min', '/wp-content/plugins/mp3-jplayer/js/ui.progressbar.min.js', array( 'jquery' ) );
412
+ wp_enqueue_script( 'ui.slider.min', '/wp-content/plugins/mp3-jplayer/js/ui.slider.min.js', array( 'jquery' ) );
413
+ wp_enqueue_script( 'jquery.jplayer.min', '/wp-content/plugins/mp3-jplayer/js/jquery.jplayer.min.js', array( 'jquery' ) );
414
+ wp_enqueue_script( 'mp3-jplayer', '/wp-content/plugins/mp3-jplayer/js/mp3-jplayer.js', array( 'jquery' ) );
415
+
416
+ if ( $theme == "styleB" ) {
417
+ wp_enqueue_style( 'mp3jplayer-green', '/wp-content/plugins/mp3-jplayer/css/mp3jplayer-green.css' );
418
+ }
419
+ else if ( $theme == "styleC" ) {
420
+ wp_enqueue_style( 'mp3jplayer-blu', '/wp-content/plugins/mp3-jplayer/css/mp3jplayer-blu.css' );
421
+ }
422
+ else if ( $theme == "styleD" ) {
423
+ wp_enqueue_style( 'mp3-jplayer-cyanALT', '/wp-content/plugins/mp3-jplayer/css/mp3-jplayer-cyanALT.css' );
424
+ }
425
+ else { // default
426
+ wp_enqueue_style( 'mp3jplayer-grey', '/wp-content/plugins/mp3-jplayer/css/mp3jplayer-grey.css' );
427
+ }
428
+ return;
429
+ }
430
+
431
+
432
+ /**
433
+ * WRITES player START-UP JS vars
434
+ */
435
+ function write_startup_vars( $count ) {
436
+
437
+ $wpinstallpath = get_bloginfo('wpurl');
438
+ echo "\n\n<script type=\"text/javascript\">\n<!--\n";
439
+ echo "var foxpathtoswf = \"" .$wpinstallpath. "/wp-content/plugins/mp3-jplayer/js\";\n";
440
+ echo "var foxAutoPlay =" . $this->theSettings['auto_play'] . ";\n";
441
+ echo "var foxInitialVolume =" . $this->theSettings['initial_vol'] . ";\n";
442
+
443
+ if ( $count < 2 ) {
444
+ echo "var foxShowPlaylist = \"false\";\n";
445
+ }
446
+ else {
447
+ echo "var foxShowPlaylist = \"" .$this->theSettings['playlist_show']. "\";\n";
448
+ }
449
+ echo "//-->\n</script>\n\n";
450
+ return;
451
+ }
452
+
453
+
454
+ /**
455
+ * WRITES the FINAL PLAYLIST array.
456
+ */
457
+ function write_playlist( $thePlayList ) {
458
+
459
+ echo "\n\n<script type=\"text/javascript\">\n<!--\n";
460
+ echo "var foxPlayList = [\n";
461
+ $tracknumber = 1;
462
+ foreach ( $thePlayList['order'] as $ik => $i ) {
463
+ echo "{name: \"" .$tracknumber. ". " .$thePlayList['titles'][$i]. "\", mp3: \"" .$thePlayList['files'][$i]. "\", artist: \"" .$thePlayList['artists'][$i]. "\"}";
464
+ if ( $tracknumber != $thePlayList['count'] ) {
465
+ echo ",";
466
+ }
467
+ echo "\n";
468
+ $tracknumber++;
469
+ }
470
+ echo "];\n";
471
+ echo "//-->\n</script>\n\n";
472
+ return;
473
+ }
474
+
475
+
476
+ /**
477
+ * WRITES PLAYER HTML
478
+ */
479
+ function write_player_html( $count ) {
480
+
481
+ if ( $this->theSettings['player_float'] == "left" ) {
482
+ $floater = "float: left; padding: 5px 50px 50px 0px;";
483
+ }
484
+ else if ( $this->theSettings['player_float'] == "right" ) {
485
+ $floater = "float: right; padding: 5px 0px 50px 50px;";
486
+ }
487
+ else {
488
+ $floater = "position: relative; padding: 5px 0px 50px 0px;";
489
+ }
490
+ if ( $this->theSettings['show_downloadmp3'] == "false" ) {
491
+ $showMp3Link = "visibility: hidden;";
492
+ }
493
+ else {
494
+ $showMp3Link = "visibility: visible;";
495
+ }
496
+ if ( $count < 2 ) {
497
+ $showlistcontrols = "visibility: hidden;";
498
+ }
499
+ else {
500
+ $showlistcontrols = "visibility: visible;";
501
+ }
502
+
503
+ $player = "<div id=\"jquery_jplayer\"></div>
504
+ <div class=\"jp-playlist-player\" style=\"" .$floater. "\">
505
+ <div class=\"jp-innerwrap\">
506
+ <div id=\"innerx\"></div>
507
+ <div id=\"innerleft\"></div>
508
+ <div id=\"innerright\"></div>
509
+ <div id=\"innertab\"></div>\n
510
+ <div class=\"jp-interface\">
511
+ <ul class=\"jp-controls\">
512
+ <li><a href=\"#\" id=\"jplayer_play\" class=\"jp-play\" tabindex=\"1\">play</a></li>
513
+ <li><a href=\"#\" id=\"jplayer_pause\" class=\"jp-pause\" tabindex=\"1\">pause</a></li>
514
+ <li><a href=\"#\" id=\"jplayer_stop\" class=\"jp-stop\" tabindex=\"1\">stop</a></li>
515
+ <li><a href=\"#\" id=\"jplayer_previous\" class=\"jp-previous\" tabindex=\"1\" style=\"" .$showlistcontrols. "\">previous</a></li>
516
+ <li><a href=\"#\" id=\"jplayer_next\" class=\"jp-next\" tabindex=\"1\" style=\"" .$showlistcontrols. "\">next</a></li>
517
+ </ul>
518
+ <div id=\"sliderVolume\"></div>
519
+ <div id=\"bars_holder\">
520
+ <div id=\"loaderBar\"></div>
521
+ <div id=\"sliderPlayback\"></div>
522
+ </div>
523
+ <div id=\"jplayer_play_time\" class=\"jp-play-time\"></div>
524
+ <div id=\"jplayer_total_time\" class=\"jp-total-time\"></div>
525
+ <div id=\"status\"></div>
526
+ <div id=\"player-track-title\"></div>
527
+ <div id=\"player-artist\"></div>
528
+ <div id=\"downloadmp3-button\" style=\"" .$showMp3Link. "\"></div>
529
+ <div id=\"playlist-toggle\" style=\"" .$showlistcontrols. "\" onclick=\"javascript:toggleplaylist();\">HIDE PLAYLIST</div>
530
+ </div>
531
+ </div>\n
532
+ <div id=\"playlist-wrap\">
533
+ <div id=\"jplayer_playlist\" class=\"jp-playlist\"><ul><li></li></ul></div>
534
+ </div>
535
+ </div>\n";
536
+
537
+ return $player;
538
+ }
539
+
540
+
541
+ /**
542
+ * called when PLUGIN is ACTIVATED to create options if none exist.
543
+ */
544
+ function initFox() {
545
+
546
+ $this->getAdminOptions();
547
+ }
548
+
549
+
550
+ /**
551
+ * called when PLUGIN DEactivated, keeps the admin settings if option was ticked.
552
+ */
553
+ function uninitFox() {
554
+
555
+ $theOptions = get_option($this->adminOptionsName);
556
+ if ( $theOptions['remember_settings'] == "false" ) {
557
+ delete_option($this->adminOptionsName);
558
+ }
559
+ }
560
+
561
+
562
+ /**
563
+ * RETURNS the ADMIN settings,
564
+ * or creates and returns defaults if they don't exist.
565
+ */
566
+ function getAdminOptions() {
567
+
568
+ $mp3FoxAdminOptions = array( // default settings
569
+ 'initial_vol' => '100',
570
+ 'auto_play' => 'true',
571
+ 'mp3_dir' => 'http://www.sjward.org/mp3',
572
+ 'player_theme' => 'styleA',
573
+ 'allow_remoteMp3' => 'true',
574
+ 'playlist_AtoZ' => 'false',
575
+ 'player_float' => 'none',
576
+ 'player_onblog' => 'true',
577
+ 'playlist_UseLibrary' => 'false',
578
+ 'playlist_show' => 'true',
579
+ 'remember_settings' => 'false',
580
+ 'hide_mp3extension' => 'false',
581
+ 'show_downloadmp3' => 'false' );
582
+
583
+ $theOptions = get_option($this->adminOptionsName);
584
+ if ( !empty($theOptions) ) {
585
+ foreach ( $theOptions as $key => $option ){
586
+ $mp3FoxAdminOptions[$key] = $option;
587
+ }
588
+ }
589
+ update_option($this->adminOptionsName, $mp3FoxAdminOptions);
590
+ return $mp3FoxAdminOptions;
591
+ }
592
+
593
+
594
+ /**
595
+ * UPDATES and DISPLAYS ADMIN settings on the settings page.
596
+ *
597
+ */
598
+ function printAdminPage() {
599
+
600
+ $theOptions = $this->getAdminOptions();
601
+ if (isset($_POST['update_mp3foxSettings']))
602
+ {
603
+ if (isset($_POST['mp3foxAutoplay'])) {
604
+ $theOptions['auto_play'] = $_POST['mp3foxAutoplay'];
605
+ }
606
+ else {
607
+ $theOptions['auto_play'] = "false";
608
+ }
609
+ if (isset($_POST['mp3foxVol'])) {
610
+ $theOptions['initial_vol'] = preg_replace("/[^0-9]/","", $_POST['mp3foxVol']);
611
+ if ($theOptions['initial_vol'] < 0 || $theOptions['initial_vol']=="") {
612
+ $theOptions['initial_vol'] = "0";
613
+ }
614
+ if ($theOptions['initial_vol'] > 100) {
615
+ $theOptions['initial_vol'] = "100";
616
+ }
617
+ }
618
+ if (isset($_POST['mp3foxfolder'])) {
619
+ $theOptions['mp3_dir'] = preg_replace("!^.*www*\.!", "http://www.", $_POST['mp3foxfolder']);
620
+ if (strpos($theOptions['mp3_dir'], "http://") === false) {
621
+ if (preg_match("!^/!", $theOptions['mp3_dir']) == 0) {
622
+ $theOptions['mp3_dir'] = "/" .$theOptions['mp3_dir'];
623
+ }
624
+ else {
625
+ $theOptions['mp3_dir'] = preg_replace("!^/+!", "/", $theOptions['mp3_dir']);
626
+ }
627
+ if (preg_match("!.+/+$!", $theOptions['mp3_dir']) == 1) {
628
+ $theOptions['mp3_dir'] = preg_replace("!/+$!", "", $theOptions['mp3_dir']);
629
+ }
630
+ }
631
+ if ($theOptions['mp3_dir'] == "") {
632
+ $theOptions['mp3_dir'] = "/";
633
+ }
634
+ }
635
+ if (isset($_POST['mp3foxTheme'])) {
636
+ $theOptions['player_theme'] = $_POST['mp3foxTheme'];
637
+ }
638
+ if (isset($_POST['mp3foxAllowRemote'])) {
639
+ $theOptions['allow_remoteMp3'] = $_POST['mp3foxAllowRemote'];
640
+ }
641
+ else {
642
+ $theOptions['allow_remoteMp3'] = "false";
643
+ }
644
+ if (isset($_POST['mp3foxAtoZ'])) {
645
+ $theOptions['playlist_AtoZ'] = $_POST['mp3foxAtoZ'];
646
+ }
647
+ else {
648
+ $theOptions['playlist_AtoZ'] = "false";
649
+ }
650
+ if (isset($_POST['mp3foxFloat'])) {
651
+ $theOptions['player_float'] = $_POST['mp3foxFloat'];
652
+ }
653
+ if (isset($_POST['mp3foxOnBlog'])) {
654
+ $theOptions['player_onblog'] = $_POST['mp3foxOnBlog'];
655
+ }
656
+ else {
657
+ $theOptions['player_onblog'] = "false";
658
+ }
659
+ if (isset($_POST['mp3foxUseLibrary'])) {
660
+ $theOptions['playlist_UseLibrary'] = $_POST['mp3foxUseLibrary'];
661
+ }
662
+ else {
663
+ $theOptions['playlist_UseLibrary'] = "false";
664
+ }
665
+ if (isset($_POST['mp3foxShowPlaylist'])) {
666
+ $theOptions['playlist_show'] = $_POST['mp3foxShowPlaylist'];
667
+ }
668
+ else {
669
+ $theOptions['playlist_show'] = "false";
670
+ }
671
+ if (isset($_POST['mp3foxRemember'])) {
672
+ $theOptions['remember_settings'] = $_POST['mp3foxRemember'];
673
+ }
674
+ else {
675
+ $theOptions['remember_settings'] = "false";
676
+ }
677
+ if (isset($_POST['mp3foxHideExtension'])) {
678
+ $theOptions['hide_mp3extension'] = $_POST['mp3foxHideExtension'];
679
+ }
680
+ else {
681
+ $theOptions['hide_mp3extension'] = "false";
682
+ }
683
+ if (isset($_POST['mp3foxDownloadMp3'])) {
684
+ $theOptions['show_downloadmp3'] = $_POST['mp3foxDownloadMp3'];
685
+ }
686
+ else {
687
+ $theOptions['show_downloadmp3'] = "false";
688
+ }
689
+
690
+ update_option($this->adminOptionsName, $theOptions);
691
+ ?>
692
+
693
+ <div class="updated"><p><strong><?php _e("Settings Updated.", "mp3Fox");?></strong></p></div>
694
+
695
+ <?php
696
+ }
697
+ ?>
698
+
699
+ <div class="wrap">
700
+ <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
701
+
702
+ <h2>Mp3-jPlayer</h2>
703
+ <p class="description" style="margin-top: -4px; margin-bottom: 18px;"><a href="#howto">How to make a playlist</a></p></h2>
704
+
705
+ <p class="description" style="margin: 5px 120px 30px 0px;">Below are the global settings for Mp3-jPlayer. The player
706
+ will automatically appear on any posts or pages that you have assigned mp3's to.</p>
707
+
708
+ <h4 style="margin-bottom: 4px;">Player</h4>
709
+ <p style="margin-bottom: 6px;">&nbsp; Initial volume &nbsp; <input type="text" style="text-align:right;" size="2" name="mp3foxVol" value="<?php echo $theOptions['initial_vol'] ?>" /> &nbsp; <span class="description">(0 - 100)</span></p>
710
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxAutoplay" value="true" <?php if ($theOptions['auto_play'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Autoplay</p>
711
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxShowPlaylist" value="true" <?php if ($theOptions['playlist_show'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Start with the playlist showing</p>
712
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxOnBlog" value="true" <?php if ($theOptions['player_onblog'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Show a player on the posts index
713
+ page<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="description">(the player is added to the most recent post that has mp3's assigned)</span></p>
714
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxAtoZ" value="true" <?php if ($theOptions['playlist_AtoZ'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Playlist the tracks in alphabetical order</p>
715
+
716
+ <h4 style="margin-bottom: 4px;"><br />Library</h4>
717
+ <p style="margin-bottom: 5px;">&nbsp; <input type="checkbox" name="mp3foxUseLibrary" value="true" <?php if ($theOptions['playlist_UseLibrary'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Always use my Media Library titles and excerpts when they exist</p>
718
+ <p class="description" style="margin: 0px 0px 9px 35px;"><a href="media-new.php">Upload new tracks</a>
719
+ <br /><a href="upload.php?post_mime_type=audio">Go to media library</a></p>
720
+
721
+ <?php
722
+ //media settings page has moved in WP 3
723
+ if ( substr(get_bloginfo('version'), 0, 1) > 2 ) { // if WP 3.x
724
+ $mediapagelink = get_bloginfo('wpurl') . "/wp-admin/options-media.php";
725
+ }
726
+ else {
727
+ $mediapagelink = get_bloginfo('wpurl') . "/wp-admin/options-misc.php";
728
+ }
729
+
730
+ $upload_dir = wp_upload_dir();
731
+ $localurl = get_bloginfo('url');
732
+ $uploadsfolder = str_replace($localurl, "", $upload_dir['baseurl']); // is empty string only if library is empty
733
+ if ( $uploadsfolder != "" ) {
734
+ echo "<p class=\"description\" style=\"margin: 0px 120px 20px 35px;\">Your Media Library uploads folder is currently set to <code>" .$uploadsfolder. "</code> , you can always <a href=\"" . $mediapagelink . "\">change it</a> without affecting any of your playlists.</p>";
735
+ }
736
+ ?>
737
+
738
+ <p class="description" style="margin: 0px 120px 5px 10px;">If you have mp3's that don't appear in the Media Library (eg.
739
+ if you use ftp outside of Wordpress, or want to play music from another domain) then you can specify a default path or URI to the folder that contains them. Doing this means you only need
740
+ write their filenames when making a playlist. You can over-ride your default path / URI anytime on a playlist by specifying the full URI for an mp3.</p>
741
+ <p>&nbsp; Default path or URI &nbsp; <input type="text" size="55" name="mp3foxfolder" value="<?php echo $theOptions['mp3_dir'] ?>" /></p>
742
+
743
+ <p style="margin-top: 15px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxAllowRemote" value="true" <?php if ($theOptions['allow_remoteMp3'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Allow mp3's from other domains on
744
+ the player's playlists<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="description">(unchecking this option doesn't affect mp3's using your default path or URI)</span></p>
745
+
746
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxHideExtension" value="true" <?php if ($theOptions['hide_mp3extension'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Hide .mp3 if a filename is displayed
747
+ <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="description">(filenames are displayed when there's no available titles)</span></p>
748
+
749
+ <p style="margin-top: 0px; margin-bottom: 8px;">&nbsp; <input type="checkbox" name="mp3foxDownloadMp3" value="true" <?php if ($theOptions['show_downloadmp3'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Display a 'Download mp3' button.</p>
750
+
751
+ <h4 style="margin-bottom: 4px;"><br />Style</h4>
752
+ <p>&nbsp; <input type="radio" name="mp3foxTheme" value="styleA" <?php if ($theOptions['player_theme'] == "styleA") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp;&nbsp;Neutral<br />
753
+ &nbsp; <input type="radio" name="mp3foxTheme" value="styleB" <?php if ($theOptions['player_theme'] == "styleB") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp;&nbsp;Green<br />
754
+ &nbsp; <input type="radio" name="mp3foxTheme" value="styleC" <?php if ($theOptions['player_theme'] == "styleC") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp;&nbsp;Blue<br />
755
+ &nbsp; <input type="radio" name="mp3foxTheme" value="styleD" <?php if ($theOptions['player_theme'] == "styleD") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp;&nbsp;Cyan (Alternative style)</p>
756
+
757
+ <h4 style="margin-bottom: 4px;"><br />Position</h4>
758
+ <p>&nbsp; Left &nbsp;<input type="radio" name="mp3foxFloat" value="left" <?php if ($theOptions['player_float'] == "left") { _e('checked="checked"', "mp3Fox"); }?> />&nbsp;
759
+ | &nbsp;<input type="radio" name="mp3foxFloat" value="right" <?php if ($theOptions['player_float'] == "right") { _e('checked="checked"', "mp3Fox"); }?> /> &nbsp; Right</p>
760
+ <p>&nbsp; Left &nbsp;<input type="radio" name="mp3foxFloat" value="none" <?php if ($theOptions['player_float'] == "none") { _e('checked="checked"', "mp3Fox"); }?> />&nbsp; but not floated <span class="description">(content appears below the player)</span></p>
761
+ <br /><br />
762
+
763
+ <p style="margin-top: 4px;"><input type="submit" name="update_mp3foxSettings" class="button-primary" value="<?php _e('Update Settings', 'mp3Fox') ?>" />
764
+ &nbsp; Remember settings if plugin is deactivated &nbsp;<input type="checkbox" name="mp3foxRemember" value="true" <?php if ($theOptions['remember_settings'] == "true") { _e('checked="checked"', "mp3Fox"); }?> /></p>
765
+ </form>
766
+
767
+ <p>__________________________________________________________________________________</p>
768
+ <a name="howto"></a>
769
+ <p class="description" style="margin: 20px 120px 5px 10px;"><strong>How to assign an mp3</strong> from your Media Library or your default location:</p>
770
+ <p class="description" style="margin: 10px 120px 5px 10px;">1. Go to a page/post edit screen and scroll down to the custom fields (below the content
771
+ box)<br />2. Write <code>mp3</code> into the left hand box<br />3. Write the filename into the right hand box and hit update page</p>
772
+
773
+ <p class="description" style="margin: 20px 120px 5px 10px;"><strong>Adding a title and caption:</strong></p>
774
+ <p class="description" style="margin: 10px 120px 5px 10px;">1. Add a dot, then a caption in the left hand box like so: <code>mp3.Caption</code><br />2. Add the title, then an '@' before the filename like so: <code>Title@filename</code></p>
775
+
776
+ <p class="description" style="margin: 20px 120px 5px 10px;"><strong>Ordering the tracks:</strong></p>
777
+ <p class="description" style="margin: 10px 120px 5px 10px;">Number the left boxes eg:<code>1 mp3.Caption</code> will be first on the playlist. Un-numbered tracks appear
778
+ below any numbered tracks.</p>
779
+
780
+ <p class="description" style="margin: 10px 120px 5px 10px;"><br />More help and examples are available from the <a href="http://sjward.org/jplayer-for-wordpress">plugin home page</a></p>
781
+ <br /><br /><br /><br /><br />
782
+ </div>
783
+
784
+ <?php
785
+ }
786
+
787
+ } /* end class mp3Fox */
788
+ }
789
+
790
+ if ( class_exists("mp3Fox") ) {
791
+ $mp3_fox = new mp3Fox();
792
+ }
793
+ if ( isset($mp3_fox) ) {
794
+
795
+ /* initialize admin page */
796
+ if ( !function_exists("mp3Fox_ap") ) {
797
+ function mp3Fox_ap() {
798
+ global $mp3_fox;
799
+ if ( !isset($mp3_fox) ) {
800
+ return;
801
+ }
802
+ if ( function_exists('add_options_page') ) {
803
+ add_options_page('MP3 jPlayer', 'MP3 jPlayer', 9, basename(__FILE__), array(&$mp3_fox, 'printAdminPage'));
804
+ }
805
+ }
806
+ }
807
+
808
+ /* action hooks */
809
+ add_action('activate_mp3-jplayer/mp3jplayer.php', array(&$mp3_fox, 'initFox'));
810
+ add_action('deactivate_mp3-jplayer/mp3jplayer.php', array(&$mp3_fox, 'uninitFox'));
811
+ add_action('wp_head', array(&$mp3_fox, 'check_if_scripts_needed'), 1);
812
+ add_action('admin_menu', 'mp3Fox_ap');
813
+
814
+ /* filter hooks */
815
+ add_filter('the_content', array(&$mp3_fox, 'add_player'));
816
+
817
+ }
818
+ ?>
readme.txt ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === MP3-jPlayer ===
2
+ Author URI: http://www.sjward.org
3
+ Plugin URI: http://www.sjward.org/jplayer-for-wordpress
4
+ Contributors: simon.ward
5
+ Tags: mp3, player, jplayer, music player, jplayer wordpress, mp3 player
6
+ Requires at least: 2.8
7
+ Tested up to: 3.0.1
8
+ Stable tag: 1.3.0
9
+
10
+ Adds an mp3 player with playlist to any Wordpress pages/posts that you make a playlist for.
11
+
12
+
13
+ <br />
14
+ == Description ==
15
+
16
+ MP3-jPlayer automatically adds an mp3 player to any posts/pages that you have created a playlist for. The plugin makes it simple to play mp3's from your Wordpress media library, or from a default folder, or from another domain, It also lets you add your own titles and captions, or can use your media library titles/captions. No setup is required, just install, activate and start adding tracks.
17
+
18
+ You can see a demo at [www.sjward.org/jplayer-for-wordpress](http://sjward.org/jplayer-for-wordpress).
19
+
20
+ MP3-jPlayer integrates Happyworm's popular open source jPlayer code into an easy-to-use Wordpress plugin, it also provides you with an admin panel for some useful settings, and a simple method of building playlists on your pages and posts using Wordpress' existing custom fields that are on all post/page edit screens.
21
+
22
+
23
+ <br />
24
+ **Features**
25
+
26
+ 1. Allows you to add titles and captions to tracks that aren't in your Wordpress media library.
27
+ 2. Allows you to over-ride your media library titles and captions with different ones.
28
+ 3. Provides an admin settings page with various player and playlist settings, a default folder/URI setting for easy playing of non-library tracks. Some position and style options.
29
+ 4. Lets you to include a 'Download mp3' button on the player.
30
+ 5. Is CSS styleable.
31
+
32
+
33
+ **Making A Playlist**
34
+
35
+ Add your mp3's on the page's or post's edit screen using the custom fields (below the content box). Enter them as follows:
36
+
37
+ 1. Enter <code>mp3</code> into the left box of a new custom-field line.
38
+ 2. Write the filename (or URI)* of the mp3 into the right box and hit 'Add custom field'.
39
+ 3. Repeat the above to add more tracks, and hit the 'update/publish' button when you're done.
40
+
41
+ *You only need a full URI when the mp3 is not in either your library or your specified default folder (set at the admin settings page), otherwise just enter the filename (you can leave off the file extension).
42
+
43
+
44
+ **Adding Titles and Captions**
45
+
46
+ *Add the title in the right hand box before the filename/uri, separate with an @ sign.*
47
+ For example if your mp3 filename is happysong.mp3 and you want the title to be 'Happy Song' then write:
48
+
49
+ <code>Happy Song@happysong</code>
50
+
51
+ If no title is available (from either your Wordpress library or the custom fields) then the filename is used as the title.
52
+
53
+ *Add the caption in the left hand box after mp3, separate with a dot.*
54
+ For example if the track was by 'The Horse' then you could write:
55
+
56
+ <code>mp3.The Horse</code>
57
+
58
+ Note: Your previous caption is normally given to subsequent tracks when they don't have a caption of their own (this saves you having to write the same caption each time when all tracks on the playlist are by 'The horse'). To stop this and blank out the caption again add just the dot like so:
59
+
60
+ <code>mp3.</code>
61
+
62
+
63
+ **Ordering the Tracks**
64
+
65
+ *To control the playlist order simply number the left hand boxes, for example:*
66
+
67
+ <code>1 mp3</code>
68
+
69
+ Any numbered tracks take priority at the top of the playlist with un-numbered tracks underneath. The single space after the number is optional.
70
+
71
+ Note: The A-Z sorting option at the settings panel will over-ride any number ordering in the playlists.
72
+
73
+
74
+ == Installation ==
75
+
76
+ To install using Wordpress:
77
+
78
+ 1. Download the zip file to your computer.
79
+ 2. Log in to your Wordpress admin and go to 'plugins' -> 'Add New'.
80
+ 3. Click 'Upload' at the top of the page then browse' for the zip file on your computer and hit the 'Install' button, Wordpress should install it for you.
81
+ 4. Once installed go to your Wordpress 'Plugins' menu and activate MP3-jPlayer.
82
+
83
+ To Install manually:
84
+
85
+ 1. Download the zip file and unzip it.
86
+ 2. Open the unzipped folder and upload the entire contents (1 folder and it's files and subfolders) to your `/wp-content/plugins` directory on the server.
87
+ 3. Activate the plugin via your Wordpress 'Plugins' menu.
88
+
89
+
90
+ == Screenshots ==
91
+
92
+ 1. Player new style in blue, green, and neutral
93
+ 2. Player original style in cyan
94
+ 3. The admin settings page
95
+ 4. An example playlist on an edit post/page screen
96
+
97
+
98
+ == Frequently Asked Questions ==
99
+
100
+ = Can I have more than one player on the posts index page? =
101
+ No, only the one player will be added, it's added to the first post in the displayed list of posts that has a playlist.
102
+
103
+ = Can I choose which mp3's will show a download button? =
104
+ Currently no, but it's on the list of additions for the next release.
105
+
106
+ = How do I put the player in my sidebar? =
107
+ Again, this is on the list for the next release!
108
+
109
+ = I want the player to appear somewhere down the page content and not at the top, is there a shortcode? =
110
+ Not yet, it's another thing on the to do list!!
111
+
112
+ = The player doesn't show up, how do I know that the player is working on my site? =
113
+ The player will not appear if it doesn't think there's at least one mp3 to play on the page. You can test it as follows:
114
+ 1. Using the player's default settings, go to any post/page edit screen.
115
+ 2. In a new custom field write 'mp3' into the left box, and write 'test' in the right hand box.
116
+ 3. Save the page and view it.
117
+
118
+ The player should now appear and will try to play a test track from the plugin author's domain.
119
+
120
+ = How do I restore the default settings? =
121
+ Go to the settings page, uncheck the box labeled 'Remember my settings when plugin is deactivated' and click 'Update Settings', go to the 'Plugins' menu and de-activate MP3-jPlayer, then activate it again to restore the defaults.
122
+
123
+
124
+ == Changelog ==
125
+
126
+ = 1.3.0 =
127
+ * Updated jquery.jplayer.min.js to version 1.2.0 (including the new .swf file). The plugin should now work on the iPad.
128
+ * Fixed admin side broken display of the uploads folder path that occured when a path had been specified but didn't yet exist.
129
+ * Fixed the broken link to the (new) media settings page when running in Wordpress 3.
130
+ * Changed the 'Use my media library titles...' option logic to allow any titles or captions to independently over-ride the library by default. The option is now 'Always use my media library titles...' which when ticked will give preference to library titles/captions over those in the custom fields.
131
+ * Modified the css for compatibility with Internet Explorer 6. The player should now display almost the same in IE6 as in other browsers.
132
+
133
+ = 1.2.12 =
134
+ * Added a new player style option on the settings page, and 3 colour variations including a neutral grey.
135
+ * Changed download button display states to give a better visual cue.
136
+
137
+ = 1.2.11 =
138
+ * Added an option to include a 'download mp3' link on the player.
139
+
140
+ = 1.2.10 =
141
+ * Fixed bug (created in v1.2.9) where player was breaking if remote tracks were filtered from the playlist.
142
+
143
+ = 1.2.9 =
144
+ * Added a play order setting method to allow ordering of some or all tracks on a playlist. Any numbered custom keys (eg "1 mp3") appear in order at the top of the playlist.
145
+ * Added ability to show/hide the playlist, and to choose it's default state from the admin settings page.
146
+ * Added a 'connecting' state and animated gifs to player status for more visual indication that player is functioning when the connection is slow.
147
+ * Restructured/improved the code a little. When on a single page/post now grabbing the meta keys/values while in the head to avoid enqueueing scripts or writing js if there's no tracks on a page. This should eventually be done for posts index page as well. Currently the adding of the the player on the index is left until the posts loop runs which should be fail-safe against any other plugin modifying the displayed posts during the loop.
148
+ * Updated jquery to version 1.4.2 (this shouldn't affect WP versions proir to 3 as WP uses it's included jquery version in preference).
149
+ * The 'Default folder' option can now be a remote uri to a folder, if it is then it doesn't get filtered from the playists when 'allow remote' is unticked.
150
+
151
+ = 1.2.0 =
152
+ * Added media library integration to allow adding of mp3's in the same way as from the default folder (ie. by entering just a filename). If the track is in the library then using it's full uri and conditionally using the titles and captions. User does not have to specify where the tracks reside (recognises library file, default folder file, and local or remote uri's).
153
+ * Added an admin option to filter out any off-site mp3's from the playlists if desired.
154
+ * Added an admin option to hide the file extension should a filename be displayed.
155
+ * Fixed bug where using @ signs in a title would break the track (the filename/uri was written incorrectly). Titles can now include @ signs. Similarly fixed bug where using dots in a caption truncated the caption.
156
+ * The plugin now clears out it's settings from the database by default upon deactivation. This can be changed from the settings page.
157
+ * The A-Z sort now ignores capitalisation.
158
+ * It's no longer necessary to include the file extension when writing filenames.
159
+
160
+ = 1.1.0 =
161
+ * Added detecting of urls in the playlist allowing over-rides of default folder and playing of off-site mp3's.
162
+ * Added status info in player display to show player's current state (ready, buffering, playing, stopped, paused).
163
+ * Added admin option to put a player on posts index page, the player is now added to the first post that has a playlist when on the index.
164
+ * Added ability to give mp3's a caption along with the title.
165
+ * Added some basic player positioning options.
166
+ * Added field checking/correction when the admin default folder value is updated.
167
+ * Added a-z sort option.
168
+ * Fixed bug where using unescaped double quotes in a title broke the playlist, quotes are now escaped automatically and can be used.
169
+
170
+ = 1.0 =
171
+ * First release
screenshot-1.png ADDED
Binary file
screenshot-2.png ADDED
Binary file
screenshot-3.gif ADDED
Binary file
screenshot-4.gif ADDED
Binary file