compass-jquery-plugin 0.3.3.0 → 0.3.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. data/README.md +4 -4
  2. data/VERSION.yml +1 -1
  3. data/lib/handle_js_files.rb +1 -1
  4. data/lib/jquery/gridify/grid_column.rb +4 -0
  5. data/lib/jquery/gridify/grid_options.rb +5 -1
  6. data/lib/jquery/gridify/grid_view.rb +8 -3
  7. data/templates/dynatree/jquery.dynatree.js +184 -73
  8. data/templates/dynatree/jquery.dynatree.min.js +78 -76
  9. data/templates/emulators/emulators/galaxy.tab.7.7.landscape.png +0 -0
  10. data/templates/emulators/emulators/{palm.pre.2.landscape.scss → galaxy.tab.7.7.landscape.scss} +7 -7
  11. data/templates/emulators/emulators/galaxy.tab.7.7.portrait.png +0 -0
  12. data/templates/emulators/emulators/{palm.pre.2.portrait.scss → galaxy.tab.7.7.portrait.scss} +7 -7
  13. data/templates/emulators/manifest.rb +4 -4
  14. data/templates/graphics/config/initializers/graphics.rb +1 -1
  15. data/templates/graphics/highcharts/dark-blue.js +257 -159
  16. data/templates/graphics/highcharts/dark-blue.min.js +4 -2
  17. data/templates/graphics/highcharts/dark-green.js +257 -159
  18. data/templates/graphics/highcharts/dark-green.min.js +4 -2
  19. data/templates/graphics/highcharts/gray.js +252 -154
  20. data/templates/graphics/highcharts/gray.min.js +4 -2
  21. data/templates/graphics/highcharts/grid.js +84 -84
  22. data/templates/graphics/highcharts/highslide-full.min.js +3 -3
  23. data/templates/graphics/highcharts/highslide.js +3391 -0
  24. data/templates/graphics/highcharts/highslide.min.js +132 -0
  25. data/templates/graphics/jquery.ganttView.min.js +4 -4
  26. data/templates/graphics/jquery.highcharts.js +15379 -1071
  27. data/templates/graphics/jquery.highcharts.min.js +384 -167
  28. data/templates/graphics/jquery.sparkline.min.js +2 -2
  29. data/templates/graphics/manifest.rb +2 -0
  30. data/templates/ical/jquery.ical.min.js +46 -47
  31. data/templates/jqgrid/i18n/jqgrid/locale-bg.min.js +2 -2
  32. data/templates/jqgrid/i18n/jqgrid/locale-bg1251.min.js +2 -2
  33. data/templates/jqgrid/i18n/jqgrid/locale-fi.js +20 -19
  34. data/templates/jqgrid/i18n/jqgrid/locale-fi.min.js +7 -6
  35. data/templates/jqgrid/i18n/jqgrid/locale-is.js +28 -28
  36. data/templates/jqgrid/i18n/jqgrid/locale-is.min.js +6 -6
  37. data/templates/jqgrid/i18n/jqgrid/locale-th.js +134 -0
  38. data/templates/jqgrid/i18n/jqgrid/locale-th.min.js +6 -0
  39. data/templates/jqgrid/jquery.jqGrid.js +674 -598
  40. data/templates/jqgrid/jquery.jqGrid.min.js +444 -441
  41. data/templates/jqgrid/jquery/jqGrid.scss +0 -3
  42. data/templates/jqgrid/manifest.rb +2 -0
  43. data/templates/jqtouch/jquery.jqtouch.js +201 -156
  44. data/templates/jqtouch/jquery.jqtouch.min.js +1 -1
  45. data/templates/jqtouch/jquery/touch/apple.scss +2 -2
  46. data/templates/jqtouch/jquery/touch/default.scss +2 -2
  47. data/templates/jquery/amplify.store.js +111 -78
  48. data/templates/jquery/amplify.store.min.js +6 -6
  49. data/templates/jquery/history.js +3 -3
  50. data/templates/jquery/i18n/jquery.ui/datepicker-nl.js +1 -1
  51. data/templates/jquery/i18n/jquery.ui/datepicker-nl.min.js +1 -1
  52. data/templates/jquery/jquery-ui.js +1286 -1042
  53. data/templates/jquery/jquery-ui.min.js +320 -316
  54. data/templates/jquery/jquery.contextMenu.js +2 -2
  55. data/templates/jquery/jquery.easing.js +152 -152
  56. data/templates/jquery/jquery.easing.min.js +7 -7
  57. data/templates/jquery/jquery.farbtastic.min.js +2 -2
  58. data/templates/jquery/jquery.form.js +30 -30
  59. data/templates/jquery/jquery.haml.min.js +5 -5
  60. data/templates/jquery/jquery.hotkeys.min.js +1 -1
  61. data/templates/jquery/jquery.js +419 -311
  62. data/templates/jquery/jquery.layout.js +59 -40
  63. data/templates/jquery/jquery.min.js +176 -176
  64. data/templates/jquery/jquery.themeswitchertool.js +37 -37
  65. data/templates/jquery/jquery.tmpl.js +4 -4
  66. data/templates/jquery/jquery.tmpl.min.js +9 -9
  67. data/templates/jquery/jquery.tmplPlus.min.js +3 -3
  68. data/templates/jquery/jquery.tokeninput.js +613 -490
  69. data/templates/jquery/jquery.tokeninput.min.js +17 -14
  70. data/templates/jquery/jquery/ui/_theme.scss +39 -63
  71. data/templates/jquery/json.js +31 -15
  72. data/templates/jstree/jquery.jstree.js +415 -410
  73. data/templates/jstree/jquery.jstree.min.js +134 -133
  74. data/templates/markitup/jquery.markitup.js +567 -560
  75. data/templates/markitup/jquery.markitup.min.js +1 -1
  76. data/templates/markitup/jquery/markitup/sets/default.scss +7 -3
  77. data/templates/markitup/jquery/markitup/sets/default/list-bullet.png +0 -0
  78. data/templates/markitup/jquery/markitup/sets/default/list-numeric.png +0 -0
  79. data/templates/markitup/jquery/markitup/skins/markitup.scss +3 -10
  80. data/templates/markitup/jquery/markitup/skins/markitup/bg-container.png +0 -0
  81. data/templates/markitup/jquery/markitup/skins/markitup/menu.png +0 -0
  82. data/templates/markitup/jquery/markitup/skins/simple.scss +2 -3
  83. data/templates/markitup/jquery/markitup/skins/simple/menu.png +0 -0
  84. data/templates/markitup/manifest.rb +2 -0
  85. data/templates/markitup/markitup/jquery.markitup.set.default.js +21 -21
  86. data/templates/markitup/markitup/jquery.markitup.set.default.min.js +3 -2
  87. data/templates/mobile/jquery.mobile.js +5230 -2846
  88. data/templates/mobile/jquery.mobile.min.js +192 -46
  89. data/templates/mobile/jquery/mobile/_base.scss +141 -18
  90. data/templates/mobile/jquery/mobile/default.scss +263 -66
  91. data/templates/mobile/jquery/mobile/default/icons-18-black.png +0 -0
  92. data/templates/mobile/jquery/mobile/default/icons-18-white.png +0 -0
  93. data/templates/mobile/jquery/mobile/default/icons-36-black.png +0 -0
  94. data/templates/mobile/jquery/mobile/default/icons-36-white.png +0 -0
  95. data/templates/mobile/jquery/mobile/valencia.scss +242 -53
  96. data/templates/mobile/jquery/mobile/valencia/icons-18-black.png +0 -0
  97. data/templates/mobile/jquery/mobile/valencia/icons-18-white.png +0 -0
  98. data/templates/mobile/jquery/mobile/valencia/icons-36-black.png +0 -0
  99. data/templates/mobile/jquery/mobile/valencia/icons-36-white.png +0 -0
  100. data/templates/tiny_mce/manifest.rb +2 -0
  101. data/templates/tiny_mce/tiny_mce/langs/de.js +1 -1
  102. data/templates/tiny_mce/tiny_mce/plugins/advhr/rule.htm +1 -1
  103. data/templates/tiny_mce/tiny_mce/plugins/advimage/editor_plugin.js +1 -1
  104. data/templates/tiny_mce/tiny_mce/plugins/advimage/editor_plugin_src.js +1 -1
  105. data/templates/tiny_mce/tiny_mce/plugins/advimage/image.htm +1 -1
  106. data/templates/tiny_mce/tiny_mce/plugins/advimage/js/image.js +1 -1
  107. data/templates/tiny_mce/tiny_mce/plugins/advlink/link.htm +1 -1
  108. data/templates/tiny_mce/tiny_mce/plugins/advlist/editor_plugin.js +1 -1
  109. data/templates/tiny_mce/tiny_mce/plugins/advlist/editor_plugin_src.js +1 -1
  110. data/templates/tiny_mce/tiny_mce/plugins/autolink/editor_plugin.js +1 -1
  111. data/templates/tiny_mce/tiny_mce/plugins/autolink/editor_plugin_src.js +1 -1
  112. data/templates/tiny_mce/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  113. data/templates/tiny_mce/tiny_mce/plugins/autoresize/editor_plugin_src.js +1 -1
  114. data/templates/tiny_mce/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  115. data/templates/tiny_mce/tiny_mce/plugins/autosave/editor_plugin_src.js +1 -1
  116. data/templates/tiny_mce/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  117. data/templates/tiny_mce/tiny_mce/plugins/contextmenu/editor_plugin_src.js +1 -1
  118. data/templates/tiny_mce/tiny_mce/plugins/emotions/emotions.htm +1 -1
  119. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  120. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  121. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  122. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  123. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  124. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  125. data/templates/tiny_mce/tiny_mce/plugins/example/dialog.htm +1 -1
  126. data/templates/tiny_mce/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
  127. data/templates/tiny_mce/tiny_mce/plugins/example_dependency/editor_plugin_src.js +1 -0
  128. data/templates/tiny_mce/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
  129. data/templates/tiny_mce/tiny_mce/plugins/fullpage/editor_plugin_src.js +1 -1
  130. data/templates/tiny_mce/tiny_mce/plugins/fullpage/fullpage.htm +1 -1
  131. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
  132. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +1 -1
  133. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  134. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  135. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  136. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  137. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  138. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +1 -1
  139. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/template.htm +1 -1
  140. data/templates/tiny_mce/tiny_mce/plugins/lists/editor_plugin.js +1 -1
  141. data/templates/tiny_mce/tiny_mce/plugins/lists/editor_plugin_src.js +1 -1
  142. data/templates/tiny_mce/tiny_mce/plugins/media/editor_plugin.js +1 -1
  143. data/templates/tiny_mce/tiny_mce/plugins/media/editor_plugin_src.js +1 -1
  144. data/templates/tiny_mce/tiny_mce/plugins/media/js/media.js +1 -1
  145. data/templates/tiny_mce/tiny_mce/plugins/media/langs/en_dlg.js +1 -1
  146. data/templates/tiny_mce/tiny_mce/plugins/media/media.htm +1 -1
  147. data/templates/tiny_mce/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
  148. data/templates/tiny_mce/tiny_mce/plugins/noneditable/editor_plugin_src.js +1 -1
  149. data/templates/tiny_mce/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  150. data/templates/tiny_mce/tiny_mce/plugins/paste/editor_plugin_src.js +1 -1
  151. data/templates/tiny_mce/tiny_mce/plugins/paste/pastetext.htm +1 -1
  152. data/templates/tiny_mce/tiny_mce/plugins/paste/pasteword.htm +1 -1
  153. data/templates/tiny_mce/tiny_mce/plugins/preview/example.html +16 -17
  154. data/templates/tiny_mce/tiny_mce/plugins/preview/preview.html +9 -10
  155. data/templates/tiny_mce/tiny_mce/plugins/searchreplace/searchreplace.htm +1 -1
  156. data/templates/tiny_mce/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
  157. data/templates/tiny_mce/tiny_mce/plugins/spellchecker/editor_plugin_src.js +1 -1
  158. data/templates/tiny_mce/tiny_mce/plugins/style/js/props.js +1 -1
  159. data/templates/tiny_mce/tiny_mce/plugins/style/props.htm +1 -1
  160. data/templates/tiny_mce/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  161. data/templates/tiny_mce/tiny_mce/plugins/tabfocus/editor_plugin_src.js +1 -1
  162. data/templates/tiny_mce/tiny_mce/plugins/table/cell.htm +1 -1
  163. data/templates/tiny_mce/tiny_mce/plugins/table/editor_plugin.js +1 -1
  164. data/templates/tiny_mce/tiny_mce/plugins/table/editor_plugin_src.js +1 -1
  165. data/templates/tiny_mce/tiny_mce/plugins/table/js/cell.js +1 -1
  166. data/templates/tiny_mce/tiny_mce/plugins/table/js/row.js +1 -1
  167. data/templates/tiny_mce/tiny_mce/plugins/table/langs/de_dlg.js +1 -1
  168. data/templates/tiny_mce/tiny_mce/plugins/table/langs/en_dlg.js +1 -1
  169. data/templates/tiny_mce/tiny_mce/plugins/table/merge_cells.htm +1 -1
  170. data/templates/tiny_mce/tiny_mce/plugins/table/row.htm +1 -1
  171. data/templates/tiny_mce/tiny_mce/plugins/table/table.htm +1 -1
  172. data/templates/tiny_mce/tiny_mce/plugins/template/blank.htm +1 -1
  173. data/templates/tiny_mce/tiny_mce/plugins/template/template.htm +1 -1
  174. data/templates/tiny_mce/tiny_mce/plugins/wordcount/editor_plugin.js +1 -1
  175. data/templates/tiny_mce/tiny_mce/plugins/wordcount/editor_plugin_src.js +1 -1
  176. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/abbr.htm +1 -1
  177. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/acronym.htm +1 -1
  178. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/attributes.htm +1 -1
  179. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/cite.htm +1 -1
  180. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/del.htm +1 -1
  181. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/ins.htm +1 -1
  182. data/templates/tiny_mce/tiny_mce/themes/advanced/about.htm +1 -1
  183. data/templates/tiny_mce/tiny_mce/themes/advanced/anchor.htm +1 -1
  184. data/templates/tiny_mce/tiny_mce/themes/advanced/color_picker.htm +1 -1
  185. data/templates/tiny_mce/tiny_mce/themes/advanced/editor_template.js +1 -1
  186. data/templates/tiny_mce/tiny_mce/themes/advanced/editor_template_src.js +1 -1
  187. data/templates/tiny_mce/tiny_mce/themes/advanced/image.htm +1 -1
  188. data/templates/tiny_mce/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  189. data/templates/tiny_mce/tiny_mce/themes/advanced/img/flash.gif +0 -0
  190. data/templates/tiny_mce/tiny_mce/themes/advanced/img/icons.gif +0 -0
  191. data/templates/tiny_mce/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  192. data/templates/tiny_mce/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  193. data/templates/tiny_mce/tiny_mce/themes/advanced/js/image.js +1 -1
  194. data/templates/tiny_mce/tiny_mce/themes/advanced/langs/de.js +1 -1
  195. data/templates/tiny_mce/tiny_mce/themes/advanced/link.htm +1 -1
  196. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/content.css +1 -1
  197. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/dialog.css +1 -1
  198. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  199. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  200. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  201. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/ui.css +1 -1
  202. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +1 -1
  203. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/highcontrast/ui.css +1 -1
  204. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/content.css +1 -1
  205. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/dialog.css +1 -1
  206. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  207. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  208. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  209. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/ui.css +1 -1
  210. data/templates/tiny_mce/tiny_mce/themes/advanced/source_editor.htm +1 -1
  211. data/templates/tiny_mce/tiny_mce/themes/simple/img/icons.gif +0 -0
  212. data/templates/tiny_mce/tiny_mce/themes/simple/skins/default/ui.css +1 -1
  213. data/templates/tiny_mce/tiny_mce/themes/simple/skins/o2k7/ui.css +1 -1
  214. data/templates/tiny_mce/tiny_mce/tiny_mce.js +1 -1
  215. data/templates/tools/flowplayer.min.js +1 -1
  216. data/templates/tools/jquery.tools.js +17 -17
  217. data/templates/tools/jquery.tools.min.js +22 -22
  218. metadata +17 -9
  219. data/templates/emulators/emulators/palm.pre.2.landscape.png +0 -0
  220. data/templates/emulators/emulators/palm.pre.2.portrait.png +0 -0
@@ -76,8 +76,8 @@ if (jQuery)( function() {
76
76
  $(menu).find('LI.hover').removeClass('hover');
77
77
  $(this).parent().addClass('hover');
78
78
  }).mouseout(function() {
79
- $(menu).find('LI.hover').removeClass('hover');
80
- });
79
+ $(menu).find('LI.hover').removeClass('hover');
80
+ });
81
81
 
82
82
  // Keyboard
83
83
  $(document).keypress(function(e) {
@@ -39,158 +39,158 @@
39
39
  jQuery.easing['jswing'] = jQuery.easing['swing'];
40
40
 
41
41
  jQuery.extend(jQuery.easing,
42
- {
43
- def: 'easeOutQuad',
44
- swing: function (x, t, b, c, d) {
45
- //alert(jQuery.easing.default);
46
- return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
47
- },
48
- easeInQuad: function (x, t, b, c, d) {
49
- return c * (t /= d) * t + b;
50
- },
51
- easeOutQuad: function (x, t, b, c, d) {
52
- return -c * (t /= d) * (t - 2) + b;
53
- },
54
- easeInOutQuad: function (x, t, b, c, d) {
55
- if ((t /= d / 2) < 1) return c / 2 * t * t + b;
56
- return -c / 2 * ((--t) * (t - 2) - 1) + b;
57
- },
58
- easeInCubic: function (x, t, b, c, d) {
59
- return c * (t /= d) * t * t + b;
60
- },
61
- easeOutCubic: function (x, t, b, c, d) {
62
- return c * ((t = t / d - 1) * t * t + 1) + b;
63
- },
64
- easeInOutCubic: function (x, t, b, c, d) {
65
- if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
66
- return c / 2 * ((t -= 2) * t * t + 2) + b;
67
- },
68
- easeInQuart: function (x, t, b, c, d) {
69
- return c * (t /= d) * t * t * t + b;
70
- },
71
- easeOutQuart: function (x, t, b, c, d) {
72
- return -c * ((t = t / d - 1) * t * t * t - 1) + b;
73
- },
74
- easeInOutQuart: function (x, t, b, c, d) {
75
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
76
- return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
77
- },
78
- easeInQuint: function (x, t, b, c, d) {
79
- return c * (t /= d) * t * t * t * t + b;
80
- },
81
- easeOutQuint: function (x, t, b, c, d) {
82
- return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
83
- },
84
- easeInOutQuint: function (x, t, b, c, d) {
85
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
86
- return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
87
- },
88
- easeInSine: function (x, t, b, c, d) {
89
- return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
90
- },
91
- easeOutSine: function (x, t, b, c, d) {
92
- return c * Math.sin(t / d * (Math.PI / 2)) + b;
93
- },
94
- easeInOutSine: function (x, t, b, c, d) {
95
- return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
96
- },
97
- easeInExpo: function (x, t, b, c, d) {
98
- return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
99
- },
100
- easeOutExpo: function (x, t, b, c, d) {
101
- return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
102
- },
103
- easeInOutExpo: function (x, t, b, c, d) {
104
- if (t == 0) return b;
105
- if (t == d) return b + c;
106
- if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
107
- return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
108
- },
109
- easeInCirc: function (x, t, b, c, d) {
110
- return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
111
- },
112
- easeOutCirc: function (x, t, b, c, d) {
113
- return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
114
- },
115
- easeInOutCirc: function (x, t, b, c, d) {
116
- if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
117
- return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
118
- },
119
- easeInElastic: function (x, t, b, c, d) {
120
- var s = 1.70158;
121
- var p = 0;
122
- var a = c;
123
- if (t == 0) return b;
124
- if ((t /= d) == 1) return b + c;
125
- if (!p) p = d * .3;
126
- if (a < Math.abs(c)) {
127
- a = c;
128
- var s = p / 4;
129
- }
130
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
131
- return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
132
- },
133
- easeOutElastic: function (x, t, b, c, d) {
134
- var s = 1.70158;
135
- var p = 0;
136
- var a = c;
137
- if (t == 0) return b;
138
- if ((t /= d) == 1) return b + c;
139
- if (!p) p = d * .3;
140
- if (a < Math.abs(c)) {
141
- a = c;
142
- var s = p / 4;
143
- }
144
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
145
- return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
146
- },
147
- easeInOutElastic: function (x, t, b, c, d) {
148
- var s = 1.70158;
149
- var p = 0;
150
- var a = c;
151
- if (t == 0) return b;
152
- if ((t /= d / 2) == 2) return b + c;
153
- if (!p) p = d * (.3 * 1.5);
154
- if (a < Math.abs(c)) {
155
- a = c;
156
- var s = p / 4;
157
- }
158
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
159
- if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
160
- return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
161
- },
162
- easeInBack: function (x, t, b, c, d, s) {
163
- if (s == undefined) s = 1.70158;
164
- return c * (t /= d) * t * ((s + 1) * t - s) + b;
165
- },
166
- easeOutBack: function (x, t, b, c, d, s) {
167
- if (s == undefined) s = 1.70158;
168
- return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
169
- },
170
- easeInOutBack: function (x, t, b, c, d, s) {
171
- if (s == undefined) s = 1.70158;
172
- if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
173
- return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
174
- },
175
- easeInBounce: function (x, t, b, c, d) {
176
- return c - jQuery.easing.easeOutBounce(x, d - t, 0, c, d) + b;
177
- },
178
- easeOutBounce: function (x, t, b, c, d) {
179
- if ((t /= d) < (1 / 2.75)) {
180
- return c * (7.5625 * t * t) + b;
181
- } else if (t < (2 / 2.75)) {
182
- return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
183
- } else if (t < (2.5 / 2.75)) {
184
- return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
185
- } else {
186
- return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
187
- }
188
- },
189
- easeInOutBounce: function (x, t, b, c, d) {
190
- if (t < d / 2) return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;
191
- return jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;
192
- }
193
- });
42
+ {
43
+ def: 'easeOutQuad',
44
+ swing: function (x, t, b, c, d) {
45
+ //alert(jQuery.easing.default);
46
+ return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
47
+ },
48
+ easeInQuad: function (x, t, b, c, d) {
49
+ return c * (t /= d) * t + b;
50
+ },
51
+ easeOutQuad: function (x, t, b, c, d) {
52
+ return -c * (t /= d) * (t - 2) + b;
53
+ },
54
+ easeInOutQuad: function (x, t, b, c, d) {
55
+ if ((t /= d / 2) < 1) return c / 2 * t * t + b;
56
+ return -c / 2 * ((--t) * (t - 2) - 1) + b;
57
+ },
58
+ easeInCubic: function (x, t, b, c, d) {
59
+ return c * (t /= d) * t * t + b;
60
+ },
61
+ easeOutCubic: function (x, t, b, c, d) {
62
+ return c * ((t = t / d - 1) * t * t + 1) + b;
63
+ },
64
+ easeInOutCubic: function (x, t, b, c, d) {
65
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
66
+ return c / 2 * ((t -= 2) * t * t + 2) + b;
67
+ },
68
+ easeInQuart: function (x, t, b, c, d) {
69
+ return c * (t /= d) * t * t * t + b;
70
+ },
71
+ easeOutQuart: function (x, t, b, c, d) {
72
+ return -c * ((t = t / d - 1) * t * t * t - 1) + b;
73
+ },
74
+ easeInOutQuart: function (x, t, b, c, d) {
75
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
76
+ return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
77
+ },
78
+ easeInQuint: function (x, t, b, c, d) {
79
+ return c * (t /= d) * t * t * t * t + b;
80
+ },
81
+ easeOutQuint: function (x, t, b, c, d) {
82
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
83
+ },
84
+ easeInOutQuint: function (x, t, b, c, d) {
85
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
86
+ return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
87
+ },
88
+ easeInSine: function (x, t, b, c, d) {
89
+ return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
90
+ },
91
+ easeOutSine: function (x, t, b, c, d) {
92
+ return c * Math.sin(t / d * (Math.PI / 2)) + b;
93
+ },
94
+ easeInOutSine: function (x, t, b, c, d) {
95
+ return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
96
+ },
97
+ easeInExpo: function (x, t, b, c, d) {
98
+ return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
99
+ },
100
+ easeOutExpo: function (x, t, b, c, d) {
101
+ return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
102
+ },
103
+ easeInOutExpo: function (x, t, b, c, d) {
104
+ if (t == 0) return b;
105
+ if (t == d) return b + c;
106
+ if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
107
+ return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
108
+ },
109
+ easeInCirc: function (x, t, b, c, d) {
110
+ return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
111
+ },
112
+ easeOutCirc: function (x, t, b, c, d) {
113
+ return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
114
+ },
115
+ easeInOutCirc: function (x, t, b, c, d) {
116
+ if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
117
+ return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
118
+ },
119
+ easeInElastic: function (x, t, b, c, d) {
120
+ var s = 1.70158;
121
+ var p = 0;
122
+ var a = c;
123
+ if (t == 0) return b;
124
+ if ((t /= d) == 1) return b + c;
125
+ if (!p) p = d * .3;
126
+ if (a < Math.abs(c)) {
127
+ a = c;
128
+ var s = p / 4;
129
+ }
130
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
131
+ return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
132
+ },
133
+ easeOutElastic: function (x, t, b, c, d) {
134
+ var s = 1.70158;
135
+ var p = 0;
136
+ var a = c;
137
+ if (t == 0) return b;
138
+ if ((t /= d) == 1) return b + c;
139
+ if (!p) p = d * .3;
140
+ if (a < Math.abs(c)) {
141
+ a = c;
142
+ var s = p / 4;
143
+ }
144
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
145
+ return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
146
+ },
147
+ easeInOutElastic: function (x, t, b, c, d) {
148
+ var s = 1.70158;
149
+ var p = 0;
150
+ var a = c;
151
+ if (t == 0) return b;
152
+ if ((t /= d / 2) == 2) return b + c;
153
+ if (!p) p = d * (.3 * 1.5);
154
+ if (a < Math.abs(c)) {
155
+ a = c;
156
+ var s = p / 4;
157
+ }
158
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
159
+ if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
160
+ return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
161
+ },
162
+ easeInBack: function (x, t, b, c, d, s) {
163
+ if (s == undefined) s = 1.70158;
164
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
165
+ },
166
+ easeOutBack: function (x, t, b, c, d, s) {
167
+ if (s == undefined) s = 1.70158;
168
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
169
+ },
170
+ easeInOutBack: function (x, t, b, c, d, s) {
171
+ if (s == undefined) s = 1.70158;
172
+ if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
173
+ return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
174
+ },
175
+ easeInBounce: function (x, t, b, c, d) {
176
+ return c - jQuery.easing.easeOutBounce(x, d - t, 0, c, d) + b;
177
+ },
178
+ easeOutBounce: function (x, t, b, c, d) {
179
+ if ((t /= d) < (1 / 2.75)) {
180
+ return c * (7.5625 * t * t) + b;
181
+ } else if (t < (2 / 2.75)) {
182
+ return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
183
+ } else if (t < (2.5 / 2.75)) {
184
+ return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
185
+ } else {
186
+ return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
187
+ }
188
+ },
189
+ easeInOutBounce: function (x, t, b, c, d) {
190
+ if (t < d / 2) return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;
191
+ return jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;
192
+ }
193
+ });
194
194
 
195
195
  /*
196
196
  *
@@ -1,8 +1,8 @@
1
1
  jQuery.easing.jswing=jQuery.easing.swing;
2
- jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,a,c,b,d){return jQuery.easing[jQuery.easing.def](e,a,c,b,d)},easeInQuad:function(e,a,c,b,d){return b*(a/=d)*a+c},easeOutQuad:function(e,a,c,b,d){return-b*(a/=d)*(a-2)+c},easeInOutQuad:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a+c;return-b/2*(--a*(a-2)-1)+c},easeInCubic:function(e,a,c,b,d){return b*(a/=d)*a*a+c},easeOutCubic:function(e,a,c,b,d){return b*((a=a/d-1)*a*a+1)+c},easeInOutCubic:function(e,a,c,b,d){if((a/=d/2)<1)return b/
3
- 2*a*a*a+c;return b/2*((a-=2)*a*a+2)+c},easeInQuart:function(e,a,c,b,d){return b*(a/=d)*a*a*a+c},easeOutQuart:function(e,a,c,b,d){return-b*((a=a/d-1)*a*a*a-1)+c},easeInOutQuart:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a*a*a+c;return-b/2*((a-=2)*a*a*a-2)+c},easeInQuint:function(e,a,c,b,d){return b*(a/=d)*a*a*a*a+c},easeOutQuint:function(e,a,c,b,d){return b*((a=a/d-1)*a*a*a*a+1)+c},easeInOutQuint:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a*a*a*a+c;return b/2*((a-=2)*a*a*a*a+2)+c},easeInSine:function(e,
4
- a,c,b,d){return-b*Math.cos(a/d*(Math.PI/2))+b+c},easeOutSine:function(e,a,c,b,d){return b*Math.sin(a/d*(Math.PI/2))+c},easeInOutSine:function(e,a,c,b,d){return-b/2*(Math.cos(Math.PI*a/d)-1)+c},easeInExpo:function(e,a,c,b,d){return a==0?c:b*Math.pow(2,10*(a/d-1))+c},easeOutExpo:function(e,a,c,b,d){return a==d?c+b:b*(-Math.pow(2,-10*a/d)+1)+c},easeInOutExpo:function(e,a,c,b,d){if(a==0)return c;if(a==d)return c+b;if((a/=d/2)<1)return b/2*Math.pow(2,10*(a-1))+c;return b/2*(-Math.pow(2,-10*--a)+2)+c},
5
- easeInCirc:function(e,a,c,b,d){return-b*(Math.sqrt(1-(a/=d)*a)-1)+c},easeOutCirc:function(e,a,c,b,d){return b*Math.sqrt(1-(a=a/d-1)*a)+c},easeInOutCirc:function(e,a,c,b,d){if((a/=d/2)<1)return-b/2*(Math.sqrt(1-a*a)-1)+c;return b/2*(Math.sqrt(1-(a-=2)*a)+1)+c},easeInElastic:function(e,a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=d)==1)return c+b;f||(f=d*0.3);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return-(g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f))+c},easeOutElastic:function(e,
6
- a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=d)==1)return c+b;f||(f=d*0.3);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return g*Math.pow(2,-10*a)*Math.sin((a*d-e)*2*Math.PI/f)+b+c},easeInOutElastic:function(e,a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=d/2)==2)return c+b;f||(f=d*0.3*1.5);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);if(a<1)return-0.5*g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f)+c;return g*Math.pow(2,-10*(a-=1))*Math.sin((a*d-e)*
7
- 2*Math.PI/f)*0.5+b+c},easeInBack:function(e,a,c,b,d,f){f==void 0&&(f=1.70158);return b*(a/=d)*a*((f+1)*a-f)+c},easeOutBack:function(e,a,c,b,d,f){f==void 0&&(f=1.70158);return b*((a=a/d-1)*a*((f+1)*a+f)+1)+c},easeInOutBack:function(e,a,c,b,d,f){f==void 0&&(f=1.70158);if((a/=d/2)<1)return b/2*a*a*(((f*=1.525)+1)*a-f)+c;return b/2*((a-=2)*a*(((f*=1.525)+1)*a+f)+2)+c},easeInBounce:function(e,a,c,b,d){return b-jQuery.easing.easeOutBounce(e,d-a,0,b,d)+c},easeOutBounce:function(e,a,c,b,d){return(a/=d)<1/
8
- 2.75?b*7.5625*a*a+c:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+0.75)+c:a<2.5/2.75?b*(7.5625*(a-=2.25/2.75)*a+0.9375)+c:b*(7.5625*(a-=2.625/2.75)*a+0.984375)+c},easeInOutBounce:function(e,a,c,b,d){if(a<d/2)return jQuery.easing.easeInBounce(e,a*2,0,b,d)*0.5+c;return jQuery.easing.easeOutBounce(e,a*2-d,0,b,d)*0.5+b*0.5+c}});
2
+ jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,a,c,b,d){return jQuery.easing[jQuery.easing.def](e,a,c,b,d)},easeInQuad:function(e,a,c,b,d){return b*(a/=d)*a+c},easeOutQuad:function(e,a,c,b,d){return-b*(a/=d)*(a-2)+c},easeInOutQuad:function(e,a,c,b,d){return(a/=d/2)<1?b/2*a*a+c:-b/2*(--a*(a-2)-1)+c},easeInCubic:function(e,a,c,b,d){return b*(a/=d)*a*a+c},easeOutCubic:function(e,a,c,b,d){return b*((a=a/d-1)*a*a+1)+c},easeInOutCubic:function(e,a,c,b,d){return(a/=d/2)<1?b/2*a*a*a+c:b/
3
+ 2*((a-=2)*a*a+2)+c},easeInQuart:function(e,a,c,b,d){return b*(a/=d)*a*a*a+c},easeOutQuart:function(e,a,c,b,d){return-b*((a=a/d-1)*a*a*a-1)+c},easeInOutQuart:function(e,a,c,b,d){return(a/=d/2)<1?b/2*a*a*a*a+c:-b/2*((a-=2)*a*a*a-2)+c},easeInQuint:function(e,a,c,b,d){return b*(a/=d)*a*a*a*a+c},easeOutQuint:function(e,a,c,b,d){return b*((a=a/d-1)*a*a*a*a+1)+c},easeInOutQuint:function(e,a,c,b,d){return(a/=d/2)<1?b/2*a*a*a*a*a+c:b/2*((a-=2)*a*a*a*a+2)+c},easeInSine:function(e,a,c,b,d){return-b*Math.cos(a/
4
+ d*(Math.PI/2))+b+c},easeOutSine:function(e,a,c,b,d){return b*Math.sin(a/d*(Math.PI/2))+c},easeInOutSine:function(e,a,c,b,d){return-b/2*(Math.cos(Math.PI*a/d)-1)+c},easeInExpo:function(e,a,c,b,d){return a==0?c:b*Math.pow(2,10*(a/d-1))+c},easeOutExpo:function(e,a,c,b,d){return a==d?c+b:b*(-Math.pow(2,-10*a/d)+1)+c},easeInOutExpo:function(e,a,c,b,d){return a==0?c:a==d?c+b:(a/=d/2)<1?b/2*Math.pow(2,10*(a-1))+c:b/2*(-Math.pow(2,-10*--a)+2)+c},easeInCirc:function(e,a,c,b,d){return-b*(Math.sqrt(1-(a/=d)*
5
+ a)-1)+c},easeOutCirc:function(e,a,c,b,d){return b*Math.sqrt(1-(a=a/d-1)*a)+c},easeInOutCirc:function(e,a,c,b,d){return(a/=d/2)<1?-b/2*(Math.sqrt(1-a*a)-1)+c:b/2*(Math.sqrt(1-(a-=2)*a)+1)+c},easeInElastic:function(e,a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=d)==1)return c+b;f||(f=d*0.3);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return-(g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f))+c},easeOutElastic:function(e,a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=
6
+ d)==1)return c+b;f||(f=d*0.3);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return g*Math.pow(2,-10*a)*Math.sin((a*d-e)*2*Math.PI/f)+b+c},easeInOutElastic:function(e,a,c,b,d){var e=1.70158,f=0,g=b;if(a==0)return c;if((a/=d/2)==2)return c+b;f||(f=d*0.3*1.5);g<Math.abs(b)?(g=b,e=f/4):e=f/(2*Math.PI)*Math.asin(b/g);return a<1?-0.5*g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f)+c:g*Math.pow(2,-10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f)*0.5+b+c},easeInBack:function(e,a,c,b,d,f){f==void 0&&
7
+ (f=1.70158);return b*(a/=d)*a*((f+1)*a-f)+c},easeOutBack:function(e,a,c,b,d,f){f==void 0&&(f=1.70158);return b*((a=a/d-1)*a*((f+1)*a+f)+1)+c},easeInOutBack:function(e,a,c,b,d,f){f==void 0&&(f=1.70158);return(a/=d/2)<1?b/2*a*a*(((f*=1.525)+1)*a-f)+c:b/2*((a-=2)*a*(((f*=1.525)+1)*a+f)+2)+c},easeInBounce:function(e,a,c,b,d){return b-jQuery.easing.easeOutBounce(e,d-a,0,b,d)+c},easeOutBounce:function(e,a,c,b,d){return(a/=d)<1/2.75?b*7.5625*a*a+c:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+0.75)+c:a<2.5/2.75?b*
8
+ (7.5625*(a-=2.25/2.75)*a+0.9375)+c:b*(7.5625*(a-=2.625/2.75)*a+0.984375)+c},easeInOutBounce:function(e,a,c,b,d){return a<d/2?jQuery.easing.easeInBounce(e,a*2,0,b,d)*0.5+c:jQuery.easing.easeOutBounce(e,a*2-d,0,b,d)*0.5+b*0.5+c}});
@@ -6,5 +6,5 @@ b=e;for(e={x:0,y:0};b;){if(typeof b.mouseX!="undefined"){g=b.mouseX-e.x;c=b.mous
6
6
  document.dragging=!0;var g=a.widgetCoords(b);a.circleDrag=Math.max(Math.abs(g.x),Math.abs(g.y))*2>a.square;a.mousemove(b);return!1};a.mousemove=function(b){b=a.widgetCoords(b);a.circleDrag?(b=Math.atan2(b.x,-b.y)/6.28,b<0&&(b+=1),a.setHSL([b,a.hsl[1],a.hsl[2]])):a.setHSL([a.hsl[0],Math.max(0,Math.min(1,-(b.x/a.square)+0.5)),Math.max(0,Math.min(1,-(b.y/a.square)+0.5))]);return!1};a.mouseup=function(){$(document).unbind("mousemove",a.mousemove);$(document).unbind("mouseup",a.mouseup);document.dragging=
7
7
  !1};a.updateDisplay=function(){var b=a.hsl[0]*6.28;$(".h-marker",j).css({left:Math.round(Math.sin(b)*a.radius+a.width/2)+"px",top:Math.round(-Math.cos(b)*a.radius+a.width/2)+"px"});$(".sl-marker",j).css({left:Math.round(a.square*(0.5-a.hsl[1])+a.width/2)+"px",top:Math.round(a.square*(0.5-a.hsl[2])+a.width/2)+"px"});$(".color",j).css("backgroundColor",a.pack(a.HSLToRGB([a.hsl[0],1,0.5])));typeof a.callback=="object"?($(a.callback).css({backgroundColor:a.color,color:a.hsl[2]>0.5?"#000":"#fff"}),$(a.callback).each(function(){if(this.value&&
8
8
  this.value!=a.color)this.value=a.color})):typeof a.callback=="function"&&a.callback.call(a,a.color)};a.absolutePosition=function(b){var g={x:b.offsetLeft,y:b.offsetTop};b.offsetParent&&(b=a.absolutePosition(b.offsetParent),g.x+=b.x,g.y+=b.y);return g};a.pack=function(b){var a=Math.round(b[0]*255),c=Math.round(b[1]*255),b=Math.round(b[2]*255);return"#"+(a<16?"0":"")+a.toString(16)+(c<16?"0":"")+c.toString(16)+(b<16?"0":"")+b.toString(16)};a.unpack=function(b){if(b.length==7)return[parseInt("0x"+b.substring(1,
9
- 3))/255,parseInt("0x"+b.substring(3,5))/255,parseInt("0x"+b.substring(5,7))/255];else if(b.length==4)return[parseInt("0x"+b.substring(1,2))/15,parseInt("0x"+b.substring(2,3))/15,parseInt("0x"+b.substring(3,4))/15]};a.HSLToRGB=function(b){var a,c=b[0];a=b[1];b=b[2];a=b<=0.5?b*(a+1):b+a-b*a;b=b*2-a;return[this.hueToRGB(b,a,c+0.33333),this.hueToRGB(b,a,c),this.hueToRGB(b,a,c-0.33333)]};a.hueToRGB=function(b,a,c){c=c<0?c+1:c>1?c-1:c;if(c*6<1)return b+(a-b)*c*6;if(c*2<1)return a;if(c*3<2)return b+(a-b)*
10
- (0.66666-c)*6;return b};a.RGBToHSL=function(b){var a,c,d,e,f=b[0],h=b[1],i=b[2];a=Math.min(f,Math.min(h,i));b=Math.max(f,Math.max(h,i));c=b-a;e=(a+b)/2;d=0;e>0&&e<1&&(d=c/(e<0.5?2*e:2-2*e));a=0;c>0&&(b==f&&b!=h&&(a+=(h-i)/c),b==h&&b!=i&&(a+=2+(i-f)/c),b==i&&b!=f&&(a+=4+(f-h)/c),a/=6);return[a,d,e]};$("*",j).mousedown(a.mousedown);a.setColor("#000000");k&&a.linkTo(k)};
9
+ 3))/255,parseInt("0x"+b.substring(3,5))/255,parseInt("0x"+b.substring(5,7))/255];else if(b.length==4)return[parseInt("0x"+b.substring(1,2))/15,parseInt("0x"+b.substring(2,3))/15,parseInt("0x"+b.substring(3,4))/15]};a.HSLToRGB=function(b){var a,c=b[0];a=b[1];b=b[2];a=b<=0.5?b*(a+1):b+a-b*a;b=b*2-a;return[this.hueToRGB(b,a,c+0.33333),this.hueToRGB(b,a,c),this.hueToRGB(b,a,c-0.33333)]};a.hueToRGB=function(b,a,c){c=c<0?c+1:c>1?c-1:c;return c*6<1?b+(a-b)*c*6:c*2<1?a:c*3<2?b+(a-b)*(0.66666-c)*6:b};a.RGBToHSL=
10
+ function(b){var a,c,d,e,f=b[0],h=b[1],i=b[2];a=Math.min(f,Math.min(h,i));b=Math.max(f,Math.max(h,i));c=b-a;e=(a+b)/2;d=0;e>0&&e<1&&(d=c/(e<0.5?2*e:2-2*e));a=0;c>0&&(b==f&&b!=h&&(a+=(h-i)/c),b==h&&b!=i&&(a+=2+(i-f)/c),b==i&&b!=f&&(a+=4+(f-h)/c),a/=6);return[a,d,e]};$("*",j).mousedown(a.mousedown);a.setColor("#000000");k&&a.linkTo(k)};
@@ -504,36 +504,36 @@
504
504
  $(this).ajaxSubmit(options);
505
505
  }
506
506
  }).bind('click.form-plugin', function(e) {
507
- var target = e.target;
508
- var $el = $(target);
509
- if (!($el.is(":submit,input:image"))) {
510
- // is this a child element of the submit el? (ex: a span within a button)
511
- var t = $el.closest(':submit');
512
- if (t.length == 0) {
513
- return;
514
- }
515
- target = t[0];
516
- }
517
- var form = this;
518
- form.clk = target;
519
- if (target.type == 'image') {
520
- if (e.offsetX != undefined) {
521
- form.clk_x = e.offsetX;
522
- form.clk_y = e.offsetY;
523
- } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
524
- var offset = $el.offset();
525
- form.clk_x = e.pageX - offset.left;
526
- form.clk_y = e.pageY - offset.top;
527
- } else {
528
- form.clk_x = e.pageX - target.offsetLeft;
529
- form.clk_y = e.pageY - target.offsetTop;
530
- }
531
- }
532
- // clear form vars
533
- setTimeout(function() {
534
- form.clk = form.clk_x = form.clk_y = null;
535
- }, 100);
536
- });
507
+ var target = e.target;
508
+ var $el = $(target);
509
+ if (!($el.is(":submit,input:image"))) {
510
+ // is this a child element of the submit el? (ex: a span within a button)
511
+ var t = $el.closest(':submit');
512
+ if (t.length == 0) {
513
+ return;
514
+ }
515
+ target = t[0];
516
+ }
517
+ var form = this;
518
+ form.clk = target;
519
+ if (target.type == 'image') {
520
+ if (e.offsetX != undefined) {
521
+ form.clk_x = e.offsetX;
522
+ form.clk_y = e.offsetY;
523
+ } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
524
+ var offset = $el.offset();
525
+ form.clk_x = e.pageX - offset.left;
526
+ form.clk_y = e.pageY - offset.top;
527
+ } else {
528
+ form.clk_x = e.pageX - target.offsetLeft;
529
+ form.clk_y = e.pageY - target.offsetTop;
530
+ }
531
+ }
532
+ // clear form vars
533
+ setTimeout(function() {
534
+ form.clk = form.clk_x = form.clk_y = null;
535
+ }, 100);
536
+ });
537
537
  };
538
538
 
539
539
  // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
@@ -1,5 +1,5 @@
1
- (function(d){function h(b,a){if(b===void 0)return a==="undefined";if(b===null)return a==="null";return b.constructor.toString().match(RegExp(a,"i"))!==null}function n(b,a){if(b&&b[a]){var d=b[a];delete b[a];return d}}function r(b){if(typeof b!=="string"||b.length<2)return!1;b=b.charAt(0);if(!(b==="."||b==="#"||b==="%"))return!1;return!0}function o(b,a){var s;function f(b,a){a===void 0||a===null||(a.nodeType||a.jquery?b.append(a):h(a,"String")&&a.length>0?(a[0]==="\\"&&(a=a.substr(1)),b.append(document.createTextNode(a))):
2
- h(a,"Number")?b.append(document.createTextNode(a)):h(a,"Array")&&a.length>0&&o(b,a))}var k,j,c,e,i,l,g;c=Array.prototype.slice.call(a,0);c.length&&c.length>0?(r(c[0])&&(e=c.shift(),i=e.match(/\.[^\.#]+/g),l=e.match(/#[^\.#]+/g),s=(e=e.match(/^%([^\.#]+)/g))?e[0].substr(1):"div",e=s,g=d(document.createElement(e)),c.length>0&&h(c[0],"Object")&&!c[0].nodeType&&!c[0].jquery&&(e=c.shift(),k=n(e,"css"),j=n(e,"$"),g.attr(e)),l&&d.each(l,function(){var a,b;a=this.substr(1);(b=g.attr("id"))?g.attr("id",b+
3
- " "+a):g.attr("id",a)}),i&&d.each(i,function(){g.addClass(this.substr(1))}),k&&g.css(k),b.append(g),b=g,j&&d.each(j,function(a){m.push({node:b,method:a,params:this})})),d.each(c,function(){f(b,this)})):f(b,c)}function p(){d.each(m,function(){if(this.method==="$")this.params.apply(this.node,[]);else{if(!h(this.params,"Array"))this.params=[this.params];this.node[this.method].apply(this.node,this.params)}});m=[]}function q(b){var a;a=d(document.createElement("div"));o(a,b);this.append(a.contents());
4
- this.closest("body").length>0&&p();return a.contents()}var m=[],i={};d.fn.insertHaml=function(){return q.call(this,Array.prototype.slice.call(arguments,0))};d.fn.haml=function(){q.call(this,Array.prototype.slice.call(arguments,0));return this};d.haml={placeholder:function(b){function a(){var a=d(document.createElement("div"));a.haml(b.apply(this,arguments));return f=a.contents()}var f;return{inject:a,update:function(){var b=arguments;d.each(f,function(f,c){f===0?d(c).replaceWith(a.apply(this,b)):
5
- d(c).remove()});p()}}},onDemand:function(b,a){var f,a=["%div",{style:"text-align: center; cursor: wait"},a||"Loading..."];return function(h){var j=Array.prototype.slice.call(arguments,1);return f=d.haml.placeholder(function(){var c=Util.stringify(j);return i[c]!==void 0?h(i[c]):(b.apply(this,[function(a){i[c]=a;f.update()}].concat(j)),a)})}}}})(jQuery);
1
+ (function(d){function h(b,a){return b===void 0?a==="undefined":b===null?a==="null":b.constructor.toString().match(RegExp(a,"i"))!==null}function n(b,a){if(b&&b[a]){var d=b[a];delete b[a];return d}}function r(b){if(typeof b!=="string"||b.length<2)return!1;b=b.charAt(0);return!(b==="."||b==="#"||b==="%")?!1:!0}function o(b,a){var s;function f(b,a){a===void 0||a===null||(a.nodeType||a.jquery?b.append(a):h(a,"String")&&a.length>0?(a[0]==="\\"&&(a=a.substr(1)),b.append(document.createTextNode(a))):h(a,
2
+ "Number")?b.append(document.createTextNode(a)):h(a,"Array")&&a.length>0&&o(b,a))}var k,j,c,e,i,l,g;c=Array.prototype.slice.call(a,0);c.length&&c.length>0?(r(c[0])&&(e=c.shift(),i=e.match(/\.[^\.#]+/g),l=e.match(/#[^\.#]+/g),s=(e=e.match(/^%([^\.#]+)/g))?e[0].substr(1):"div",e=s,g=d(document.createElement(e)),c.length>0&&h(c[0],"Object")&&!c[0].nodeType&&!c[0].jquery&&(e=c.shift(),k=n(e,"css"),j=n(e,"$"),g.attr(e)),l&&d.each(l,function(){var a,b;a=this.substr(1);(b=g.attr("id"))?g.attr("id",b+" "+
3
+ a):g.attr("id",a)}),i&&d.each(i,function(){g.addClass(this.substr(1))}),k&&g.css(k),b.append(g),b=g,j&&d.each(j,function(a){m.push({node:b,method:a,params:this})})),d.each(c,function(){f(b,this)})):f(b,c)}function p(){d.each(m,function(){if(this.method==="$")this.params.apply(this.node,[]);else{if(!h(this.params,"Array"))this.params=[this.params];this.node[this.method].apply(this.node,this.params)}});m=[]}function q(b){var a;a=d(document.createElement("div"));o(a,b);this.append(a.contents());this.closest("body").length>
4
+ 0&&p();return a.contents()}var m=[],i={};d.fn.insertHaml=function(){return q.call(this,Array.prototype.slice.call(arguments,0))};d.fn.haml=function(){q.call(this,Array.prototype.slice.call(arguments,0));return this};d.haml={placeholder:function(b){function a(){var a=d(document.createElement("div"));a.haml(b.apply(this,arguments));return f=a.contents()}var f;return{inject:a,update:function(){var b=arguments;d.each(f,function(f,c){f===0?d(c).replaceWith(a.apply(this,b)):d(c).remove()});p()}}},onDemand:function(b,
5
+ a){var f,a=["%div",{style:"text-align: center; cursor: wait"},a||"Loading..."];return function(h){var j=Array.prototype.slice.call(arguments,1);return f=d.haml.placeholder(function(){var c=Util.stringify(j);return i[c]!==void 0?h(i[c]):(b.apply(this,[function(a){i[c]=a;f.update()}].concat(j)),a)})}}}})(jQuery);
@@ -1,3 +1,3 @@
1
1
  (function(d){function h(g){if(typeof g.data==="string"){var h=g.handler,i=g.data.toLowerCase().split(" ");g.handler=function(a){if(!(this!==a.target&&(/textarea|select/i.test(a.target.nodeName)||a.target.type==="text"))){var b=a.type!=="keypress"&&d.hotkeys.specialKeys[a.which],e=String.fromCharCode(a.which).toLowerCase(),c="",f={};a.altKey&&b!=="alt"&&(c+="alt+");a.ctrlKey&&b!=="ctrl"&&(c+="ctrl+");a.metaKey&&!a.ctrlKey&&b!=="meta"&&(c+="meta+");a.shiftKey&&b!=="shift"&&(c+="shift+");b?f[c+b]=!0:
2
2
  (f[c+e]=!0,f[c+d.hotkeys.shiftNums[e]]=!0,c==="shift+"&&(f[d.hotkeys.shiftNums[e]]=!0));b=0;for(e=i.length;b<e;b++)if(f[i[b]])return h.apply(this,arguments)}}}}d.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",
3
- 109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};d.each(["keydown","keyup","keypress"],function(){d.event.special[this]={add:h}})})(jQuery);
3
+ 109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};d.each(["keydown","keyup","keypress"],function(){d.event.special[this]={add:h}})})(jQuery);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery JavaScript Library v1.6.1
2
+ * jQuery JavaScript Library v1.6.3
3
3
  * http://jquery.com/
4
4
  *
5
5
  * Copyright 2011, John Resig
@@ -11,7 +11,7 @@
11
11
  * Copyright 2011, The Dojo Foundation
12
12
  * Released under the MIT, BSD, and GPL Licenses.
13
13
  *
14
- * Date: Mon May 23 18:30:18 +0200 2011
14
+ * Date: Sun Sep 11 12:07:24 +0200 2011
15
15
  */
16
16
  (function( window, undefined ) {
17
17
 
@@ -39,8 +39,8 @@ var jQuery = function( selector, context ) {
39
39
  rootjQuery,
40
40
 
41
41
  // A simple way to check for HTML strings or ID strings
42
- // (both of which we optimize for)
43
- quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
42
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
43
+ quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
44
44
 
45
45
  // Check if a string has a non-whitespace character in it
46
46
  rnotwhite = /\S/,
@@ -67,6 +67,15 @@ var jQuery = function( selector, context ) {
67
67
  rmsie = /(msie) ([\w.]+)/,
68
68
  rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
69
69
 
70
+ // Matches dashed string for camelizing
71
+ rdashAlpha = /-([a-z]|[0-9])/ig,
72
+ rmsPrefix = /^-ms-/,
73
+
74
+ // Used by jQuery.camelCase as callback to replace()
75
+ fcamelCase = function( all, letter ) {
76
+ return ( letter + "" ).toUpperCase();
77
+ },
78
+
70
79
  // Keep a UserAgent string for use with jQuery.browser
71
80
  userAgent = navigator.userAgent,
72
81
 
@@ -206,7 +215,7 @@ jQuery.fn = jQuery.prototype = {
206
215
  selector: "",
207
216
 
208
217
  // The current version of jQuery being used
209
- jquery: "1.6.1",
218
+ jquery: "1.6.3",
210
219
 
211
220
  // The default length of a jQuery object is 0
212
221
  length: 0,
@@ -515,10 +524,15 @@ jQuery.extend({
515
524
  return false;
516
525
  }
517
526
 
518
- // Not own constructor property must be Object
519
- if ( obj.constructor &&
520
- !hasOwn.call(obj, "constructor") &&
521
- !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
527
+ try {
528
+ // Not own constructor property must be Object
529
+ if ( obj.constructor &&
530
+ !hasOwn.call(obj, "constructor") &&
531
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
532
+ return false;
533
+ }
534
+ } catch ( e ) {
535
+ // IE8,9 Will throw exceptions on certain host objects #9897
522
536
  return false;
523
537
  }
524
538
 
@@ -568,24 +582,23 @@ jQuery.extend({
568
582
  },
569
583
 
570
584
  // Cross-browser xml parsing
571
- // (xml & tmp used internally)
572
- parseXML: function( data , xml , tmp ) {
573
-
574
- if ( window.DOMParser ) { // Standard
575
- tmp = new DOMParser();
576
- xml = tmp.parseFromString( data , "text/xml" );
577
- } else { // IE
578
- xml = new ActiveXObject( "Microsoft.XMLDOM" );
579
- xml.async = "false";
580
- xml.loadXML( data );
581
- }
582
-
583
- tmp = xml.documentElement;
584
-
585
- if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
585
+ parseXML: function( data ) {
586
+ var xml, tmp;
587
+ try {
588
+ if ( window.DOMParser ) { // Standard
589
+ tmp = new DOMParser();
590
+ xml = tmp.parseFromString( data , "text/xml" );
591
+ } else { // IE
592
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
593
+ xml.async = "false";
594
+ xml.loadXML( data );
595
+ }
596
+ } catch( e ) {
597
+ xml = undefined;
598
+ }
599
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
586
600
  jQuery.error( "Invalid XML: " + data );
587
601
  }
588
-
589
602
  return xml;
590
603
  },
591
604
 
@@ -605,6 +618,12 @@ jQuery.extend({
605
618
  }
606
619
  },
607
620
 
621
+ // Convert dashed to camelCase; used by the css and data modules
622
+ // Microsoft forgot to hump their vendor prefix (#9572)
623
+ camelCase: function( string ) {
624
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
625
+ },
626
+
608
627
  nodeName: function( elem, name ) {
609
628
  return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
610
629
  },
@@ -687,6 +706,9 @@ jQuery.extend({
687
706
  },
688
707
 
689
708
  inArray: function( elem, array ) {
709
+ if ( !array ) {
710
+ return -1;
711
+ }
690
712
 
691
713
  if ( indexOf ) {
692
714
  return indexOf.call( array, elem );
@@ -801,7 +823,7 @@ jQuery.extend({
801
823
  },
802
824
 
803
825
  // Mutifunctional method to get and set values to a collection
804
- // The value/s can be optionally by executed if its a function
826
+ // The value/s can optionally be executed if it's a function
805
827
  access: function( elems, key, value, exec, fn, pass ) {
806
828
  var length = elems.length;
807
829
 
@@ -932,7 +954,6 @@ function doScrollCheck() {
932
954
  jQuery.ready();
933
955
  }
934
956
 
935
- // Expose jQuery to the global object
936
957
  return jQuery;
937
958
 
938
959
  })();
@@ -1062,7 +1083,7 @@ jQuery.extend({
1062
1083
  if ( returned && jQuery.isFunction( returned.promise ) ) {
1063
1084
  returned.promise().then( newDefer.resolve, newDefer.reject );
1064
1085
  } else {
1065
- newDefer[ action ]( returned );
1086
+ newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
1066
1087
  }
1067
1088
  });
1068
1089
  } else {
@@ -1153,7 +1174,9 @@ jQuery.support = (function() {
1153
1174
  support,
1154
1175
  fragment,
1155
1176
  body,
1156
- bodyStyle,
1177
+ testElementParent,
1178
+ testElement,
1179
+ testElementStyle,
1157
1180
  tds,
1158
1181
  events,
1159
1182
  eventName,
@@ -1162,7 +1185,8 @@ jQuery.support = (function() {
1162
1185
 
1163
1186
  // Preliminary tests
1164
1187
  div.setAttribute("className", "t");
1165
- div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
1188
+ div.innerHTML = " <link><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type=checkbox>";
1189
+
1166
1190
 
1167
1191
  all = div.getElementsByTagName( "*" );
1168
1192
  a = div.getElementsByTagName( "a" )[ 0 ];
@@ -1247,11 +1271,10 @@ jQuery.support = (function() {
1247
1271
  }
1248
1272
 
1249
1273
  if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
1250
- div.attachEvent( "onclick", function click() {
1274
+ div.attachEvent( "onclick", function() {
1251
1275
  // Cloning a node shouldn't copy over any
1252
1276
  // bound event handlers (IE does this)
1253
1277
  support.noCloneEvent = false;
1254
- div.detachEvent( "onclick", click );
1255
1278
  });
1256
1279
  div.cloneNode( true ).fireEvent( "onclick" );
1257
1280
  }
@@ -1276,22 +1299,31 @@ jQuery.support = (function() {
1276
1299
  // Figure out if the W3C box model works as expected
1277
1300
  div.style.width = div.style.paddingLeft = "1px";
1278
1301
 
1279
- // We use our own, invisible, body
1280
- body = document.createElement( "body" );
1281
- bodyStyle = {
1302
+ body = document.getElementsByTagName( "body" )[ 0 ];
1303
+ // We use our own, invisible, body unless the body is already present
1304
+ // in which case we use a div (#9239)
1305
+ testElement = document.createElement( body ? "div" : "body" );
1306
+ testElementStyle = {
1282
1307
  visibility: "hidden",
1283
1308
  width: 0,
1284
1309
  height: 0,
1285
1310
  border: 0,
1286
1311
  margin: 0,
1287
- // Set background to avoid IE crashes when removing (#9028)
1288
1312
  background: "none"
1289
1313
  };
1290
- for ( i in bodyStyle ) {
1291
- body.style[ i ] = bodyStyle[ i ];
1314
+ if ( body ) {
1315
+ jQuery.extend( testElementStyle, {
1316
+ position: "absolute",
1317
+ left: "-1000px",
1318
+ top: "-1000px"
1319
+ });
1320
+ }
1321
+ for ( i in testElementStyle ) {
1322
+ testElement.style[ i ] = testElementStyle[ i ];
1292
1323
  }
1293
- body.appendChild( div );
1294
- documentElement.insertBefore( body, documentElement.firstChild );
1324
+ testElement.appendChild( div );
1325
+ testElementParent = body || documentElement;
1326
+ testElementParent.insertBefore( testElement, testElementParent.firstChild );
1295
1327
 
1296
1328
  // Check if a disconnected checkbox will retain its checked
1297
1329
  // value of true after appended to the DOM (IE6/7)
@@ -1350,8 +1382,8 @@ jQuery.support = (function() {
1350
1382
  }
1351
1383
 
1352
1384
  // Remove the body element we added
1353
- body.innerHTML = "";
1354
- documentElement.removeChild( body );
1385
+ testElement.innerHTML = "";
1386
+ testElementParent.removeChild( testElement );
1355
1387
 
1356
1388
  // Technique from Juriy Zaytsev
1357
1389
  // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
@@ -1375,6 +1407,9 @@ jQuery.support = (function() {
1375
1407
  }
1376
1408
  }
1377
1409
 
1410
+ // Null connected elements to avoid leaks in IE
1411
+ testElement = fragment = select = opt = body = marginDiv = div = input = null;
1412
+
1378
1413
  return support;
1379
1414
  })();
1380
1415
 
@@ -1419,7 +1454,9 @@ jQuery.extend({
1419
1454
  return;
1420
1455
  }
1421
1456
 
1422
- var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
1457
+ var thisCache, ret,
1458
+ internalKey = jQuery.expando,
1459
+ getByName = typeof name === "string",
1423
1460
 
1424
1461
  // We have to handle DOM nodes and JS objects differently because IE6-7
1425
1462
  // can't GC object references properly across the DOM-JS boundary
@@ -1435,7 +1472,7 @@ jQuery.extend({
1435
1472
 
1436
1473
  // Avoid doing any more work than we need to when trying to get data on an
1437
1474
  // object that has no data at all
1438
- if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
1475
+ if ( (!id || (pvt && id && (cache[ id ] && !cache[ id ][ internalKey ]))) && getByName && data === undefined ) {
1439
1476
  return;
1440
1477
  }
1441
1478
 
@@ -1494,7 +1531,24 @@ jQuery.extend({
1494
1531
  return thisCache[ internalKey ] && thisCache[ internalKey ].events;
1495
1532
  }
1496
1533
 
1497
- return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache;
1534
+ // Check for both converted-to-camel and non-converted data property names
1535
+ // If a data property was specified
1536
+ if ( getByName ) {
1537
+
1538
+ // First Try to find as-is property data
1539
+ ret = thisCache[ name ];
1540
+
1541
+ // Test for null|undefined property data
1542
+ if ( ret == null ) {
1543
+
1544
+ // Try to find the camelCased property
1545
+ ret = thisCache[ jQuery.camelCase( name ) ];
1546
+ }
1547
+ } else {
1548
+ ret = thisCache;
1549
+ }
1550
+
1551
+ return ret;
1498
1552
  },
1499
1553
 
1500
1554
  removeData: function( elem, name, pvt /* Internal Use Only */ ) {
@@ -1502,7 +1556,12 @@ jQuery.extend({
1502
1556
  return;
1503
1557
  }
1504
1558
 
1505
- var internalKey = jQuery.expando, isNode = elem.nodeType,
1559
+ var thisCache,
1560
+
1561
+ // Reference to internal data cache key
1562
+ internalKey = jQuery.expando,
1563
+
1564
+ isNode = elem.nodeType,
1506
1565
 
1507
1566
  // See jQuery.data for more information
1508
1567
  cache = isNode ? jQuery.cache : elem,
@@ -1517,9 +1576,16 @@ jQuery.extend({
1517
1576
  }
1518
1577
 
1519
1578
  if ( name ) {
1520
- var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
1579
+
1580
+ thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
1521
1581
 
1522
1582
  if ( thisCache ) {
1583
+
1584
+ // Support interoperable removal of hyphenated or camelcased keys
1585
+ if ( !thisCache[ name ] ) {
1586
+ name = jQuery.camelCase( name );
1587
+ }
1588
+
1523
1589
  delete thisCache[ name ];
1524
1590
 
1525
1591
  // If there is no data left in the cache, we want to continue
@@ -1546,7 +1612,8 @@ jQuery.extend({
1546
1612
  // Browsers that fail expando deletion also refuse to delete expandos on
1547
1613
  // the window, but it will allow it on all other JS objects; other browsers
1548
1614
  // don't care
1549
- if ( jQuery.support.deleteExpando || cache != window ) {
1615
+ // Ensure that `cache` is not a window object #10080
1616
+ if ( jQuery.support.deleteExpando || !cache.setInterval ) {
1550
1617
  delete cache[ id ];
1551
1618
  } else {
1552
1619
  cache[ id ] = null;
@@ -1894,8 +1961,7 @@ var rclass = /[\n\t\r]/g,
1894
1961
  rfocusable = /^(?:button|input|object|select|textarea)$/i,
1895
1962
  rclickable = /^a(?:rea)?$/i,
1896
1963
  rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
1897
- rinvalidChar = /\:/,
1898
- formHook, boolHook;
1964
+ nodeHook, boolHook;
1899
1965
 
1900
1966
  jQuery.fn.extend({
1901
1967
  attr: function( name, value ) {
@@ -1924,30 +1990,31 @@ jQuery.fn.extend({
1924
1990
  },
1925
1991
 
1926
1992
  addClass: function( value ) {
1993
+ var classNames, i, l, elem,
1994
+ setClass, c, cl;
1995
+
1927
1996
  if ( jQuery.isFunction( value ) ) {
1928
- return this.each(function(i) {
1929
- var self = jQuery(this);
1930
- self.addClass( value.call(this, i, self.attr("class") || "") );
1997
+ return this.each(function( j ) {
1998
+ jQuery( this ).addClass( value.call(this, j, this.className) );
1931
1999
  });
1932
2000
  }
1933
2001
 
1934
2002
  if ( value && typeof value === "string" ) {
1935
- var classNames = (value || "").split( rspace );
2003
+ classNames = value.split( rspace );
1936
2004
 
1937
- for ( var i = 0, l = this.length; i < l; i++ ) {
1938
- var elem = this[i];
2005
+ for ( i = 0, l = this.length; i < l; i++ ) {
2006
+ elem = this[ i ];
1939
2007
 
1940
2008
  if ( elem.nodeType === 1 ) {
1941
- if ( !elem.className ) {
2009
+ if ( !elem.className && classNames.length === 1 ) {
1942
2010
  elem.className = value;
1943
2011
 
1944
2012
  } else {
1945
- var className = " " + elem.className + " ",
1946
- setClass = elem.className;
2013
+ setClass = " " + elem.className + " ";
1947
2014
 
1948
- for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
1949
- if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
1950
- setClass += " " + classNames[c];
2015
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
2016
+ if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
2017
+ setClass += classNames[ c ] + " ";
1951
2018
  }
1952
2019
  }
1953
2020
  elem.className = jQuery.trim( setClass );
@@ -1960,24 +2027,25 @@ jQuery.fn.extend({
1960
2027
  },
1961
2028
 
1962
2029
  removeClass: function( value ) {
1963
- if ( jQuery.isFunction(value) ) {
1964
- return this.each(function(i) {
1965
- var self = jQuery(this);
1966
- self.removeClass( value.call(this, i, self.attr("class")) );
2030
+ var classNames, i, l, elem, className, c, cl;
2031
+
2032
+ if ( jQuery.isFunction( value ) ) {
2033
+ return this.each(function( j ) {
2034
+ jQuery( this ).removeClass( value.call(this, j, this.className) );
1967
2035
  });
1968
2036
  }
1969
2037
 
1970
2038
  if ( (value && typeof value === "string") || value === undefined ) {
1971
- var classNames = (value || "").split( rspace );
2039
+ classNames = (value || "").split( rspace );
1972
2040
 
1973
- for ( var i = 0, l = this.length; i < l; i++ ) {
1974
- var elem = this[i];
2041
+ for ( i = 0, l = this.length; i < l; i++ ) {
2042
+ elem = this[ i ];
1975
2043
 
1976
2044
  if ( elem.nodeType === 1 && elem.className ) {
1977
2045
  if ( value ) {
1978
- var className = (" " + elem.className + " ").replace(rclass, " ");
1979
- for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
1980
- className = className.replace(" " + classNames[c] + " ", " ");
2046
+ className = (" " + elem.className + " ").replace( rclass, " " );
2047
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
2048
+ className = className.replace(" " + classNames[ c ] + " ", " ");
1981
2049
  }
1982
2050
  elem.className = jQuery.trim( className );
1983
2051
 
@@ -1996,9 +2064,8 @@ jQuery.fn.extend({
1996
2064
  isBool = typeof stateVal === "boolean";
1997
2065
 
1998
2066
  if ( jQuery.isFunction( value ) ) {
1999
- return this.each(function(i) {
2000
- var self = jQuery(this);
2001
- self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
2067
+ return this.each(function( i ) {
2068
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
2002
2069
  });
2003
2070
  }
2004
2071
 
@@ -2032,7 +2099,7 @@ jQuery.fn.extend({
2032
2099
  hasClass: function( selector ) {
2033
2100
  var className = " " + selector + " ";
2034
2101
  for ( var i = 0, l = this.length; i < l; i++ ) {
2035
- if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
2102
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
2036
2103
  return true;
2037
2104
  }
2038
2105
  }
@@ -2052,7 +2119,13 @@ jQuery.fn.extend({
2052
2119
  return ret;
2053
2120
  }
2054
2121
 
2055
- return (elem.value || "").replace(rreturn, "");
2122
+ ret = elem.value;
2123
+
2124
+ return typeof ret === "string" ?
2125
+ // handle most common string cases
2126
+ ret.replace(rreturn, "") :
2127
+ // handle cases where value is null/undef or number
2128
+ ret == null ? "" : ret;
2056
2129
  }
2057
2130
 
2058
2131
  return undefined;
@@ -2198,20 +2271,20 @@ jQuery.extend({
2198
2271
  notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
2199
2272
 
2200
2273
  // Normalize the name if needed
2201
- name = notxml && jQuery.attrFix[ name ] || name;
2202
-
2203
- hooks = jQuery.attrHooks[ name ];
2274
+ if ( notxml ) {
2275
+ name = jQuery.attrFix[ name ] || name;
2204
2276
 
2205
- if ( !hooks ) {
2206
- // Use boolHook for boolean attributes
2207
- if ( rboolean.test( name ) &&
2208
- (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) {
2277
+ hooks = jQuery.attrHooks[ name ];
2209
2278
 
2210
- hooks = boolHook;
2279
+ if ( !hooks ) {
2280
+ // Use boolHook for boolean attributes
2281
+ if ( rboolean.test( name ) ) {
2282
+ hooks = boolHook;
2211
2283
 
2212
- // Use formHook for forms and if the name contains certain characters
2213
- } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
2214
- hooks = formHook;
2284
+ // Use nodeHook if available( IE6/7 )
2285
+ } else if ( nodeHook ) {
2286
+ hooks = nodeHook;
2287
+ }
2215
2288
  }
2216
2289
  }
2217
2290
 
@@ -2229,8 +2302,8 @@ jQuery.extend({
2229
2302
  return value;
2230
2303
  }
2231
2304
 
2232
- } else if ( hooks && "get" in hooks && notxml ) {
2233
- return hooks.get( elem, name );
2305
+ } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
2306
+ return ret;
2234
2307
 
2235
2308
  } else {
2236
2309
 
@@ -2247,14 +2320,9 @@ jQuery.extend({
2247
2320
  var propName;
2248
2321
  if ( elem.nodeType === 1 ) {
2249
2322
  name = jQuery.attrFix[ name ] || name;
2250
-
2251
- if ( jQuery.support.getSetAttribute ) {
2252
- // Use removeAttribute in browsers that support it
2253
- elem.removeAttribute( name );
2254
- } else {
2255
- jQuery.attr( elem, name, "" );
2256
- elem.removeAttributeNode( elem.getAttributeNode( name ) );
2257
- }
2323
+
2324
+ jQuery.attr( elem, name, "" );
2325
+ elem.removeAttribute( name );
2258
2326
 
2259
2327
  // Set corresponding property to false for boolean attributes
2260
2328
  if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
@@ -2282,17 +2350,23 @@ jQuery.extend({
2282
2350
  }
2283
2351
  }
2284
2352
  },
2285
- tabIndex: {
2286
- get: function( elem ) {
2287
- // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
2288
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
2289
- var attributeNode = elem.getAttributeNode("tabIndex");
2290
-
2291
- return attributeNode && attributeNode.specified ?
2292
- parseInt( attributeNode.value, 10 ) :
2293
- rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
2294
- 0 :
2295
- undefined;
2353
+ // Use the value property for back compat
2354
+ // Use the nodeHook for button elements in IE6/7 (#1954)
2355
+ value: {
2356
+ get: function( elem, name ) {
2357
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
2358
+ return nodeHook.get( elem, name );
2359
+ }
2360
+ return name in elem ?
2361
+ elem.value :
2362
+ null;
2363
+ },
2364
+ set: function( elem, value, name ) {
2365
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
2366
+ return nodeHook.set( elem, value, name );
2367
+ }
2368
+ // Does not return so that setAttribute is also used
2369
+ elem.value = value;
2296
2370
  }
2297
2371
  }
2298
2372
  },
@@ -2323,10 +2397,11 @@ jQuery.extend({
2323
2397
  var ret, hooks,
2324
2398
  notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
2325
2399
 
2326
- // Try to normalize/fix the name
2327
- name = notxml && jQuery.propFix[ name ] || name;
2328
-
2329
- hooks = jQuery.propHooks[ name ];
2400
+ if ( notxml ) {
2401
+ // Fix name and attach hooks
2402
+ name = jQuery.propFix[ name ] || name;
2403
+ hooks = jQuery.propHooks[ name ];
2404
+ }
2330
2405
 
2331
2406
  if ( value !== undefined ) {
2332
2407
  if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
@@ -2337,7 +2412,7 @@ jQuery.extend({
2337
2412
  }
2338
2413
 
2339
2414
  } else {
2340
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {
2415
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
2341
2416
  return ret;
2342
2417
 
2343
2418
  } else {
@@ -2346,14 +2421,33 @@ jQuery.extend({
2346
2421
  }
2347
2422
  },
2348
2423
 
2349
- propHooks: {}
2424
+ propHooks: {
2425
+ tabIndex: {
2426
+ get: function( elem ) {
2427
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
2428
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
2429
+ var attributeNode = elem.getAttributeNode("tabindex");
2430
+
2431
+ return attributeNode && attributeNode.specified ?
2432
+ parseInt( attributeNode.value, 10 ) :
2433
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
2434
+ 0 :
2435
+ undefined;
2436
+ }
2437
+ }
2438
+ }
2350
2439
  });
2351
2440
 
2441
+ // Add the tabindex propHook to attrHooks for back-compat
2442
+ jQuery.attrHooks.tabIndex = jQuery.propHooks.tabIndex;
2443
+
2352
2444
  // Hook for boolean attributes
2353
2445
  boolHook = {
2354
2446
  get: function( elem, name ) {
2355
2447
  // Align boolean attributes with corresponding properties
2356
- return elem[ jQuery.propFix[ name ] || name ] ?
2448
+ // Fall back to attribute presence where some booleans are not supported
2449
+ var attrNode;
2450
+ return jQuery.prop( elem, name ) === true || ( attrNode = elem.getAttributeNode( name ) ) && attrNode.nodeValue !== false ?
2357
2451
  name.toLowerCase() :
2358
2452
  undefined;
2359
2453
  },
@@ -2368,7 +2462,7 @@ boolHook = {
2368
2462
  propName = jQuery.propFix[ name ] || name;
2369
2463
  if ( propName in elem ) {
2370
2464
  // Only set the IDL specifically if it already exists on the element
2371
- elem[ propName ] = value;
2465
+ elem[ propName ] = true;
2372
2466
  }
2373
2467
 
2374
2468
  elem.setAttribute( name, name.toLowerCase() );
@@ -2377,32 +2471,12 @@ boolHook = {
2377
2471
  }
2378
2472
  };
2379
2473
 
2380
- // Use the value property for back compat
2381
- // Use the formHook for button elements in IE6/7 (#1954)
2382
- jQuery.attrHooks.value = {
2383
- get: function( elem, name ) {
2384
- if ( formHook && jQuery.nodeName( elem, "button" ) ) {
2385
- return formHook.get( elem, name );
2386
- }
2387
- return elem.value;
2388
- },
2389
- set: function( elem, value, name ) {
2390
- if ( formHook && jQuery.nodeName( elem, "button" ) ) {
2391
- return formHook.set( elem, value, name );
2392
- }
2393
- // Does not return so that setAttribute is also used
2394
- elem.value = value;
2395
- }
2396
- };
2397
-
2398
2474
  // IE6/7 do not support getting/setting some attributes with get/setAttribute
2399
2475
  if ( !jQuery.support.getSetAttribute ) {
2400
-
2401
- // propFix is more comprehensive and contains all fixes
2402
- jQuery.attrFix = jQuery.propFix;
2403
2476
 
2404
- // Use this for any attribute on a form in IE6/7
2405
- formHook = jQuery.attrHooks.name = jQuery.valHooks.button = {
2477
+ // Use this for any attribute in IE6/7
2478
+ // This fixes almost every IE6/7 issue
2479
+ nodeHook = jQuery.valHooks.button = {
2406
2480
  get: function( elem, name ) {
2407
2481
  var ret;
2408
2482
  ret = elem.getAttributeNode( name );
@@ -2412,13 +2486,13 @@ if ( !jQuery.support.getSetAttribute ) {
2412
2486
  undefined;
2413
2487
  },
2414
2488
  set: function( elem, value, name ) {
2415
- // Check form objects in IE (multiple bugs related)
2416
- // Only use nodeValue if the attribute node exists on the form
2489
+ // Set the existing or create a new attribute node
2417
2490
  var ret = elem.getAttributeNode( name );
2418
- if ( ret ) {
2419
- ret.nodeValue = value;
2420
- return value;
2491
+ if ( !ret ) {
2492
+ ret = document.createAttribute( name );
2493
+ elem.setAttributeNode( ret );
2421
2494
  }
2495
+ return (ret.nodeValue = value + "");
2422
2496
  }
2423
2497
  };
2424
2498
 
@@ -2477,6 +2551,7 @@ if ( !jQuery.support.optSelected ) {
2477
2551
  parent.parentNode.selectedIndex;
2478
2552
  }
2479
2553
  }
2554
+ return null;
2480
2555
  }
2481
2556
  });
2482
2557
  }
@@ -2507,8 +2582,7 @@ jQuery.each([ "radio", "checkbox" ], function() {
2507
2582
 
2508
2583
  (function( jQuery ) {
2509
2584
 
2510
- var hasOwn = Object.prototype.hasOwnProperty,
2511
- rnamespaces = /\.(.*)$/,
2585
+ var rnamespaces = /\.(.*)$/,
2512
2586
  rformElems = /^(?:textarea|input|select)$/i,
2513
2587
  rperiod = /\./g,
2514
2588
  rspaces = / /g,
@@ -2852,7 +2926,7 @@ jQuery.event = {
2852
2926
  event.target = elem;
2853
2927
 
2854
2928
  // Clone any incoming data and prepend the event, creating the handler arg list
2855
- data = data ? jQuery.makeArray( data ) : [];
2929
+ data = data != null ? jQuery.makeArray( data ) : [];
2856
2930
  data.unshift( event );
2857
2931
 
2858
2932
  var cur = elem,
@@ -3158,34 +3232,27 @@ jQuery.Event.prototype = {
3158
3232
  // Checks if an event happened on an element within another element
3159
3233
  // Used in jQuery.event.special.mouseenter and mouseleave handlers
3160
3234
  var withinElement = function( event ) {
3235
+
3161
3236
  // Check if mouse(over|out) are still within the same parent element
3162
- var parent = event.relatedTarget;
3237
+ var related = event.relatedTarget,
3238
+ inside = false,
3239
+ eventType = event.type;
3163
3240
 
3164
- // set the correct event type
3165
3241
  event.type = event.data;
3166
3242
 
3167
- // Firefox sometimes assigns relatedTarget a XUL element
3168
- // which we cannot access the parentNode property of
3169
- try {
3243
+ if ( related !== this ) {
3170
3244
 
3171
- // Chrome does something similar, the parentNode property
3172
- // can be accessed but is null.
3173
- if ( parent && parent !== document && !parent.parentNode ) {
3174
- return;
3245
+ if ( related ) {
3246
+ inside = jQuery.contains( this, related );
3175
3247
  }
3176
3248
 
3177
- // Traverse up the tree
3178
- while ( parent && parent !== this ) {
3179
- parent = parent.parentNode;
3180
- }
3249
+ if ( !inside ) {
3181
3250
 
3182
- if ( parent !== this ) {
3183
- // handle event if we actually just moused on to a non sub-element
3184
3251
  jQuery.event.handle.apply( this, arguments );
3185
- }
3186
3252
 
3187
- // assuming we've left the element since we most likely mousedover a xul element
3188
- } catch(e) { }
3253
+ event.type = eventType;
3254
+ }
3255
+ }
3189
3256
  },
3190
3257
 
3191
3258
  // In case of event delegation, we only need to rename the event.type,
@@ -3218,7 +3285,7 @@ if ( !jQuery.support.submitBubbles ) {
3218
3285
  if ( !jQuery.nodeName( this, "form" ) ) {
3219
3286
  jQuery.event.add(this, "click.specialSubmit", function( e ) {
3220
3287
  var elem = e.target,
3221
- type = elem.type;
3288
+ type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
3222
3289
 
3223
3290
  if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
3224
3291
  trigger( "submit", this, arguments );
@@ -3227,7 +3294,7 @@ if ( !jQuery.support.submitBubbles ) {
3227
3294
 
3228
3295
  jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
3229
3296
  var elem = e.target,
3230
- type = elem.type;
3297
+ type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
3231
3298
 
3232
3299
  if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
3233
3300
  trigger( "submit", this, arguments );
@@ -3252,7 +3319,8 @@ if ( !jQuery.support.changeBubbles ) {
3252
3319
  var changeFilters,
3253
3320
 
3254
3321
  getVal = function( elem ) {
3255
- var type = elem.type, val = elem.value;
3322
+ var type = jQuery.nodeName( elem, "input" ) ? elem.type : "",
3323
+ val = elem.value;
3256
3324
 
3257
3325
  if ( type === "radio" || type === "checkbox" ) {
3258
3326
  val = elem.checked;
@@ -5281,12 +5349,17 @@ jQuery.fn.extend({
5281
5349
  // Determine the position of an element within
5282
5350
  // the matched set of elements
5283
5351
  index: function( elem ) {
5284
- if ( !elem || typeof elem === "string" ) {
5285
- return jQuery.inArray( this[0],
5286
- // If it receives a string, the selector is used
5287
- // If it receives nothing, the siblings are used
5288
- elem ? jQuery( elem ) : this.parent().children() );
5352
+
5353
+ // No argument, return index in parent
5354
+ if ( !elem ) {
5355
+ return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
5356
+ }
5357
+
5358
+ // index in selector
5359
+ if ( typeof elem === "string" ) {
5360
+ return jQuery.inArray( this[0], jQuery( elem ) );
5289
5361
  }
5362
+
5290
5363
  // Locate the position of the desired element
5291
5364
  return jQuery.inArray(
5292
5365
  // If it receives a jQuery object, the first element is used
@@ -5910,8 +5983,21 @@ function cloneFixAttributes( src, dest ) {
5910
5983
  }
5911
5984
 
5912
5985
  jQuery.buildFragment = function( args, nodes, scripts ) {
5913
- var fragment, cacheable, cacheresults,
5914
- doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
5986
+ var fragment, cacheable, cacheresults, doc;
5987
+
5988
+ // nodes may contain either an explicit document object,
5989
+ // a jQuery collection or context object.
5990
+ // If nodes[0] contains a valid object to assign to doc
5991
+ if ( nodes && nodes[0] ) {
5992
+ doc = nodes[0].ownerDocument || nodes[0];
5993
+ }
5994
+
5995
+ // Ensure that an attr object doesn't incorrectly stand in as a document object
5996
+ // Chrome and Firefox seem to allow this to occur and will throw exception
5997
+ // Fixes #8950
5998
+ if ( !doc.createDocumentFragment ) {
5999
+ doc = document;
6000
+ }
5915
6001
 
5916
6002
  // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
5917
6003
  // Cloning options loses the selected state, so don't cache them
@@ -5992,7 +6078,7 @@ function fixDefaultChecked( elem ) {
5992
6078
  function findInputs( elem ) {
5993
6079
  if ( jQuery.nodeName( elem, "input" ) ) {
5994
6080
  fixDefaultChecked( elem );
5995
- } else if ( elem.getElementsByTagName ) {
6081
+ } else if ( "getElementsByTagName" in elem ) {
5996
6082
  jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
5997
6083
  }
5998
6084
  }
@@ -6023,7 +6109,10 @@ jQuery.extend({
6023
6109
  // with an element if you are cloning the body and one of the
6024
6110
  // elements on the page has a name or id of "length"
6025
6111
  for ( i = 0; srcElements[i]; ++i ) {
6026
- cloneFixAttributes( srcElements[i], destElements[i] );
6112
+ // Ensure that the destination node is not null; Fixes #9587
6113
+ if ( destElements[i] ) {
6114
+ cloneFixAttributes( srcElements[i], destElements[i] );
6115
+ }
6027
6116
  }
6028
6117
  }
6029
6118
 
@@ -6041,6 +6130,8 @@ jQuery.extend({
6041
6130
  }
6042
6131
  }
6043
6132
 
6133
+ srcElements = destElements = null;
6134
+
6044
6135
  // Return the cloned set
6045
6136
  return clone;
6046
6137
  },
@@ -6226,13 +6317,11 @@ function evalScript( i, elem ) {
6226
6317
 
6227
6318
  var ralpha = /alpha\([^)]*\)/i,
6228
6319
  ropacity = /opacity=([^)]*)/,
6229
- rdashAlpha = /-([a-z])/ig,
6230
6320
  // fixed for IE9, see #8346
6231
6321
  rupper = /([A-Z]|^ms)/g,
6232
6322
  rnumpx = /^-?\d+(?:px)?$/i,
6233
6323
  rnum = /^-?\d/,
6234
- rrelNum = /^[+\-]=/,
6235
- rrelNumFilter = /[^+\-\.\de]+/g,
6324
+ rrelNum = /^([\-+])=([\-+.\de]+)/,
6236
6325
 
6237
6326
  cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6238
6327
  cssWidth = [ "Left", "Right" ],
@@ -6240,11 +6329,7 @@ var ralpha = /alpha\([^)]*\)/i,
6240
6329
  curCSS,
6241
6330
 
6242
6331
  getComputedStyle,
6243
- currentStyle,
6244
-
6245
- fcamelCase = function( all, letter ) {
6246
- return letter.toUpperCase();
6247
- };
6332
+ currentStyle;
6248
6333
 
6249
6334
  jQuery.fn.css = function( name, value ) {
6250
6335
  // Setting 'undefined' is a no-op
@@ -6279,13 +6364,14 @@ jQuery.extend({
6279
6364
 
6280
6365
  // Exclude the following css properties to add px
6281
6366
  cssNumber: {
6282
- "zIndex": true,
6367
+ "fillOpacity": true,
6283
6368
  "fontWeight": true,
6284
- "opacity": true,
6285
- "zoom": true,
6286
6369
  "lineHeight": true,
6370
+ "opacity": true,
6371
+ "orphans": true,
6287
6372
  "widows": true,
6288
- "orphans": true
6373
+ "zIndex": true,
6374
+ "zoom": true
6289
6375
  },
6290
6376
 
6291
6377
  // Add in properties whose names you wish to fix before
@@ -6312,14 +6398,16 @@ jQuery.extend({
6312
6398
  if ( value !== undefined ) {
6313
6399
  type = typeof value;
6314
6400
 
6315
- // Make sure that NaN and null values aren't set. See: #7116
6316
- if ( type === "number" && isNaN( value ) || value == null ) {
6317
- return;
6401
+ // convert relative number strings (+= or -=) to relative numbers. #7345
6402
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
6403
+ value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
6404
+ // Fixes bug #9237
6405
+ type = "number";
6318
6406
  }
6319
6407
 
6320
- // convert relative number strings (+= or -=) to relative numbers. #7345
6321
- if ( type === "string" && rrelNum.test( value ) ) {
6322
- value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );
6408
+ // Make sure that NaN and null values aren't set. See: #7116
6409
+ if ( value == null || type === "number" && isNaN( value ) ) {
6410
+ return;
6323
6411
  }
6324
6412
 
6325
6413
  // If a number was passed in, add 'px' to the (except for certain CSS properties)
@@ -6386,10 +6474,6 @@ jQuery.extend({
6386
6474
  for ( name in options ) {
6387
6475
  elem.style[ name ] = old[ name ];
6388
6476
  }
6389
- },
6390
-
6391
- camelCase: function( string ) {
6392
- return string.replace( rdashAlpha, fcamelCase );
6393
6477
  }
6394
6478
  });
6395
6479
 
@@ -6403,44 +6487,21 @@ jQuery.each(["height", "width"], function( i, name ) {
6403
6487
 
6404
6488
  if ( computed ) {
6405
6489
  if ( elem.offsetWidth !== 0 ) {
6406
- val = getWH( elem, name, extra );
6407
-
6490
+ return getWH( elem, name, extra );
6408
6491
  } else {
6409
6492
  jQuery.swap( elem, cssShow, function() {
6410
6493
  val = getWH( elem, name, extra );
6411
6494
  });
6412
6495
  }
6413
6496
 
6414
- if ( val <= 0 ) {
6415
- val = curCSS( elem, name, name );
6416
-
6417
- if ( val === "0px" && currentStyle ) {
6418
- val = currentStyle( elem, name, name );
6419
- }
6420
-
6421
- if ( val != null ) {
6422
- // Should return "auto" instead of 0, use 0 for
6423
- // temporary backwards-compat
6424
- return val === "" || val === "auto" ? "0px" : val;
6425
- }
6426
- }
6427
-
6428
- if ( val < 0 || val == null ) {
6429
- val = elem.style[ name ];
6430
-
6431
- // Should return "auto" instead of 0, use 0 for
6432
- // temporary backwards-compat
6433
- return val === "" || val === "auto" ? "0px" : val;
6434
- }
6435
-
6436
- return typeof val === "string" ? val : val + "px";
6497
+ return val;
6437
6498
  }
6438
6499
  },
6439
6500
 
6440
6501
  set: function( elem, value ) {
6441
6502
  if ( rnumpx.test( value ) ) {
6442
6503
  // ignore negative width and height values #1599
6443
- value = parseFloat(value);
6504
+ value = parseFloat( value );
6444
6505
 
6445
6506
  if ( value >= 0 ) {
6446
6507
  return value + "px";
@@ -6464,18 +6525,29 @@ if ( !jQuery.support.opacity ) {
6464
6525
 
6465
6526
  set: function( elem, value ) {
6466
6527
  var style = elem.style,
6467
- currentStyle = elem.currentStyle;
6528
+ currentStyle = elem.currentStyle,
6529
+ opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")",
6530
+ filter = currentStyle && currentStyle.filter || style.filter || "";
6468
6531
 
6469
6532
  // IE has trouble with opacity if it does not have layout
6470
6533
  // Force it by setting the zoom level
6471
6534
  style.zoom = 1;
6472
6535
 
6473
- // Set the alpha filter to set the opacity
6474
- var opacity = jQuery.isNaN( value ) ?
6475
- "" :
6476
- "alpha(opacity=" + value * 100 + ")",
6477
- filter = currentStyle && currentStyle.filter || style.filter || "";
6536
+ // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
6537
+ if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
6538
+
6539
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
6540
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
6541
+ // style.removeAttribute is IE Only, but so apparently is this code path...
6542
+ style.removeAttribute( "filter" );
6543
+
6544
+ // if there there is no filter style applied in a css rule, we are done
6545
+ if ( currentStyle && !currentStyle.filter ) {
6546
+ return;
6547
+ }
6548
+ }
6478
6549
 
6550
+ // otherwise, set new filter values
6479
6551
  style.filter = ralpha.test( filter ) ?
6480
6552
  filter.replace( ralpha, opacity ) :
6481
6553
  filter + " " + opacity;
@@ -6563,27 +6635,50 @@ if ( document.documentElement.currentStyle ) {
6563
6635
  curCSS = getComputedStyle || currentStyle;
6564
6636
 
6565
6637
  function getWH( elem, name, extra ) {
6566
- var which = name === "width" ? cssWidth : cssHeight,
6567
- val = name === "width" ? elem.offsetWidth : elem.offsetHeight;
6568
6638
 
6569
- if ( extra === "border" ) {
6570
- return val;
6571
- }
6639
+ // Start with offset property
6640
+ var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
6641
+ which = name === "width" ? cssWidth : cssHeight;
6572
6642
 
6573
- jQuery.each( which, function() {
6574
- if ( !extra ) {
6575
- val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;
6643
+ if ( val > 0 ) {
6644
+ if ( extra !== "border" ) {
6645
+ jQuery.each( which, function() {
6646
+ if ( !extra ) {
6647
+ val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
6648
+ }
6649
+ if ( extra === "margin" ) {
6650
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
6651
+ } else {
6652
+ val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
6653
+ }
6654
+ });
6576
6655
  }
6577
6656
 
6578
- if ( extra === "margin" ) {
6579
- val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;
6657
+ return val + "px";
6658
+ }
6580
6659
 
6581
- } else {
6582
- val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0;
6583
- }
6584
- });
6660
+ // Fall back to computed then uncomputed css if necessary
6661
+ val = curCSS( elem, name, name );
6662
+ if ( val < 0 || val == null ) {
6663
+ val = elem.style[ name ] || 0;
6664
+ }
6665
+ // Normalize "", auto, and prepare for extra
6666
+ val = parseFloat( val ) || 0;
6667
+
6668
+ // Add padding, border, margin
6669
+ if ( extra ) {
6670
+ jQuery.each( which, function() {
6671
+ val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
6672
+ if ( extra !== "padding" ) {
6673
+ val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
6674
+ }
6675
+ if ( extra === "margin" ) {
6676
+ val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
6677
+ }
6678
+ });
6679
+ }
6585
6680
 
6586
- return val;
6681
+ return val + "px";
6587
6682
  }
6588
6683
 
6589
6684
  if ( jQuery.expr && jQuery.expr.filters ) {
@@ -6609,9 +6704,9 @@ var r20 = /%20/g,
6609
6704
  rCRLF = /\r?\n/g,
6610
6705
  rhash = /#.*$/,
6611
6706
  rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
6612
- rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
6707
+ rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
6613
6708
  // #7653, #8125, #8152: local protocol detection
6614
- rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
6709
+ rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
6615
6710
  rnoContent = /^(?:GET|HEAD)$/,
6616
6711
  rprotocol = /^\/\//,
6617
6712
  rquery = /\?/,
@@ -6646,7 +6741,10 @@ var r20 = /%20/g,
6646
6741
  ajaxLocation,
6647
6742
 
6648
6743
  // Document location segments
6649
- ajaxLocParts;
6744
+ ajaxLocParts,
6745
+
6746
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
6747
+ allTypes = ["*/"] + ["*"];
6650
6748
 
6651
6749
  // #8138, IE may throw an exception when accessing
6652
6750
  // a field from window.location if document.domain has been set
@@ -6739,6 +6837,22 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
6739
6837
  return selection;
6740
6838
  }
6741
6839
 
6840
+ // A special extend for ajax options
6841
+ // that takes "flat" options (not to be deep extended)
6842
+ // Fixes #9887
6843
+ function ajaxExtend( target, src ) {
6844
+ var key, deep,
6845
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
6846
+ for( key in src ) {
6847
+ if ( src[ key ] !== undefined ) {
6848
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
6849
+ }
6850
+ }
6851
+ if ( deep ) {
6852
+ jQuery.extend( true, target, deep );
6853
+ }
6854
+ }
6855
+
6742
6856
  jQuery.fn.extend({
6743
6857
  load: function( url, params, callback ) {
6744
6858
  if ( typeof url !== "string" && _load ) {
@@ -6882,23 +6996,16 @@ jQuery.extend({
6882
6996
  // Creates a full fledged settings object into target
6883
6997
  // with both ajaxSettings and settings fields.
6884
6998
  // If target is omitted, writes into ajaxSettings.
6885
- ajaxSetup: function ( target, settings ) {
6886
- if ( !settings ) {
6887
- // Only one parameter, we extend ajaxSettings
6888
- settings = target;
6889
- target = jQuery.extend( true, jQuery.ajaxSettings, settings );
6999
+ ajaxSetup: function( target, settings ) {
7000
+ if ( settings ) {
7001
+ // Building a settings object
7002
+ ajaxExtend( target, jQuery.ajaxSettings );
6890
7003
  } else {
6891
- // target was provided, we extend into it
6892
- jQuery.extend( true, target, jQuery.ajaxSettings, settings );
6893
- }
6894
- // Flatten fields we don't want deep extended
6895
- for( var field in { context: 1, url: 1 } ) {
6896
- if ( field in settings ) {
6897
- target[ field ] = settings[ field ];
6898
- } else if( field in jQuery.ajaxSettings ) {
6899
- target[ field ] = jQuery.ajaxSettings[ field ];
6900
- }
7004
+ // Extending ajaxSettings
7005
+ settings = target;
7006
+ target = jQuery.ajaxSettings;
6901
7007
  }
7008
+ ajaxExtend( target, settings );
6902
7009
  return target;
6903
7010
  },
6904
7011
 
@@ -6926,7 +7033,7 @@ jQuery.extend({
6926
7033
  html: "text/html",
6927
7034
  text: "text/plain",
6928
7035
  json: "application/json, text/javascript",
6929
- "*": "*/*"
7036
+ "*": allTypes
6930
7037
  },
6931
7038
 
6932
7039
  contents: {
@@ -6956,6 +7063,15 @@ jQuery.extend({
6956
7063
 
6957
7064
  // Parse text as xml
6958
7065
  "text xml": jQuery.parseXML
7066
+ },
7067
+
7068
+ // For options that shouldn't be deep extended:
7069
+ // you can add your own custom options here if
7070
+ // and when you create one that shouldn't be
7071
+ // deep extended (see ajaxExtend)
7072
+ flatOptions: {
7073
+ context: true,
7074
+ url: true
6959
7075
  }
6960
7076
  },
6961
7077
 
@@ -7066,7 +7182,7 @@ jQuery.extend({
7066
7182
  // Callback for when everything is done
7067
7183
  // It is defined here because jslint complains if it is declared
7068
7184
  // at the end of the function (which would be more logical and readable)
7069
- function done( status, statusText, responses, headers ) {
7185
+ function done( status, nativeStatusText, responses, headers ) {
7070
7186
 
7071
7187
  // Called once
7072
7188
  if ( state === 2 ) {
@@ -7089,11 +7205,12 @@ jQuery.extend({
7089
7205
  responseHeadersString = headers || "";
7090
7206
 
7091
7207
  // Set readyState
7092
- jqXHR.readyState = status ? 4 : 0;
7208
+ jqXHR.readyState = status > 0 ? 4 : 0;
7093
7209
 
7094
7210
  var isSuccess,
7095
7211
  success,
7096
7212
  error,
7213
+ statusText = nativeStatusText,
7097
7214
  response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
7098
7215
  lastModified,
7099
7216
  etag;
@@ -7145,7 +7262,7 @@ jQuery.extend({
7145
7262
 
7146
7263
  // Set data for the fake xhr object
7147
7264
  jqXHR.status = status;
7148
- jqXHR.statusText = statusText;
7265
+ jqXHR.statusText = "" + ( nativeStatusText || statusText );
7149
7266
 
7150
7267
  // Success/Error
7151
7268
  if ( isSuccess ) {
@@ -7167,7 +7284,7 @@ jQuery.extend({
7167
7284
  completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
7168
7285
 
7169
7286
  if ( fireGlobals ) {
7170
- globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
7287
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
7171
7288
  // Handle the global AJAX counter
7172
7289
  if ( !( --jQuery.active ) ) {
7173
7290
  jQuery.event.trigger( "ajaxStop" );
@@ -7248,6 +7365,8 @@ jQuery.extend({
7248
7365
  // If data is available, append data to url
7249
7366
  if ( s.data ) {
7250
7367
  s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
7368
+ // #9682: remove data so that it's not used in an eventual retry
7369
+ delete s.data;
7251
7370
  }
7252
7371
 
7253
7372
  // Get ifModifiedKey before adding the anti-cache parameter
@@ -7285,7 +7404,7 @@ jQuery.extend({
7285
7404
  jqXHR.setRequestHeader(
7286
7405
  "Accept",
7287
7406
  s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
7288
- s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
7407
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
7289
7408
  s.accepts[ "*" ]
7290
7409
  );
7291
7410
 
@@ -7331,7 +7450,7 @@ jQuery.extend({
7331
7450
  transport.send( requestHeaders, done );
7332
7451
  } catch (e) {
7333
7452
  // Propagate exception as error if not done
7334
- if ( status < 2 ) {
7453
+ if ( state < 2 ) {
7335
7454
  done( -1, e );
7336
7455
  // Simply rethrow otherwise
7337
7456
  } else {
@@ -7987,10 +8106,7 @@ var elemdisplay = {},
7987
8106
  // opacity animations
7988
8107
  [ "opacity" ]
7989
8108
  ],
7990
- fxNow,
7991
- requestAnimationFrame = window.webkitRequestAnimationFrame ||
7992
- window.mozRequestAnimationFrame ||
7993
- window.oRequestAnimationFrame;
8109
+ fxNow;
7994
8110
 
7995
8111
  jQuery.fn.extend({
7996
8112
  show: function( speed, easing, callback ) {
@@ -8304,15 +8420,15 @@ jQuery.extend({
8304
8420
  // Queueing
8305
8421
  opt.old = opt.complete;
8306
8422
  opt.complete = function( noUnmark ) {
8423
+ if ( jQuery.isFunction( opt.old ) ) {
8424
+ opt.old.call( this );
8425
+ }
8426
+
8307
8427
  if ( opt.queue !== false ) {
8308
8428
  jQuery.dequeue( this );
8309
8429
  } else if ( noUnmark !== false ) {
8310
8430
  jQuery._unmark( this );
8311
8431
  }
8312
-
8313
- if ( jQuery.isFunction( opt.old ) ) {
8314
- opt.old.call( this );
8315
- }
8316
8432
  };
8317
8433
 
8318
8434
  return opt;
@@ -8366,8 +8482,7 @@ jQuery.fx.prototype = {
8366
8482
  // Start an animation from one number to another
8367
8483
  custom: function( from, to, unit ) {
8368
8484
  var self = this,
8369
- fx = jQuery.fx,
8370
- raf;
8485
+ fx = jQuery.fx;
8371
8486
 
8372
8487
  this.startTime = fxNow || createFxNow();
8373
8488
  this.start = from;
@@ -8383,20 +8498,7 @@ jQuery.fx.prototype = {
8383
8498
  t.elem = this.elem;
8384
8499
 
8385
8500
  if ( t() && jQuery.timers.push(t) && !timerId ) {
8386
- // Use requestAnimationFrame instead of setInterval if available
8387
- if ( requestAnimationFrame ) {
8388
- timerId = 1;
8389
- raf = function() {
8390
- // When timerId gets set to null at any point, this stops
8391
- if ( timerId ) {
8392
- requestAnimationFrame( raf );
8393
- fx.tick();
8394
- }
8395
- };
8396
- requestAnimationFrame( raf );
8397
- } else {
8398
- timerId = setInterval( fx.tick, fx.interval );
8399
- }
8501
+ timerId = setInterval( fx.tick, fx.interval );
8400
8502
  }
8401
8503
  },
8402
8504
 
@@ -8548,7 +8650,8 @@ function defaultDisplay( nodeName ) {
8548
8650
 
8549
8651
  if ( !elemdisplay[ nodeName ] ) {
8550
8652
 
8551
- var elem = jQuery( "<" + nodeName + ">" ).appendTo( "body" ),
8653
+ var body = document.body,
8654
+ elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
8552
8655
  display = elem.css( "display" );
8553
8656
 
8554
8657
  elem.remove();
@@ -8562,14 +8665,15 @@ function defaultDisplay( nodeName ) {
8562
8665
  iframe.frameBorder = iframe.width = iframe.height = 0;
8563
8666
  }
8564
8667
 
8565
- document.body.appendChild( iframe );
8668
+ body.appendChild( iframe );
8566
8669
 
8567
8670
  // Create a cacheable copy of the iframe document on first call.
8568
- // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake html
8569
- // document to it, Webkit & Firefox won't allow reusing the iframe document
8671
+ // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
8672
+ // document to it; WebKit & Firefox won't allow reusing the iframe document.
8570
8673
  if ( !iframeDoc || !iframe.createElement ) {
8571
8674
  iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
8572
- iframeDoc.write( "<!doctype><html><body></body></html>" );
8675
+ iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
8676
+ iframeDoc.close();
8573
8677
  }
8574
8678
 
8575
8679
  elem = iframeDoc.createElement( nodeName );
@@ -8578,7 +8682,7 @@ function defaultDisplay( nodeName ) {
8578
8682
 
8579
8683
  display = jQuery.css( elem, "display" );
8580
8684
 
8581
- document.body.removeChild( iframe );
8685
+ body.removeChild( iframe );
8582
8686
  }
8583
8687
 
8584
8688
  // Store the correct default display
@@ -8903,22 +9007,24 @@ function getWindow( elem ) {
8903
9007
 
8904
9008
  (function( jQuery ) {
8905
9009
 
8906
- // Create innerHeight, innerWidth, outerHeight and outerWidth methods
9010
+ // Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
8907
9011
  jQuery.each([ "Height", "Width" ], function( i, name ) {
8908
9012
 
8909
9013
  var type = name.toLowerCase();
8910
9014
 
8911
9015
  // innerHeight and innerWidth
8912
- jQuery.fn["inner" + name] = function() {
8913
- return this[0] ?
8914
- parseFloat( jQuery.css( this[0], type, "padding" ) ) :
9016
+ jQuery.fn[ "inner" + name ] = function() {
9017
+ var elem = this[0];
9018
+ return elem && elem.style ?
9019
+ parseFloat( jQuery.css( elem, type, "padding" ) ) :
8915
9020
  null;
8916
9021
  };
8917
9022
 
8918
9023
  // outerHeight and outerWidth
8919
- jQuery.fn["outer" + name] = function( margin ) {
8920
- return this[0] ?
8921
- parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) :
9024
+ jQuery.fn[ "outer" + name ] = function( margin ) {
9025
+ var elem = this[0];
9026
+ return elem && elem.style ?
9027
+ parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
8922
9028
  null;
8923
9029
  };
8924
9030
 
@@ -8939,9 +9045,10 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
8939
9045
  if ( jQuery.isWindow( elem ) ) {
8940
9046
  // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
8941
9047
  // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
8942
- var docElemProp = elem.document.documentElement[ "client" + name ];
9048
+ var docElemProp = elem.document.documentElement[ "client" + name ],
9049
+ body = elem.document.body;
8943
9050
  return elem.document.compatMode === "CSS1Compat" && docElemProp ||
8944
- elem.document.body[ "client" + name ] || docElemProp;
9051
+ body && body[ "client" + name ] || docElemProp;
8945
9052
 
8946
9053
  // Get document width or height
8947
9054
  } else if ( elem.nodeType === 9 ) {
@@ -8970,5 +9077,6 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
8970
9077
  })( jQuery );
8971
9078
 
8972
9079
 
9080
+ // Expose jQuery to the global object
8973
9081
  window.jQuery = window.$ = jQuery;
8974
9082
  })(window);