lsd_rails 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (991) hide show
  1. data/Packages/Sheet.js/Demo/index.html +78 -0
  2. data/Packages/Sheet.js/Demo/pp.css +69 -0
  3. data/Packages/Sheet.js/Demo/subtlegradient-jslib.js +450 -0
  4. data/Packages/Sheet.js/LICENSE +21 -0
  5. data/Packages/Sheet.js/README.md +59 -0
  6. data/Packages/Sheet.js/Source/Sheet.DOM.js +65 -0
  7. data/Packages/Sheet.js/Source/Sheet.js +80 -0
  8. data/Packages/Sheet.js/Source/SheetParser.CSS.js +194 -0
  9. data/Packages/Sheet.js/Source/SheetParser.Property.js +227 -0
  10. data/Packages/Sheet.js/Source/SheetParser.Styles.js +115 -0
  11. data/Packages/Sheet.js/Source/SheetParser.Value.js +114 -0
  12. data/Packages/Sheet.js/Source/sg-regex-tools.js +42 -0
  13. data/Packages/Sheet.js/Test/DOM-styleSheet.api.js +404 -0
  14. data/Packages/Sheet.js/Test/Sheet.test.js +25 -0
  15. data/Packages/Sheet.js/Test/SheetParser.CSS.RegExp.test.js +108 -0
  16. data/Packages/Sheet.js/Test/SheetParser.Property.test.js +230 -0
  17. data/Packages/Sheet.js/Test/SheetParser.Value.test.js +94 -0
  18. data/Packages/Sheet.js/Test/all-types.mock.css +103 -0
  19. data/Packages/Sheet.js/Test/document.styleSheets.test.js +7 -0
  20. data/Packages/Sheet.js/Test/index.html +12 -0
  21. data/Packages/Sheet.js/Test/lib/qunit/package.json +21 -0
  22. data/Packages/Sheet.js/Test/lib/qunit/qunit/qunit.css +196 -0
  23. data/Packages/Sheet.js/Test/lib/qunit/qunit/qunit.js +1303 -0
  24. data/Packages/Sheet.js/Test/lib/sg-assert-helpers.js +93 -0
  25. data/Packages/Sheet.js/Test/lib/sg-qunit-testrunner.js +40 -0
  26. data/Packages/Sheet.js/Test/lib/sg-testrunner.js +49 -0
  27. data/Packages/Sheet.js/Test/properties.html +39 -0
  28. data/Packages/Sheet.js/Test/run.html +43 -0
  29. data/Packages/Sheet.js/Test/run.js +10 -0
  30. data/Packages/Sheet.js/Test/test-browser.html +47 -0
  31. data/Packages/Sheet.js/Test/values.html +38 -0
  32. data/Packages/Sheet.js/package.json +59 -0
  33. data/Packages/Sheet.js/test-all +13 -0
  34. data/Packages/art/Docs/ART/ART.Group.md +106 -0
  35. data/Packages/art/Docs/ART/ART.Path.md +167 -0
  36. data/Packages/art/Docs/ART/ART.Shape.md +106 -0
  37. data/Packages/art/Docs/ART/ART.Transform.md +148 -0
  38. data/Packages/art/Docs/ART/ART.md +113 -0
  39. data/Packages/art/Docs/Modes/ART.Base.md +10 -0
  40. data/Packages/art/Docs/Modes/ART.SVG.md +9 -0
  41. data/Packages/art/Docs/Modes/ART.VML.md +12 -0
  42. data/Packages/art/Docs/Shapes/ART.Font.md +15 -0
  43. data/Packages/art/Docs/Shapes/ART.Shapes.md +63 -0
  44. data/Packages/art/Docs/Shapes/ART.Text.md +14 -0
  45. data/Packages/art/Fonts/Moderna.Bold.js +31 -0
  46. data/Packages/art/Fonts/Moderna.js +31 -0
  47. data/Packages/art/README.md +3 -0
  48. data/Packages/art/Source/ART.Base.js +33 -0
  49. data/Packages/art/Source/ART.Font.js +89 -0
  50. data/Packages/art/Source/ART.Path.js +440 -0
  51. data/Packages/art/Source/ART.SVG.js +593 -0
  52. data/Packages/art/Source/ART.Shapes.js +136 -0
  53. data/Packages/art/Source/ART.VML.js +772 -0
  54. data/Packages/art/Source/ART.js +202 -0
  55. data/Packages/art/license.txt +21 -0
  56. data/Packages/art/package.yml +24 -0
  57. data/Packages/art-morph/Demos/index.html +18 -0
  58. data/Packages/art-morph/Demos/morph.js +30 -0
  59. data/Packages/art-morph/README.md +3 -0
  60. data/Packages/art-morph/Source/ART.Path.Morph.js +76 -0
  61. data/Packages/art-morph/license.txt +21 -0
  62. data/Packages/lsd/CHANGELOG +152 -0
  63. data/Packages/lsd/README.md +233 -0
  64. data/Packages/lsd/Source/ART/ART.Element.js +51 -0
  65. data/Packages/lsd/Source/ART/ART.Glyphs.js +51 -0
  66. data/Packages/lsd/Source/ART/ART.SVG.js +122 -0
  67. data/Packages/lsd/Source/ART/ART.Shape.Arrow.js +104 -0
  68. data/Packages/lsd/Source/ART/ART.Shape.Ellipse.js +42 -0
  69. data/Packages/lsd/Source/ART/ART.Shape.Flower.js +71 -0
  70. data/Packages/lsd/Source/ART/ART.Shape.Rectangle.js +67 -0
  71. data/Packages/lsd/Source/ART/ART.Shape.Star.js +57 -0
  72. data/Packages/lsd/Source/ART/ART.js +41 -0
  73. data/Packages/lsd/Source/Action/Clone.js +36 -0
  74. data/Packages/lsd/Source/Action/Counter.js +98 -0
  75. data/Packages/lsd/Source/Action/Create.js +26 -0
  76. data/Packages/lsd/Source/Action/Delete.js +32 -0
  77. data/Packages/lsd/Source/Action/Display.js +50 -0
  78. data/Packages/lsd/Source/Action/Edit.js +138 -0
  79. data/Packages/lsd/Source/Action/Focus.js +29 -0
  80. data/Packages/lsd/Source/Action/History.js +27 -0
  81. data/Packages/lsd/Source/Action/Invoke.js +34 -0
  82. data/Packages/lsd/Source/Action/List.js +40 -0
  83. data/Packages/lsd/Source/Action/Set.js +36 -0
  84. data/Packages/lsd/Source/Action/State.js +33 -0
  85. data/Packages/lsd/Source/Action/Submit.js +60 -0
  86. data/Packages/lsd/Source/Action/Toggle.js +41 -0
  87. data/Packages/lsd/Source/Action/Update.js +79 -0
  88. data/Packages/lsd/Source/Action.js +169 -0
  89. data/Packages/lsd/Source/Behavior.js +68 -0
  90. data/Packages/lsd/Source/Command.js +135 -0
  91. data/Packages/lsd/Source/Document.js +188 -0
  92. data/Packages/lsd/Source/Interpolation.js +103 -0
  93. data/Packages/lsd/Source/LSD.js +163 -0
  94. data/Packages/lsd/Source/Layer/Color.js +43 -0
  95. data/Packages/lsd/Source/Layer/Offset.js +37 -0
  96. data/Packages/lsd/Source/Layer/Position.js +35 -0
  97. data/Packages/lsd/Source/Layer/Radius.js +39 -0
  98. data/Packages/lsd/Source/Layer/Scale.js +36 -0
  99. data/Packages/lsd/Source/Layer/Shadow.Blur.js +41 -0
  100. data/Packages/lsd/Source/Layer/Shadow.Inset.js +99 -0
  101. data/Packages/lsd/Source/Layer/Shadow.Native.js +35 -0
  102. data/Packages/lsd/Source/Layer/Shadow.Onion.js +105 -0
  103. data/Packages/lsd/Source/Layer/Shadow.js +46 -0
  104. data/Packages/lsd/Source/Layer/Shape.js +56 -0
  105. data/Packages/lsd/Source/Layer/Size.js +38 -0
  106. data/Packages/lsd/Source/Layer/Stroke.js +61 -0
  107. data/Packages/lsd/Source/Layer.js +212 -0
  108. data/Packages/lsd/Source/Layout.js +445 -0
  109. data/Packages/lsd/Source/Mixin/Animation.js +77 -0
  110. data/Packages/lsd/Source/Mixin/Choice.js +62 -0
  111. data/Packages/lsd/Source/Mixin/Command.js +98 -0
  112. data/Packages/lsd/Source/Mixin/ContentEditable.js +124 -0
  113. data/Packages/lsd/Source/Mixin/Draggable.js +113 -0
  114. data/Packages/lsd/Source/Mixin/Fieldset.js +235 -0
  115. data/Packages/lsd/Source/Mixin/Focusable.js +122 -0
  116. data/Packages/lsd/Source/Mixin/Invokable.js +83 -0
  117. data/Packages/lsd/Source/Mixin/List.js +99 -0
  118. data/Packages/lsd/Source/Mixin/Placeholder.js +77 -0
  119. data/Packages/lsd/Source/Mixin/Request.js +120 -0
  120. data/Packages/lsd/Source/Mixin/Resizable.js +182 -0
  121. data/Packages/lsd/Source/Mixin/Resource.js +81 -0
  122. data/Packages/lsd/Source/Mixin/Root.js +41 -0
  123. data/Packages/lsd/Source/Mixin/Scrollable.js +69 -0
  124. data/Packages/lsd/Source/Mixin/Sortable.js +134 -0
  125. data/Packages/lsd/Source/Mixin/Submittable.js +64 -0
  126. data/Packages/lsd/Source/Mixin/Target.js +102 -0
  127. data/Packages/lsd/Source/Mixin/Touchable.js +41 -0
  128. data/Packages/lsd/Source/Mixin/Unselectable.js +35 -0
  129. data/Packages/lsd/Source/Mixin/Uploader.js +277 -0
  130. data/Packages/lsd/Source/Mixin/Validity.js +102 -0
  131. data/Packages/lsd/Source/Mixin/Value.js +160 -0
  132. data/Packages/lsd/Source/Module/Accessories/Actions.js +79 -0
  133. data/Packages/lsd/Source/Module/Accessories/Attributes.js +192 -0
  134. data/Packages/lsd/Source/Module/Accessories/Chain.js +232 -0
  135. data/Packages/lsd/Source/Module/Accessories/Dimensions.js +114 -0
  136. data/Packages/lsd/Source/Module/Accessories/Element.js +233 -0
  137. data/Packages/lsd/Source/Module/Accessories/Events.js +352 -0
  138. data/Packages/lsd/Source/Module/Accessories/Options.js +112 -0
  139. data/Packages/lsd/Source/Module/Accessories/Shortcuts.js +46 -0
  140. data/Packages/lsd/Source/Module/Accessories/States.js +28 -0
  141. data/Packages/lsd/Source/Module/Accessories/Styles.js +230 -0
  142. data/Packages/lsd/Source/Module/Accessories/Tag.js +145 -0
  143. data/Packages/lsd/Source/Module/Accessories.js +47 -0
  144. data/Packages/lsd/Source/Module/Ambient/Allocations.js +184 -0
  145. data/Packages/lsd/Source/Module/Ambient/Container.js +56 -0
  146. data/Packages/lsd/Source/Module/Ambient/DOM.js +355 -0
  147. data/Packages/lsd/Source/Module/Ambient/Expectations.js +358 -0
  148. data/Packages/lsd/Source/Module/Ambient/Layout.js +97 -0
  149. data/Packages/lsd/Source/Module/Ambient/Mutations.js +101 -0
  150. data/Packages/lsd/Source/Module/Ambient/Proxies.js +84 -0
  151. data/Packages/lsd/Source/Module/Ambient/Relations.js +99 -0
  152. data/Packages/lsd/Source/Module/Ambient/Selectors.js +136 -0
  153. data/Packages/lsd/Source/Module/Ambient.js +39 -0
  154. data/Packages/lsd/Source/Module/Graphics/Layers.js +177 -0
  155. data/Packages/lsd/Source/Module/Graphics/Render.js +96 -0
  156. data/Packages/lsd/Source/Module/Graphics/Shape.js +56 -0
  157. data/Packages/lsd/Source/Module/Graphics.js +30 -0
  158. data/Packages/lsd/Source/Relation.js +397 -0
  159. data/Packages/lsd/Source/Sheet.js +324 -0
  160. data/Packages/lsd/Source/Trait/Date.js +66 -0
  161. data/Packages/lsd/Source/Trait/Input.js +65 -0
  162. data/Packages/lsd/Source/Trait/Menu.js +21 -0
  163. data/Packages/lsd/Source/Trait/Slider.js +93 -0
  164. data/Packages/lsd/Source/Type.js +92 -0
  165. data/Packages/lsd/Source/Widget.js +60 -0
  166. data/Packages/lsd/UNLICENSE +24 -0
  167. data/Packages/lsd/package.yml +114 -0
  168. data/Packages/lsd-mobile/Source/Body/Dialog.js +57 -0
  169. data/Packages/lsd-mobile/Source/Body/Page.js +50 -0
  170. data/Packages/lsd-mobile/Source/Body.js +30 -0
  171. data/Packages/lsd-mobile/Source/Dialog.js +0 -0
  172. data/Packages/lsd-mobile/Source/Document.js +78 -0
  173. data/Packages/lsd-mobile/Source/Input/Date.js +119 -0
  174. data/Packages/lsd-mobile/Source/Input.js +24 -0
  175. data/Packages/lsd-mobile/Source/Mobile.js +27 -0
  176. data/Packages/lsd-mobile/package.yml +15 -0
  177. data/Packages/lsd-native/README.md +0 -0
  178. data/Packages/lsd-native/Source/Input/Checkbox.js +42 -0
  179. data/Packages/lsd-native/Source/Input/Date.js +33 -0
  180. data/Packages/lsd-native/Source/Input/File.js +23 -0
  181. data/Packages/lsd-native/Source/Input/Hidden.js +23 -0
  182. data/Packages/lsd-native/Source/Input/Password.js +29 -0
  183. data/Packages/lsd-native/Source/Input/Radio.js +42 -0
  184. data/Packages/lsd-native/Source/Input/Search.js +23 -0
  185. data/Packages/lsd-native/Source/Input.js +48 -0
  186. data/Packages/lsd-native/Source/Select.js +29 -0
  187. data/Packages/lsd-native/Source/Textarea.js +27 -0
  188. data/Packages/lsd-native/package.yml +18 -0
  189. data/Packages/lsd-specs/Compiled/includes.js +217 -0
  190. data/Packages/lsd-specs/Configuration.js +124 -0
  191. data/Packages/lsd-specs/compile.sh +1 -0
  192. data/Packages/lsd-specs/index.html +26 -0
  193. data/Packages/lsd-specs/lsd/Action/Counter.js +35 -0
  194. data/Packages/lsd-specs/lsd/Layout.js +146 -0
  195. data/Packages/lsd-specs/lsd/Module/Accessories/Attributes.js +68 -0
  196. data/Packages/lsd-specs/lsd/Module/Accessories/Chain.js +385 -0
  197. data/Packages/lsd-specs/lsd/Module/Accessories/Dimensions.js +53 -0
  198. data/Packages/lsd-specs/lsd/Module/Accessories/Element.js +112 -0
  199. data/Packages/lsd-specs/lsd/Module/Accessories/Events.js +151 -0
  200. data/Packages/lsd-specs/lsd/Module/Accessories/Options.js +36 -0
  201. data/Packages/lsd-specs/lsd/Module/Accessories/Shortcuts.js +0 -0
  202. data/Packages/lsd-specs/lsd/Module/Accessories/States.js +0 -0
  203. data/Packages/lsd-specs/lsd/Module/Accessories/Styles.js +14 -0
  204. data/Packages/lsd-specs/lsd/Module/Accessories/Tag.js +84 -0
  205. data/Packages/lsd-specs/lsd/Module/Ambient/DOM.js +394 -0
  206. data/Packages/lsd-specs/lsd/Module/Ambient/Expectations.js +199 -0
  207. data/Packages/lsd-specs/lsd/Module/Ambient/Layout.js +0 -0
  208. data/Packages/lsd-specs/lsd/Module/Ambient/Relations.js +7 -0
  209. data/Packages/lsd-specs/lsd/Module/Behavior/Target.Parser.js +123 -0
  210. data/Packages/lsd-specs/lsd/Module/Behavior/Target.js +0 -0
  211. data/Packages/lsd-specs/lsd/Relation.js +428 -0
  212. data/Packages/lsd-specs/lsd/Trait/Dimensions.js +216 -0
  213. data/Packages/lsd-specs/lsd/Trait/Layers.js +66 -0
  214. data/Packages/lsd-specs/lsd/Type.js +27 -0
  215. data/Packages/lsd-specs/outdated/Focus.js +137 -0
  216. data/Packages/lsd-widgets/Source/Body/Dialog.js +68 -0
  217. data/Packages/lsd-widgets/Source/Body/Page.js +38 -0
  218. data/Packages/lsd-widgets/Source/Body.js +27 -0
  219. data/Packages/lsd-widgets/Source/Button.js +34 -0
  220. data/Packages/lsd-widgets/Source/Form.js +43 -0
  221. data/Packages/lsd-widgets/Source/Input/Checkbox.js +31 -0
  222. data/Packages/lsd-widgets/Source/Input/Date.js +43 -0
  223. data/Packages/lsd-widgets/Source/Input/File.js +63 -0
  224. data/Packages/lsd-widgets/Source/Input/HTML.js +54 -0
  225. data/Packages/lsd-widgets/Source/Input/Radio.js +31 -0
  226. data/Packages/lsd-widgets/Source/Input/Range.js +61 -0
  227. data/Packages/lsd-widgets/Source/Input/Submit.js +55 -0
  228. data/Packages/lsd-widgets/Source/Input.js +62 -0
  229. data/Packages/lsd-widgets/Source/Label.js +66 -0
  230. data/Packages/lsd-widgets/Source/Menu/Context.js +39 -0
  231. data/Packages/lsd-widgets/Source/Menu/List.js +49 -0
  232. data/Packages/lsd-widgets/Source/Menu/Toolbar.Menu.js +65 -0
  233. data/Packages/lsd-widgets/Source/Menu/Toolbar.js +30 -0
  234. data/Packages/lsd-widgets/Source/Menu.js +38 -0
  235. data/Packages/lsd-widgets/Source/Progress.js +45 -0
  236. data/Packages/lsd-widgets/Source/Scrollbar.js +131 -0
  237. data/Packages/lsd-widgets/Source/Select.js +81 -0
  238. data/Packages/lsd-widgets/Source/Table/Calendar.js +127 -0
  239. data/Packages/lsd-widgets/Source/Table.js +100 -0
  240. data/Packages/lsd-widgets/Source/Textarea.js +32 -0
  241. data/Packages/lsd-widgets/package.yml +32 -0
  242. data/Packages/mootools-color/README.md +4 -0
  243. data/Packages/mootools-color/Source/Color.js +167 -0
  244. data/Packages/mootools-color/license.txt +21 -0
  245. data/Packages/mootools-color/package.yml +20 -0
  246. data/Packages/mootools-core/Docs/Browser/Browser.md +102 -0
  247. data/Packages/mootools-core/Docs/Class/Class.Extras.md +453 -0
  248. data/Packages/mootools-core/Docs/Class/Class.md +133 -0
  249. data/Packages/mootools-core/Docs/Core/Core.md +385 -0
  250. data/Packages/mootools-core/Docs/Element/Element.Dimensions.md +235 -0
  251. data/Packages/mootools-core/Docs/Element/Element.Event.md +330 -0
  252. data/Packages/mootools-core/Docs/Element/Element.Style.md +121 -0
  253. data/Packages/mootools-core/Docs/Element/Element.md +1924 -0
  254. data/Packages/mootools-core/Docs/Fx/Fx.CSS.md +12 -0
  255. data/Packages/mootools-core/Docs/Fx/Fx.Morph.md +225 -0
  256. data/Packages/mootools-core/Docs/Fx/Fx.Transitions.md +157 -0
  257. data/Packages/mootools-core/Docs/Fx/Fx.Tween.md +303 -0
  258. data/Packages/mootools-core/Docs/Fx/Fx.md +172 -0
  259. data/Packages/mootools-core/Docs/Intro.md +37 -0
  260. data/Packages/mootools-core/Docs/Request/Request.HTML.md +179 -0
  261. data/Packages/mootools-core/Docs/Request/Request.JSON.md +61 -0
  262. data/Packages/mootools-core/Docs/Request/Request.md +461 -0
  263. data/Packages/mootools-core/Docs/Types/Array.md +797 -0
  264. data/Packages/mootools-core/Docs/Types/Event.md +204 -0
  265. data/Packages/mootools-core/Docs/Types/Function.md +409 -0
  266. data/Packages/mootools-core/Docs/Types/Number.md +212 -0
  267. data/Packages/mootools-core/Docs/Types/Object.md +599 -0
  268. data/Packages/mootools-core/Docs/Types/String.md +400 -0
  269. data/Packages/mootools-core/Docs/Utilities/Cookie.md +95 -0
  270. data/Packages/mootools-core/Docs/Utilities/DOMReady.md +21 -0
  271. data/Packages/mootools-core/Docs/Utilities/JSON.md +56 -0
  272. data/Packages/mootools-core/Docs/Utilities/Swiff.md +90 -0
  273. data/Packages/mootools-core/Docs/license.md +8 -0
  274. data/Packages/mootools-core/README.md +6 -0
  275. data/Packages/mootools-core/Source/Browser/Browser.js +264 -0
  276. data/Packages/mootools-core/Source/Class/Class.Extras.js +121 -0
  277. data/Packages/mootools-core/Source/Class/Class.js +115 -0
  278. data/Packages/mootools-core/Source/Core/Core.js +511 -0
  279. data/Packages/mootools-core/Source/Element/Element.Dimensions.js +283 -0
  280. data/Packages/mootools-core/Source/Element/Element.Event.js +175 -0
  281. data/Packages/mootools-core/Source/Element/Element.Style.js +184 -0
  282. data/Packages/mootools-core/Source/Element/Element.js +862 -0
  283. data/Packages/mootools-core/Source/Fx/Fx.CSS.js +149 -0
  284. data/Packages/mootools-core/Source/Fx/Fx.Morph.js +77 -0
  285. data/Packages/mootools-core/Source/Fx/Fx.Transitions.js +113 -0
  286. data/Packages/mootools-core/Source/Fx/Fx.Tween.js +103 -0
  287. data/Packages/mootools-core/Source/Fx/Fx.js +179 -0
  288. data/Packages/mootools-core/Source/Request/Request.HTML.js +88 -0
  289. data/Packages/mootools-core/Source/Request/Request.JSON.js +46 -0
  290. data/Packages/mootools-core/Source/Request/Request.js +278 -0
  291. data/Packages/mootools-core/Source/Slick/Slick.Finder.js +970 -0
  292. data/Packages/mootools-core/Source/Slick/Slick.Parser.js +230 -0
  293. data/Packages/mootools-core/Source/Types/Array.js +178 -0
  294. data/Packages/mootools-core/Source/Types/Event.js +135 -0
  295. data/Packages/mootools-core/Source/Types/Function.js +118 -0
  296. data/Packages/mootools-core/Source/Types/Number.js +52 -0
  297. data/Packages/mootools-core/Source/Types/Object.js +209 -0
  298. data/Packages/mootools-core/Source/Types/String.js +82 -0
  299. data/Packages/mootools-core/Source/Utilities/Cookie.js +74 -0
  300. data/Packages/mootools-core/Source/Utilities/DOMReady.js +105 -0
  301. data/Packages/mootools-core/Source/Utilities/JSON.js +81 -0
  302. data/Packages/mootools-core/Source/Utilities/Swiff.js +113 -0
  303. data/Packages/mootools-core/Source/license.txt +21 -0
  304. data/Packages/mootools-core/build +40 -0
  305. data/Packages/mootools-core/package.yml +43 -0
  306. data/Packages/mootools-custom-event/Demos/index.html +147 -0
  307. data/Packages/mootools-custom-event/Demos/mootools-core.js +3183 -0
  308. data/Packages/mootools-custom-event/Demos/style.css +44 -0
  309. data/Packages/mootools-custom-event/LICENSE +24 -0
  310. data/Packages/mootools-custom-event/README.md +128 -0
  311. data/Packages/mootools-custom-event/Source/Element.defineCustomEvent.js +90 -0
  312. data/Packages/mootools-custom-event/package.yml +20 -0
  313. data/Packages/mootools-ext/Examples/Class.Includes.js +47 -0
  314. data/Packages/mootools-ext/Examples/Class.Macros.js +69 -0
  315. data/Packages/mootools-ext/Examples/Class.States.js +20 -0
  316. data/Packages/mootools-ext/Examples/_includes.haml +17 -0
  317. data/Packages/mootools-ext/Examples/examples.js +8 -0
  318. data/Packages/mootools-ext/Examples/index.haml +22 -0
  319. data/Packages/mootools-ext/README.md +8 -0
  320. data/Packages/mootools-ext/Rakefile +5 -0
  321. data/Packages/mootools-ext/Source/Core/Class.Binds.Remover.js +21 -0
  322. data/Packages/mootools-ext/Source/Core/Class.Includes.js +68 -0
  323. data/Packages/mootools-ext/Source/Core/Class.Macros.js +90 -0
  324. data/Packages/mootools-ext/Source/Core/Class.Mixin.js +89 -0
  325. data/Packages/mootools-ext/Source/Core/Class.Shortcuts.js +124 -0
  326. data/Packages/mootools-ext/Source/Core/Class.States.js +95 -0
  327. data/Packages/mootools-ext/Source/Drag/Drag.Limits.js +42 -0
  328. data/Packages/mootools-ext/Source/Drag/Slider.js +33 -0
  329. data/Packages/mootools-ext/Source/Drag/Sortables.Delegation.js +64 -0
  330. data/Packages/mootools-ext/Source/Element/Element.Selection.js +45 -0
  331. data/Packages/mootools-ext/Source/Element/Element.from.js +50 -0
  332. data/Packages/mootools-ext/Source/Element/Element.js +47 -0
  333. data/Packages/mootools-ext/Source/Element/Element.onDispose.js +36 -0
  334. data/Packages/mootools-ext/Source/Element/Events/Input.js +23 -0
  335. data/Packages/mootools-ext/Source/Element/Events/Keypress.js +65 -0
  336. data/Packages/mootools-ext/Source/Element/Properties/BorderRadius.js +41 -0
  337. data/Packages/mootools-ext/Source/Element/Properties/BoxShadow.js +61 -0
  338. data/Packages/mootools-ext/Source/Element/Properties/Data.js +32 -0
  339. data/Packages/mootools-ext/Source/Element/Properties/Item.js +210 -0
  340. data/Packages/mootools-ext/Source/Element/Properties/UserSelect.js +32 -0
  341. data/Packages/mootools-ext/Source/Element/Properties/Widget.js +32 -0
  342. data/Packages/mootools-ext/Source/Request/Request.Auto.js +38 -0
  343. data/Packages/mootools-ext/Source/Request/Request.Form.js +108 -0
  344. data/Packages/mootools-ext/Source/Request/Request.Headers.js +41 -0
  345. data/Packages/mootools-ext/Source/Request/Request.Statuses.js +95 -0
  346. data/Packages/mootools-ext/Source/Types/Event.js +336 -0
  347. data/Packages/mootools-ext/Source/Types/FastArray.js +74 -0
  348. data/Packages/mootools-ext/Source/Types/Object.js +34 -0
  349. data/Packages/mootools-ext/Source/Types/String.js +33 -0
  350. data/Packages/mootools-ext/package.yml +45 -0
  351. data/Packages/mootools-history/Demos/demo.css +14 -0
  352. data/Packages/mootools-history/Demos/demo.js +66 -0
  353. data/Packages/mootools-history/Demos/index.html +32 -0
  354. data/Packages/mootools-history/Demos/mootools-class-extras.js +27 -0
  355. data/Packages/mootools-history/Demos/mootools-core.js +4422 -0
  356. data/Packages/mootools-history/Demos/mootools.html +27 -0
  357. data/Packages/mootools-history/Demos/other.html +27 -0
  358. data/Packages/mootools-history/Demos/style.css +96 -0
  359. data/Packages/mootools-history/LICENSE +24 -0
  360. data/Packages/mootools-history/README.md +97 -0
  361. data/Packages/mootools-history/Source/History.handleInitialState.js +42 -0
  362. data/Packages/mootools-history/Source/History.js +102 -0
  363. data/Packages/mootools-history/package.yml +21 -0
  364. data/Packages/mootools-mobile/Demos/custom-event.js +91 -0
  365. data/Packages/mootools-mobile/Demos/demo.css +13 -0
  366. data/Packages/mootools-mobile/Demos/index.html +99 -0
  367. data/Packages/mootools-mobile/Demos/mootools-core.js +3831 -0
  368. data/Packages/mootools-mobile/Demos/pinch.html +60 -0
  369. data/Packages/mootools-mobile/Demos/style.css +121 -0
  370. data/Packages/mootools-mobile/Demos/swipe.html +45 -0
  371. data/Packages/mootools-mobile/Demos/touchhold.html +50 -0
  372. data/Packages/mootools-mobile/LICENSE +24 -0
  373. data/Packages/mootools-mobile/README.md +173 -0
  374. data/Packages/mootools-mobile/Source/Browser/Features.Touch.js +52 -0
  375. data/Packages/mootools-mobile/Source/Browser/Mobile.js +37 -0
  376. data/Packages/mootools-mobile/Source/Desktop/Mouse.js +60 -0
  377. data/Packages/mootools-mobile/Source/Touch/Click.js +30 -0
  378. data/Packages/mootools-mobile/Source/Touch/Pinch.js +66 -0
  379. data/Packages/mootools-mobile/Source/Touch/Swipe.js +95 -0
  380. data/Packages/mootools-mobile/Source/Touch/Touch.js +62 -0
  381. data/Packages/mootools-mobile/Source/Touch/Touchhold.js +69 -0
  382. data/Packages/mootools-mobile/package.yml +24 -0
  383. data/Packages/mootools-more/Docs/Class/Chain.Wait.md +69 -0
  384. data/Packages/mootools-more/Docs/Class/Class.Binds.md +84 -0
  385. data/Packages/mootools-more/Docs/Class/Class.Occlude.md +61 -0
  386. data/Packages/mootools-more/Docs/Class/Class.Refactor.md +65 -0
  387. data/Packages/mootools-more/Docs/Class/Events.Pseudos.md +125 -0
  388. data/Packages/mootools-more/Docs/Drag/Drag.Move.md +147 -0
  389. data/Packages/mootools-more/Docs/Drag/Drag.md +206 -0
  390. data/Packages/mootools-more/Docs/Drag/Slider.md +249 -0
  391. data/Packages/mootools-more/Docs/Drag/Sortables.md +287 -0
  392. data/Packages/mootools-more/Docs/Element/Element.Delegation.md +120 -0
  393. data/Packages/mootools-more/Docs/Element/Element.Event.Pseudos.Keys.md +67 -0
  394. data/Packages/mootools-more/Docs/Element/Element.Event.Pseudos.md +124 -0
  395. data/Packages/mootools-more/Docs/Element/Element.Forms.md +231 -0
  396. data/Packages/mootools-more/Docs/Element/Element.Measure.md +130 -0
  397. data/Packages/mootools-more/Docs/Element/Element.Pin.md +56 -0
  398. data/Packages/mootools-more/Docs/Element/Element.Position.md +77 -0
  399. data/Packages/mootools-more/Docs/Element/Element.Shortcuts.md +121 -0
  400. data/Packages/mootools-more/Docs/Element/Elements.From.md +32 -0
  401. data/Packages/mootools-more/Docs/Forms/Form.Request.Append.md +36 -0
  402. data/Packages/mootools-more/Docs/Forms/Form.Request.md +141 -0
  403. data/Packages/mootools-more/Docs/Forms/Form.Validator.Extras.md +157 -0
  404. data/Packages/mootools-more/Docs/Forms/Form.Validator.Inline.md +100 -0
  405. data/Packages/mootools-more/Docs/Forms/Form.Validator.md +666 -0
  406. data/Packages/mootools-more/Docs/Forms/OverText.md +237 -0
  407. data/Packages/mootools-more/Docs/Fx/Fx.Accordion.md +178 -0
  408. data/Packages/mootools-more/Docs/Fx/Fx.Elements.md +114 -0
  409. data/Packages/mootools-more/Docs/Fx/Fx.Move.md +160 -0
  410. data/Packages/mootools-more/Docs/Fx/Fx.Reveal.md +235 -0
  411. data/Packages/mootools-more/Docs/Fx/Fx.Scroll.md +291 -0
  412. data/Packages/mootools-more/Docs/Fx/Fx.Slide.md +272 -0
  413. data/Packages/mootools-more/Docs/Fx/Fx.SmoothScroll.md +50 -0
  414. data/Packages/mootools-more/Docs/Fx/Fx.Sort.md +201 -0
  415. data/Packages/mootools-more/Docs/Interface/HtmlTable.Select.md +246 -0
  416. data/Packages/mootools-more/Docs/Interface/HtmlTable.Sort.md +193 -0
  417. data/Packages/mootools-more/Docs/Interface/HtmlTable.Zebra.md +94 -0
  418. data/Packages/mootools-more/Docs/Interface/HtmlTable.md +250 -0
  419. data/Packages/mootools-more/Docs/Interface/Keyboard.Extras.md +163 -0
  420. data/Packages/mootools-more/Docs/Interface/Keyboard.md +226 -0
  421. data/Packages/mootools-more/Docs/Interface/Mask.md +232 -0
  422. data/Packages/mootools-more/Docs/Interface/Scroller.md +97 -0
  423. data/Packages/mootools-more/Docs/Interface/Spinner.md +284 -0
  424. data/Packages/mootools-more/Docs/Interface/Tips.md +267 -0
  425. data/Packages/mootools-more/Docs/Locale/Date.md +222 -0
  426. data/Packages/mootools-more/Docs/Locale/Form.Validator.md +197 -0
  427. data/Packages/mootools-more/Docs/Locale/Locale.Set.From.md +29 -0
  428. data/Packages/mootools-more/Docs/Locale/Locale.md +208 -0
  429. data/Packages/mootools-more/Docs/Locale/Number.md +97 -0
  430. data/Packages/mootools-more/Docs/More/More.md +20 -0
  431. data/Packages/mootools-more/Docs/Request/Request.JSONP.md +126 -0
  432. data/Packages/mootools-more/Docs/Request/Request.Periodical.md +82 -0
  433. data/Packages/mootools-more/Docs/Request/Request.Queue.md +337 -0
  434. data/Packages/mootools-more/Docs/Types/Array.Extras.md +193 -0
  435. data/Packages/mootools-more/Docs/Types/Date.Extras.md +97 -0
  436. data/Packages/mootools-more/Docs/Types/Date.md +564 -0
  437. data/Packages/mootools-more/Docs/Types/Hash.Extras.md +111 -0
  438. data/Packages/mootools-more/Docs/Types/Hash.md +633 -0
  439. data/Packages/mootools-more/Docs/Types/Number.Format.md +91 -0
  440. data/Packages/mootools-more/Docs/Types/Object.Extras.md +134 -0
  441. data/Packages/mootools-more/Docs/Types/String.Extras.md +188 -0
  442. data/Packages/mootools-more/Docs/Types/String.QueryString.md +56 -0
  443. data/Packages/mootools-more/Docs/Types/URI.Relative.md +46 -0
  444. data/Packages/mootools-more/Docs/Types/URI.md +213 -0
  445. data/Packages/mootools-more/Docs/Utilities/Assets.md +175 -0
  446. data/Packages/mootools-more/Docs/Utilities/Color.md +276 -0
  447. data/Packages/mootools-more/Docs/Utilities/Group.md +75 -0
  448. data/Packages/mootools-more/Docs/Utilities/Hash.Cookie.md +117 -0
  449. data/Packages/mootools-more/Docs/Utilities/IframeShim.md +136 -0
  450. data/Packages/mootools-more/Docs/Utilities/Table.md +114 -0
  451. data/Packages/mootools-more/Docs/license.md +8 -0
  452. data/Packages/mootools-more/README.md +244 -0
  453. data/Packages/mootools-more/Source/Class/Chain.Wait.js +63 -0
  454. data/Packages/mootools-more/Source/Class/Class.Binds.js +37 -0
  455. data/Packages/mootools-more/Source/Class/Class.Occlude.js +38 -0
  456. data/Packages/mootools-more/Source/Class/Class.Refactor.js +41 -0
  457. data/Packages/mootools-more/Source/Class/Events.Pseudos.js +180 -0
  458. data/Packages/mootools-more/Source/Drag/Drag.Move.js +197 -0
  459. data/Packages/mootools-more/Source/Drag/Drag.js +234 -0
  460. data/Packages/mootools-more/Source/Drag/Slider.js +225 -0
  461. data/Packages/mootools-more/Source/Drag/Sortables.js +233 -0
  462. data/Packages/mootools-more/Source/Element/Element.Delegation.js +140 -0
  463. data/Packages/mootools-more/Source/Element/Element.Event.Pseudos.Keys.js +82 -0
  464. data/Packages/mootools-more/Source/Element/Element.Event.Pseudos.js +36 -0
  465. data/Packages/mootools-more/Source/Element/Element.Forms.js +140 -0
  466. data/Packages/mootools-more/Source/Element/Element.Measure.js +170 -0
  467. data/Packages/mootools-more/Source/Element/Element.Pin.js +130 -0
  468. data/Packages/mootools-more/Source/Element/Element.Position.js +235 -0
  469. data/Packages/mootools-more/Source/Element/Element.Shortcuts.js +76 -0
  470. data/Packages/mootools-more/Source/Element/Elements.From.js +40 -0
  471. data/Packages/mootools-more/Source/Forms/Form.Request.Append.js +77 -0
  472. data/Packages/mootools-more/Source/Forms/Form.Request.js +203 -0
  473. data/Packages/mootools-more/Source/Forms/Form.Validator.Extras.js +231 -0
  474. data/Packages/mootools-more/Source/Forms/Form.Validator.Inline.js +190 -0
  475. data/Packages/mootools-more/Source/Forms/Form.Validator.js +523 -0
  476. data/Packages/mootools-more/Source/Forms/OverText.js +258 -0
  477. data/Packages/mootools-more/Source/Fx/Fx.Accordion.js +240 -0
  478. data/Packages/mootools-more/Source/Fx/Fx.Elements.js +74 -0
  479. data/Packages/mootools-more/Source/Fx/Fx.Move.js +71 -0
  480. data/Packages/mootools-more/Source/Fx/Fx.Reveal.js +246 -0
  481. data/Packages/mootools-more/Source/Fx/Fx.Scroll.js +180 -0
  482. data/Packages/mootools-more/Source/Fx/Fx.Slide.js +170 -0
  483. data/Packages/mootools-more/Source/Fx/Fx.SmoothScroll.js +70 -0
  484. data/Packages/mootools-more/Source/Fx/Fx.Sort.js +172 -0
  485. data/Packages/mootools-more/Source/Interface/HtmlTable.Select.js +352 -0
  486. data/Packages/mootools-more/Source/Interface/HtmlTable.Sort.js +349 -0
  487. data/Packages/mootools-more/Source/Interface/HtmlTable.Zebra.js +64 -0
  488. data/Packages/mootools-more/Source/Interface/HtmlTable.js +150 -0
  489. data/Packages/mootools-more/Source/Interface/Keyboard.Extras.js +109 -0
  490. data/Packages/mootools-more/Source/Interface/Keyboard.js +242 -0
  491. data/Packages/mootools-more/Source/Interface/Mask.js +211 -0
  492. data/Packages/mootools-more/Source/Interface/Scroller.js +104 -0
  493. data/Packages/mootools-more/Source/Interface/Spinner.js +216 -0
  494. data/Packages/mootools-more/Source/Interface/Tips.js +259 -0
  495. data/Packages/mootools-more/Source/Locale/Locale.EU.Number.js +30 -0
  496. data/Packages/mootools-more/Source/Locale/Locale.Set.From.js +52 -0
  497. data/Packages/mootools-more/Source/Locale/Locale.ar.Date.js +28 -0
  498. data/Packages/mootools-more/Source/Locale/Locale.ar.Form.Validator.js +40 -0
  499. data/Packages/mootools-more/Source/Locale/Locale.ca-CA.Date.js +55 -0
  500. data/Packages/mootools-more/Source/Locale/Locale.ca-CA.Form.Validator.js +55 -0
  501. data/Packages/mootools-more/Source/Locale/Locale.cs-CZ.Date.js +80 -0
  502. data/Packages/mootools-more/Source/Locale/Locale.cs-CZ.Form.Validator.js +55 -0
  503. data/Packages/mootools-more/Source/Locale/Locale.da-DK.Date.js +68 -0
  504. data/Packages/mootools-more/Source/Locale/Locale.da-DK.Form.Validator.js +54 -0
  505. data/Packages/mootools-more/Source/Locale/Locale.de-CH.Date.js +22 -0
  506. data/Packages/mootools-more/Source/Locale/Locale.de-CH.Form.Validator.js +55 -0
  507. data/Packages/mootools-more/Source/Locale/Locale.de-DE.Date.js +70 -0
  508. data/Packages/mootools-more/Source/Locale/Locale.de-DE.Form.Validator.js +57 -0
  509. data/Packages/mootools-more/Source/Locale/Locale.de-DE.Number.js +22 -0
  510. data/Packages/mootools-more/Source/Locale/Locale.en-GB.Date.js +29 -0
  511. data/Packages/mootools-more/Source/Locale/Locale.en-US.Date.js +70 -0
  512. data/Packages/mootools-more/Source/Locale/Locale.en-US.Form.Validator.js +55 -0
  513. data/Packages/mootools-more/Source/Locale/Locale.en-US.Number.js +51 -0
  514. data/Packages/mootools-more/Source/Locale/Locale.es-AR.Date.js +23 -0
  515. data/Packages/mootools-more/Source/Locale/Locale.es-AR.Form.Validator.js +54 -0
  516. data/Packages/mootools-more/Source/Locale/Locale.es-ES.Date.js +67 -0
  517. data/Packages/mootools-more/Source/Locale/Locale.es-ES.Form.Validator.js +54 -0
  518. data/Packages/mootools-more/Source/Locale/Locale.es-VE.Date.js +22 -0
  519. data/Packages/mootools-more/Source/Locale/Locale.es-VE.Form.Validator.js +34 -0
  520. data/Packages/mootools-more/Source/Locale/Locale.es-VE.Number.js +44 -0
  521. data/Packages/mootools-more/Source/Locale/Locale.et-EE.Date.js +67 -0
  522. data/Packages/mootools-more/Source/Locale/Locale.et-EE.Form.Validator.js +54 -0
  523. data/Packages/mootools-more/Source/Locale/Locale.fa.Date.js +66 -0
  524. data/Packages/mootools-more/Source/Locale/Locale.fa.Form.Validator.js +55 -0
  525. data/Packages/mootools-more/Source/Locale/Locale.fi-FI.Date.js +72 -0
  526. data/Packages/mootools-more/Source/Locale/Locale.fi-FI.Form.Validator.js +55 -0
  527. data/Packages/mootools-more/Source/Locale/Locale.fi-FI.Number.js +26 -0
  528. data/Packages/mootools-more/Source/Locale/Locale.fr-FR.Date.js +70 -0
  529. data/Packages/mootools-more/Source/Locale/Locale.fr-FR.Form.Validator.js +56 -0
  530. data/Packages/mootools-more/Source/Locale/Locale.fr-FR.Number.js +27 -0
  531. data/Packages/mootools-more/Source/Locale/Locale.he-IL.Date.js +67 -0
  532. data/Packages/mootools-more/Source/Locale/Locale.he-IL.Form.Validator.js +55 -0
  533. data/Packages/mootools-more/Source/Locale/Locale.he-IL.Number.js +30 -0
  534. data/Packages/mootools-more/Source/Locale/Locale.hu-HU.Date.js +67 -0
  535. data/Packages/mootools-more/Source/Locale/Locale.hu-HU.Form.Validator.js +55 -0
  536. data/Packages/mootools-more/Source/Locale/Locale.it-IT.Date.js +68 -0
  537. data/Packages/mootools-more/Source/Locale/Locale.it-IT.Form.Validator.js +55 -0
  538. data/Packages/mootools-more/Source/Locale/Locale.ja-JP.Date.js +67 -0
  539. data/Packages/mootools-more/Source/Locale/Locale.ja-JP.Form.Validator.js +54 -0
  540. data/Packages/mootools-more/Source/Locale/Locale.ja-JP.Number.js +31 -0
  541. data/Packages/mootools-more/Source/Locale/Locale.js +188 -0
  542. data/Packages/mootools-more/Source/Locale/Locale.nl-NL.Date.js +68 -0
  543. data/Packages/mootools-more/Source/Locale/Locale.nl-NL.Form.Validator.js +57 -0
  544. data/Packages/mootools-more/Source/Locale/Locale.nl-NL.Number.js +25 -0
  545. data/Packages/mootools-more/Source/Locale/Locale.no-NO.Date.js +39 -0
  546. data/Packages/mootools-more/Source/Locale/Locale.no-NO.Form.Validator.js +40 -0
  547. data/Packages/mootools-more/Source/Locale/Locale.pl-PL.Date.js +57 -0
  548. data/Packages/mootools-more/Source/Locale/Locale.pl-PL.Form.Validator.js +54 -0
  549. data/Packages/mootools-more/Source/Locale/Locale.pt-BR.Date.js +27 -0
  550. data/Packages/mootools-more/Source/Locale/Locale.pt-BR.Form.Validator.js +55 -0
  551. data/Packages/mootools-more/Source/Locale/Locale.pt-BR.Number.js +33 -0
  552. data/Packages/mootools-more/Source/Locale/Locale.pt-PT.Date.js +67 -0
  553. data/Packages/mootools-more/Source/Locale/Locale.pt-PT.Form.Validator.js +40 -0
  554. data/Packages/mootools-more/Source/Locale/Locale.ru-RU.Date.js +98 -0
  555. data/Packages/mootools-more/Source/Locale/Locale.ru-RU.Form.Validator.js +46 -0
  556. data/Packages/mootools-more/Source/Locale/Locale.si-SI.Date.js +75 -0
  557. data/Packages/mootools-more/Source/Locale/Locale.si-SI.Form.Validator.js +55 -0
  558. data/Packages/mootools-more/Source/Locale/Locale.sv-SE.Date.js +55 -0
  559. data/Packages/mootools-more/Source/Locale/Locale.sv-SE.Form.Validator.js +54 -0
  560. data/Packages/mootools-more/Source/Locale/Locale.sv-SE.Number.js +29 -0
  561. data/Packages/mootools-more/Source/Locale/Locale.tr-TR.Date.js +67 -0
  562. data/Packages/mootools-more/Source/Locale/Locale.tr-TR.Form.Validator.js +55 -0
  563. data/Packages/mootools-more/Source/Locale/Locale.tr-TR.Number.js +29 -0
  564. data/Packages/mootools-more/Source/Locale/Locale.uk-UA.Date.js +82 -0
  565. data/Packages/mootools-more/Source/Locale/Locale.uk-UA.Form.Validator.js +54 -0
  566. data/Packages/mootools-more/Source/Locale/Locale.zh-CH.Date.js +117 -0
  567. data/Packages/mootools-more/Source/Locale/Locale.zh-CH.Form.Validator.js +110 -0
  568. data/Packages/mootools-more/Source/Locale/Locale.zh-CH.Number.js +32 -0
  569. data/Packages/mootools-more/Source/More/More.js +33 -0
  570. data/Packages/mootools-more/Source/Request/Request.JSONP.js +142 -0
  571. data/Packages/mootools-more/Source/Request/Request.Periodical.js +51 -0
  572. data/Packages/mootools-more/Source/Request/Request.Queue.js +212 -0
  573. data/Packages/mootools-more/Source/Types/Array.Extras.js +79 -0
  574. data/Packages/mootools-more/Source/Types/Date.Extras.js +117 -0
  575. data/Packages/mootools-more/Source/Types/Date.js +559 -0
  576. data/Packages/mootools-more/Source/Types/Hash.Extras.js +38 -0
  577. data/Packages/mootools-more/Source/Types/Hash.js +145 -0
  578. data/Packages/mootools-more/Source/Types/Number.Format.js +105 -0
  579. data/Packages/mootools-more/Source/Types/Object.Extras.js +66 -0
  580. data/Packages/mootools-more/Source/Types/String.Extras.js +148 -0
  581. data/Packages/mootools-more/Source/Types/String.QueryString.js +68 -0
  582. data/Packages/mootools-more/Source/Types/URI.Relative.js +57 -0
  583. data/Packages/mootools-more/Source/Types/URI.js +169 -0
  584. data/Packages/mootools-more/Source/Utilities/Assets.js +131 -0
  585. data/Packages/mootools-more/Source/Utilities/Color.js +162 -0
  586. data/Packages/mootools-more/Source/Utilities/Group.js +60 -0
  587. data/Packages/mootools-more/Source/Utilities/Hash.Cookie.js +61 -0
  588. data/Packages/mootools-more/Source/Utilities/IframeShim.js +130 -0
  589. data/Packages/mootools-more/Source/Utilities/Table.js +57 -0
  590. data/Packages/mootools-more/Source/license.txt +21 -0
  591. data/Packages/mootools-more/Styles/Interface/Mask/mask.css +8 -0
  592. data/Packages/mootools-more/Styles/Interface/Spinner/spinner.css +19 -0
  593. data/Packages/mootools-more/Styles/Interface/Spinner/spinner.gif +0 -0
  594. data/Packages/mootools-more/Tests/Interactive/Class/Chain.Wait_(tween).html +14 -0
  595. data/Packages/mootools-more/Tests/Interactive/Class/Chain.Wait_(tween).yml +2 -0
  596. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(basic).html +39 -0
  597. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(basic).yml +3 -0
  598. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(container).html +130 -0
  599. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(container).yml +3 -0
  600. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(drag_in_drag).html +46 -0
  601. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(drag_in_drag).yml +3 -0
  602. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(drag_in_drag_border).html +48 -0
  603. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(drag_in_drag_border).yml +3 -0
  604. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(droppables).html +88 -0
  605. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(droppables).yml +3 -0
  606. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(no_offsetParent).html +42 -0
  607. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(no_offsetParent).yml +3 -0
  608. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(position_right_bottom).html +41 -0
  609. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(style_false).html +23 -0
  610. data/Packages/mootools-more/Tests/Interactive/Drag/Drag.Move_(style_false).yml +3 -0
  611. data/Packages/mootools-more/Tests/Interactive/Drag/Drag_(resize).html +48 -0
  612. data/Packages/mootools-more/Tests/Interactive/Drag/Drag_(resize).yml +2 -0
  613. data/Packages/mootools-more/Tests/Interactive/Drag/Slider.html +169 -0
  614. data/Packages/mootools-more/Tests/Interactive/Drag/Slider.yml +2 -0
  615. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(images).html +19 -0
  616. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(images).yml +2 -0
  617. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(multi).html +44 -0
  618. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(multi).yml +2 -0
  619. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(revert).html +51 -0
  620. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(single).html +67 -0
  621. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(single).yml +2 -0
  622. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(table).html +46 -0
  623. data/Packages/mootools-more/Tests/Interactive/Drag/Sortables_(table).yml +2 -0
  624. data/Packages/mootools-more/Tests/Interactive/Element/Element.Delegation.html +89 -0
  625. data/Packages/mootools-more/Tests/Interactive/Element/Element.Delegation.yml +2 -0
  626. data/Packages/mootools-more/Tests/Interactive/Element/Element.Delegation_(focus_blur).yml +2 -0
  627. data/Packages/mootools-more/Tests/Interactive/Element/Element.Delegation_(non_bubbling).html +126 -0
  628. data/Packages/mootools-more/Tests/Interactive/Element/Element.Event.Pseudos.Keys.html +39 -0
  629. data/Packages/mootools-more/Tests/Interactive/Element/Element.Event.Pseudos.Keys.yml +3 -0
  630. data/Packages/mootools-more/Tests/Interactive/Element/Element.Event.Pseudos.html +56 -0
  631. data/Packages/mootools-more/Tests/Interactive/Element/Element.Forms.html +125 -0
  632. data/Packages/mootools-more/Tests/Interactive/Element/Element.Forms.yml +2 -0
  633. data/Packages/mootools-more/Tests/Interactive/Element/Element.Pin.html +46 -0
  634. data/Packages/mootools-more/Tests/Interactive/Element/Element.Pin.yml +2 -0
  635. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(basic).html +118 -0
  636. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(basic).yml +2 -0
  637. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(scrolled).html +47 -0
  638. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(scrolled).yml +2 -0
  639. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(scrolling).html +46 -0
  640. data/Packages/mootools-more/Tests/Interactive/Element/Element.Position_(scrolling).yml +2 -0
  641. data/Packages/mootools-more/Tests/Interactive/Element/Element.Shortcuts.html +171 -0
  642. data/Packages/mootools-more/Tests/Interactive/Element/Element.Shortcuts.yml +2 -0
  643. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Request.Append.html +29 -0
  644. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Request.Append.yml +3 -0
  645. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Request.html +49 -0
  646. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Request.yml +2 -0
  647. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Extras.html +88 -0
  648. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Extras.yml +3 -0
  649. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Extras_(data-).html +87 -0
  650. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Extras_(data-).yml +3 -0
  651. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline.html +54 -0
  652. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline.yml +3 -0
  653. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(data-).html +54 -0
  654. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(data-).yml +3 -0
  655. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(data-warnings).html +42 -0
  656. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(data-warnings).yml +3 -0
  657. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(onBlur).html +60 -0
  658. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(onBlur).yml +3 -0
  659. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(onChange).html +68 -0
  660. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(onChange).yml +3 -0
  661. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(single_input).html +33 -0
  662. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(single_input).yml +3 -0
  663. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(warnings).html +42 -0
  664. data/Packages/mootools-more/Tests/Interactive/Forms/Form.Validator.Inline_(warnings).yml +3 -0
  665. data/Packages/mootools-more/Tests/Interactive/Forms/OverText.html +116 -0
  666. data/Packages/mootools-more/Tests/Interactive/Forms/OverText.yml +2 -0
  667. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Accordion.html +152 -0
  668. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Accordion.yml +2 -0
  669. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Elements.html +34 -0
  670. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Elements.yml +2 -0
  671. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Move.html +91 -0
  672. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Move.yml +2 -0
  673. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Reveal.html +42 -0
  674. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Reveal.yml +2 -0
  675. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Scroll_(element).html +107 -0
  676. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Scroll_(element).yml +2 -0
  677. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Scroll_(window).html +88 -0
  678. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Scroll_(window).yml +2 -0
  679. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Slide.html +63 -0
  680. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Slide.yml +2 -0
  681. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.SmoothScroll.html +77 -0
  682. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.SmoothScroll.yml +3 -0
  683. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Sort.html +100 -0
  684. data/Packages/mootools-more/Tests/Interactive/Fx/Fx.Sort.yml +2 -0
  685. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable.Select.html +109 -0
  686. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable.Select.yml +3 -0
  687. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable.html +46 -0
  688. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable.yml +2 -0
  689. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(empty_and_refill).html +46 -0
  690. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(empty_and_refill).yml +2 -0
  691. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(id).html +43 -0
  692. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(id).yml +2 -0
  693. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(sortable).html +256 -0
  694. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(sortable).yml +3 -0
  695. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(zebra).html +93 -0
  696. data/Packages/mootools-more/Tests/Interactive/Interface/HtmlTable_(zebra).yml +3 -0
  697. data/Packages/mootools-more/Tests/Interactive/Interface/Keyboard_(nested).html +129 -0
  698. data/Packages/mootools-more/Tests/Interactive/Interface/Keyboard_(nested).yml +2 -0
  699. data/Packages/mootools-more/Tests/Interactive/Interface/Keyboard_(single).html +93 -0
  700. data/Packages/mootools-more/Tests/Interactive/Interface/Keyboard_(single).yml +2 -0
  701. data/Packages/mootools-more/Tests/Interactive/Interface/Mask.html +63 -0
  702. data/Packages/mootools-more/Tests/Interactive/Interface/Mask.yml +2 -0
  703. data/Packages/mootools-more/Tests/Interactive/Interface/Scroller.html +40 -0
  704. data/Packages/mootools-more/Tests/Interactive/Interface/Scroller.yml +2 -0
  705. data/Packages/mootools-more/Tests/Interactive/Interface/Scroller_(With_Drag).html +45 -0
  706. data/Packages/mootools-more/Tests/Interactive/Interface/Scroller_(With_Drag).yml +3 -0
  707. data/Packages/mootools-more/Tests/Interactive/Interface/Spinner.html +125 -0
  708. data/Packages/mootools-more/Tests/Interactive/Interface/Spinner.yml +3 -0
  709. data/Packages/mootools-more/Tests/Interactive/Interface/Tips.html +156 -0
  710. data/Packages/mootools-more/Tests/Interactive/Interface/Tips.yml +2 -0
  711. data/Packages/mootools-more/Tests/Interactive/Interface/Tips_(offset).html +64 -0
  712. data/Packages/mootools-more/Tests/Interactive/Interface/Tips_(offset).yml +3 -0
  713. data/Packages/mootools-more/Tests/Interactive/README.md +3 -0
  714. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP.html +22 -0
  715. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP.yml +2 -0
  716. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP_(async).html +33 -0
  717. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP_(async).yml +2 -0
  718. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP_(timeout).html +46 -0
  719. data/Packages/mootools-more/Tests/Interactive/Request/Request.JSONP_(timeout).yml +2 -0
  720. data/Packages/mootools-more/Tests/Interactive/Request/Request.Periodical.html +38 -0
  721. data/Packages/mootools-more/Tests/Interactive/Request/Request.Periodical.yml +2 -0
  722. data/Packages/mootools-more/Tests/Interactive/Request/Request.Queue.html +42 -0
  723. data/Packages/mootools-more/Tests/Interactive/Request/Request.Queue.yml +2 -0
  724. data/Packages/mootools-more/Tests/Interactive/Utilities/Assets.html +78 -0
  725. data/Packages/mootools-more/Tests/Interactive/Utilities/Assets.yml +2 -0
  726. data/Packages/mootools-more/Tests/Interactive/Utilities/IframeShim.html +36 -0
  727. data/Packages/mootools-more/Tests/Interactive/Utilities/IframeShim.yml +2 -0
  728. data/Packages/mootools-more/Tests/Interactive/_assets/Assets.css.test.css +24 -0
  729. data/Packages/mootools-more/Tests/Interactive/_assets/Assets.js.test.js +3 -0
  730. data/Packages/mootools-more/Tests/Interactive/_assets/bullet_arrow_down.png +0 -0
  731. data/Packages/mootools-more/Tests/Interactive/_assets/bullet_arrow_up.png +0 -0
  732. data/Packages/mootools-more/Tests/Interactive/_assets/cow.png +0 -0
  733. data/Packages/mootools-more/Tests/Interactive/_assets/mask.css +8 -0
  734. data/Packages/mootools-more/Tests/Interactive/_assets/mediaplayer.swf +0 -0
  735. data/Packages/mootools-more/Tests/Interactive/_assets/mootools.png +0 -0
  736. data/Packages/mootools-more/Tests/Interactive/_assets/spinner.css +19 -0
  737. data/Packages/mootools-more/Tests/Interactive/_assets/spinner.gif +0 -0
  738. data/Packages/mootools-more/Tests/Interactive/_assets/video.flv +0 -0
  739. data/Packages/mootools-more/Tests/Specs/1.3/Class/Chain.Wait.js +74 -0
  740. data/Packages/mootools-more/Tests/Specs/1.3/Class/Class.Binds.js +91 -0
  741. data/Packages/mootools-more/Tests/Specs/1.3/Class/Class.Occlude.js +49 -0
  742. data/Packages/mootools-more/Tests/Specs/1.3/Class/Class.Refactor.js +103 -0
  743. data/Packages/mootools-more/Tests/Specs/1.3/Class/Events.Pseudos.js +367 -0
  744. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Delegation.js +32 -0
  745. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Event.Pseudos.Keys.js +33 -0
  746. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Event.Pseudos.js +69 -0
  747. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Forms.js +155 -0
  748. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Measure.js +92 -0
  749. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Pin.js +131 -0
  750. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Position.js +181 -0
  751. data/Packages/mootools-more/Tests/Specs/1.3/Element/Element.Shortcuts.js +93 -0
  752. data/Packages/mootools-more/Tests/Specs/1.3/Element/Elements.From.js +22 -0
  753. data/Packages/mootools-more/Tests/Specs/1.3/Forms/Form.Validator.js +384 -0
  754. data/Packages/mootools-more/Tests/Specs/1.3/Fx/Fx.Reveal.js +24 -0
  755. data/Packages/mootools-more/Tests/Specs/1.3/Fx/Fx.Slide.js +21 -0
  756. data/Packages/mootools-more/Tests/Specs/1.3/Interface/HtmlTable.Select.js +153 -0
  757. data/Packages/mootools-more/Tests/Specs/1.3/Interface/HtmlTable.Sort.js +181 -0
  758. data/Packages/mootools-more/Tests/Specs/1.3/Interface/HtmlTable.Zebra.js +39 -0
  759. data/Packages/mootools-more/Tests/Specs/1.3/Interface/HtmlTable.js +153 -0
  760. data/Packages/mootools-more/Tests/Specs/1.3/Interface/Keyboard.js +130 -0
  761. data/Packages/mootools-more/Tests/Specs/1.3/Locale/Locale.js +104 -0
  762. data/Packages/mootools-more/Tests/Specs/1.3/Request/Request.JSONP.js +55 -0
  763. data/Packages/mootools-more/Tests/Specs/1.3/Types/Array.Extras.js +119 -0
  764. data/Packages/mootools-more/Tests/Specs/1.3/Types/Date.Extras.js +80 -0
  765. data/Packages/mootools-more/Tests/Specs/1.3/Types/Date.js +709 -0
  766. data/Packages/mootools-more/Tests/Specs/1.3/Types/Hash.Extras.js +21 -0
  767. data/Packages/mootools-more/Tests/Specs/1.3/Types/Hash.js +202 -0
  768. data/Packages/mootools-more/Tests/Specs/1.3/Types/Number.Format.js +90 -0
  769. data/Packages/mootools-more/Tests/Specs/1.3/Types/Object.Extras.js +105 -0
  770. data/Packages/mootools-more/Tests/Specs/1.3/Types/Object.Extras_client.js +17 -0
  771. data/Packages/mootools-more/Tests/Specs/1.3/Types/String.Extras.js +72 -0
  772. data/Packages/mootools-more/Tests/Specs/1.3/Types/String.QueryString.js +63 -0
  773. data/Packages/mootools-more/Tests/Specs/1.3/Types/URI.Relative.js +114 -0
  774. data/Packages/mootools-more/Tests/Specs/1.3/Types/URI.js +123 -0
  775. data/Packages/mootools-more/Tests/Specs/1.3/Utilities/Assets.js +211 -0
  776. data/Packages/mootools-more/Tests/Specs/1.3/Utilities/Color.js +78 -0
  777. data/Packages/mootools-more/Tests/Specs/1.3/Utilities/Group.js +25 -0
  778. data/Packages/mootools-more/Tests/Specs/1.3/Utilities/Hash.Cookie.js +50 -0
  779. data/Packages/mootools-more/Tests/Specs/1.3/Utilities/Table.js +56 -0
  780. data/Packages/mootools-more/Tests/Specs/Configuration.js +245 -0
  781. data/Packages/mootools-more/Tests/Specs/assets/Assets.css.test.css +24 -0
  782. data/Packages/mootools-more/Tests/Specs/assets/Assets.js.test.js +3 -0
  783. data/Packages/mootools-more/Tests/Specs/assets/cow.png +0 -0
  784. data/Packages/mootools-more/Tests/Specs/assets/jsonp.js +8 -0
  785. data/Packages/mootools-more/Tests/Specs/assets/mootools.png +0 -0
  786. data/Packages/mootools-more/Tests/Specs/index.html +26 -0
  787. data/Packages/mootools-more/Tests/Specs/package.yml +47 -0
  788. data/Packages/mootools-more/build +40 -0
  789. data/Packages/mootools-more/package.yml +145 -0
  790. data/Packages/mootools-resource/README.md +60 -0
  791. data/Packages/mootools-resource/Source/Resource.Collection.js +40 -0
  792. data/Packages/mootools-resource/Source/Resource.Model.Actions.js +98 -0
  793. data/Packages/mootools-resource/Source/Resource.Model.js +175 -0
  794. data/Packages/mootools-resource/Source/Resource.Parser.HTML.js +28 -0
  795. data/Packages/mootools-resource/Source/Resource.Parser.JSON.js +35 -0
  796. data/Packages/mootools-resource/Source/Resource.Parser.XML.js +31 -0
  797. data/Packages/mootools-resource/Source/Resource.Parser.js +50 -0
  798. data/Packages/mootools-resource/Source/Resource.js +282 -0
  799. data/Packages/mootools-resource/package.yml +18 -0
  800. data/Packages/mootools-speedups/README.md +10 -0
  801. data/Packages/mootools-speedups/Source/Core/Class.Extras.Speedups.js +14 -0
  802. data/Packages/mootools-speedups/Source/Core/Class.Speedups.js +129 -0
  803. data/Packages/mootools-speedups/Source/Core/Core.Speedups.js +89 -0
  804. data/Packages/mootools-speedups/Source/Types/Object.js +36 -0
  805. data/Packages/mootools-speedups/package.yml +19 -0
  806. data/Packages/mootools-string-inflections/README.md +292 -0
  807. data/Packages/mootools-string-inflections/Source/String.Inflections.js +230 -0
  808. data/Packages/mootools-string-inflections/TODO.md +2 -0
  809. data/Packages/mootools-string-inflections/Tests/index.html +12 -0
  810. data/Packages/mootools-string-inflections/Tests/test.js +95 -0
  811. data/Packages/mootools-string-inflections/package.yml +7 -0
  812. data/Packages/qfocuser/README +63 -0
  813. data/Packages/qfocuser/Source/QFocuser.js +278 -0
  814. data/Packages/qfocuser/package.yml +8 -0
  815. data/Packages/slick/Makefile +19 -0
  816. data/Packages/slick/README.md +127 -0
  817. data/Packages/slick/SlickSpec/Configuration.js +56 -0
  818. data/Packages/slick/SlickSpec/assets/JSSpecHelpers.js +187 -0
  819. data/Packages/slick/SlickSpec/assets/getgetter.js +65 -0
  820. data/Packages/slick/SlickSpec/assets/ie.css +37 -0
  821. data/Packages/slick/SlickSpec/assets/moobugger/bookmarklet.html +46 -0
  822. data/Packages/slick/SlickSpec/assets/moobugger/debugger-iframe.js +386 -0
  823. data/Packages/slick/SlickSpec/assets/moobugger/debugger.css +190 -0
  824. data/Packages/slick/SlickSpec/assets/moobugger/debugger.html +25 -0
  825. data/Packages/slick/SlickSpec/assets/moobugger/debugger.js +284 -0
  826. data/Packages/slick/SlickSpec/assets/moobugger/images/close.png +0 -0
  827. data/Packages/slick/SlickSpec/assets/moobugger/images/error.png +0 -0
  828. data/Packages/slick/SlickSpec/assets/moobugger/images/group-close.png +0 -0
  829. data/Packages/slick/SlickSpec/assets/moobugger/images/group-open.png +0 -0
  830. data/Packages/slick/SlickSpec/assets/moobugger/images/icon.png +0 -0
  831. data/Packages/slick/SlickSpec/assets/moobugger/images/info.png +0 -0
  832. data/Packages/slick/SlickSpec/assets/moobugger/images/lick.png +0 -0
  833. data/Packages/slick/SlickSpec/assets/moobugger/images/max.png +0 -0
  834. data/Packages/slick/SlickSpec/assets/moobugger/images/min.png +0 -0
  835. data/Packages/slick/SlickSpec/assets/moobugger/images/mootools.png +0 -0
  836. data/Packages/slick/SlickSpec/assets/moobugger/images/time.png +0 -0
  837. data/Packages/slick/SlickSpec/assets/moobugger/images/warning.png +0 -0
  838. data/Packages/slick/SlickSpec/assets/moobugger/mootools.js +57 -0
  839. data/Packages/slick/SlickSpec/assets/moobugger/test.html +88 -0
  840. data/Packages/slick/SlickSpec/assets/screen.css +259 -0
  841. data/Packages/slick/SlickSpec/assets/simple_request.js +67 -0
  842. data/Packages/slick/SlickSpec/assets/slickspec.css +366 -0
  843. data/Packages/slick/SlickSpec/bootstrap/moo12.slickspec.js +55 -0
  844. data/Packages/slick/SlickSpec/bootstrap/nwmatcher.slickspec.js +27 -0
  845. data/Packages/slick/SlickSpec/bootstrap/sizzle.slickspec.js +65 -0
  846. data/Packages/slick/SlickSpec/bootstrap/slick.slickspec.js +66 -0
  847. data/Packages/slick/SlickSpec/bootstrap/yui.slickspec.js +36 -0
  848. data/Packages/slick/SlickSpec/index.html +26 -0
  849. data/Packages/slick/SlickSpec/mocks/MooTools_Logo.svg +24 -0
  850. data/Packages/slick/SlickSpec/mocks/html5-shim.html +70 -0
  851. data/Packages/slick/SlickSpec/mocks/query_test-dojo.html +79 -0
  852. data/Packages/slick/SlickSpec/mocks/query_test-google_closure.html +72 -0
  853. data/Packages/slick/SlickSpec/mocks/query_test-jquery.html +213 -0
  854. data/Packages/slick/SlickSpec/mocks/query_test-prototype.html +95 -0
  855. data/Packages/slick/SlickSpec/mocks/query_test-slick.html +20 -0
  856. data/Packages/slick/SlickSpec/mocks/query_test-yui.html +88 -0
  857. data/Packages/slick/SlickSpec/mocks/template-almost.html +2932 -0
  858. data/Packages/slick/SlickSpec/mocks/template-chromeframe.html +2932 -0
  859. data/Packages/slick/SlickSpec/mocks/template-ie7.html +2932 -0
  860. data/Packages/slick/SlickSpec/mocks/template-quirks.html +2932 -0
  861. data/Packages/slick/SlickSpec/mocks/template-standard.html +2932 -0
  862. data/Packages/slick/SlickSpec/mocks/template-transitional.html +2932 -0
  863. data/Packages/slick/SlickSpec/mocks/template.xhtml +2476 -0
  864. data/Packages/slick/SlickSpec/mocks/template.xml +2475 -0
  865. data/Packages/slick/SlickSpec/mocks/xml.xml +21 -0
  866. data/Packages/slick/SlickSpec/select.html +107 -0
  867. data/Packages/slick/SlickSpec/setup.js +93 -0
  868. data/Packages/slick/SlickSpec/slickspec.html +261 -0
  869. data/Packages/slick/SlickSpec/specrunner_browser.html +69 -0
  870. data/Packages/slick/SlickSpec/specs/api.js +167 -0
  871. data/Packages/slick/SlickSpec/specs/browser_bugs.js +269 -0
  872. data/Packages/slick/SlickSpec/specs/dojo.js +260 -0
  873. data/Packages/slick/SlickSpec/specs/engine_bugs.js +388 -0
  874. data/Packages/slick/SlickSpec/specs/google_closure.js +176 -0
  875. data/Packages/slick/SlickSpec/specs/html.js +58 -0
  876. data/Packages/slick/SlickSpec/specs/html5.js +40 -0
  877. data/Packages/slick/SlickSpec/specs/isxml.js +24 -0
  878. data/Packages/slick/SlickSpec/specs/jquery.js +465 -0
  879. data/Packages/slick/SlickSpec/specs/match.js +139 -0
  880. data/Packages/slick/SlickSpec/specs/mock_template.js +360 -0
  881. data/Packages/slick/SlickSpec/specs/parser.js +409 -0
  882. data/Packages/slick/SlickSpec/specs/prototype.js +428 -0
  883. data/Packages/slick/SlickSpec/specs/select_exhaustive.js +84 -0
  884. data/Packages/slick/SlickSpec/specs/select_nth-child.js +64 -0
  885. data/Packages/slick/SlickSpec/specs/syntax.js +45 -0
  886. data/Packages/slick/SlickSpec/specs/unit.js +87 -0
  887. data/Packages/slick/SlickSpec/specs/xml.js +47 -0
  888. data/Packages/slick/SlickSpec/specs/yui.js +510 -0
  889. data/Packages/slick/SlickSpec/user-specs/pseudos.html +45 -0
  890. data/Packages/slick/Source/Slick.Finder.js +1012 -0
  891. data/Packages/slick/Source/Slick.Parser.js +231 -0
  892. data/Packages/slick/Source/slick.js +10 -0
  893. data/Packages/slick/package.json +12 -0
  894. data/Packages/slick/package.yml +19 -0
  895. data/Packages/slick/speed/frameworks/dojo-acme.js +1625 -0
  896. data/Packages/slick/speed/frameworks/dojo.js +16 -0
  897. data/Packages/slick/speed/frameworks/domass.js +1365 -0
  898. data/Packages/slick/speed/frameworks/jquery.js +4376 -0
  899. data/Packages/slick/speed/frameworks/mootools-core-1.3.js +5367 -0
  900. data/Packages/slick/speed/frameworks/mootools-slick.js +626 -0
  901. data/Packages/slick/speed/frameworks/mootools.js +4329 -0
  902. data/Packages/slick/speed/frameworks/native.js +0 -0
  903. data/Packages/slick/speed/frameworks/nwmatcher.js +1264 -0
  904. data/Packages/slick/speed/frameworks/prototype.js +4320 -0
  905. data/Packages/slick/speed/frameworks/sizzle.js +1102 -0
  906. data/Packages/slick/speed/frameworks/slick.js +1099 -0
  907. data/Packages/slick/speed/frameworks/sly.js +857 -0
  908. data/Packages/slick/speed/frameworks/yass.css3.js +490 -0
  909. data/Packages/slick/speed/jslitmus/JSLitmus.js +714 -0
  910. data/Packages/slick/speed/jslitmus/JSLitmusHelpers.js +3 -0
  911. data/Packages/slick/speed/jslitmus/bench_catch.html +49 -0
  912. data/Packages/slick/speed/jslitmus/bench_match.html +214 -0
  913. data/Packages/slick/speed/jslitmus/bench_match.js +98 -0
  914. data/Packages/slick/speed/jslitmus/bench_parse.html +161 -0
  915. data/Packages/slick/speed/jslitmus/bench_parse.js +68 -0
  916. data/Packages/slick/speed/jslitmus/bench_select.html +198 -0
  917. data/Packages/slick/speed/jslitmus/bench_select.js +106 -0
  918. data/Packages/slick/speed/jslitmus/bench_select2.js +106 -0
  919. data/Packages/slick/speed/jslitmus/bench_uidOf.html +121 -0
  920. data/Packages/slick/speed/jslitmus/closedNodes.html +92 -0
  921. data/Packages/slick/speed/jslitmus/demo.html +97 -0
  922. data/Packages/slick/speed/jslitmus/get_attribute.html +75 -0
  923. data/Packages/slick/speed/jslitmus/label_break-vs-fn_return.html +65 -0
  924. data/Packages/slick/speed/jslitmus/label_string-vs-var.html +94 -0
  925. data/Packages/slick/speed/jslitmus/method_vs_propfn.html +109 -0
  926. data/Packages/slick/speed/jslitmus/nodeListtoArray.html +89 -0
  927. data/Packages/slick/speed/jslitmus/parse_vs_clone.html +41 -0
  928. data/Packages/slick/speed/jslitmus/results.html +68 -0
  929. data/Packages/slick/speed/jslitmus/select.html +25 -0
  930. data/Packages/slick/speed/jslitmus/selectHTML.html +206 -0
  931. data/Packages/slick/speed/jslitmus/selectXML.html +140 -0
  932. data/Packages/slick/speed/jslitmus/select_class-doctypes.html +150 -0
  933. data/Packages/slick/speed/jslitmus/select_class.html +92 -0
  934. data/Packages/slick/speed/jslitmus/select_id.html +133 -0
  935. data/Packages/slick/speed/slickspeed/config.ini +54 -0
  936. data/Packages/slick/speed/slickspeed/footer.html +3 -0
  937. data/Packages/slick/speed/slickspeed/header.php +28 -0
  938. data/Packages/slick/speed/slickspeed/index.php +36 -0
  939. data/Packages/slick/speed/slickspeed/instructions.txt +4 -0
  940. data/Packages/slick/speed/slickspeed/logo.png +0 -0
  941. data/Packages/slick/speed/slickspeed/selectors.list.crazy.css +319 -0
  942. data/Packages/slick/speed/slickspeed/selectors.list.css +40 -0
  943. data/Packages/slick/speed/slickspeed/selectors.list.extended.css +81 -0
  944. data/Packages/slick/speed/slickspeed/selectors.list.mine.css +54 -0
  945. data/Packages/slick/speed/slickspeed/selectors.list.org.css +37 -0
  946. data/Packages/slick/speed/slickspeed/selectors.list.simple.css +105 -0
  947. data/Packages/slick/speed/slickspeed/selectors.list.sly.css +54 -0
  948. data/Packages/slick/speed/slickspeed/selectors.list.yahoo.css +33 -0
  949. data/Packages/slick/speed/slickspeed/style.css +197 -0
  950. data/Packages/slick/speed/slickspeed/system/index.php +172 -0
  951. data/Packages/slick/speed/slickspeed/system/slickspeed.js +162 -0
  952. data/Packages/slick/speed/slickspeed/system/template.php +154 -0
  953. data/Packages/slick/speed/slickspeed/system_slackerspeed/index.php +295 -0
  954. data/Packages/slick/speed/slickspeed/system_slackerspeed/slickspeed.js +147 -0
  955. data/Packages/slick/speed/slickspeed/system_slackerspeed/template.php +54 -0
  956. data/Packages/slick/speed/slickspeed/template.html +2921 -0
  957. data/Packages/slick/speed/slickspeed/template.yahoo.html +1 -0
  958. data/Packages/slick/speed/speedtests/deepmatch/index.html +294 -0
  959. data/Packages/slick/speed/speedtests/index.html +14 -0
  960. data/Packages/slick/speed/speedtests/setdocument/index.html +44 -0
  961. data/Packages/slick/speed/speedtests/setdocument/slow-document.js +69 -0
  962. data/Packages/slick/speed/subtleslickspeed/README.mdown +6 -0
  963. data/Packages/slick/speed/subtleslickspeed/lib/ie.css +26 -0
  964. data/Packages/slick/speed/subtleslickspeed/lib/jslib.js +389 -0
  965. data/Packages/slick/speed/subtleslickspeed/lib/own_tests/report_test.html +64 -0
  966. data/Packages/slick/speed/subtleslickspeed/lib/print.css +30 -0
  967. data/Packages/slick/speed/subtleslickspeed/lib/screen.css +251 -0
  968. data/Packages/slick/speed/subtleslickspeed/lib/subtlesandbox.js +174 -0
  969. data/Packages/slick/speed/subtleslickspeed/lib/subtlesandbox_strict.html +18 -0
  970. data/Packages/slick/speed/subtleslickspeed/lib/subtleslickspeed.js +290 -0
  971. data/Packages/slick/speed/subtleslickspeed/lib/subtleslickspeed.reports.js +87 -0
  972. data/Packages/slick/speed/subtleslickspeed/lib/subtleslickspeed.reports.table.js +353 -0
  973. data/Packages/slick/speed/subtleslickspeed/lib/table_report.css +241 -0
  974. data/Packages/slick/speed/subtleslickspeed/selectors.html +156 -0
  975. data/Packages/slick/speed/subtleslickspeed/string_replace.html +2998 -0
  976. data/Packages/slick/speed/subtleslickspeed/tests/selectors/template.html +14 -0
  977. data/Packages/slick/speed/subtleslickspeed/tests/selectors/template.js +2924 -0
  978. data/Packages/slick/speed/subtleslickspeed/tests/selectors/tests.js +177 -0
  979. data/lib/lsd/helper.rb +12 -0
  980. data/lib/lsd/packages.rb +25 -0
  981. data/lib/lsd/railtie.rb +33 -0
  982. data/lib/lsd/source.rb +37 -0
  983. data/lib/lsd/widget_generator.rb +24 -0
  984. data/lib/lsd.rake +17 -0
  985. data/lib/lsd.rb +20 -0
  986. data/lib/templates/Application.js +37 -0
  987. data/lib/templates/Widget.js +25 -0
  988. data/lib/templates/app_name.js +18 -0
  989. data/lib/templates/new_widget.js +25 -0
  990. data/lib/templates/package.yml +18 -0
  991. metadata +1053 -0
@@ -0,0 +1,1264 @@
1
+ /*
2
+ curl -s http://github.com/dperini/nwmatcher/raw/master/src/nwmatcher.js #*/
3
+ /*
4
+ * Copyright (C) 2007-2009 Diego Perini
5
+ * All rights reserved.
6
+ *
7
+ * nwmatcher.js - A fast CSS selector engine and matcher
8
+ *
9
+ * Author: Diego Perini <diego.perini at gmail com>
10
+ * Version: 1.2.0
11
+ * Created: 20070722
12
+ * Release: 20091101
13
+ *
14
+ * License:
15
+ * http://javascript.nwbox.com/NWMatcher/MIT-LICENSE
16
+ * Download:
17
+ * http://javascript.nwbox.com/NWMatcher/nwmatcher.js
18
+ */
19
+
20
+ window.NW || (window.NW = { });
21
+
22
+ NW.Dom = (function(global) {
23
+
24
+ var version = 'nwmatcher-1.2.0',
25
+
26
+ // processing context
27
+ base = global.document,
28
+
29
+ // script loading context
30
+ context = base,
31
+
32
+ // document type node (+DTD)
33
+ docType = context.doctype,
34
+
35
+ // context root element (HTML)
36
+ root = context.documentElement,
37
+
38
+ // current DOM viewport/window, also used to
39
+ // detect Safari 2.0.x [object AbstractView]
40
+ view = base.defaultView || base.parentWindow,
41
+
42
+ // http://www.w3.org/TR/css3-syntax/#characters
43
+ // unicode/ISO 10646 characters 161 and higher
44
+ // NOTE: Safari 2.0.x crashes with escaped (\\)
45
+ // Unicode ranges in regular expressions so we
46
+ // use a negated character range class instead
47
+ encoding = '((?:[-\\w]|[^\\x00-\\xa0]|\\\\.)+)',
48
+
49
+ // used to skip [ ] or ( ) groups in token tails
50
+ skipgroup = '(?:\\[.*\\]|\\(.*\\))',
51
+
52
+ // discard invalid chars found in passed selector
53
+ reValidator = /([.:#*\w]|[^\x00-\xa0])/,
54
+
55
+ // split comma separated selector groups, exclude commas inside '' "" () []
56
+ // example: (#div a, ul > li a) group 1 is (#div a) group 2 is (ul > li a)
57
+ reSplitGroup = /([^,()[\]]+|\([^()]+\)|\(.*\)|\[(?:\[[^[\]]*\]|["'][^'"]*["']|[^'"[\]]+)+\]|\[.*\]|\\.)+/g,
58
+
59
+ // split last, right most, selector group token
60
+ reSplitToken = /([^ >+~,\\()[\]]+|\([^()]+\)|\(.*\)|\[[^[\]]+\]|\[.*\]|\\.)+/g,
61
+
62
+ // Only five characters can occur in whitespace, they are:
63
+ // \x20 \t \n \r \f, checks now uniformed through the code
64
+ // http://www.w3.org/TR/css3-selectors/#selector-syntax
65
+
66
+ reClassValue = /([-\w]+)/,
67
+ reIdSelector = /\#([-\w]+)$/,
68
+ reTrimSpaces = /^[\x20\t\n\r\f]+|[\x20\t\n\r\f]+$/g,
69
+
70
+ /*----------------------------- UTILITY METHODS ----------------------------*/
71
+
72
+ slice = Array.prototype.slice,
73
+
74
+ // Safari 2 bug with innerText (gasp!)
75
+ // used to strip tags from innerHTML
76
+ stripTags = function(s) {
77
+ return s.replace(/<\/?("[^\"]*"|'[^\']*'|[^>])+>/gi, '');
78
+ },
79
+
80
+ /*------------------------------- DEBUGGING --------------------------------*/
81
+
82
+ // enable/disable notifications
83
+ VERBOSE = false,
84
+
85
+ // a way to control user notification
86
+ emit =
87
+ function(message) {
88
+ if (VERBOSE) {
89
+ var console = global.console;
90
+ if (console && console.log) {
91
+ console.log(message);
92
+ } else {
93
+ if (/exception/i.test(message)) {
94
+ global.status = message;
95
+ global.defaultStatus = message;
96
+ } else {
97
+ global.status += message;
98
+ }
99
+ }
100
+ }
101
+ },
102
+
103
+ /*----------------------------- FEATURE TESTING ----------------------------*/
104
+
105
+ // detect native methods
106
+ isNative = (function() {
107
+ var s = (global.open + '').replace(/open/g, '');
108
+ return function(object, method) {
109
+ var m = object ? object[method] : false, r = new RegExp(method, 'g');
110
+ return !!(m && typeof m != 'string' && s === (m + '').replace(r, ''));
111
+ };
112
+ })(),
113
+
114
+ // NOTE: NATIVE_XXXXX check for existance of method only
115
+ // so through the code read it as "supported", maybe BUGGY
116
+
117
+ // supports lowercase node names
118
+ NATIVE_TAG_MATCH =
119
+ typeof context.createElementNS == 'function' ? '.toUpperCase()' : '',
120
+
121
+ // supports the new traversal API
122
+ NATIVE_TRAVERSAL_API =
123
+ 'nextElementSibling' in root && 'previousElementSibling' in root,
124
+
125
+ // detect native getAttribute/hasAttribute methods,
126
+ // frameworks extend these to elements, but it seems
127
+ // this does not work for XML namespaced attributes,
128
+ // used to check both getAttribute/hasAttribute in IE
129
+ NATIVE_HAS_ATTRIBUTE = isNative(root, 'hasAttribute'),
130
+
131
+ // detect if DOM methods are native in browsers
132
+ NATIVE_QSAPI = isNative(context, 'querySelector'),
133
+ NATIVE_GEBID = isNative(context, 'getElementById'),
134
+ NATIVE_GEBTN = isNative(root, 'getElementsByTagName'),
135
+ NATIVE_GEBCN = isNative(root, 'getElementsByClassName'),
136
+
137
+ // nodeList can be converted by native .slice()
138
+ // Opera 9.27 and an id="length" will fold this
139
+ NATIVE_SLICE_PROTO =
140
+ (function() {
141
+ var isSupported, div = context.createElement('div');
142
+ try {
143
+ div.innerHTML = '<div id="length"></div>';
144
+ root.insertBefore(div, root.firstChild);
145
+ isSupported = slice.call(div.childNodes, 0)[0];
146
+ } catch(e) {
147
+ } finally {
148
+ root.removeChild(div).innerHTML = '';
149
+ div = null;
150
+ }
151
+ return !!isSupported;
152
+ })(),
153
+
154
+ // NOTE: BUGGY_XXXXX check both for existance and no known bugs.
155
+
156
+ BUGGY_GEBID = NATIVE_GEBID ?
157
+ (function() {
158
+ var isBuggy, div = context.createElement('div');
159
+ div.innerHTML = '<a name="Z"></a>';
160
+ root.insertBefore(div, root.firstChild);
161
+ isBuggy = div.ownerDocument.getElementById('Z');
162
+ root.removeChild(div).innerHTML = '';
163
+ div = null;
164
+ return !!isBuggy;
165
+ })() :
166
+ true,
167
+
168
+ // detect IE gEBTN comment nodes bug
169
+ BUGGY_GEBTN = NATIVE_GEBTN ?
170
+ (function() {
171
+ var isBuggy, div = context.createElement('div');
172
+ div.appendChild(context.createComment(''));
173
+ isBuggy = div.getElementsByTagName('*')[0];
174
+ div.innerHTML = '';
175
+ div = null;
176
+ return !!isBuggy;
177
+ })() :
178
+ true,
179
+
180
+ // detect Opera gEBCN second class and/or UTF8 bugs as well as Safari 3.2
181
+ // caching class name results and not detecting when changed,
182
+ // tests are based on the jQuery selector test suite
183
+ BUGGY_GEBCN = NATIVE_GEBCN ?
184
+ (function() {
185
+ var isBuggy, div = context.createElement('div'), test = '\u53f0\u5317';
186
+
187
+ // Opera tests
188
+ div.innerHTML = '<span class="' + test + 'abc ' + test + '"></span><span class="x"></span>';
189
+ isBuggy = !div.getElementsByClassName(test)[0];
190
+
191
+ // Safari test
192
+ div.lastChild.className = test;
193
+ if (!isBuggy) isBuggy = div.getElementsByClassName(test).length !== 2;
194
+
195
+ div.innerHTML = '';
196
+ div = null;
197
+ return isBuggy;
198
+ })() :
199
+ true,
200
+
201
+ // check Seletor API implementations
202
+ RE_BUGGY_QSAPI = NATIVE_QSAPI ? (function() {
203
+ var pattern = [ '!=', ':contains', ':selected' ], div = context.createElement('div');
204
+
205
+ // WebKit treats case insensitivity correctly with classNames (when no DOCTYPE)
206
+ // obsolete bug https://bugs.webkit.org/show_bug.cgi?id=19047
207
+ // so the bug is in all other browsers code now :-)
208
+ // new specs http://www.whatwg.org/specs/web-apps/current-work/#selectors
209
+ div.innerHTML = '<b class="X"></b>';
210
+ if (compatMode == 'BackCompat' && div.querySelector('.x') === null) {
211
+ return { 'test': function() { return true; } };
212
+ }
213
+
214
+ // :enabled :disabled bugs with hidden fields (Firefox 3.5 QSA bug)
215
+ // http://www.w3.org/TR/html5/interactive-elements.html#selector-enabled
216
+ // IE8 throws error with these pseudos
217
+ div.innerHTML = '<input type="hidden">';
218
+ try {
219
+ div.querySelectorAll(':enabled').length === 1 && pattern.push(':enabled', ':disabled');
220
+ } catch(e) { }
221
+
222
+ // :checked bugs whith checkbox fields (Opera 10beta3 bug)
223
+ div.innerHTML = '<input type="checkbox" checked>';
224
+ try {
225
+ div.querySelectorAll(':checked').length !== 1 && pattern.push(':checked');
226
+ } catch(e) { }
227
+
228
+ // :link bugs with hyperlinks matching (Firefox/Safari)
229
+ div.innerHTML = '<a href="x"></a>';
230
+ div.querySelectorAll(':link').length !== 1 && pattern.push(':link');
231
+
232
+ div.innerHTML = '';
233
+ div = null;
234
+
235
+ return pattern.length ?
236
+ new RegExp(pattern.join('|')) :
237
+ { 'test': function() { return false; } };
238
+ })() :
239
+ true,
240
+
241
+ // Safari 2 missing document.compatMode property
242
+ // makes it harder to detect Quirks vs. Strict
243
+ compatMode = context.compatMode ||
244
+ (function() {
245
+ var div = document.createElement('div'),
246
+ isStrict = div.style &&
247
+ (div.style.width = 1) &&
248
+ div.style.width != '1px';
249
+ div = null;
250
+ return !!isStrict ? 'CSS1Compat' : 'BackCompat';
251
+ })(),
252
+
253
+ // matches simple id, tagname & classname selectors
254
+ RE_SIMPLE_SELECTOR = BUGGY_GEBTN || BUGGY_GEBCN ?
255
+ /^#?[-\w]+$/ : /^[.#*]?[-\w]*$/,
256
+
257
+ /*----------------------------- LOOKUP OBJECTS -----------------------------*/
258
+
259
+ LINK_NODES = { 'a': 1, 'A': 1, 'area': 1, 'AREA': 1, 'link': 1, 'LINK': 1 },
260
+
261
+ QSA_NODE_TYPES = { '9': 1, '11': 1 },
262
+
263
+ // attribute referencing URI values need special treatment in IE
264
+ ATTRIBUTES_URI = {
265
+ 'action': 2, 'cite': 2, 'codebase': 2, 'data': 2, 'href': 2,
266
+ 'longdesc': 2, 'lowsrc': 2, 'src': 2, 'usemap': 2
267
+ },
268
+
269
+ // HTML 5 draft specifications
270
+ // http://www.whatwg.org/specs/web-apps/current-work/#selectors
271
+ HTML_TABLE = {
272
+ // class attribute must be treated case-insensitive in HTML quirks mode
273
+ 'class': compatMode.indexOf('CSS') > -1 ? 0 : 1,
274
+ 'accept': 1, 'accept-charset': 1, 'align': 1, 'alink': 1, 'axis': 1,
275
+ 'bgcolor': 1, 'charset': 1, 'checked': 1, 'clear': 1, 'codetype': 1, 'color': 1,
276
+ 'compact': 1, 'declare': 1, 'defer': 1, 'dir': 1, 'direction': 1, 'disabled': 1,
277
+ 'enctype': 1, 'face': 1, 'frame': 1, 'hreflang': 1, 'http-equiv': 1, 'lang': 1,
278
+ 'language': 1, 'link': 1, 'media': 1, 'method': 1, 'multiple': 1, 'nohref': 1,
279
+ 'noresize': 1, 'noshade': 1, 'nowrap': 1, 'readonly': 1, 'rel': 1, 'rev': 1,
280
+ 'rules': 1, 'scope': 1, 'scrolling': 1, 'selected': 1, 'shape': 1, 'target': 1,
281
+ 'text': 1, 'type': 1, 'valign': 1, 'valuetype': 1, 'vlink': 1
282
+ },
283
+
284
+ // the following attributes must be treated case insensitive in XHTML
285
+ // See Niels Leenheer blog
286
+ // http://rakaz.nl/item/css_selector_bugs_case_sensitivity
287
+ XHTML_TABLE = {
288
+ 'accept': 1, 'accept-charset': 1, 'alink': 1, 'axis': 1,
289
+ 'bgcolor': 1, 'charset': 1, 'codetype': 1, 'color': 1,
290
+ 'enctype': 1, 'face': 1, 'hreflang': 1, 'http-equiv': 1,
291
+ 'lang': 1, 'language': 1, 'link': 1, 'media': 1, 'rel': 1,
292
+ 'rev': 1, 'target': 1, 'text': 1, 'type': 1, 'vlink': 1
293
+ },
294
+
295
+ INSENSITIVE_TABLE = docType && docType.systemId && docType.systemId.indexOf('xhtml') > -1 ?
296
+ XHTML_TABLE : HTML_TABLE,
297
+
298
+ // shortcut for the frequently checked case sensitivity of the class attribute
299
+ isClassNameLowered = INSENSITIVE_TABLE['class'],
300
+
301
+ // placeholder to add functionalities
302
+ Selectors = {
303
+ // as a simple example this will check
304
+ // for chars not in standard ascii table
305
+ //
306
+ // 'mySpecialSelector': {
307
+ // 'Expression': /\u0080-\uffff/,
308
+ // 'Callback': mySelectorCallback
309
+ // }
310
+ //
311
+ // 'mySelectorCallback' will be invoked
312
+ // only after passing all other standard
313
+ // checks and only if none of them worked
314
+ },
315
+
316
+ // attribute operators
317
+ Operators = {
318
+ // ! is not really in the specs
319
+ // still unit tests have to pass
320
+ '=': "%p==='%m'",
321
+ '!=': "%p!=='%m'",
322
+ '^=': "%p.indexOf('%m')==0",
323
+ '*=': "%p.indexOf('%m')>-1",
324
+ // sensitivity handled by compiler
325
+ // NOTE: working alternative
326
+ // '|=': "/%m-/i.test(%p+'-')",
327
+ '|=': "(%p+'-').indexOf('%m-')==0",
328
+ '~=': "(' '+%p+' ').indexOf(' %m ')>-1",
329
+ // precompile in '%m' string length to optimize
330
+ // NOTE: working alternative
331
+ // '$=': "%p.lastIndexOf('%m')==%p.length-'%m'.length"
332
+ '$=': "%p.substr(%p.length - '%m'.length) === '%m'"
333
+ },
334
+
335
+ TAGS = "(?:^|[>+~\\x20\\t\\n\\r\\f])",
336
+
337
+ // optimization expressions
338
+ Optimize = {
339
+ ID: new RegExp("#" + encoding + "|" + skipgroup),
340
+ TAG: new RegExp(TAGS + encoding + "|" + skipgroup),
341
+ CLASS: new RegExp("\\." + encoding + "|" + skipgroup)
342
+ },
343
+
344
+ // precompiled Regular Expressions
345
+ Patterns = {
346
+ // element attribute matcher
347
+ attribute: /^\[[\x20\t\n\r\f]*([-\w]*:?(?:[-\w])+)[\x20\t\n\r\f]*(?:([~*^$|!]?=)[\x20\t\n\r\f]*(["']*)([^'"()]*?)\3)?[\x20\t\n\r\f]*\](.*)/,
348
+ // structural pseudo-classes
349
+ spseudos: /^\:(root|empty|nth)?-?(first|last|only)?-?(child)?-?(of-type)?(?:\((even|odd|[^\)]*)\))?(.*)/,
350
+ // uistates + dynamic + negation pseudo-classes
351
+ dpseudos: /^\:([\w]+|[^\x00-\xa0]+)(?:\((["']*)(.*?(\(.*\))?[^'"()]*?)\2\))?(.*)/,
352
+ // E > F
353
+ children: /^[\x20\t\n\r\f]*\>[\x20\t\n\r\f]*(.*)/,
354
+ // E + F
355
+ adjacent: /^[\x20\t\n\r\f]*\+[\x20\t\n\r\f]*(.*)/,
356
+ // E ~ F
357
+ relative: /^[\x20\t\n\r\f]*\~[\x20\t\n\r\f]*(.*)/,
358
+ // E F
359
+ ancestor: /^[\x20\t\n\r\f]+(.*)/,
360
+ // all
361
+ universal: /^\*(.*)/,
362
+ // id
363
+ id: new RegExp("^#" + encoding + "(.*)"),
364
+ // tag
365
+ tagName: new RegExp("^" + encoding + "(.*)"),
366
+ // class
367
+ className: new RegExp("^\\." + encoding + "(.*)")
368
+ },
369
+
370
+ // current CSS3 grouping of Pseudo-Classes
371
+ // they allow implementing extensions
372
+ // and improve error notifications;
373
+ // the assigned value represent current spec status:
374
+ // 3 = CSS3, 2 = CSS2, '?' = maybe implemented
375
+ CSS3PseudoClasses = {
376
+ Structural: {
377
+ 'root': 3, 'empty': 3,
378
+ 'first-child': 3, 'last-child': 3, 'only-child': 3,
379
+ 'first-of-type': 3, 'last-of-type': 3, 'only-of-type': 3,
380
+ 'first-child-of-type': 3, 'last-child-of-type': 3, 'only-child-of-type': 3,
381
+ 'nth-child': 3, 'nth-last-child': 3, 'nth-of-type': 3, 'nth-last-of-type': 3
382
+ // (the 4rd line is not in W3C CSS specs but is an accepted alias of 3nd line)
383
+ },
384
+
385
+ // originally separated in different pseudo-classes
386
+ // we have grouped them to optimize a bit size+speed
387
+ // all are going through the same code path (switch)
388
+ Others: {
389
+ // UIElementStates (grouped to optimize)
390
+ 'checked': 3, 'disabled': 3, 'enabled': 3, 'selected': 2, 'indeterminate': '?',
391
+ // Dynamic pseudo classes
392
+ 'active': 3, 'focus': 3, 'hover': 3, 'link': 3, 'visited': 3,
393
+ // Target, Language and Negated pseudo classes
394
+ 'target': 3, 'lang': 3, 'not': 3,
395
+ // http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#content-selectors
396
+ 'contains': '?'
397
+ }
398
+ },
399
+
400
+ /*------------------------------ DOM METHODS -------------------------------*/
401
+
402
+ concatList =
403
+ function(listout, listin) {
404
+ var i = -1, element;
405
+ if (listout.length === 0 && Array.slice)
406
+ return Array.slice(listin);
407
+ while ((element = listin[++i]))
408
+ listout[listout.length] = element;
409
+ return listout;
410
+ },
411
+
412
+ concatCall =
413
+ function(listout, listin, callback) {
414
+ var i = -1, element;
415
+ while ((element = listin[++i]))
416
+ callback(listout[listout.length] = element);
417
+ return listout;
418
+ },
419
+
420
+ // element by id
421
+ // @return element reference or null
422
+ byId =
423
+ function(id, from) {
424
+ var i = -1, element, names, node, result;
425
+ from || (from = context);
426
+ id = id.replace(/\\/g, '');
427
+ if (from.getElementById) {
428
+ if ((result = from.getElementById(id)) &&
429
+ id != getAttribute(result, 'id') && from.getElementsByName) {
430
+ names = from.getElementsByName(id);
431
+ result = null;
432
+ while ((element = names[++i])) {
433
+ if ((node = element.getAttributeNode('id')) &&
434
+ node.value == id) {
435
+ result = element;
436
+ break;
437
+ }
438
+ }
439
+ }
440
+ } else {
441
+ result = select('[id="' + id + '"]', from)[0] || null;
442
+ }
443
+ return result;
444
+ },
445
+
446
+ // elements by tag
447
+ // @return nodeList (live)
448
+ byTag =
449
+ function(tag, from) {
450
+ return (from || context).getElementsByTagName(tag);
451
+ },
452
+
453
+ // elements by name
454
+ // @return array
455
+ byName =
456
+ function(name, from) {
457
+ return select('[name="' + name.replace(/\\/g, '') + '"]', from || context);
458
+ },
459
+
460
+ // elements by class
461
+ // @return array
462
+ byClass = !BUGGY_GEBCN ?
463
+ function(className, from) {
464
+ return (from || context).getElementsByClassName(className.replace(/\\/g, ''));
465
+ } :
466
+ function(className, from) {
467
+ // context is handled in byTag for non native gEBCN
468
+ var i = -1, j = i, results = [ ], element,
469
+ elements = (from || context).getElementsByTagName('*'),
470
+ cn = isClassNameLowered ? className.toLowerCase() : className;
471
+ className = ' ' + cn.replace(/\\/g, '') + ' ';
472
+ while ((element = elements[++i])) {
473
+ if ((cn = element.className)) {
474
+ if ((' ' + (isClassNameLowered ? cn.toLowerCase() : cn).
475
+ replace(/[\t\n\r\f]/g, ' ') + ' ').indexOf(className) > -1) {
476
+ results[++j] = element;
477
+ }
478
+ }
479
+ }
480
+ return results;
481
+ },
482
+
483
+ // children position by nodeType
484
+ // @return number
485
+ getIndexesByNodeType =
486
+ function(element) {
487
+ var i = 0, indexes, node,
488
+ id = element[CSS_INDEX] || (element[CSS_INDEX] = ++CSS_ID);
489
+ if (!indexesByNodeType[id]) {
490
+ indexes = { };
491
+ node = element.firstChild;
492
+ while (node) {
493
+ if (/^[A-Za-z]/.test(node.nodeName)) {
494
+ indexes[node[CSS_INDEX] || (node[CSS_INDEX] = ++CSS_ID)] = ++i;
495
+ }
496
+ node = node.nextSibling;
497
+ }
498
+ indexes.length = i;
499
+ indexesByNodeType[id] = indexes;
500
+ }
501
+ return indexesByNodeType[id];
502
+ },
503
+
504
+ // children position by nodeName
505
+ // @return number
506
+ getIndexesByNodeName =
507
+ function(element, name) {
508
+ var i = 0, indexes, node,
509
+ id = element[CSS_INDEX] || (element[CSS_INDEX] = ++CSS_ID);
510
+ if (!indexesByNodeName[id] || !indexesByNodeName[id][name]) {
511
+ indexes = { };
512
+ node = element.firstChild;
513
+ while (node) {
514
+ if (node.nodeName.toUpperCase() == name) {
515
+ indexes[node[CSS_INDEX] || (node[CSS_INDEX] = ++CSS_ID)] = ++i;
516
+ }
517
+ node = node.nextSibling;
518
+ }
519
+ indexes.length = i;
520
+ indexesByNodeName[id] ||
521
+ (indexesByNodeName[id] = { });
522
+ indexesByNodeName[id][name] = indexes;
523
+ }
524
+ return indexesByNodeName[id];
525
+ },
526
+
527
+ // attribute value
528
+ // @return string
529
+ getAttribute = NATIVE_HAS_ATTRIBUTE ?
530
+ function(element, attribute) {
531
+ return element.getAttribute(attribute) + '';
532
+ } :
533
+ function(element, attribute) {
534
+ // specific URI attributes (parameter 2 to fix IE bug)
535
+ if (ATTRIBUTES_URI[attribute.toLowerCase()]) {
536
+ return element.getAttribute(attribute, 2) + '';
537
+ }
538
+ var node = element.getAttributeNode(attribute);
539
+ return (node && node.value) + '';
540
+ },
541
+
542
+ // attribute presence
543
+ // @return boolean
544
+ hasAttribute = NATIVE_HAS_ATTRIBUTE ?
545
+ function(element, attribute) {
546
+ return element.hasAttribute(attribute);
547
+ } :
548
+ function(element, attribute) {
549
+ // need to get at AttributeNode first on IE
550
+ var node = element.getAttributeNode(attribute);
551
+ // use both "specified" & "nodeValue" properties
552
+ return !!(node && (node.specified || node.nodeValue));
553
+ },
554
+
555
+ // check if element matches the :link pseudo
556
+ // @return boolean
557
+ isLink =
558
+ function(element) {
559
+ return hasAttribute(element,'href') && LINK_NODES[element.nodeName];
560
+ },
561
+
562
+ isDisconnected = 'compareDocumentPosition' in root ?
563
+ function(element, container) {
564
+ return (container.compareDocumentPosition(element) & 1) == 1;
565
+ } : 'contains' in root ?
566
+ function(element, container) {
567
+ return !container.contains(element);
568
+ } :
569
+ function(element, container) {
570
+ while ((element = element.parentNode)) {
571
+ if (element === container) return false;
572
+ }
573
+ return true;
574
+ },
575
+
576
+ /*---------------------------- COMPILER METHODS ----------------------------*/
577
+
578
+ // conditionals optimizers for the compiler
579
+
580
+ // do not change this, it is searched & replaced
581
+ ACCEPT_NODE = 'f&&f(N);r[r.length]=N;continue main;',
582
+
583
+ // fix for IE gEBTN('*') returning collection with comment nodes
584
+ SKIP_COMMENTS = BUGGY_GEBTN ? 'if(!/^[A-Za-z]/.test(e.nodeName)){continue;}' : '',
585
+
586
+ // use the textContent or innerText property to check CSS3 :contains
587
+ // Safari 2 has a bug with innerText and hidden content, using an
588
+ // internal replace on the innerHTML property avoids trashing it
589
+ CONTAINS_TEXT =
590
+ 'textContent' in root ?
591
+ 'e.textContent' :
592
+ (function() {
593
+ var t = context.createElement('div');
594
+ t.innerHTML = '<p>p</p>';
595
+ t.style.display = 'none';
596
+ return t.innerText.length > 0 ?
597
+ 'e.innerText' :
598
+ 's.stripTags(e.innerHTML)';
599
+ })(),
600
+
601
+ // compile a comma separated group of selector
602
+ // @mode boolean true for select, false for match
603
+ // @return function (compiled)
604
+ compileGroup =
605
+ function(selector, source, mode) {
606
+ var i = -1, seen = { }, parts, token;
607
+ if ((parts = selector.match(reSplitGroup))) {
608
+ // for each selector in the group
609
+ while ((token = parts[++i])) {
610
+ token = token.replace(reTrimSpaces, '');
611
+ // avoid repeating the same token in comma separated group (p, p)
612
+ if (!seen[token]) source += 'e=N;' + compileSelector(token, mode ? ACCEPT_NODE : 'return true;');
613
+ seen[token] = true;
614
+ }
615
+ }
616
+ if (mode) {
617
+ // for select method
618
+ return new Function('c,s,r,d,h,g,f',
619
+ 'var n,N,x=0,k=0,e;main:while(N=e=c[k++]){' +
620
+ SKIP_COMMENTS + source + '}return r;');
621
+ } else {
622
+ // for match method
623
+ return new Function('e,s,r,d,h,g,f',
624
+ 'var n,N,x=0;N=e;' + source + 'return false;');
625
+ }
626
+ },
627
+
628
+ // compile a CSS3 string selector into ad-hoc javascript matching function
629
+ // @return string (to be compiled)
630
+ compileSelector =
631
+ function(selector, source) {
632
+
633
+ var i, a, b, n, k, expr, match, result, status, test, type;
634
+
635
+ k = 0;
636
+
637
+ while (selector) {
638
+
639
+ // *** Universal selector
640
+ // * match all (empty block, do not remove)
641
+ if ((match = selector.match(Patterns.universal))) {
642
+ // do nothing, handled in the compiler where
643
+ // BUGGY_GEBTN return comment nodes (ex: IE)
644
+ true;
645
+ }
646
+
647
+ // *** ID selector
648
+ // #Foo Id case sensitive
649
+ else if ((match = selector.match(Patterns.id))) {
650
+ // document can contain conflicting elements (id/name)
651
+ // prototype selector unit need this method to recover bad HTML forms
652
+ source = 'if((e.submit?s.getAttribute(e,"id"):e.id)=="' +
653
+ match[1] + '"){' + source + '}';
654
+ }
655
+
656
+ // *** Type selector
657
+ // Foo Tag (case insensitive)
658
+ else if ((match = selector.match(Patterns.tagName))) {
659
+ // both tagName and nodeName properties may be upper or lower case
660
+ // depending on their creation NAMESPACE in createElementNS()
661
+ source = 'if(e.nodeName' + NATIVE_TAG_MATCH + '=="' +
662
+ match[1].toUpperCase() + '"){' + source + '}';
663
+ }
664
+
665
+ // *** Class selector
666
+ // .Foo Class (case sensitive)
667
+ else if ((match = selector.match(Patterns.className))) {
668
+ // W3C CSS3 specs: element whose "class" attribute has been assigned a
669
+ // list of whitespace-separated values, see section 6.4 Class selectors
670
+ // and notes at the bottom; explicitly non-normative in this specification.
671
+ source = 'if((" "+e.className+" ")' +
672
+ (isClassNameLowered ? '.toLowerCase()' : '') +
673
+ '.replace(/[\\t\\n\\r\\f]/g," ").indexOf(" ' +
674
+ (isClassNameLowered ? match[1].toLowerCase() : match[1]) +
675
+ ' ")>-1){' + source + '}';
676
+ }
677
+
678
+ // *** Attribute selector
679
+ // [attr] [attr=value] [attr="value"] [attr='value'] and !=, *=, ~=, |=, ^=, $=
680
+ // case sensitivity is treated differently depending on the document type (see map)
681
+ else if ((match = selector.match(Patterns.attribute))) {
682
+ // xml namespaced attribute ?
683
+ expr = match[1].split(':');
684
+ expr = expr.length == 2 ? expr[1] : expr[0] + '';
685
+
686
+ // check case treatment from INSENSITIVE_TABLE
687
+ if (match[4] && INSENSITIVE_TABLE[expr.toLowerCase()]) {
688
+ match[4] = match[4].toLowerCase();
689
+ }
690
+
691
+ source = (match[2] ? 'n=s.getAttribute(e,"' + match[1] + '");' : '') +
692
+ 'if(' + (match[2] ? Operators[match[2]].replace(/\%p/g, 'n' +
693
+ (expr ? '' : '.toLowerCase()')).replace(/\%m/g, match[4]) :
694
+ 's.hasAttribute(e,"' + match[1] + '")') +
695
+ '){' + source + '}';
696
+ }
697
+
698
+ // *** Adjacent sibling combinator
699
+ // E + F (F adiacent sibling of E)
700
+ else if ((match = selector.match(Patterns.adjacent))) {
701
+ source = NATIVE_TRAVERSAL_API ?
702
+ 'if((e=e.previousElementSibling)){' + source + '}' :
703
+ 'while((e=e.previousSibling)){if(e.nodeType==1){' + source + 'break;}}';
704
+ }
705
+
706
+ // *** General sibling combinator
707
+ // E ~ F (F relative sibling of E)
708
+ else if ((match = selector.match(Patterns.relative))) {
709
+ source = NATIVE_TRAVERSAL_API ?
710
+ 'while((e=e.previousElementSibling)){' + source + '}' :
711
+ 'while((e=e.previousSibling)){if(e.nodeType==1){' + source + '}}';
712
+ }
713
+
714
+ // *** Child combinator
715
+ // E > F (F children of E)
716
+ else if ((match = selector.match(Patterns.children))) {
717
+ source = 'if(e!==g&&(e=e.parentNode)&&e.nodeType==1){' + source + '}';
718
+ }
719
+
720
+ // *** Descendant combinator
721
+ // E F (E ancestor of F)
722
+ else if ((match = selector.match(Patterns.ancestor))) {
723
+ source = 'while(e!==g&&(e=e.parentNode)&&e.nodeType==1){' + source + '}';
724
+ }
725
+
726
+ // *** Structural pseudo-classes
727
+ // :root, :empty,
728
+ // :first-child, :last-child, :only-child,
729
+ // :first-of-type, :last-of-type, :only-of-type,
730
+ // :nth-child(), :nth-last-child(), :nth-of-type(), :nth-last-of-type()
731
+ else if ((match = selector.match(Patterns.spseudos)) &&
732
+ CSS3PseudoClasses.Structural[selector.match(reClassValue)[0]]) {
733
+
734
+ switch (match[1]) {
735
+ case 'root':
736
+ // element root of the document
737
+ source = 'if(e===h){' + source + '}';
738
+ break;
739
+
740
+ case 'empty':
741
+ // element that has no children
742
+ source = 'if(!e.firstChild){' + source + '}';
743
+ break;
744
+
745
+ default:
746
+ if (match[1] && match[5]) {
747
+ if (match[5] == 'even') {
748
+ a = 2;
749
+ b = 0;
750
+ } else if (match[5] == 'odd') {
751
+ a = 2;
752
+ b = 1;
753
+ } else {
754
+ // assumes correct "an+b" format
755
+ a = match[5].match(/^-/) ? -1 : match[5].match(/^n/) ? 1 : 0;
756
+ a = a || ((n = match[5].match(/(-?\d{1,})n/)) ? parseInt(n[1], 10) : 0);
757
+ b = 0 || ((n = match[5].match(/(-?\d{1,})$/)) ? parseInt(n[1], 10) : 0);
758
+ }
759
+
760
+ // shortcut check for of-type selectors
761
+ type = (match[4] ? '[e.nodeName' + NATIVE_TAG_MATCH + ']' : '')
762
+
763
+ // executed after the count is computed
764
+ expr = match[2] == 'last' ? 'n' + type + '.length-' + (b - 1) : b;
765
+
766
+ test =
767
+ b < 0 ?
768
+ a <= 1 ?
769
+ '<=' + Math.abs(b) :
770
+ '%' + a + '===' + (a + b) :
771
+ a > Math.abs(b) ? '%' + a + '===' + b :
772
+ a === Math.abs(b) ? '%' + a + '===' + 0 :
773
+ a === 0 ? '==' + expr :
774
+ a < 0 ? '<=' + b :
775
+ a > 0 ? '>=' + b :
776
+ '';
777
+
778
+ // 4 cases: 1 (nth) x 4 (child, of-type, last-child, last-of-type)
779
+ source = 'if(e!==h){n=s.getIndexesBy' + (match[4] ? 'NodeName' : 'NodeType') +
780
+ '(e.parentNode' + (match[4] ? ',e.nodeName' + NATIVE_TAG_MATCH : '') + ');' +
781
+ 'if(n' + type + '[e.' + CSS_INDEX + ']' + test + '){' + source + '}}';
782
+
783
+ } else {
784
+ // 6 cases: 3 (first, last, only) x 1 (child) x 2 (-of-type)
785
+ a = match[2] == 'first' ? 'previous' : 'next';
786
+ n = match[2] == 'only' ? 'previous' : 'next';
787
+ b = match[2] == 'first' || match[2] == 'last';
788
+
789
+ type = match[4] ? '&&n.nodeName!=e.nodeName' : '&&!/^[A-Za-z]/i.test(n.nodeName)';
790
+
791
+ source = 'if(e!==h){' +
792
+ ( 'n=e;while((n=n.' + a + 'Sibling)' + type + ');if(!n){' + (b ? source :
793
+ 'n=e;while((n=n.' + n + 'Sibling)' + type + ');if(!n){' + source + '}') + '}' ) + '}';
794
+ }
795
+ break;
796
+ }
797
+ }
798
+
799
+ // *** negation, user action and target pseudo-classes
800
+ // *** UI element states and dynamic pseudo-classes
801
+ // CSS3 :not, :checked, :enabled, :disabled, :target
802
+ // CSS3 :active, :hover, :focus
803
+ // CSS3 :link, :visited
804
+ else if ((match = selector.match(Patterns.dpseudos)) &&
805
+ CSS3PseudoClasses.Others[selector.match(reClassValue)[0]]) {
806
+
807
+ switch (match[1]) {
808
+ // CSS3 negation pseudo-class
809
+ case 'not':
810
+ // compile nested selectors, need to escape double quotes characters
811
+ // since the string we are inserting into already uses double quotes
812
+ source = 'if(!s.match(e, "' + match[3].replace(/\x22/g, '\\"') + '")){' + source +'}';
813
+ break;
814
+
815
+ // CSS3 UI element states
816
+ case 'checked':
817
+ // only radio buttons and check boxes
818
+ source = 'if("form" in e&&/radio|checkbox/i.test(e.type)&&e.checked===true){' + source + '}';
819
+ break;
820
+ case 'enabled':
821
+ // does not consider hidden input fields
822
+ source = 'if((("form" in e&&e.type!=="hidden")||s.isLink(e))&&e.disabled===false){' + source + '}';
823
+ break;
824
+ case 'disabled':
825
+ // does not consider hidden input fields
826
+ source = 'if((("form" in e&&e.type!=="hidden")||s.isLink(e))&&e.disabled===true){' + source + '}';
827
+ break;
828
+
829
+ // CSS3 target pseudo-class
830
+ case 'target':
831
+ n = base.location.hash;
832
+ source = 'if(e.id!=""&&e.id=="' + n + '"&&"href" in e){' + source + '}';
833
+ break;
834
+
835
+ // CSS3 dynamic pseudo-classes
836
+ case 'link':
837
+ source = 'if(s.isLink(e)&&!e.visited){' + source + '}';
838
+ break;
839
+ case 'visited':
840
+ source = 'if(s.isLink(e)&&!!e.visited){' + source + '}';
841
+ break;
842
+
843
+ // CSS3 user action pseudo-classes IE & FF3 have native support
844
+ // these capabilities may be emulated by some event managers
845
+ case 'active':
846
+ source = 'if("activeElement" in d&&e===d.activeElement){' + source + '}';
847
+ break;
848
+ case 'hover':
849
+ source = 'if("hoverElement" in d&&e===d.hoverElement){' + source + '}';
850
+ break;
851
+ case 'focus':
852
+ source = 'if("form" in e&&e===d.activeElement&&typeof d.hasFocus=="function"&&d.hasFocus()===true){' + source + '}';
853
+ break;
854
+
855
+ // CSS2 :contains and :selected pseudo-classes
856
+ // not currently part of CSS3 drafts
857
+ case 'contains':
858
+ source = 'if(' + CONTAINS_TEXT + '.indexOf("' + match[3] + '")>-1){' + source + '}';
859
+ break;
860
+ case 'selected':
861
+ // fix Safari selectedIndex property bug
862
+ n = base.getElementsByTagName('select');
863
+ for (i = 0; n[i]; i++) {
864
+ n[i].selectedIndex;
865
+ }
866
+ source = 'if("form" in e&&e.selected===true){' + source + '}';
867
+ break;
868
+
869
+ default:
870
+ break;
871
+ }
872
+ } else {
873
+
874
+ // this is where external extensions are
875
+ // invoked if expressions match selectors
876
+ expr = false;
877
+ status = true;
878
+
879
+ for (expr in Selectors) {
880
+ if ((match = selector.match(Selectors[expr].Expression))) {
881
+ result = Selectors[expr].Callback(match, source);
882
+ source = result.source;
883
+ status |= result.status;
884
+ }
885
+ }
886
+
887
+ // if an extension fails to parse the selector
888
+ // it must return a false boolean in "status"
889
+ if (!status) {
890
+ // log error but continue execution, don't throw real exceptions
891
+ // because blocking following processes maybe is not a good idea
892
+ emit('DOMException: unknown pseudo selector "' + selector + '"');
893
+ return source;
894
+ }
895
+
896
+ if (!expr) {
897
+ // see above, log error but continue execution
898
+ emit('DOMException: unknown token in selector "' + selector + '"');
899
+ return source;
900
+ }
901
+
902
+ }
903
+
904
+ // ensure "match" is not null or empty since
905
+ // we do not throw real DOMExceptions above
906
+ selector = match && match[match.length - 1];
907
+ }
908
+
909
+ return source;
910
+ },
911
+
912
+ /*----------------------------- QUERY METHODS ------------------------------*/
913
+
914
+ // match element with selector
915
+ // @return boolean
916
+ match =
917
+ function(element, selector, from, data, callback) {
918
+ // make sure an element node was passed
919
+ if (element && element.nodeType == 1) {
920
+ if (typeof selector == 'string' && selector.length) {
921
+ base = element.ownerDocument;
922
+ root = base.documentElement;
923
+ // save compiled matchers
924
+ if (!compiledMatchers[selector]) {
925
+ compiledMatchers[selector] = compileGroup(selector, '', false);
926
+ }
927
+ // result of compiled matcher
928
+ return compiledMatchers[selector](element, snap, data, base, root, from || base, callback);
929
+ } else {
930
+ emit('DOMException: "' + selector + '" is not a valid CSS selector.');
931
+ }
932
+ }
933
+ return false;
934
+ },
935
+
936
+ native_api =
937
+ function(selector, from, data, callback) {
938
+ var element, elements;
939
+ switch (selector.charAt(0)) {
940
+ case '#':
941
+ if ((element = byId(selector.slice(1), from))) {
942
+ callback && callback(element);
943
+ data[data.length] = element;
944
+ }
945
+ return data;
946
+ case '.':
947
+ elements = byClass(selector.slice(1), from);
948
+ break;
949
+ default:
950
+ elements = byTag(selector, from);
951
+ break;
952
+ }
953
+ return callback ?
954
+ concatCall(data, elements, callback) :
955
+ data || !NATIVE_SLICE_PROTO ?
956
+ concatList(data, elements) :
957
+ slice.call(elements);
958
+ },
959
+
960
+ // select elements matching selector
961
+ // version using new Selector API
962
+ // @return array
963
+ select_qsa =
964
+ function(selector, from, data, callback) {
965
+
966
+ if (RE_SIMPLE_SELECTOR.test(selector))
967
+ return native_api(selector, from, data || [ ], callback);
968
+
969
+ if (!compiledSelectors[selector] &&
970
+ !RE_BUGGY_QSAPI.test(selector) &&
971
+ (!from || QSA_NODE_TYPES[from.nodeType])) {
972
+
973
+ var elements;
974
+ try {
975
+ elements = (from || base).querySelectorAll(selector);
976
+ } catch(e) { }
977
+
978
+ if (elements) {
979
+ switch (elements.length) {
980
+ case 0:
981
+ return data || [ ];
982
+ case 1:
983
+ callback && callback(elements[0]);
984
+ if (data) data[data.length] = elements[0];
985
+ else data = [ elements[0] ];
986
+ return data;
987
+ default:
988
+ return callback ?
989
+ concatCall(data || [ ], elements, callback) :
990
+ data || !NATIVE_SLICE_PROTO ?
991
+ concatList(data || [ ], elements) :
992
+ slice.call(elements);
993
+ }
994
+ }
995
+ }
996
+
997
+ // fall back to NWMatcher select
998
+ return client_api(selector, from, data, callback);
999
+ },
1000
+
1001
+ lastSelector,
1002
+ lastPosition,
1003
+ lastContext,
1004
+ lastSlice,
1005
+
1006
+ // select elements matching selector
1007
+ // version using cross-browser client API
1008
+ // @return array
1009
+ client_api =
1010
+ function(selector, from, data, callback) {
1011
+
1012
+ var done, element, elements, parts, token, hasChanged, isSingle;
1013
+
1014
+ if (RE_SIMPLE_SELECTOR.test(selector))
1015
+ return native_api(selector, from, data || [ ], callback);
1016
+
1017
+ // ensure context is set
1018
+ from || (from = context);
1019
+
1020
+ // extract context if changed
1021
+ if (lastContext != from) {
1022
+ // save passed context
1023
+ lastContext = from;
1024
+ // reference context ownerDocument and document root (HTML)
1025
+ root = (base = from.ownerDocument || from).documentElement;
1026
+ }
1027
+
1028
+ if (hasChanged = lastSelector != selector) {
1029
+ // process valid selector strings
1030
+ if (reValidator.test(selector)) {
1031
+ // save passed selector
1032
+ lastSelector = selector;
1033
+ selector = selector.replace(reTrimSpaces, '');
1034
+ } else {
1035
+ emit('DOMException: "' + selector + '" is not a valid CSS selector.');
1036
+ return data || [ ];
1037
+ }
1038
+ }
1039
+
1040
+ // storage setup
1041
+ data || (data = [ ]);
1042
+
1043
+ // reinitialize indexes
1044
+ indexesByNodeType = { };
1045
+ indexesByNodeName = { };
1046
+
1047
+ // pre-filtering pass allow to scale proportionally with big DOM trees;
1048
+
1049
+ // commas separators are treated sequentially to maintain order
1050
+ if ((isSingle = selector.match(reSplitGroup).length < 2)) {
1051
+
1052
+ if (hasChanged) {
1053
+ // get right most selector token
1054
+ parts = selector.match(reSplitToken);
1055
+
1056
+ // position where token was found
1057
+ lastPosition = RegExp.leftContext.length;
1058
+
1059
+ // only last slice before :not rules
1060
+ lastSlice = parts[parts.length - 1].split(':not')[0];
1061
+ }
1062
+
1063
+ // reduce selection context
1064
+ if ((parts = selector.match(Optimize.ID))) {
1065
+ if ((element = base.getElementById(parts[1]))) {
1066
+ //from = element.parentNode;
1067
+ if (!/[>+~]/.test(selector)) {
1068
+ selector = selector.replace('#' + token, '*');
1069
+ from = element;
1070
+ } else from = element.parentNode;
1071
+ }
1072
+ }
1073
+
1074
+ // ID optimization RTL
1075
+ if ((parts = lastSlice.match(Optimize.ID)) &&
1076
+ (token = parts[1]) && base.getElementById) {
1077
+ if ((element = byId(token, base))) {
1078
+ if (match(element, selector)) {
1079
+ elements = [ element ];
1080
+ done = true;
1081
+ } else {
1082
+ from = element;
1083
+ //elements = concatList([ element ], byTag('*', element));
1084
+ //selector = selector.substr(0, lastPosition) +
1085
+ // selector.substr(lastPosition).replace('#' + token, '*');
1086
+ }
1087
+ }
1088
+ }
1089
+
1090
+ // CLASS optimization RTL
1091
+ else if ((parts = lastSlice.match(Optimize.CLASS)) &&
1092
+ (token = parts[1])) {
1093
+ elements = byClass(token, from);
1094
+ if (elements.length === 0) return data;
1095
+ if (selector == '.' + token) done = true;
1096
+ else selector = selector.substr(0, lastPosition) +
1097
+ selector.substr(lastPosition).replace('.' + token, '*');
1098
+ }
1099
+
1100
+ // TAG optimization RTL
1101
+ else if ((parts = lastSlice.match(Optimize.TAG)) &&
1102
+ (token = parts[1]) && from.getElementsByTagName) {
1103
+ elements = byTag(token, from);
1104
+ if (elements.length === 0) return data;
1105
+ if (selector == token) done = true;
1106
+ else selector = selector.substr(0, lastPosition) +
1107
+ selector.substr(lastPosition).replace(token, '*');
1108
+ }
1109
+
1110
+ // ID optimization LTR
1111
+ else if ((parts = selector.match(Optimize.ID)) &&
1112
+ (token = parts[1]) && base.getElementById) {
1113
+ if ((element = byId(token, base))) {
1114
+ //from = element.parentNode;
1115
+ if (!/[>+~]/.test(selector)) {
1116
+ selector = selector.replace('#' + token, '*');
1117
+ from = element;
1118
+ } else from = element.parentNode;
1119
+ }
1120
+ }
1121
+
1122
+ //else console.log(selector);
1123
+
1124
+ }
1125
+
1126
+ if (!elements) {
1127
+ elements = from.getElementsByTagName('*');
1128
+ }
1129
+ // end of prefiltering pass
1130
+
1131
+ // save compiled selectors
1132
+ if (!done && !compiledSelectors[selector]) {
1133
+ if (isSingle) {
1134
+ compiledSelectors[selector] =
1135
+ new Function('c,s,r,d,h,g,f',
1136
+ 'var n,N,x=0,k=0,e;main:while(N=e=c[k++]){' +
1137
+ SKIP_COMMENTS + compileSelector(selector, ACCEPT_NODE) +
1138
+ '}return r;');
1139
+ } else {
1140
+ compiledSelectors[selector] = compileGroup(selector, '', true);
1141
+ }
1142
+ }
1143
+
1144
+ return done ?
1145
+ (callback ? concatCall(data, elements, callback) : concatList(data, elements)) :
1146
+ compiledSelectors[selector](elements, snap, data, base, root, from, callback);
1147
+ },
1148
+
1149
+ // use the new native Selector API if available,
1150
+ // if missing, use the cross-browser client api
1151
+ // @return array
1152
+ select = NATIVE_QSAPI ?
1153
+ select_qsa :
1154
+ client_api,
1155
+
1156
+ /*-------------------------------- STORAGE ---------------------------------*/
1157
+
1158
+ // CSS_ID expando on elements,
1159
+ // used to keep child indexes
1160
+ // during a selection session
1161
+ CSS_ID = 1,
1162
+
1163
+ CSS_INDEX = 'sourceIndex' in root ? 'sourceIndex' : 'CSS_ID',
1164
+
1165
+ // ordinal position by nodeType or nodeName
1166
+ indexesByNodeType = { },
1167
+ indexesByNodeName = { },
1168
+
1169
+ // compiled select functions returning collections
1170
+ compiledSelectors = { },
1171
+
1172
+ // compiled match functions returning booleans
1173
+ compiledMatchers = { },
1174
+
1175
+ // used to pass methods to compiled functions
1176
+ snap = {
1177
+
1178
+ // element indexing methods (nodeType/nodeName)
1179
+ getIndexesByNodeType: getIndexesByNodeType,
1180
+ getIndexesByNodeName: getIndexesByNodeName,
1181
+
1182
+ // element inspection methods
1183
+ getAttribute: getAttribute,
1184
+ hasAttribute: hasAttribute,
1185
+
1186
+ // element selection methods
1187
+ byClass: byClass,
1188
+ byName: byName,
1189
+ byTag: byTag,
1190
+ byId: byId,
1191
+
1192
+ // helper/check methods
1193
+ stripTags: stripTags,
1194
+ isLink: isLink,
1195
+
1196
+ // selection/matching
1197
+ select: select,
1198
+ match: match
1199
+ };
1200
+
1201
+ /*------------------------------- PUBLIC API -------------------------------*/
1202
+
1203
+ return {
1204
+
1205
+ // retrieve element by id attr
1206
+ byId: byId,
1207
+
1208
+ // retrieve elements by tag name
1209
+ byTag: byTag,
1210
+
1211
+ // retrieve elements by name attr
1212
+ byName: byName,
1213
+
1214
+ // retrieve elements by class name
1215
+ byClass: byClass,
1216
+
1217
+ // read the value of the attribute
1218
+ // as was in the original HTML code
1219
+ getAttribute: getAttribute,
1220
+
1221
+ // check for the attribute presence
1222
+ // as was in the original HTML code
1223
+ hasAttribute: hasAttribute,
1224
+
1225
+ // element match selector, return boolean true/false
1226
+ match: match,
1227
+
1228
+ // elements matching selector, starting from element
1229
+ select: select,
1230
+
1231
+ // for testing purposes !
1232
+ compile:
1233
+ function(selector, mode) {
1234
+ return compileGroup(selector, '', mode || false).toString();
1235
+ },
1236
+
1237
+ // add or overwrite user defined operators
1238
+ registerOperator:
1239
+ function(symbol, resolver) {
1240
+ if (!Operators[symbol]) {
1241
+ Operators[symbol] = resolver;
1242
+ }
1243
+ },
1244
+
1245
+ // add selector patterns for user defined callbacks
1246
+ registerSelector:
1247
+ function(name, rexp, func) {
1248
+ if (!Selectors[name]) {
1249
+ Selectors[name] = { };
1250
+ Selectors[name].Expression = rexp;
1251
+ Selectors[name].Callback = func;
1252
+ }
1253
+ },
1254
+
1255
+ // for testing purposes only
1256
+ setQSA:
1257
+ function(enable) {
1258
+ this.select = enable && NATIVE_QSAPI ?
1259
+ select_qsa :
1260
+ client_api;
1261
+ }
1262
+ };
1263
+
1264
+ })(this);