compass-jquery-plugin 0.3.2.pre.2 → 0.3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/LICENSE.md +20 -20
  2. data/README.md +7 -2
  3. data/VERSION.yml +2 -2
  4. data/lib/jquery/gridify/grid.rb +1 -1
  5. data/lib/jquery/gridify/grid_column.rb +1 -1
  6. data/lib/jquery/gridify/grid_finder.rb +16 -1
  7. data/lib/jquery/gridify/grid_view.rb +1 -1
  8. data/lib/jquery/jqgrid.rb +4 -4
  9. data/lib/jquery/jqtouch.rb +3 -3
  10. data/lib/jquery/jquery.rb +431 -431
  11. data/lib/jquery/jquery_json_response.rb +28 -0
  12. data/lib/jquery/secret_sauce.rb +8 -8
  13. data/lib/jquery/secret_sauce/controller/ui_dialog_controls.rb +13 -13
  14. data/lib/jquery/secret_sauce/controller/ui_grid_controls.rb +18 -18
  15. data/lib/jquery/secret_sauce/helpers/ui_dialog_helper.rb +5 -5
  16. data/lib/jquery/secret_sauce/model/find_for_grid.rb +41 -41
  17. data/templates/dynatree/jquery.dynatree.js +111 -110
  18. data/templates/dynatree/jquery.dynatree.min.js +75 -77
  19. data/templates/dynatree/jquery/dynatree/aero.scss +1 -3
  20. data/templates/dynatree/jquery/dynatree/aqua.scss +1 -3
  21. data/templates/dynatree/jquery/dynatree/crystal.scss +1 -3
  22. data/templates/dynatree/jquery/dynatree/xp.scss +1 -3
  23. data/templates/emulators/emulators/iphone.landscape.png +0 -0
  24. data/templates/emulators/emulators/iphone.landscape.scss +4 -4
  25. data/templates/emulators/emulators/palm.landscape.scss +6 -6
  26. data/templates/emulators/emulators/palm.pre.landscape.png +0 -0
  27. data/templates/ical/jquery.ical.js +3202 -3197
  28. data/templates/ical/jquery.ical.min.js +185 -184
  29. data/templates/ical/jquery/ical.scss +3 -3
  30. data/templates/jqgrid/i18n/jqgrid/locale-ar.js +126 -0
  31. data/templates/jqgrid/i18n/jqgrid/locale-ar.min.js +6 -0
  32. data/templates/jqgrid/i18n/jqgrid/locale-fi.js +45 -47
  33. data/templates/jqgrid/i18n/jqgrid/locale-fi.min.js +6 -6
  34. data/templates/jqgrid/jquery.jqGrid.js +2047 -2036
  35. data/templates/jqgrid/jquery.jqGrid.min.js +48 -48
  36. data/templates/jqgrid/manifest.rb +2 -0
  37. data/templates/jqtouch/jquery.jqtouch.js +122 -113
  38. data/templates/jqtouch/jquery.jqtouch.min.js +1 -1
  39. data/templates/jquery/config/initializers/jquery.rb +4 -2
  40. data/templates/jquery/i18n/jquery.ui/datepicker-ar-DZ.js +23 -0
  41. data/templates/jquery/i18n/jquery.ui/datepicker-ar-DZ.min.js +2 -0
  42. data/templates/jquery/i18n/jquery.ui/datepicker-en-AU.js +23 -0
  43. data/templates/jquery/i18n/jquery.ui/datepicker-en-AU.min.js +2 -0
  44. data/templates/jquery/i18n/jquery.ui/datepicker-en-NZ.js +23 -0
  45. data/templates/jquery/i18n/jquery.ui/datepicker-en-NZ.min.js +2 -0
  46. data/templates/jquery/i18n/jquery.ui/datepicker-ml.js +23 -0
  47. data/templates/jquery/i18n/jquery.ui/datepicker-ml.min.js +2 -0
  48. data/templates/jquery/jquery-ui.js +354 -316
  49. data/templates/jquery/jquery-ui.min.js +544 -544
  50. data/templates/jquery/jquery.cookie.js +3 -3
  51. data/templates/jquery/jquery.form.js +271 -140
  52. data/templates/jquery/jquery.form.min.js +19 -17
  53. data/templates/jquery/jquery.layout.js +2435 -2437
  54. data/templates/jquery/jquery.layout.min.js +4 -3
  55. data/templates/jquery/jquery.mousewheel.js +78 -0
  56. data/templates/jquery/jquery.mousewheel.min.js +2 -0
  57. data/templates/jquery/jquery.offline.js +212 -0
  58. data/templates/jquery/jquery.offline.min.js +4 -0
  59. data/templates/jquery/jquery.tmpl.js +15 -22
  60. data/templates/jquery/jquery.tmpl.min.js +12 -12
  61. data/templates/jquery/jquery.tmplPlus.js +1 -0
  62. data/templates/jquery/jquery/ui/_theme.scss +27 -27
  63. data/templates/jquery/json.js +7 -0
  64. data/templates/jquery/json.min.js +7 -0
  65. data/templates/jquery/manifest.rb +14 -2
  66. data/templates/mobile/glyphish/{Read me first - license.txt → License.txt} +0 -0
  67. data/templates/mobile/jquery.mobile.js +1583 -1408
  68. data/templates/mobile/jquery.mobile.min.js +5 -5
  69. data/templates/mobile/jquery/mobile/_base.scss +938 -1038
  70. data/templates/mobile/jquery/mobile/default.scss +25 -26
  71. data/templates/mobile/jquery/mobile/valencia.scss +0 -1
  72. data/templates/mobile/manifest.rb +1 -1
  73. data/templates/tools/config/initializers/tools.rb +2 -0
  74. data/templates/tools/flowplayer.js +24 -0
  75. data/templates/tools/flowplayer.min.js +30 -0
  76. data/templates/tools/jquery.tools.js +4 -3
  77. data/templates/tools/jquery.tools.min.js +1 -1
  78. data/templates/tools/manifest.rb +4 -0
  79. data/templates/tools/swfobject.js +777 -0
  80. data/templates/tools/swfobject.min.js +19 -0
  81. metadata +31 -15
  82. data/templates/jquery/jquery.metadata.js +0 -122
  83. data/templates/jquery/jquery.metadata.min.js +0 -2
@@ -12,7 +12,7 @@
12
12
  .ui-bar-a {
13
13
  border: 1px solid #2A2A2A;
14
14
  background: #111111;
15
- color: #fff;
15
+ color: #ffffff;
16
16
  font-weight: bold;
17
17
  text-shadow: 0 -1px 1px black;
18
18
  background-image: -moz-linear-gradient(top, #3c3c3c, #111111);
@@ -180,7 +180,7 @@
180
180
  color: #3E3E3E;
181
181
  font-weight: bold;
182
182
  text-shadow: 0 1px 1px #fff;
183
- background-image: -moz-linear-gradient(#f0f0f0, #e9eaeb);
183
+ background-image: -moz-linear-gradient(top, #f0f0f0, #e9eaeb);
184
184
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f0f0f0), color-stop(1, #e9eaeb));
185
185
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#f0f0f0', EndColorStr='#e9eaeb')";
186
186
  font-family: Helvetica, Arial, sans-serif;
@@ -192,9 +192,9 @@
192
192
  color: #333333;
193
193
  text-shadow: 0 1px 0 #fff;
194
194
  background: #f0f0f0;
195
- background-image: -moz-linear-gradient(white, #f0f0f0);
196
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, white), color-stop(1, #f0f0f0));
197
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#f0f0f0')";
195
+ background-image: -moz-linear-gradient(top, #eeeeee, #dddddd);
196
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #eeeeee), color-stop(1, #dddddd));
197
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#dddddd')";
198
198
  font-family: Helvetica, Arial, sans-serif;
199
199
  input, select, textarea, button {
200
200
  font-family: Helvetica, Arial, sans-serif; }
@@ -212,22 +212,22 @@
212
212
  cursor: pointer;
213
213
  text-shadow: 0 1px 1px #f6f6f6;
214
214
  text-decoration: none;
215
- background-image: -moz-linear-gradient(#fdfdfd, #eeeeee);
215
+ background-image: -moz-linear-gradient(top, #fefefe, #eeeeee);
216
216
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fdfdfd), color-stop(1, #eeeeee));
217
217
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#eeeeee')";
218
218
  a.ui-link-inherit {
219
219
  color: #2F3E46; } }
220
220
 
221
221
  .ui-btn-hover-c {
222
- border: 1px solid #aaa;
223
- background: #f5f5f5;
222
+ border: 1px solid #bbb;
223
+ background: #dadada;
224
224
  font-weight: bold;
225
- color: #111111;
225
+ color: #101010;
226
226
  text-decoration: none;
227
227
  text-shadow: 0 1px 1px #fff;
228
- background-image: -moz-linear-gradient(white, #f5f5f5);
229
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, white), color-stop(1, #f5f5f5));
230
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#f5f5f5')";
228
+ background-image: -moz-linear-gradient(top, #ededed, #dadada);
229
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ededed), color-stop(1, #dadada));
230
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ededed', EndColorStr='#dadada')";
231
231
  a.ui-link-inherit {
232
232
  color: #2F3E46; } }
233
233
 
@@ -237,7 +237,7 @@
237
237
  font-weight: bold;
238
238
  color: #111111;
239
239
  text-shadow: 0 1px 1px #ffffff;
240
- background-image: -moz-linear-gradient(#eeeeee, #fdfdfd);
240
+ background-image: -moz-linear-gradient(top, #eeeeee, #fdfdfd);
241
241
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #eeeeee), color-stop(1, #fdfdfd));
242
242
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#fdfdfd')";
243
243
  a.ui-link-inherit {
@@ -254,9 +254,9 @@
254
254
  background: #bbb;
255
255
  color: #333;
256
256
  text-shadow: 0 1px 0 #eee;
257
- background-image: -moz-linear-gradient(#dddddd, #bbbbbb);
257
+ background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
258
258
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #dddddd), color-stop(1, #bbbbbb));
259
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ddd', EndColorStr='#bbb')";
259
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#dddddd', EndColorStr='#bbbbbb')";
260
260
  font-family: Helvetica, Arial, sans-serif;
261
261
  input, select, textarea, button {
262
262
  font-family: Helvetica, Arial, sans-serif; }
@@ -298,7 +298,7 @@
298
298
  cursor: pointer;
299
299
  text-shadow: 0 1px 1px #fff;
300
300
  text-decoration: none;
301
- background-image: -moz-linear-gradient(#fdfdfd, #eeeeee);
301
+ background-image: -moz-linear-gradient(top, #fdfdfd, #eeeeee);
302
302
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fdfdfd), color-stop(1, #eeeeee));
303
303
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fdfdfd', EndColorStr='#eeeeee')";
304
304
  a.ui-link-inherit {
@@ -310,7 +310,7 @@
310
310
  font-weight: bold;
311
311
  color: #111;
312
312
  text-shadow: 0 1px 1px #ffffff;
313
- background-image: -moz-linear-gradient(#eeeeee, white);
313
+ background-image: -moz-linear-gradient(top, #eeeeee, white);
314
314
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #eeeeee), color-stop(1, white));
315
315
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee', EndColorStr='#ffffff')";
316
316
  a.ui-link-inherit {
@@ -319,7 +319,7 @@
319
319
  font-weight: bold;
320
320
  color: #111;
321
321
  text-shadow: none;
322
- background-image: -moz-linear-gradient(#cccccc, #eeeeee);
322
+ background-image: -moz-linear-gradient(top, #cccccc, #eeeeee);
323
323
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #cccccc), color-stop(1, #eeeeee));
324
324
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#cccccc', EndColorStr='#eeeeee')"; } }
325
325
 
@@ -334,7 +334,7 @@
334
334
  background: #fadb4e;
335
335
  color: #333;
336
336
  text-shadow: 0 1px 0 #fff;
337
- background-image: -moz-linear-gradient(#fceda7, #fadb4e);
337
+ background-image: -moz-linear-gradient(top, #fceda7, #fadb4e);
338
338
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fceda7), color-stop(1, #fadb4e));
339
339
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')";
340
340
  font-family: Helvetica, Arial, sans-serif;
@@ -356,7 +356,7 @@
356
356
  color: #333333;
357
357
  text-shadow: 0 1px 0 #fff;
358
358
  background: #faeb9e;
359
- background-image: -moz-linear-gradient(white, #faeb9e);
359
+ background-image: -moz-linear-gradient(top, white, #faeb9e);
360
360
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, white), color-stop(1, #faeb9e));
361
361
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#faeb9e')";
362
362
  font-family: Helvetica, Arial, sans-serif;
@@ -377,7 +377,7 @@
377
377
  text-shadow: 0 1px 1px #fe3;
378
378
  text-decoration: none;
379
379
  text-shadow: 0 1px 0 #fff;
380
- background-image: -moz-linear-gradient(#fceda7, #fadb4e);
380
+ background-image: -moz-linear-gradient(top, #fceda7, #fadb4e);
381
381
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fceda7), color-stop(1, #fadb4e));
382
382
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fceda7', EndColorStr='#fadb4e')";
383
383
  a.ui-link-inherit {
@@ -390,7 +390,7 @@
390
390
  color: #111;
391
391
  text-decoration: none;
392
392
  text-shadow: 0 1px 1px #fff;
393
- background-image: -moz-linear-gradient(#fcf0b5, #fbe26f);
393
+ background-image: -moz-linear-gradient(top, #fcf0b5, #fbe26f);
394
394
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fcf0b5), color-stop(1, #fbe26f));
395
395
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fcf0b5', EndColorStr='#fbe26f')";
396
396
  a.ui-link-inherit {
@@ -402,7 +402,7 @@
402
402
  font-weight: bold;
403
403
  color: #111;
404
404
  text-shadow: 0 1px 1px #ffffff;
405
- background-image: -moz-linear-gradient(#fadb4e, #fceda7);
405
+ background-image: -moz-linear-gradient(top, #fadb4e, #fceda7);
406
406
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fadb4e), color-stop(1, #fceda7));
407
407
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fadb4e', EndColorStr='#fceda7')";
408
408
  a.ui-link-inherit {
@@ -428,9 +428,10 @@ a.ui-link-inherit {
428
428
  cursor: pointer;
429
429
  text-shadow: 0 -1px 1px #145072;
430
430
  text-decoration: none;
431
- background-image: -moz-linear-gradient(#85bae4, #5393c5);
431
+ background-image: -moz-linear-gradient(top, #85bae4, #5393c5);
432
432
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #85bae4), color-stop(1, #5393c5));
433
433
  -msfilter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#85bae4', EndColorStr='#5393c5')";
434
+ outline: none;
434
435
  a.ui-link-inherit {
435
436
  color: #fff; } }
436
437
 
@@ -552,7 +553,6 @@ a.ui-link-inherit {
552
553
  .ui-icon-black {
553
554
  background-image: image_url("jquery/mobile/default/icons-36-black.png"); } }
554
555
 
555
-
556
556
  /* plus minus */
557
557
 
558
558
  .ui-icon-plus {
@@ -752,7 +752,6 @@ a.ui-link-inherit {
752
752
  -----------------------------------------------------------------------------------------------------------*/
753
753
 
754
754
  .ui-focus {
755
- outline-width: 0;
756
755
  -moz-box-shadow: 0px 0px 12px #387bbe;
757
756
  -webkit-box-shadow: 0px 0px 12px #387bbe;
758
757
  box-shadow: 0px 0px 12px #387bbe; }
@@ -550,7 +550,6 @@ a.ui-link-inherit {
550
550
  .ui-icon-black {
551
551
  background-image: image_url("jquery/mobile/valencia/icons-36-black.png"); } }
552
552
 
553
-
554
553
  /*plus minus*/
555
554
 
556
555
  .ui-icon-plus {
@@ -188,4 +188,4 @@ image 'glyphish/mini-icons-black/puzzle.png'
188
188
  image 'glyphish/mini-icons-black/star.png'
189
189
  image 'glyphish/mini-icons-black/tag.png'
190
190
  image 'glyphish/mini-icons-black/tshirt.png'
191
- image 'glyphish/Read me first - license.txt'
191
+ image 'glyphish/License.txt'
@@ -1,3 +1,5 @@
1
1
  require 'jquery/tools'
2
2
 
3
3
  ActionView::Helpers::AssetTagHelper.register_javascript_expansion :tools => ['jquery.tools.min']
4
+ ActionView::Helpers::AssetTagHelper.register_javascript_expansion :flowplayer => ['flowplayer.min']
5
+ ActionView::Helpers::AssetTagHelper.register_javascript_expansion :swfobject => ['swfobject.min']
@@ -0,0 +1,24 @@
1
+ /*
2
+ * flowplayer.js 3.2.4. The Flowplayer API
3
+ *
4
+ * Copyright 2009 Flowplayer Oy
5
+ *
6
+ * This file is part of Flowplayer.
7
+ *
8
+ * Flowplayer is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * Flowplayer is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with Flowplayer. If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ * Date: 2010-08-25 12:48:46 +0000 (Wed, 25 Aug 2010)
22
+ * Revision: 551
23
+ */
24
+ (function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}if(J){J.cached=true;j(x,"onLoad",J)}flashembed(q,G,{config:t})};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.4";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p},_swfHeight:function(){return v.clientHeight}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=w._swfHeight();m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var I=0;m(t.playlist,function(){var K=this;if(typeof K=="object"&&K.length){K={url:""+K}}m(t.clip,function(L,M){if(M!==undefined&&K[L]===undefined&&typeof M!="function"){K[L]=M}});t.playlist[I]=K;K=new h(K,I,w);F.push(K);I++});m(t,function(K,L){if(typeof L=="function"){if(s[K]){s[K](L)}else{j(x,K,L)}delete t[K]}});m(t.plugins,function(K,L){if(L){y[K]=new l(K,L,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);u=q.innerHTML;function J(L){var K=w.hasiPadSupport&&w.hasiPadSupport();if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(F[0].url)&&!K){return true}if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(L)}function H(){if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",J,false)}else{if(q.attachEvent){q.attachEvent("onclick",J)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}setTimeout(H,0)}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}q=z;B()}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://www.adobe.com/go/getflashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(m,l){if(l){for(var f in l){if(l.hasOwnProperty(f)){m[f]=l[f]}}}return m}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var m,f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(o){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=m&&m.GetVariable("$version")}catch(n){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");f=m&&m.GetVariable("$version")}catch(l){}}}f=e.exec(f);return f?[f[1],f[3]]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='<object width="'+o.width+'" height="'+o.height+'" id="'+o.id+'" name="'+o.id+'"';if(o.cachebusting){o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(o.w3c||!h){n+=' data="'+o.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(o.w3c||h){n+='<param name="movie" value="'+o.src+'" />'}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+='<param name="'+m+'" value="'+o[m]+'" />'}}var p="";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"}}p=p.slice(0,-1);n+='<param name="flashvars" value=\''+p+"' />"}n+="</object>";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="<h2>Flash version "+n.version+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(f.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+j+"'>here</a></p>");if(f.tagName=="A"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.4"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})();
@@ -0,0 +1,30 @@
1
+ (function(){function t(a){if(!a||typeof a!="object")return a;var d=new a.constructor,c;for(c in a)if(a.hasOwnProperty(c))d[c]=t(a[c]);return d}function o(a,d){if(a){var c,b=0,k=a.length;if(k===undefined)for(c in a){if(d.call(a[c],c,a[c])===false)break}else for(c=a[0];b<k&&d.call(c,b,c)!==false;c=a[++b]);return a}}function s(a,d,c){if(typeof d!="object")return a;a&&d&&o(d,function(b,k){if(!c||typeof k!="function")a[b]=k});return a}function F(a){var d=a.indexOf(".");if(d!=-1){var c=a.slice(0,d)||"*",
2
+ b=a.slice(d+1,a.length),k=[];o(document.getElementsByTagName(c),function(){this.className&&this.className.indexOf(b)!=-1&&k.push(this)});return k}}function G(a){a=a||window.event;if(a.preventDefault){a.stopPropagation();a.preventDefault()}else{a.returnValue=false;a.cancelBubble=true}return false}function y(a,d,c){a[d]=a[d]||[];a[d].push(c)}function A(){return"_"+(""+Math.random()).slice(2,10)}function z(a,d,c){var b=this,k=null,q=false,v,g,h=[],m={},p={},r,B,C,H,J,K;s(b,{id:function(){return r},isLoaded:function(){return k!==
3
+ null&&k.fp_play!==undefined&&!q},getParent:function(){return a},hide:function(f){if(f)a.style.height="0px";if(b.isLoaded())k.style.height="0px";return b},show:function(){a.style.height=K+"px";if(b.isLoaded())k.style.height=J+"px";return b},isHidden:function(){return b.isLoaded()&&parseInt(k.style.height,10)===0},load:function(f){if(!b.isLoaded()&&b._fireEvent("onBeforeLoad")!==false){var l=0;o(j,function(){this.unload(function(){if(++l==j.length){if((v=a.innerHTML)&&!flashembed.isSupported(d.version))a.innerHTML=
4
+ "";if(f){f.cached=true;y(p,"onLoad",f)}flashembed(a,d,{config:c})}})})}return b},unload:function(f){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){f&&f(false);return b}if(v.replace(/\s/g,"")!==""){if(b._fireEvent("onBeforeUnload")===false){f&&f(false);return b}q=true;try{if(k){k.fp_close();b._fireEvent("onUnload")}}catch(l){}setTimeout(function(){k=null;a.innerHTML=v;q=false;f&&f(true)},50)}else f&&f(false);return b},getClip:function(f){if(f===undefined)f=H;return h[f]},getCommonClip:function(){return g},
5
+ getPlaylist:function(){return h},getPlugin:function(f){var l=m[f];if(!l&&b.isLoaded()){var i=b._api().fp_getPlugin(f);if(i){l=new e(f,i,b);m[f]=l}}return l},getScreen:function(){return b.getPlugin("screen")},getControls:function(){return b.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return b.getPlugin("logo")._fireEvent("onUpdate")}catch(f){}},getPlay:function(){return b.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(f){return f?t(c):c},getFlashParams:function(){return d},
6
+ loadPlugin:function(f,l,i,n){if(typeof i=="function"){n=i;i={}}var u=n?A():"_";b._api().fp_loadPlugin(f,l,i,u);l={};l[u]=n;n=new e(f,null,b,l);return m[f]=n},getState:function(){return b.isLoaded()?k.fp_getState():-1},play:function(f,l){var i=function(){f!==undefined?b._api().fp_play(f,l):b._api().fp_play()};if(b.isLoaded())i();else q?setTimeout(function(){b.play(f,l)},50):b.load(function(){i()});return b},getVersion:function(){if(b.isLoaded()){var f=k.fp_getVersion();f.push("flowplayer.js 3.2.4");
7
+ return f}return"flowplayer.js 3.2.4"},_api:function(){if(!b.isLoaded())throw"Flowplayer "+b.id()+" not loaded when calling an API method";return k},setClip:function(f){b.setPlaylist([f]);return b},getIndex:function(){return C},_swfHeight:function(){return k.clientHeight}});o("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut".split(","),function(){var f="on"+this;if(f.indexOf("*")!=-1){f=f.slice(0,f.length-1);var l="onBefore"+
8
+ f.slice(2);b[l]=function(i){y(p,l,i);return b}}b[f]=function(i){y(p,f,i);return b}});o("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled".split(","),function(){var f=this;b[f]=function(l,i){if(!b.isLoaded())return b;var n=null;n=l!==undefined&&i!==undefined?k["fp_"+f](l,i):l===undefined?k["fp_"+
9
+ f]():k["fp_"+f](l);return n==="undefined"||n===undefined?b:n}});b._fireEvent=function(f){if(typeof f=="string")f=[f];var l=f[0],i=f[1],n=f[2],u=f[3],D=0;c.debug&&console.log("$f.fireEvent",[].slice.call(f));if(!b.isLoaded()&&l=="onLoad"&&i=="player"){k=k||document.getElementById(B);J=b._swfHeight();o(h,function(){this._fireEvent("onLoad")});o(m,function(M,I){I._fireEvent("onUpdate")});g._fireEvent("onLoad")}if(!(l=="onLoad"&&i!="player")){if(l=="onError")if(typeof i=="string"||typeof i=="number"&&
10
+ typeof n=="number"){i=n;n=u}if(l=="onContextMenu")o(c.contextMenu[i],function(M,I){I.call(b)});else if(l=="onPluginEvent"||l=="onBeforePluginEvent"){if(u=m[i.name||i]){u._fireEvent("onUpdate",i);return u._fireEvent(n,f.slice(3))}}else{if(l=="onPlaylistReplace"){h=[];var N=0;o(i,function(){h.push(new x(this,N++,b))})}if(l=="onClipAdd"){if(i.isInStream)return;i=new x(i,n,b);h.splice(n,0,i);for(D=n+1;D<h.length;D++)h[D].index++}var E=true;if(typeof i=="number"&&i<h.length){H=i;if(f=h[i])E=f._fireEvent(l,
11
+ n,u);if(!f||E!==false)E=g._fireEvent(l,n,u,f)}o(p[l],function(){E=this.call(b,i,n);this.cached&&p[l].splice(D,1);if(E===false)return false;D++});return E}}};if(typeof a=="string"){var L=document.getElementById(a);if(!L)throw"Flowplayer cannot access element: "+a;a=L}(function(){function f(i){var n=b.hasiPadSupport&&b.hasiPadSupport();if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(h[0].url)&&!n)return true;!b.isLoaded()&&b._fireEvent("onBeforeClick")!==false&&b.load();return G(i)}
12
+ if($f(a)){$f(a).getParent().innerHTML="";C=$f(a).getIndex();j[C]=b}else{j.push(b);C=j.length-1}K=parseInt(a.style.height,10)||a.clientHeight;r=a.id||"fp"+A();B=d.id||r+"_api";d.id=B;c.playerId=r;if(typeof c=="string")c={clip:{url:c}};if(typeof c.clip=="string")c.clip={url:c.clip};c.clip=c.clip||{};if(a.getAttribute("href",2)&&!c.clip.url)c.clip.url=a.getAttribute("href",2);g=new x(c.clip,-1,b);c.playlist=c.playlist||[c.clip];var l=0;o(c.playlist,function(){var i=this;if(typeof i=="object"&&i.length)i=
13
+ {url:""+i};o(c.clip,function(n,u){if(u!==undefined&&i[n]===undefined&&typeof u!="function")i[n]=u});c.playlist[l]=i;i=new x(i,l,b);h.push(i);l++});o(c,function(i,n){if(typeof n=="function"){g[i]?g[i](n):y(p,i,n);delete c[i]}});o(c.plugins,function(i,n){if(n)m[i]=new e(i,n,b)});if(!c.plugins||c.plugins.controls===undefined)m.controls=new e("controls",null,b);m.canvas=new e("canvas",null,b);v=a.innerHTML;setTimeout(function(){if(v.replace(/\s/g,"")!=="")if(a.addEventListener)a.addEventListener("click",
14
+ f,false);else a.attachEvent&&a.attachEvent("onclick",f);else{a.addEventListener&&a.addEventListener("click",G,false);b.load()}},0)})()}function w(a){this.length=a.length;this.each=function(d){o(a,d)};this.size=function(){return a.length}}var x=function(a,d,c){var b=this,k={},q={};b.index=d;if(typeof a=="string")a={url:a};s(this,a,true);o("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop".split(","),function(){var g="on"+this;if(g.indexOf("*")!=-1){g=
15
+ g.slice(0,g.length-1);var h="onBefore"+g.slice(2);b[h]=function(m){y(q,h,m);return b}}b[g]=function(m){y(q,g,m);return b};if(d==-1){if(b[h])c[h]=b[h];if(b[g])c[g]=b[g]}});s(this,{onCuepoint:function(g,h){if(arguments.length==1){k.embedded=[null,g];return b}if(typeof g=="number")g=[g];var m=A();k[m]=[g,h];c.isLoaded()&&c._api().fp_addCuepoints(g,d,m);return b},update:function(g){s(b,g);c.isLoaded()&&c._api().fp_updateClip(g,d);var h=c.getConfig();s(d==-1?h.clip:h.playlist[d],g,true)},_fireEvent:function(g,
16
+ h,m,p){if(g=="onLoad"){o(k,function(C,H){H[0]&&c._api().fp_addCuepoints(H[0],d,C)});return false}p=p||b;if(g=="onCuepoint"){var r=k[h];if(r)return r[1].call(c,p,m)}if(h&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(g)!=-1){s(p,h);if(h.metaData)if(p.duration)p.fullDuration=h.metaData.duration;else p.duration=h.metaData.duration}var B=true;o(q[g],function(){B=this.call(c,p,h,m)});return B}});if(a.onCuepoint){var v=a.onCuepoint;b.onCuepoint.apply(b,typeof v=="function"?[v]:v);delete a.onCuepoint}o(a,
17
+ function(g,h){if(typeof h=="function"){y(q,g,h);delete a[g]}});if(d==-1)c.onCuepoint=this.onCuepoint},e=function(a,d,c,b){var k=this,q={},v=false;b&&s(q,b);o(d,function(g,h){if(typeof h=="function"){q[g]=h;delete d[g]}});s(this,{animate:function(g,h,m){if(!g)return k;if(typeof h=="function"){m=h;h=500}if(typeof g=="string"){var p=g;g={};g[p]=h;h=500}if(m){var r=A();q[r]=m}if(h===undefined)h=500;d=c._api().fp_animate(a,g,h,r);return k},css:function(g,h){if(h!==undefined){var m={};m[g]=h;g=m}d=c._api().fp_css(a,
18
+ g);s(k,d);return k},show:function(){this.display="block";c._api().fp_showPlugin(a);return k},hide:function(){this.display="none";c._api().fp_hidePlugin(a);return k},toggle:function(){this.display=c._api().fp_togglePlugin(a);return k},fadeTo:function(g,h,m){if(typeof h=="function"){m=h;h=500}if(m){var p=A();q[p]=m}this.display=c._api().fp_fadeTo(a,g,h,p);this.opacity=g;return k},fadeIn:function(g,h){return k.fadeTo(1,g,h)},fadeOut:function(g,h){return k.fadeTo(0,g,h)},getName:function(){return a},
19
+ getPlayer:function(){return c},_fireEvent:function(g,h){if(g=="onUpdate"){var m=c._api().fp_getPlugin(a);if(!m)return;s(k,m);delete k.methods;if(!v){o(m.methods,function(){var p=""+this;k[p]=function(){var r=[].slice.call(arguments);r=c._api().fp_invoke(a,p,r);return r==="undefined"||r===undefined?k:r}});v=true}}if(m=q[g]){m=m.apply(k,h);g.slice(0,1)=="_"&&delete q[g];return m}return k}})},j=[];window.flowplayer=window.$f=function(){var a=null,d=arguments[0];if(!arguments.length){o(j,function(){if(this.isLoaded()){a=
20
+ this;return false}});return a||j[0]}if(arguments.length==1)if(typeof d=="number")return j[d];else{if(d=="*")return new w(j);o(j,function(){if(this.id()==d.id||this.id()==d||this.getParent()==d){a=this;return false}});return a}if(arguments.length>1){var c=arguments[1],b=arguments.length==3?arguments[2]:{};if(typeof c=="string")c={src:c};c=s({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},c);if(typeof d=="string")if(d.indexOf(".")!=
21
+ -1){var k=[];o(F(d),function(){k.push(new z(this,t(c),t(b)))});return new w(k)}else{var q=document.getElementById(d);return new z(q!==null?q:d,c,b)}else if(d)return new z(d,c,b)}return null};s(window.$f,{fireEvent:function(){var a=[].slice.call(arguments),d=$f(a[0]);return d?d._fireEvent(a.slice(1)):null},addPlugin:function(a,d){z.prototype[a]=d;return $f},each:o,extend:s});if(typeof jQuery=="function")jQuery.fn.flowplayer=function(a,d){if(!arguments.length||typeof arguments[0]=="number"){var c=[];
22
+ this.each(function(){var b=$f(this);b&&c.push(b)});return arguments.length?c[arguments[0]]:new w(c)}return this.each(function(){$f(this,t(a),d?t(d):{})})}})();
23
+ (function(){function t(e,j){if(j)for(var a in j)if(j.hasOwnProperty(a))e[a]=j[a];return e}function o(e,j){var a=[],d;for(d in e)if(e.hasOwnProperty(d))a[d]=j(e[d]);return a}function s(e,j,a){if(w.isSupported(j.version))e.innerHTML=w.getHTML(j,a);else if(j.expressInstall&&w.isSupported([6,65]))e.innerHTML=w.getHTML(t(j,{src:j.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title});else{if(!e.innerHTML.replace(/\s/g,"")){e.innerHTML="<h2>Flash version "+j.version+
24
+ " or greater is required</h2><h3>"+(x[0]>0?"Your version is "+x:"You have no flash plugin installed")+"</h3>"+(e.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+G+"'>here</a></p>");if(e.tagName=="A")e.onclick=function(){location.href=G}}if(j.onFail){var d=j.onFail.call(this);if(typeof d=="string")e.innerHTML=d}}if(F)window[j.id]=document.getElementById(j.id);t(this,{getRoot:function(){return e},getOptions:function(){return j},getConf:function(){return a},
25
+ getApi:function(){return e.firstChild}})}var F=document.all,G="http://www.adobe.com/go/getflashplayer",y=typeof jQuery=="function",A=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,z={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}});
26
+ window.flashembed=function(e,j,a){if(typeof e=="string")e=document.getElementById(e.replace("#",""));if(e){if(typeof j=="string")j={src:j};return new s(e,t(t({},z),j),a)}};var w=t(window.flashembed,{conf:z,getVersion:function(){var e,j;try{j=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(a){try{j=(e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"))&&e.GetVariable("$version")}catch(d){try{j=(e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"))&&e.GetVariable("$version")}catch(c){}}}return(j=
27
+ A.exec(j))?[j[1],j[3]]:[0,0]},asString:function(e){if(e===null||e===undefined)return null;var j=typeof e;if(j=="object"&&e.push)j="array";switch(j){case "string":e=e.replace(RegExp('(["\\\\])',"g"),"\\$1");e=e.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+e+'"';case "array":return"["+o(e,function(d){return w.asString(d)}).join(",")+"]";case "function":return'"function()"';case "object":j=[];for(var a in e)e.hasOwnProperty(a)&&j.push('"'+a+'":'+w.asString(e[a]));return"{"+j.join(",")+"}"}return String(e).replace(/\s/g,
28
+ " ").replace(/\'/g,'"')},getHTML:function(e,j){e=t({},e);var a='<object width="'+e.width+'" height="'+e.height+'" id="'+e.id+'" name="'+e.id+'"';if(e.cachebusting)e.src+=(e.src.indexOf("?")!=-1?"&":"?")+Math.random();a+=e.w3c||!F?' data="'+e.src+'" type="application/x-shockwave-flash"':' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';a+=">";if(e.w3c||F)a+='<param name="movie" value="'+e.src+'" />';e.width=e.height=e.id=e.w3c=e.src=null;e.onFail=e.version=e.expressInstall=null;for(var d in e)if(e[d])a+=
29
+ '<param name="'+d+'" value="'+e[d]+'" />';d="";if(j){for(var c in j)if(j[c]){var b=j[c];d+=c+"="+(/function|object/.test(typeof b)?w.asString(b):b)+"&"}d=d.slice(0,-1);a+='<param name="flashvars" value=\''+d+"' />"}a+="</object>";return a},isSupported:function(e){return x[0]>e[0]||x[0]==e[0]&&x[1]>=e[1]}}),x=w.getVersion();if(y){jQuery.tools=jQuery.tools||{version:"3.2.4"};jQuery.tools.flashembed={conf:z};jQuery.fn.flashembed=function(e,j){return this.each(function(){$(this).data("flashembed",flashembed(this,
30
+ e,j))})}}})();
@@ -459,8 +459,9 @@
459
459
 
460
460
  setValue: function(year, month, day) {
461
461
 
462
- var date = integer(month) >= -1 ? new Date(integer(year), integer(month), integer(day || 1)) :
463
- year || value;
462
+ var date = integer(month) >= -1 ?
463
+ new Date(integer(year), integer(month), integer(day || 1)) : year || value
464
+ ;
464
465
 
465
466
  if (date < min) { date = min; }
466
467
  else if (date > max) { date = max; }
@@ -1767,7 +1768,7 @@
1767
1768
  },
1768
1769
 
1769
1770
  getItems: function() {
1770
- return itemWrap.find(conf.item).not("." + conf.clonedClass);
1771
+ return itemWrap.children(conf.item).not("." + conf.clonedClass);
1771
1772
  },
1772
1773
 
1773
1774
  move: function(offset, time) {
@@ -191,7 +191,7 @@ K.trigger(w,[r])}}).click(function(w){return w.preventDefault()});o.click(functi
191
191
  a(this).val();v!==r&&d.setValue(v,w)});a.extend(j[0],{stepUp:d.stepUp,stepDown:d.stepDown});c();p||a(window).load(c)}a.tools=a.tools||{version:"@VERSION"};var f;f=a.tools.rangeinput={conf:{min:0,max:100,step:"any",steps:0,value:0,precision:undefined,vertical:0,keyboard:true,progress:false,speed:100,css:{input:"range",slider:"slider",progress:"progress",handle:"handle"}}};var b,m;a.fn.drag=function(j){document.ondragstart=function(){return false};j=a.extend({x:true,y:true,drag:true},j);b=b||a(document).bind("mousedown mouseup",
192
192
  function(g){var h=a(g.target);if(g.type=="mousedown"&&h.data("drag")){var l=h.position(),c=g.pageX-l.left,d=g.pageY-l.top,k=true;b.bind("mousemove.drag",function(o){var i=o.pageX-c;o=o.pageY-d;var r={};if(j.x)r.left=i;if(j.y)r.top=o;if(k){h.trigger("dragStart");k=false}j.drag&&h.css(r);h.trigger("drag",[o,i]);m=h});g.preventDefault()}else try{m&&m.trigger("dragEnd")}finally{b.unbind("mousemove.drag");m=null}});return this.data("drag",true)};a.expr[":"].range=function(j){var g=j.getAttribute("type");
193
193
  return g&&g=="range"||!!a(j).filter("input").data("rangeinput")};a.fn.rangeinput=function(j){if(this.data("rangeinput"))return this;j=a.extend(true,{},f.conf,j);var g;this.each(function(){var h=new e(a(this),a.extend(true,{},j));h=h.getInput().data("rangeinput",h);g=g?g.add(h):h});return g?g:this}})(jQuery);
194
- (function(a){function y(e,f){var b=a(f);return b.length<2?b:e.parent().find(f)}function t(e,f){var b=this,m=e.add(b),j=e.children(),g=0,h=f.vertical;n||(n=b);if(j.length>1)j=a(f.items,e);a.extend(b,{getConf:function(){return f},getIndex:function(){return g},getSize:function(){return b.getItems().size()},getNaviButtons:function(){return d.add(k)},getRoot:function(){return e},getItemWrap:function(){return j},getItems:function(){return j.find(f.item).not("."+f.clonedClass)},move:function(i,r){return b.seekTo(g+
194
+ (function(a){function y(e,f){var b=a(f);return b.length<2?b:e.parent().find(f)}function t(e,f){var b=this,m=e.add(b),j=e.children(),g=0,h=f.vertical;n||(n=b);if(j.length>1)j=a(f.items,e);a.extend(b,{getConf:function(){return f},getIndex:function(){return g},getSize:function(){return b.getItems().size()},getNaviButtons:function(){return d.add(k)},getRoot:function(){return e},getItemWrap:function(){return j},getItems:function(){return j.children(f.item).not("."+f.clonedClass)},move:function(i,r){return b.seekTo(g+
195
195
  i,r)},next:function(i){return b.move(1,i)},prev:function(i){return b.move(-1,i)},begin:function(i){return b.seekTo(0,i)},end:function(i){return b.seekTo(b.getSize()-1,i)},focus:function(){return n=b},addItem:function(i){i=a(i);if(f.circular){j.children("."+f.clonedClass+":last").before(i);j.children("."+f.clonedClass+":first").replaceWith(i.clone().addClass(f.clonedClass))}else j.append(i);m.trigger("onAddItem",[i]);return b},seekTo:function(i,r,s){i.jquery||(i*=1);if(f.circular&&i===0&&g==-1&&r!==
196
196
  0)return b;if(!f.circular&&i<0||i>b.getSize()||i<-1)return b;var p=i;if(i.jquery)i=b.getItems().index(i);else p=b.getItems().eq(i);var q=a.Event("onBeforeSeek");if(!s){m.trigger(q,[i,r]);if(q.isDefaultPrevented()||!p.length)return b}p=h?{top:-p.position().top}:{left:-p.position().left};g=i;n=b;if(r===undefined)r=f.speed;j.animate(p,r,f.easing,s||function(){m.trigger("onSeek",[i])});return b}});a.each(["onBeforeSeek","onSeek","onAddItem"],function(i,r){a.isFunction(f[r])&&a(b).bind(r,f[r]);b[r]=function(s){s&&
197
197
  a(b).bind(r,s);return b}});if(f.circular){var l=b.getItems().slice(-1).clone().prependTo(j),c=b.getItems().eq(1).clone().appendTo(j);l.add(c).addClass(f.clonedClass);b.onBeforeSeek(function(i,r,s){if(!i.isDefaultPrevented())if(r==-1){b.seekTo(l,s,function(){b.end(0)});return i.preventDefault()}else r==b.getSize()&&b.seekTo(c,s,function(){b.begin(0)})});b.seekTo(0,0,function(){})}var d=y(e,f.prev).click(function(){b.prev()}),k=y(e,f.next).click(function(){b.next()});if(!f.circular&&b.getSize()>1){b.onBeforeSeek(function(i,
@@ -5,3 +5,7 @@ file 'config/initializers/tools.rb'
5
5
  file 'lib/tasks/jquery.tools.rake'
6
6
  javascript 'jquery.tools.js'
7
7
  javascript 'jquery.tools.min.js'
8
+ javascript 'flowplayer.js'
9
+ javascript 'flowplayer.min.js'
10
+ javascript 'swfobject.js'
11
+ javascript 'swfobject.min.js'
@@ -0,0 +1,777 @@
1
+ /*! SWFObject v2.2 <http://code.google.com/p/swfobject/>
2
+ is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
3
+ */
4
+
5
+ var swfobject = function() {
6
+
7
+ var UNDEF = "undefined",
8
+ OBJECT = "object",
9
+ SHOCKWAVE_FLASH = "Shockwave Flash",
10
+ SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
11
+ FLASH_MIME_TYPE = "application/x-shockwave-flash",
12
+ EXPRESS_INSTALL_ID = "SWFObjectExprInst",
13
+ ON_READY_STATE_CHANGE = "onreadystatechange",
14
+
15
+ win = window,
16
+ doc = document,
17
+ nav = navigator,
18
+
19
+ plugin = false,
20
+ domLoadFnArr = [main],
21
+ regObjArr = [],
22
+ objIdArr = [],
23
+ listenersArr = [],
24
+ storedAltContent,
25
+ storedAltContentId,
26
+ storedCallbackFn,
27
+ storedCallbackObj,
28
+ isDomLoaded = false,
29
+ isExpressInstallActive = false,
30
+ dynamicStylesheet,
31
+ dynamicStylesheetMedia,
32
+ autoHideShow = true,
33
+
34
+ /* Centralized function for browser feature detection
35
+ - User agent string detection is only used when no good alternative is possible
36
+ - Is executed directly for optimal performance
37
+ */
38
+ ua = function() {
39
+ var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
40
+ u = nav.userAgent.toLowerCase(),
41
+ p = nav.platform.toLowerCase(),
42
+ windows = p ? /win/.test(p) : /win/.test(u),
43
+ mac = p ? /mac/.test(p) : /mac/.test(u),
44
+ webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
45
+ ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
46
+ playerVersion = [0,0,0],
47
+ d = null;
48
+ if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
49
+ d = nav.plugins[SHOCKWAVE_FLASH].description;
50
+ if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
51
+ plugin = true;
52
+ ie = false; // cascaded feature detection for Internet Explorer
53
+ d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
54
+ playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
55
+ playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
56
+ playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
57
+ }
58
+ }
59
+ else if (typeof win.ActiveXObject != UNDEF) {
60
+ try {
61
+ var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
62
+ if (a) { // a will return null when ActiveX is disabled
63
+ d = a.GetVariable("$version");
64
+ if (d) {
65
+ ie = true; // cascaded feature detection for Internet Explorer
66
+ d = d.split(" ")[1].split(",");
67
+ playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
68
+ }
69
+ }
70
+ }
71
+ catch(e) {}
72
+ }
73
+ return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
74
+ }(),
75
+
76
+ /* Cross-browser onDomLoad
77
+ - Will fire an event as soon as the DOM of a web page is loaded
78
+ - Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
79
+ - Regular onload serves as fallback
80
+ */
81
+ onDomLoad = function() {
82
+ if (!ua.w3) { return; }
83
+ if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically
84
+ callDomLoadFunctions();
85
+ }
86
+ if (!isDomLoaded) {
87
+ if (typeof doc.addEventListener != UNDEF) {
88
+ doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
89
+ }
90
+ if (ua.ie && ua.win) {
91
+ doc.attachEvent(ON_READY_STATE_CHANGE, function() {
92
+ if (doc.readyState == "complete") {
93
+ doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
94
+ callDomLoadFunctions();
95
+ }
96
+ });
97
+ if (win == top) { // if not inside an iframe
98
+ (function(){
99
+ if (isDomLoaded) { return; }
100
+ try {
101
+ doc.documentElement.doScroll("left");
102
+ }
103
+ catch(e) {
104
+ setTimeout(arguments.callee, 0);
105
+ return;
106
+ }
107
+ callDomLoadFunctions();
108
+ })();
109
+ }
110
+ }
111
+ if (ua.wk) {
112
+ (function(){
113
+ if (isDomLoaded) { return; }
114
+ if (!/loaded|complete/.test(doc.readyState)) {
115
+ setTimeout(arguments.callee, 0);
116
+ return;
117
+ }
118
+ callDomLoadFunctions();
119
+ })();
120
+ }
121
+ addLoadEvent(callDomLoadFunctions);
122
+ }
123
+ }();
124
+
125
+ function callDomLoadFunctions() {
126
+ if (isDomLoaded) { return; }
127
+ try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
128
+ var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
129
+ t.parentNode.removeChild(t);
130
+ }
131
+ catch (e) { return; }
132
+ isDomLoaded = true;
133
+ var dl = domLoadFnArr.length;
134
+ for (var i = 0; i < dl; i++) {
135
+ domLoadFnArr[i]();
136
+ }
137
+ }
138
+
139
+ function addDomLoadEvent(fn) {
140
+ if (isDomLoaded) {
141
+ fn();
142
+ }
143
+ else {
144
+ domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
145
+ }
146
+ }
147
+
148
+ /* Cross-browser onload
149
+ - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
150
+ - Will fire an event as soon as a web page including all of its assets are loaded
151
+ */
152
+ function addLoadEvent(fn) {
153
+ if (typeof win.addEventListener != UNDEF) {
154
+ win.addEventListener("load", fn, false);
155
+ }
156
+ else if (typeof doc.addEventListener != UNDEF) {
157
+ doc.addEventListener("load", fn, false);
158
+ }
159
+ else if (typeof win.attachEvent != UNDEF) {
160
+ addListener(win, "onload", fn);
161
+ }
162
+ else if (typeof win.onload == "function") {
163
+ var fnOld = win.onload;
164
+ win.onload = function() {
165
+ fnOld();
166
+ fn();
167
+ };
168
+ }
169
+ else {
170
+ win.onload = fn;
171
+ }
172
+ }
173
+
174
+ /* Main function
175
+ - Will preferably execute onDomLoad, otherwise onload (as a fallback)
176
+ */
177
+ function main() {
178
+ if (plugin) {
179
+ testPlayerVersion();
180
+ }
181
+ else {
182
+ matchVersions();
183
+ }
184
+ }
185
+
186
+ /* Detect the Flash Player version for non-Internet Explorer browsers
187
+ - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
188
+ a. Both release and build numbers can be detected
189
+ b. Avoid wrong descriptions by corrupt installers provided by Adobe
190
+ c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
191
+ - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
192
+ */
193
+ function testPlayerVersion() {
194
+ var b = doc.getElementsByTagName("body")[0];
195
+ var o = createElement(OBJECT);
196
+ o.setAttribute("type", FLASH_MIME_TYPE);
197
+ var t = b.appendChild(o);
198
+ if (t) {
199
+ var counter = 0;
200
+ (function(){
201
+ if (typeof t.GetVariable != UNDEF) {
202
+ var d = t.GetVariable("$version");
203
+ if (d) {
204
+ d = d.split(" ")[1].split(",");
205
+ ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
206
+ }
207
+ }
208
+ else if (counter < 10) {
209
+ counter++;
210
+ setTimeout(arguments.callee, 10);
211
+ return;
212
+ }
213
+ b.removeChild(o);
214
+ t = null;
215
+ matchVersions();
216
+ })();
217
+ }
218
+ else {
219
+ matchVersions();
220
+ }
221
+ }
222
+
223
+ /* Perform Flash Player and SWF version matching; static publishing only
224
+ */
225
+ function matchVersions() {
226
+ var rl = regObjArr.length;
227
+ if (rl > 0) {
228
+ for (var i = 0; i < rl; i++) { // for each registered object element
229
+ var id = regObjArr[i].id;
230
+ var cb = regObjArr[i].callbackFn;
231
+ var cbObj = {success:false, id:id};
232
+ if (ua.pv[0] > 0) {
233
+ var obj = getElementById(id);
234
+ if (obj) {
235
+ if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
236
+ setVisibility(id, true);
237
+ if (cb) {
238
+ cbObj.success = true;
239
+ cbObj.ref = getObjectById(id);
240
+ cb(cbObj);
241
+ }
242
+ }
243
+ else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
244
+ var att = {};
245
+ att.data = regObjArr[i].expressInstall;
246
+ att.width = obj.getAttribute("width") || "0";
247
+ att.height = obj.getAttribute("height") || "0";
248
+ if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
249
+ if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
250
+ // parse HTML object param element's name-value pairs
251
+ var par = {};
252
+ var p = obj.getElementsByTagName("param");
253
+ var pl = p.length;
254
+ for (var j = 0; j < pl; j++) {
255
+ if (p[j].getAttribute("name").toLowerCase() != "movie") {
256
+ par[p[j].getAttribute("name")] = p[j].getAttribute("value");
257
+ }
258
+ }
259
+ showExpressInstall(att, par, id, cb);
260
+ }
261
+ else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
262
+ displayAltContent(obj);
263
+ if (cb) { cb(cbObj); }
264
+ }
265
+ }
266
+ }
267
+ else { // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
268
+ setVisibility(id, true);
269
+ if (cb) {
270
+ var o = getObjectById(id); // test whether there is an HTML object element or not
271
+ if (o && typeof o.SetVariable != UNDEF) {
272
+ cbObj.success = true;
273
+ cbObj.ref = o;
274
+ }
275
+ cb(cbObj);
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+
282
+ function getObjectById(objectIdStr) {
283
+ var r = null;
284
+ var o = getElementById(objectIdStr);
285
+ if (o && o.nodeName == "OBJECT") {
286
+ if (typeof o.SetVariable != UNDEF) {
287
+ r = o;
288
+ }
289
+ else {
290
+ var n = o.getElementsByTagName(OBJECT)[0];
291
+ if (n) {
292
+ r = n;
293
+ }
294
+ }
295
+ }
296
+ return r;
297
+ }
298
+
299
+ /* Requirements for Adobe Express Install
300
+ - only one instance can be active at a time
301
+ - fp 6.0.65 or higher
302
+ - Win/Mac OS only
303
+ - no Webkit engines older than version 312
304
+ */
305
+ function canExpressInstall() {
306
+ return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
307
+ }
308
+
309
+ /* Show the Adobe Express Install dialog
310
+ - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
311
+ */
312
+ function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
313
+ isExpressInstallActive = true;
314
+ storedCallbackFn = callbackFn || null;
315
+ storedCallbackObj = {success:false, id:replaceElemIdStr};
316
+ var obj = getElementById(replaceElemIdStr);
317
+ if (obj) {
318
+ if (obj.nodeName == "OBJECT") { // static publishing
319
+ storedAltContent = abstractAltContent(obj);
320
+ storedAltContentId = null;
321
+ }
322
+ else { // dynamic publishing
323
+ storedAltContent = obj;
324
+ storedAltContentId = replaceElemIdStr;
325
+ }
326
+ att.id = EXPRESS_INSTALL_ID;
327
+ if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
328
+ if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
329
+ doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
330
+ var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
331
+ fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
332
+ if (typeof par.flashvars != UNDEF) {
333
+ par.flashvars += "&" + fv;
334
+ }
335
+ else {
336
+ par.flashvars = fv;
337
+ }
338
+ // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
339
+ // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
340
+ if (ua.ie && ua.win && obj.readyState != 4) {
341
+ var newObj = createElement("div");
342
+ replaceElemIdStr += "SWFObjectNew";
343
+ newObj.setAttribute("id", replaceElemIdStr);
344
+ obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
345
+ obj.style.display = "none";
346
+ (function(){
347
+ if (obj.readyState == 4) {
348
+ obj.parentNode.removeChild(obj);
349
+ }
350
+ else {
351
+ setTimeout(arguments.callee, 10);
352
+ }
353
+ })();
354
+ }
355
+ createSWF(att, par, replaceElemIdStr);
356
+ }
357
+ }
358
+
359
+ /* Functions to abstract and display alternative content
360
+ */
361
+ function displayAltContent(obj) {
362
+ if (ua.ie && ua.win && obj.readyState != 4) {
363
+ // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
364
+ // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
365
+ var el = createElement("div");
366
+ obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
367
+ el.parentNode.replaceChild(abstractAltContent(obj), el);
368
+ obj.style.display = "none";
369
+ (function(){
370
+ if (obj.readyState == 4) {
371
+ obj.parentNode.removeChild(obj);
372
+ }
373
+ else {
374
+ setTimeout(arguments.callee, 10);
375
+ }
376
+ })();
377
+ }
378
+ else {
379
+ obj.parentNode.replaceChild(abstractAltContent(obj), obj);
380
+ }
381
+ }
382
+
383
+ function abstractAltContent(obj) {
384
+ var ac = createElement("div");
385
+ if (ua.win && ua.ie) {
386
+ ac.innerHTML = obj.innerHTML;
387
+ }
388
+ else {
389
+ var nestedObj = obj.getElementsByTagName(OBJECT)[0];
390
+ if (nestedObj) {
391
+ var c = nestedObj.childNodes;
392
+ if (c) {
393
+ var cl = c.length;
394
+ for (var i = 0; i < cl; i++) {
395
+ if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
396
+ ac.appendChild(c[i].cloneNode(true));
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ return ac;
403
+ }
404
+
405
+ /* Cross-browser dynamic SWF creation
406
+ */
407
+ function createSWF(attObj, parObj, id) {
408
+ var r, el = getElementById(id);
409
+ if (ua.wk && ua.wk < 312) { return r; }
410
+ if (el) {
411
+ if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
412
+ attObj.id = id;
413
+ }
414
+ if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
415
+ var att = "";
416
+ for (var i in attObj) {
417
+ if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
418
+ if (i.toLowerCase() == "data") {
419
+ parObj.movie = attObj[i];
420
+ }
421
+ else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
422
+ att += ' class="' + attObj[i] + '"';
423
+ }
424
+ else if (i.toLowerCase() != "classid") {
425
+ att += ' ' + i + '="' + attObj[i] + '"';
426
+ }
427
+ }
428
+ }
429
+ var par = "";
430
+ for (var j in parObj) {
431
+ if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
432
+ par += '<param name="' + j + '" value="' + parObj[j] + '" />';
433
+ }
434
+ }
435
+ el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
436
+ objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
437
+ r = getElementById(attObj.id);
438
+ }
439
+ else { // well-behaving browsers
440
+ var o = createElement(OBJECT);
441
+ o.setAttribute("type", FLASH_MIME_TYPE);
442
+ for (var m in attObj) {
443
+ if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
444
+ if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
445
+ o.setAttribute("class", attObj[m]);
446
+ }
447
+ else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
448
+ o.setAttribute(m, attObj[m]);
449
+ }
450
+ }
451
+ }
452
+ for (var n in parObj) {
453
+ if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
454
+ createObjParam(o, n, parObj[n]);
455
+ }
456
+ }
457
+ el.parentNode.replaceChild(o, el);
458
+ r = o;
459
+ }
460
+ }
461
+ return r;
462
+ }
463
+
464
+ function createObjParam(el, pName, pValue) {
465
+ var p = createElement("param");
466
+ p.setAttribute("name", pName);
467
+ p.setAttribute("value", pValue);
468
+ el.appendChild(p);
469
+ }
470
+
471
+ /* Cross-browser SWF removal
472
+ - Especially needed to safely and completely remove a SWF in Internet Explorer
473
+ */
474
+ function removeSWF(id) {
475
+ var obj = getElementById(id);
476
+ if (obj && obj.nodeName == "OBJECT") {
477
+ if (ua.ie && ua.win) {
478
+ obj.style.display = "none";
479
+ (function(){
480
+ if (obj.readyState == 4) {
481
+ removeObjectInIE(id);
482
+ }
483
+ else {
484
+ setTimeout(arguments.callee, 10);
485
+ }
486
+ })();
487
+ }
488
+ else {
489
+ obj.parentNode.removeChild(obj);
490
+ }
491
+ }
492
+ }
493
+
494
+ function removeObjectInIE(id) {
495
+ var obj = getElementById(id);
496
+ if (obj) {
497
+ for (var i in obj) {
498
+ if (typeof obj[i] == "function") {
499
+ obj[i] = null;
500
+ }
501
+ }
502
+ obj.parentNode.removeChild(obj);
503
+ }
504
+ }
505
+
506
+ /* Functions to optimize JavaScript compression
507
+ */
508
+ function getElementById(id) {
509
+ var el = null;
510
+ try {
511
+ el = doc.getElementById(id);
512
+ }
513
+ catch (e) {}
514
+ return el;
515
+ }
516
+
517
+ function createElement(el) {
518
+ return doc.createElement(el);
519
+ }
520
+
521
+ /* Updated attachEvent function for Internet Explorer
522
+ - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
523
+ */
524
+ function addListener(target, eventType, fn) {
525
+ target.attachEvent(eventType, fn);
526
+ listenersArr[listenersArr.length] = [target, eventType, fn];
527
+ }
528
+
529
+ /* Flash Player and SWF content version matching
530
+ */
531
+ function hasPlayerVersion(rv) {
532
+ var pv = ua.pv, v = rv.split(".");
533
+ v[0] = parseInt(v[0], 10);
534
+ v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
535
+ v[2] = parseInt(v[2], 10) || 0;
536
+ return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
537
+ }
538
+
539
+ /* Cross-browser dynamic CSS creation
540
+ - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
541
+ */
542
+ function createCSS(sel, decl, media, newStyle) {
543
+ if (ua.ie && ua.mac) { return; }
544
+ var h = doc.getElementsByTagName("head")[0];
545
+ if (!h) { return; } // to also support badly authored HTML pages that lack a head element
546
+ var m = (media && typeof media == "string") ? media : "screen";
547
+ if (newStyle) {
548
+ dynamicStylesheet = null;
549
+ dynamicStylesheetMedia = null;
550
+ }
551
+ if (!dynamicStylesheet || dynamicStylesheetMedia != m) {
552
+ // create dynamic stylesheet + get a global reference to it
553
+ var s = createElement("style");
554
+ s.setAttribute("type", "text/css");
555
+ s.setAttribute("media", m);
556
+ dynamicStylesheet = h.appendChild(s);
557
+ if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
558
+ dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
559
+ }
560
+ dynamicStylesheetMedia = m;
561
+ }
562
+ // add style rule
563
+ if (ua.ie && ua.win) {
564
+ if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
565
+ dynamicStylesheet.addRule(sel, decl);
566
+ }
567
+ }
568
+ else {
569
+ if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
570
+ dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
571
+ }
572
+ }
573
+ }
574
+
575
+ function setVisibility(id, isVisible) {
576
+ if (!autoHideShow) { return; }
577
+ var v = isVisible ? "visible" : "hidden";
578
+ if (isDomLoaded && getElementById(id)) {
579
+ getElementById(id).style.visibility = v;
580
+ }
581
+ else {
582
+ createCSS("#" + id, "visibility:" + v);
583
+ }
584
+ }
585
+
586
+ /* Filter to avoid XSS attacks
587
+ */
588
+ function urlEncodeIfNecessary(s) {
589
+ var regex = /[\\\"<>\.;]/;
590
+ var hasBadChars = regex.exec(s) != null;
591
+ return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
592
+ }
593
+
594
+ /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
595
+ */
596
+ var cleanup = function() {
597
+ if (ua.ie && ua.win) {
598
+ window.attachEvent("onunload", function() {
599
+ // remove listeners to avoid memory leaks
600
+ var ll = listenersArr.length;
601
+ for (var i = 0; i < ll; i++) {
602
+ listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
603
+ }
604
+ // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
605
+ var il = objIdArr.length;
606
+ for (var j = 0; j < il; j++) {
607
+ removeSWF(objIdArr[j]);
608
+ }
609
+ // cleanup library's main closures to avoid memory leaks
610
+ for (var k in ua) {
611
+ ua[k] = null;
612
+ }
613
+ ua = null;
614
+ for (var l in swfobject) {
615
+ swfobject[l] = null;
616
+ }
617
+ swfobject = null;
618
+ });
619
+ }
620
+ }();
621
+
622
+ return {
623
+ /* Public API
624
+ - Reference: http://code.google.com/p/swfobject/wiki/documentation
625
+ */
626
+ registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
627
+ if (ua.w3 && objectIdStr && swfVersionStr) {
628
+ var regObj = {};
629
+ regObj.id = objectIdStr;
630
+ regObj.swfVersion = swfVersionStr;
631
+ regObj.expressInstall = xiSwfUrlStr;
632
+ regObj.callbackFn = callbackFn;
633
+ regObjArr[regObjArr.length] = regObj;
634
+ setVisibility(objectIdStr, false);
635
+ }
636
+ else if (callbackFn) {
637
+ callbackFn({success:false, id:objectIdStr});
638
+ }
639
+ },
640
+
641
+ getObjectById: function(objectIdStr) {
642
+ if (ua.w3) {
643
+ return getObjectById(objectIdStr);
644
+ }
645
+ },
646
+
647
+ embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
648
+ var callbackObj = {success:false, id:replaceElemIdStr};
649
+ if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
650
+ setVisibility(replaceElemIdStr, false);
651
+ addDomLoadEvent(function() {
652
+ widthStr += ""; // auto-convert to string
653
+ heightStr += "";
654
+ var att = {};
655
+ if (attObj && typeof attObj === OBJECT) {
656
+ for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
657
+ att[i] = attObj[i];
658
+ }
659
+ }
660
+ att.data = swfUrlStr;
661
+ att.width = widthStr;
662
+ att.height = heightStr;
663
+ var par = {};
664
+ if (parObj && typeof parObj === OBJECT) {
665
+ for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
666
+ par[j] = parObj[j];
667
+ }
668
+ }
669
+ if (flashvarsObj && typeof flashvarsObj === OBJECT) {
670
+ for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
671
+ if (typeof par.flashvars != UNDEF) {
672
+ par.flashvars += "&" + k + "=" + flashvarsObj[k];
673
+ }
674
+ else {
675
+ par.flashvars = k + "=" + flashvarsObj[k];
676
+ }
677
+ }
678
+ }
679
+ if (hasPlayerVersion(swfVersionStr)) { // create SWF
680
+ var obj = createSWF(att, par, replaceElemIdStr);
681
+ if (att.id == replaceElemIdStr) {
682
+ setVisibility(replaceElemIdStr, true);
683
+ }
684
+ callbackObj.success = true;
685
+ callbackObj.ref = obj;
686
+ }
687
+ else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
688
+ att.data = xiSwfUrlStr;
689
+ showExpressInstall(att, par, replaceElemIdStr, callbackFn);
690
+ return;
691
+ }
692
+ else { // show alternative content
693
+ setVisibility(replaceElemIdStr, true);
694
+ }
695
+ if (callbackFn) { callbackFn(callbackObj); }
696
+ });
697
+ }
698
+ else if (callbackFn) { callbackFn(callbackObj); }
699
+ },
700
+
701
+ switchOffAutoHideShow: function() {
702
+ autoHideShow = false;
703
+ },
704
+
705
+ ua: ua,
706
+
707
+ getFlashPlayerVersion: function() {
708
+ return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
709
+ },
710
+
711
+ hasFlashPlayerVersion: hasPlayerVersion,
712
+
713
+ createSWF: function(attObj, parObj, replaceElemIdStr) {
714
+ if (ua.w3) {
715
+ return createSWF(attObj, parObj, replaceElemIdStr);
716
+ }
717
+ else {
718
+ return undefined;
719
+ }
720
+ },
721
+
722
+ showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
723
+ if (ua.w3 && canExpressInstall()) {
724
+ showExpressInstall(att, par, replaceElemIdStr, callbackFn);
725
+ }
726
+ },
727
+
728
+ removeSWF: function(objElemIdStr) {
729
+ if (ua.w3) {
730
+ removeSWF(objElemIdStr);
731
+ }
732
+ },
733
+
734
+ createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
735
+ if (ua.w3) {
736
+ createCSS(selStr, declStr, mediaStr, newStyleBoolean);
737
+ }
738
+ },
739
+
740
+ addDomLoadEvent: addDomLoadEvent,
741
+
742
+ addLoadEvent: addLoadEvent,
743
+
744
+ getQueryParamValue: function(param) {
745
+ var q = doc.location.search || doc.location.hash;
746
+ if (q) {
747
+ if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
748
+ if (param == null) {
749
+ return urlEncodeIfNecessary(q);
750
+ }
751
+ var pairs = q.split("&");
752
+ for (var i = 0; i < pairs.length; i++) {
753
+ if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
754
+ return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
755
+ }
756
+ }
757
+ }
758
+ return "";
759
+ },
760
+
761
+ // For internal usage only
762
+ expressInstallCallback: function() {
763
+ if (isExpressInstallActive) {
764
+ var obj = getElementById(EXPRESS_INSTALL_ID);
765
+ if (obj && storedAltContent) {
766
+ obj.parentNode.replaceChild(storedAltContent, obj);
767
+ if (storedAltContentId) {
768
+ setVisibility(storedAltContentId, true);
769
+ if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
770
+ }
771
+ if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
772
+ }
773
+ isExpressInstallActive = false;
774
+ }
775
+ }
776
+ };
777
+ }();