webshims-rails 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. data/lib/webshims-rails/version.rb +2 -2
  2. data/vendor/assets/javascripts/webshims/extras/custom-validity.js +253 -261
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +534 -534
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +60 -60
  5. data/vendor/assets/javascripts/webshims/minified/extras/custom-validity.js +1 -10
  6. data/vendor/assets/javascripts/webshims/minified/extras/modernizr-custom.js +1 -20
  7. data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +1 -2
  8. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -30
  9. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/canvas2png.js +1 -42
  10. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.js +1 -28
  11. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.swf +0 -0
  12. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/proxy.php +0 -0
  13. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/save.php +0 -0
  14. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/canvas2png.js +1 -42
  15. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  16. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  17. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flashcanvas.js +1 -31
  18. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/proxy.php +0 -0
  19. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/save.php +0 -0
  20. data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +1 -38
  21. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -80
  22. data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +1 -45
  23. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -44
  24. data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +1 -28
  25. data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +1 -19
  26. data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +1 -10
  27. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -58
  28. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -66
  29. data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +1 -62
  30. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -64
  31. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -73
  32. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -42
  33. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -54
  34. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -57
  35. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -70
  36. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -80
  37. data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -60
  38. data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -79
  39. data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -101
  40. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -95
  41. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -27
  42. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -34
  43. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -56
  44. data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +1 -33
  45. data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +1 -40
  46. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -39
  47. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -65
  48. data/vendor/assets/javascripts/webshims/minified/shims/details.js +1 -5
  49. data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +1 -23
  50. data/vendor/assets/javascripts/webshims/minified/shims/es5.js +1 -15
  51. data/vendor/assets/javascripts/webshims/minified/shims/excanvas.js +1 -21
  52. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -19
  53. data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +1 -22
  54. data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +1 -8
  55. data/vendor/assets/javascripts/webshims/minified/shims/form-native-extend.js +1 -7
  56. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-api.js +1 -10
  57. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +1 -23
  58. data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +1 -46
  59. data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +1 -5
  60. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ar.js +1 -7
  61. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ch-ZN.js +1 -3
  62. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +33 -33
  63. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-el.js +1 -7
  64. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +34 -34
  65. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-es.js +1 -3
  66. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-fr.js +1 -3
  67. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-he.js +1 -6
  68. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hi.js +1 -6
  69. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hu.js +1 -3
  70. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-it.js +1 -3
  71. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ja.js +1 -4
  72. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-nl.js +1 -3
  73. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-pt-PT.js +1 -3
  74. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ru.js +1 -8
  75. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-sv.js +1 -3
  76. data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +1 -14
  77. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/license.txt +0 -0
  78. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/player.swf +0 -0
  79. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/readme.html +0 -0
  80. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -16
  81. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -23
  82. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-native-fix.js +1 -3
  83. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -26
  84. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +1 -14
  85. data/vendor/assets/javascripts/webshims/minified/shims/range-ui.js +1 -0
  86. data/vendor/assets/javascripts/webshims/minified/shims/styles/details-arrows.png +0 -0
  87. data/vendor/assets/javascripts/webshims/minified/shims/styles/forms.png +0 -0
  88. data/vendor/assets/javascripts/webshims/minified/shims/styles/polyfill-loader.gif +0 -0
  89. data/vendor/assets/javascripts/webshims/minified/shims/styles/shim.css +1 -689
  90. data/vendor/assets/javascripts/webshims/minified/shims/swf/JarisFLVPlayer.swf +0 -0
  91. data/vendor/assets/javascripts/webshims/minified/shims/swf/jwwebshims.swf +0 -0
  92. data/vendor/assets/javascripts/webshims/minified/shims/swf/localStorage.swf +0 -0
  93. data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +1 -9
  94. data/vendor/assets/javascripts/webshims/minified/shims/track.js +1 -21
  95. data/vendor/assets/javascripts/webshims/polyfiller.js +1188 -1191
  96. data/vendor/assets/javascripts/webshims/{minified/shims → shims}/FlashCanvas/README +0 -0
  97. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
  98. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
  99. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
  100. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
  101. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
  102. data/vendor/assets/javascripts/webshims/{minified/shims → shims}/FlashCanvasPro/README +82 -82
  103. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
  104. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  105. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  106. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
  107. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
  108. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
  109. data/vendor/assets/javascripts/webshims/shims/combos/1.js +1752 -1754
  110. data/vendor/assets/javascripts/webshims/shims/combos/10.js +3311 -3247
  111. data/vendor/assets/javascripts/webshims/shims/combos/11.js +1631 -1633
  112. data/vendor/assets/javascripts/webshims/shims/combos/12.js +1697 -1636
  113. data/vendor/assets/javascripts/webshims/shims/combos/13.js +1098 -1100
  114. data/vendor/assets/javascripts/webshims/shims/combos/14.js +477 -476
  115. data/vendor/assets/javascripts/webshims/shims/combos/15.js +317 -316
  116. data/vendor/assets/javascripts/webshims/shims/combos/16.js +2155 -2095
  117. data/vendor/assets/javascripts/webshims/shims/combos/17.js +2320 -2259
  118. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1326 -1322
  119. data/vendor/assets/javascripts/webshims/shims/combos/19.js +2238 -2239
  120. data/vendor/assets/javascripts/webshims/shims/combos/2.js +2341 -2339
  121. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1558 -1493
  122. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1734 -1733
  123. data/vendor/assets/javascripts/webshims/shims/combos/22.js +2361 -2295
  124. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2332 -2269
  125. data/vendor/assets/javascripts/webshims/shims/combos/24.js +2836 -2775
  126. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1549 -1489
  127. data/vendor/assets/javascripts/webshims/shims/combos/26.js +2156 -2095
  128. data/vendor/assets/javascripts/webshims/shims/combos/27.js +3313 -3248
  129. data/vendor/assets/javascripts/webshims/shims/combos/3.js +3022 -3020
  130. data/vendor/assets/javascripts/webshims/shims/combos/4.js +771 -770
  131. data/vendor/assets/javascripts/webshims/shims/combos/5.js +1027 -1025
  132. data/vendor/assets/javascripts/webshims/shims/combos/59.js +1709 -1706
  133. data/vendor/assets/javascripts/webshims/shims/combos/6.js +387 -386
  134. data/vendor/assets/javascripts/webshims/shims/combos/7.js +643 -641
  135. data/vendor/assets/javascripts/webshims/shims/combos/8.js +1547 -1488
  136. data/vendor/assets/javascripts/webshims/shims/combos/9.js +2508 -2445
  137. data/vendor/assets/javascripts/webshims/shims/details.js +148 -148
  138. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +949 -952
  139. data/vendor/assets/javascripts/webshims/shims/es5.js +802 -802
  140. data/vendor/assets/javascripts/webshims/shims/excanvas.js +924 -924
  141. data/vendor/assets/javascripts/webshims/shims/form-core.js +606 -606
  142. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +681 -681
  143. data/vendor/assets/javascripts/webshims/shims/form-message.js +164 -164
  144. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +255 -255
  145. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +383 -383
  146. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2 -2
  147. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +1568 -1569
  148. data/vendor/assets/javascripts/webshims/shims/geolocation.js +168 -168
  149. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ar.js +32 -32
  150. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ch-ZN.js +32 -32
  151. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-de.txt +33 -33
  152. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-el.js +32 -32
  153. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-en.txt +34 -34
  154. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-es.js +31 -31
  155. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-fr.js +32 -32
  156. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-he.js +32 -32
  157. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-hi.js +32 -32
  158. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-hu.js +32 -32
  159. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-it.js +32 -32
  160. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ja.js +32 -32
  161. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-nl.js +32 -32
  162. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-pt-PT.js +32 -32
  163. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ru.js +31 -31
  164. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-sv.js +32 -32
  165. data/vendor/assets/javascripts/webshims/shims/json-storage.js +308 -308
  166. data/vendor/assets/javascripts/webshims/shims/jwplayer/license.txt +0 -0
  167. data/vendor/assets/javascripts/webshims/shims/jwplayer/player.swf +0 -0
  168. data/vendor/assets/javascripts/webshims/shims/jwplayer/readme.html +0 -0
  169. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +597 -536
  170. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +891 -860
  171. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +98 -98
  172. data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +960 -957
  173. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +543 -543
  174. data/vendor/assets/javascripts/webshims/shims/range-ui.js +66 -0
  175. data/vendor/assets/javascripts/webshims/shims/styles/details-arrows.png +0 -0
  176. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  177. data/vendor/assets/javascripts/webshims/shims/styles/polyfill-loader.gif +0 -0
  178. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +697 -689
  179. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  180. data/vendor/assets/javascripts/webshims/shims/swf/jwwebshims.swf +0 -0
  181. data/vendor/assets/javascripts/webshims/shims/swf/localStorage.swf +0 -0
  182. data/vendor/assets/javascripts/webshims/shims/track-ui.js +0 -0
  183. data/vendor/assets/javascripts/webshims/shims/track.js +0 -0
  184. metadata +6 -4
@@ -1,316 +1,317 @@
1
- jQuery.webshims.register('details', function($, webshims, window, doc, undefined, options){
2
- var isInterActiveSummary = function(summary){
3
- var details = $(summary).parent('details');
4
- if(details[0] && details.children(':first').get(0) === summary){
5
- return details;
6
- }
7
- };
8
-
9
- var bindDetailsSummary = function(summary, details){
10
- summary = $(summary);
11
- details = $(details);
12
- var oldSummary = $.data(details[0], 'summaryElement');
13
- $.data(summary[0], 'detailsElement', details);
14
- if(!oldSummary || summary[0] !== oldSummary[0]){
15
- if(oldSummary){
16
- if(oldSummary.hasClass('fallback-summary')){
17
- oldSummary.remove();
18
- } else {
19
- oldSummary
20
- .unbind('.summaryPolyfill')
21
- .removeData('detailsElement')
22
- .removeAttr('role')
23
- .removeAttr('tabindex')
24
- .removeAttr('aria-expanded')
25
- .removeClass('summary-button')
26
- .find('span.details-open-indicator')
27
- .remove()
28
- ;
29
- }
30
- }
31
- $.data(details[0], 'summaryElement', summary);
32
- details.prop('open', details.prop('open'));
33
- }
34
- };
35
- var getSummary = function(details){
36
- var summary = $.data(details, 'summaryElement');
37
- if(!summary){
38
- summary = $('> summary:first-child', details);
39
- if(!summary[0]){
40
- $(details).prependPolyfill('<summary class="fallback-summary">'+ options.text +'</summary>');
41
- summary = $.data(details, 'summaryElement');
42
- } else {
43
- bindDetailsSummary(summary, details);
44
- }
45
- }
46
- return summary;
47
- };
48
-
49
- // var isOriginalPrevented = function(e){
50
- // var src = e.originalEvent;
51
- // if(!src){return e.isDefaultPrevented();}
52
- //
53
- // return src.defaultPrevented || src.returnValue === false ||
54
- // src.getPreventDefault && src.getPreventDefault();
55
- // };
56
-
57
- webshims.createElement('summary', function(){
58
- var details = isInterActiveSummary(this);
59
- if(!details || $.data(this, 'detailsElement')){return;}
60
- var timer;
61
- var stopNativeClickTest;
62
- var tabindex = $.attr(this, 'tabIndex') || '0';
63
- bindDetailsSummary(this, details);
64
- $(this)
65
- .on({
66
- 'focus.summaryPolyfill': function(){
67
- $(this).addClass('summary-has-focus');
68
- },
69
- 'blur.summaryPolyfill': function(){
70
- $(this).removeClass('summary-has-focus');
71
- },
72
- 'mouseenter.summaryPolyfill': function(){
73
- $(this).addClass('summary-has-hover');
74
- },
75
- 'mouseleave.summaryPolyfill': function(){
76
- $(this).removeClass('summary-has-hover');
77
- },
78
- 'click.summaryPolyfill': function(e){
79
- var details = isInterActiveSummary(this);
80
- if(details){
81
- if(!stopNativeClickTest && e.originalEvent){
82
- stopNativeClickTest = true;
83
- e.stopImmediatePropagation();
84
- e.preventDefault();
85
- $(this).trigger('click');
86
- stopNativeClickTest = false;
87
- return false;
88
- } else {
89
- clearTimeout(timer);
90
-
91
- timer = setTimeout(function(){
92
- if(!e.isDefaultPrevented()){
93
- details.prop('open', !details.prop('open'));
94
- }
95
- }, 0);
96
- }
97
- }
98
- },
99
- 'keydown.summaryPolyfill': function(e){
100
- if( (e.keyCode == 13 || e.keyCode == 32) && !e.isDefaultPrevented()){
101
- stopNativeClickTest = true;
102
- e.preventDefault();
103
- $(this).trigger('click');
104
- stopNativeClickTest = false;
105
- }
106
- }
107
- })
108
- .attr({tabindex: tabindex, role: 'button'})
109
- .prepend('<span class="details-open-indicator" />')
110
- ;
111
- webshims.moveToFirstEvent(this, 'click');
112
- });
113
-
114
- var initDetails;
115
- webshims.defineNodeNamesBooleanProperty('details', 'open', function(val){
116
- var summary = $($.data(this, 'summaryElement'));
117
- if(!summary){return;}
118
- var action = (val) ? 'removeClass' : 'addClass';
119
- var details = $(this);
120
- if (!initDetails && options.animate){
121
- details.stop().css({width: '', height: ''});
122
- var start = {
123
- width: details.width(),
124
- height: details.height()
125
- };
126
- }
127
- summary.attr('aria-expanded', ''+val);
128
- details[action]('closed-details-summary').children().not(summary[0])[action]('closed-details-child');
129
- if(!initDetails && options.animate){
130
- var end = {
131
- width: details.width(),
132
- height: details.height()
133
- };
134
- details.css(start).animate(end, {
135
- complete: function(){
136
- $(this).css({width: '', height: ''});
137
- }
138
- });
139
- }
140
-
141
- });
142
- webshims.createElement('details', function(){
143
- initDetails = true;
144
- var summary = getSummary(this);
145
- $.prop(this, 'open', $.prop(this, 'open'));
146
- initDetails = false;
147
- });
148
- });
149
- (function($){
150
- if(navigator.geolocation){return;}
151
- var domWrite = function(){
152
- setTimeout(function(){
153
- throw('document.write is overwritten by geolocation shim. This method is incompatible with this plugin');
154
- }, 1);
155
- },
156
- id = 0
157
- ;
158
- var geoOpts = $.webshims.cfg.geolocation.options || {};
159
- navigator.geolocation = (function(){
160
- var pos;
161
- var api = {
162
- getCurrentPosition: function(success, error, opts){
163
- var locationAPIs = 2,
164
- errorTimer,
165
- googleTimer,
166
- calledEnd,
167
- endCallback = function(){
168
- if(calledEnd){return;}
169
- if(pos){
170
- calledEnd = true;
171
- success($.extend({timestamp: new Date().getTime()}, pos));
172
- resetCallback();
173
- if(window.JSON && window.sessionStorage){
174
- try{
175
- sessionStorage.setItem('storedGeolocationData654321', JSON.stringify(pos));
176
- } catch(e){}
177
- }
178
- } else if(error && !locationAPIs) {
179
- calledEnd = true;
180
- resetCallback();
181
- error({ code: 2, message: "POSITION_UNAVAILABLE"});
182
- }
183
- },
184
- googleCallback = function(){
185
- locationAPIs--;
186
- getGoogleCoords();
187
- endCallback();
188
- },
189
- resetCallback = function(){
190
- $(document).unbind('google-loader', resetCallback);
191
- clearTimeout(googleTimer);
192
- clearTimeout(errorTimer);
193
- },
194
- getGoogleCoords = function(){
195
- if(pos || !window.google || !google.loader || !google.loader.ClientLocation){return false;}
196
- var cl = google.loader.ClientLocation;
197
- pos = {
198
- coords: {
199
- latitude: cl.latitude,
200
- longitude: cl.longitude,
201
- altitude: null,
202
- accuracy: 43000,
203
- altitudeAccuracy: null,
204
- heading: parseInt('NaN', 10),
205
- velocity: null
206
- },
207
- //extension similiar to FF implementation
208
- address: $.extend({streetNumber: '', street: '', premises: '', county: '', postalCode: ''}, cl.address)
209
- };
210
- return true;
211
- },
212
- getInitCoords = function(){
213
- if(pos){return;}
214
- getGoogleCoords();
215
- if(pos || !window.JSON || !window.sessionStorage){return;}
216
- try{
217
- pos = sessionStorage.getItem('storedGeolocationData654321');
218
- pos = (pos) ? JSON.parse(pos) : false;
219
- if(!pos.coords){pos = false;}
220
- } catch(e){
221
- pos = false;
222
- }
223
- }
224
- ;
225
-
226
- getInitCoords();
227
-
228
- if(!pos){
229
- if(geoOpts.confirmText && !confirm(geoOpts.confirmText.replace('{location}', location.hostname))){
230
- if(error){
231
- error({ code: 1, message: "PERMISSION_DENIED"});
232
- }
233
- return;
234
- }
235
- $.ajax({
236
- url: 'http://freegeoip.net/json/',
237
- dataType: 'jsonp',
238
- cache: true,
239
- jsonp: 'callback',
240
- success: function(data){
241
- locationAPIs--;
242
- if(!data){return;}
243
- pos = pos || {
244
- coords: {
245
- latitude: data.latitude,
246
- longitude: data.longitude,
247
- altitude: null,
248
- accuracy: 43000,
249
- altitudeAccuracy: null,
250
- heading: parseInt('NaN', 10),
251
- velocity: null
252
- },
253
- //extension similiar to FF implementation
254
- address: {
255
- city: data.city,
256
- country: data.country_name,
257
- countryCode: data.country_code,
258
- county: "",
259
- postalCode: data.zipcode,
260
- premises: "",
261
- region: data.region_name,
262
- street: "",
263
- streetNumber: ""
264
- }
265
- };
266
- endCallback();
267
- },
268
- error: function(){
269
- locationAPIs--;
270
- endCallback();
271
- }
272
- });
273
- clearTimeout(googleTimer);
274
- if (!window.google || !window.google.loader) {
275
- googleTimer = setTimeout(function(){
276
- //destroys document.write!!!
277
- if (geoOpts.destroyWrite) {
278
- document.write = domWrite;
279
- document.writeln = domWrite;
280
- }
281
- $(document).one('google-loader', googleCallback);
282
- $.webshims.loader.loadScript('http://www.google.com/jsapi', false, 'google-loader');
283
- }, 800);
284
- } else {
285
- locationAPIs--;
286
- }
287
- } else {
288
- setTimeout(endCallback, 1);
289
- return;
290
- }
291
- if(opts && opts.timeout){
292
- errorTimer = setTimeout(function(){
293
- resetCallback();
294
- if(error) {
295
- error({ code: 3, message: "TIMEOUT"});
296
- }
297
- }, opts.timeout);
298
- } else {
299
- errorTimer = setTimeout(function(){
300
- locationAPIs = 0;
301
- endCallback();
302
- }, 10000);
303
- }
304
- },
305
- clearWatch: $.noop
306
- };
307
- api.watchPosition = function(a, b, c){
308
- api.getCurrentPosition(a, b, c);
309
- id++;
310
- return id;
311
- };
312
- return api;
313
- })();
314
-
315
- $.webshims.isReady('geolocation', true);
316
- })(jQuery);
1
+ (function($){
2
+ if(navigator.geolocation){return;}
3
+ var domWrite = function(){
4
+ setTimeout(function(){
5
+ throw('document.write is overwritten by geolocation shim. This method is incompatible with this plugin');
6
+ }, 1);
7
+ },
8
+ id = 0
9
+ ;
10
+ var geoOpts = $.webshims.cfg.geolocation.options || {};
11
+ navigator.geolocation = (function(){
12
+ var pos;
13
+ var api = {
14
+ getCurrentPosition: function(success, error, opts){
15
+ var locationAPIs = 2,
16
+ errorTimer,
17
+ googleTimer,
18
+ calledEnd,
19
+ endCallback = function(){
20
+ if(calledEnd){return;}
21
+ if(pos){
22
+ calledEnd = true;
23
+ success($.extend({timestamp: new Date().getTime()}, pos));
24
+ resetCallback();
25
+ if(window.JSON && window.sessionStorage){
26
+ try{
27
+ sessionStorage.setItem('storedGeolocationData654321', JSON.stringify(pos));
28
+ } catch(e){}
29
+ }
30
+ } else if(error && !locationAPIs) {
31
+ calledEnd = true;
32
+ resetCallback();
33
+ error({ code: 2, message: "POSITION_UNAVAILABLE"});
34
+ }
35
+ },
36
+ googleCallback = function(){
37
+ locationAPIs--;
38
+ getGoogleCoords();
39
+ endCallback();
40
+ },
41
+ resetCallback = function(){
42
+ $(document).unbind('google-loader', resetCallback);
43
+ clearTimeout(googleTimer);
44
+ clearTimeout(errorTimer);
45
+ },
46
+ getGoogleCoords = function(){
47
+ if(pos || !window.google || !google.loader || !google.loader.ClientLocation){return false;}
48
+ var cl = google.loader.ClientLocation;
49
+ pos = {
50
+ coords: {
51
+ latitude: cl.latitude,
52
+ longitude: cl.longitude,
53
+ altitude: null,
54
+ accuracy: 43000,
55
+ altitudeAccuracy: null,
56
+ heading: parseInt('NaN', 10),
57
+ velocity: null
58
+ },
59
+ //extension similiar to FF implementation
60
+ address: $.extend({streetNumber: '', street: '', premises: '', county: '', postalCode: ''}, cl.address)
61
+ };
62
+ return true;
63
+ },
64
+ getInitCoords = function(){
65
+ if(pos){return;}
66
+ getGoogleCoords();
67
+ if(pos || !window.JSON || !window.sessionStorage){return;}
68
+ try{
69
+ pos = sessionStorage.getItem('storedGeolocationData654321');
70
+ pos = (pos) ? JSON.parse(pos) : false;
71
+ if(!pos.coords){pos = false;}
72
+ } catch(e){
73
+ pos = false;
74
+ }
75
+ }
76
+ ;
77
+
78
+ getInitCoords();
79
+
80
+ if(!pos){
81
+ if(geoOpts.confirmText && !confirm(geoOpts.confirmText.replace('{location}', location.hostname))){
82
+ if(error){
83
+ error({ code: 1, message: "PERMISSION_DENIED"});
84
+ }
85
+ return;
86
+ }
87
+ $.ajax({
88
+ url: 'http://freegeoip.net/json/',
89
+ dataType: 'jsonp',
90
+ cache: true,
91
+ jsonp: 'callback',
92
+ success: function(data){
93
+ locationAPIs--;
94
+ if(!data){return;}
95
+ pos = pos || {
96
+ coords: {
97
+ latitude: data.latitude,
98
+ longitude: data.longitude,
99
+ altitude: null,
100
+ accuracy: 43000,
101
+ altitudeAccuracy: null,
102
+ heading: parseInt('NaN', 10),
103
+ velocity: null
104
+ },
105
+ //extension similiar to FF implementation
106
+ address: {
107
+ city: data.city,
108
+ country: data.country_name,
109
+ countryCode: data.country_code,
110
+ county: "",
111
+ postalCode: data.zipcode,
112
+ premises: "",
113
+ region: data.region_name,
114
+ street: "",
115
+ streetNumber: ""
116
+ }
117
+ };
118
+ endCallback();
119
+ },
120
+ error: function(){
121
+ locationAPIs--;
122
+ endCallback();
123
+ }
124
+ });
125
+ clearTimeout(googleTimer);
126
+ if (!window.google || !window.google.loader) {
127
+ googleTimer = setTimeout(function(){
128
+ //destroys document.write!!!
129
+ if (geoOpts.destroyWrite) {
130
+ document.write = domWrite;
131
+ document.writeln = domWrite;
132
+ }
133
+ $(document).one('google-loader', googleCallback);
134
+ $.webshims.loader.loadScript('http://www.google.com/jsapi', false, 'google-loader');
135
+ }, 800);
136
+ } else {
137
+ locationAPIs--;
138
+ }
139
+ } else {
140
+ setTimeout(endCallback, 1);
141
+ return;
142
+ }
143
+ if(opts && opts.timeout){
144
+ errorTimer = setTimeout(function(){
145
+ resetCallback();
146
+ if(error) {
147
+ error({ code: 3, message: "TIMEOUT"});
148
+ }
149
+ }, opts.timeout);
150
+ } else {
151
+ errorTimer = setTimeout(function(){
152
+ locationAPIs = 0;
153
+ endCallback();
154
+ }, 10000);
155
+ }
156
+ },
157
+ clearWatch: $.noop
158
+ };
159
+ api.watchPosition = function(a, b, c){
160
+ api.getCurrentPosition(a, b, c);
161
+ id++;
162
+ return id;
163
+ };
164
+ return api;
165
+ })();
166
+
167
+ $.webshims.isReady('geolocation', true);
168
+ })(jQuery);
169
+
170
+ jQuery.webshims.register('details', function($, webshims, window, doc, undefined, options){
171
+ var isInterActiveSummary = function(summary){
172
+ var details = $(summary).parent('details');
173
+ if(details[0] && details.children(':first').get(0) === summary){
174
+ return details;
175
+ }
176
+ };
177
+
178
+ var bindDetailsSummary = function(summary, details){
179
+ summary = $(summary);
180
+ details = $(details);
181
+ var oldSummary = $.data(details[0], 'summaryElement');
182
+ $.data(summary[0], 'detailsElement', details);
183
+ if(!oldSummary || summary[0] !== oldSummary[0]){
184
+ if(oldSummary){
185
+ if(oldSummary.hasClass('fallback-summary')){
186
+ oldSummary.remove();
187
+ } else {
188
+ oldSummary
189
+ .unbind('.summaryPolyfill')
190
+ .removeData('detailsElement')
191
+ .removeAttr('role')
192
+ .removeAttr('tabindex')
193
+ .removeAttr('aria-expanded')
194
+ .removeClass('summary-button')
195
+ .find('span.details-open-indicator')
196
+ .remove()
197
+ ;
198
+ }
199
+ }
200
+ $.data(details[0], 'summaryElement', summary);
201
+ details.prop('open', details.prop('open'));
202
+ }
203
+ };
204
+ var getSummary = function(details){
205
+ var summary = $.data(details, 'summaryElement');
206
+ if(!summary){
207
+ summary = $('> summary:first-child', details);
208
+ if(!summary[0]){
209
+ $(details).prependPolyfill('<summary class="fallback-summary">'+ options.text +'</summary>');
210
+ summary = $.data(details, 'summaryElement');
211
+ } else {
212
+ bindDetailsSummary(summary, details);
213
+ }
214
+ }
215
+ return summary;
216
+ };
217
+
218
+ // var isOriginalPrevented = function(e){
219
+ // var src = e.originalEvent;
220
+ // if(!src){return e.isDefaultPrevented();}
221
+ //
222
+ // return src.defaultPrevented || src.returnValue === false ||
223
+ // src.getPreventDefault && src.getPreventDefault();
224
+ // };
225
+
226
+ webshims.createElement('summary', function(){
227
+ var details = isInterActiveSummary(this);
228
+ if(!details || $.data(this, 'detailsElement')){return;}
229
+ var timer;
230
+ var stopNativeClickTest;
231
+ var tabindex = $.attr(this, 'tabIndex') || '0';
232
+ bindDetailsSummary(this, details);
233
+ $(this)
234
+ .on({
235
+ 'focus.summaryPolyfill': function(){
236
+ $(this).addClass('summary-has-focus');
237
+ },
238
+ 'blur.summaryPolyfill': function(){
239
+ $(this).removeClass('summary-has-focus');
240
+ },
241
+ 'mouseenter.summaryPolyfill': function(){
242
+ $(this).addClass('summary-has-hover');
243
+ },
244
+ 'mouseleave.summaryPolyfill': function(){
245
+ $(this).removeClass('summary-has-hover');
246
+ },
247
+ 'click.summaryPolyfill': function(e){
248
+ var details = isInterActiveSummary(this);
249
+ if(details){
250
+ if(!stopNativeClickTest && e.originalEvent){
251
+ stopNativeClickTest = true;
252
+ e.stopImmediatePropagation();
253
+ e.preventDefault();
254
+ $(this).trigger('click');
255
+ stopNativeClickTest = false;
256
+ return false;
257
+ } else {
258
+ clearTimeout(timer);
259
+
260
+ timer = setTimeout(function(){
261
+ if(!e.isDefaultPrevented()){
262
+ details.prop('open', !details.prop('open'));
263
+ }
264
+ }, 0);
265
+ }
266
+ }
267
+ },
268
+ 'keydown.summaryPolyfill': function(e){
269
+ if( (e.keyCode == 13 || e.keyCode == 32) && !e.isDefaultPrevented()){
270
+ stopNativeClickTest = true;
271
+ e.preventDefault();
272
+ $(this).trigger('click');
273
+ stopNativeClickTest = false;
274
+ }
275
+ }
276
+ })
277
+ .attr({tabindex: tabindex, role: 'button'})
278
+ .prepend('<span class="details-open-indicator" />')
279
+ ;
280
+ webshims.moveToFirstEvent(this, 'click');
281
+ });
282
+
283
+ var initDetails;
284
+ webshims.defineNodeNamesBooleanProperty('details', 'open', function(val){
285
+ var summary = $($.data(this, 'summaryElement'));
286
+ if(!summary){return;}
287
+ var action = (val) ? 'removeClass' : 'addClass';
288
+ var details = $(this);
289
+ if (!initDetails && options.animate){
290
+ details.stop().css({width: '', height: ''});
291
+ var start = {
292
+ width: details.width(),
293
+ height: details.height()
294
+ };
295
+ }
296
+ summary.attr('aria-expanded', ''+val);
297
+ details[action]('closed-details-summary').children().not(summary[0])[action]('closed-details-child');
298
+ if(!initDetails && options.animate){
299
+ var end = {
300
+ width: details.width(),
301
+ height: details.height()
302
+ };
303
+ details.css(start).animate(end, {
304
+ complete: function(){
305
+ $(this).css({width: '', height: ''});
306
+ }
307
+ });
308
+ }
309
+
310
+ });
311
+ webshims.createElement('details', function(){
312
+ initDetails = true;
313
+ var summary = getSummary(this);
314
+ $.prop(this, 'open', $.prop(this, 'open'));
315
+ initDetails = false;
316
+ });
317
+ });