jax 0.0.0.9 → 0.0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (426) hide show
  1. data/CHANGELOG +6 -0
  2. data/jax.gemspec +6 -2
  3. data/lib/jax/generators/app/templates/public/javascripts/jax.js +1 -1
  4. data/lib/jax/version.rb +1 -1
  5. metadata +3 -533
  6. data/guides/assets/images/book_icon.gif +0 -0
  7. data/guides/assets/images/bullet.gif +0 -0
  8. data/guides/assets/images/chapters_icon.gif +0 -0
  9. data/guides/assets/images/check_bullet.gif +0 -0
  10. data/guides/assets/images/credits_pic_blank.gif +0 -0
  11. data/guides/assets/images/edge_badge.png +0 -0
  12. data/guides/assets/images/feature_tile.gif +0 -0
  13. data/guides/assets/images/footer_tile.gif +0 -0
  14. data/guides/assets/images/getting_started/clean_passing_jasmine_suite.png +0 -0
  15. data/guides/assets/images/getting_started/dungeon-complete.png +0 -0
  16. data/guides/assets/images/getting_started/dungeon-normal-map.png +0 -0
  17. data/guides/assets/images/getting_started/dungeon-rainbow-textured.png +0 -0
  18. data/guides/assets/images/getting_started/dungeon-rainbow.png +0 -0
  19. data/guides/assets/images/getting_started/dungeon-textured-lighting.png +0 -0
  20. data/guides/assets/images/getting_started/dungeon-textured.png +0 -0
  21. data/guides/assets/images/getting_started/rock.png +0 -0
  22. data/guides/assets/images/getting_started/rock_normal.png +0 -0
  23. data/guides/assets/images/getting_started/teapot-red-directional-point.png +0 -0
  24. data/guides/assets/images/getting_started/teapot-red-directional.png +0 -0
  25. data/guides/assets/images/getting_started/teapot-red-nolight.png +0 -0
  26. data/guides/assets/images/getting_started/teapot-red-spot-point-directional.png +0 -0
  27. data/guides/assets/images/getting_started/teapot-white.png +0 -0
  28. data/guides/assets/images/getting_started/teapot-with-model.png +0 -0
  29. data/guides/assets/images/grey_bullet.gif +0 -0
  30. data/guides/assets/images/header_backdrop.png +0 -0
  31. data/guides/assets/images/header_tile.gif +0 -0
  32. data/guides/assets/images/icons/README +0 -5
  33. data/guides/assets/images/icons/callouts/1.png +0 -0
  34. data/guides/assets/images/icons/callouts/10.png +0 -0
  35. data/guides/assets/images/icons/callouts/11.png +0 -0
  36. data/guides/assets/images/icons/callouts/12.png +0 -0
  37. data/guides/assets/images/icons/callouts/13.png +0 -0
  38. data/guides/assets/images/icons/callouts/14.png +0 -0
  39. data/guides/assets/images/icons/callouts/15.png +0 -0
  40. data/guides/assets/images/icons/callouts/2.png +0 -0
  41. data/guides/assets/images/icons/callouts/3.png +0 -0
  42. data/guides/assets/images/icons/callouts/4.png +0 -0
  43. data/guides/assets/images/icons/callouts/5.png +0 -0
  44. data/guides/assets/images/icons/callouts/6.png +0 -0
  45. data/guides/assets/images/icons/callouts/7.png +0 -0
  46. data/guides/assets/images/icons/callouts/8.png +0 -0
  47. data/guides/assets/images/icons/callouts/9.png +0 -0
  48. data/guides/assets/images/icons/caution.png +0 -0
  49. data/guides/assets/images/icons/example.png +0 -0
  50. data/guides/assets/images/icons/home.png +0 -0
  51. data/guides/assets/images/icons/important.png +0 -0
  52. data/guides/assets/images/icons/next.png +0 -0
  53. data/guides/assets/images/icons/note.png +0 -0
  54. data/guides/assets/images/icons/prev.png +0 -0
  55. data/guides/assets/images/icons/tip.png +0 -0
  56. data/guides/assets/images/icons/up.png +0 -0
  57. data/guides/assets/images/icons/warning.png +0 -0
  58. data/guides/assets/images/nav_arrow.gif +0 -0
  59. data/guides/assets/images/tab_grey.gif +0 -0
  60. data/guides/assets/images/tab_info.gif +0 -0
  61. data/guides/assets/images/tab_note.gif +0 -0
  62. data/guides/assets/images/tab_red.gif +0 -0
  63. data/guides/assets/images/tab_yellow.gif +0 -0
  64. data/guides/assets/images/tab_yellow.png +0 -0
  65. data/guides/assets/javascripts/guides.js +0 -7
  66. data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +0 -59
  67. data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +0 -75
  68. data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +0 -59
  69. data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +0 -65
  70. data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +0 -100
  71. data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +0 -125
  72. data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +0 -91
  73. data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +0 -55
  74. data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +0 -41
  75. data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +0 -52
  76. data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +0 -67
  77. data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +0 -52
  78. data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +0 -57
  79. data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +0 -58
  80. data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +0 -72
  81. data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +0 -88
  82. data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +0 -33
  83. data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +0 -74
  84. data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +0 -64
  85. data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +0 -55
  86. data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +0 -94
  87. data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +0 -51
  88. data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +0 -66
  89. data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +0 -56
  90. data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +0 -69
  91. data/guides/assets/javascripts/syntaxhighlighter/shCore.js +0 -17
  92. data/guides/assets/stylesheets/fixes.css +0 -16
  93. data/guides/assets/stylesheets/main.css +0 -445
  94. data/guides/assets/stylesheets/print.css +0 -52
  95. data/guides/assets/stylesheets/reset.css +0 -43
  96. data/guides/assets/stylesheets/style.css +0 -13
  97. data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +0 -226
  98. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +0 -328
  99. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +0 -331
  100. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +0 -339
  101. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +0 -324
  102. data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
  103. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +0 -324
  104. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +0 -324
  105. data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +0 -324
  106. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +0 -117
  107. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +0 -120
  108. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +0 -128
  109. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +0 -113
  110. data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
  111. data/guides/assets/stylesheets/syntaxhighlighter/shThemeJaxGuides.css +0 -116
  112. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +0 -113
  113. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +0 -113
  114. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +0 -113
  115. data/guides/jax_guides.rb +0 -41
  116. data/guides/jax_guides/common.rb +0 -7
  117. data/guides/jax_guides/generator.rb +0 -287
  118. data/guides/jax_guides/helpers.rb +0 -29
  119. data/guides/jax_guides/indexer.rb +0 -69
  120. data/guides/jax_guides/levenshtein.rb +0 -31
  121. data/guides/jax_guides/textile_extensions.rb +0 -61
  122. data/guides/partials/_top_nav.html.erb +0 -17
  123. data/guides/source/getting_started.textile +0 -1210
  124. data/guides/source/index.html.erb +0 -61
  125. data/guides/source/layout.html.erb +0 -147
  126. data/guides/source/lighting.textile +0 -5
  127. data/guides/source/materials.textile +0 -5
  128. data/guides/source/matrices.textile +0 -5
  129. data/guides/source/shaders.textile +0 -499
  130. data/guides/source/testing.textile +0 -5
  131. data/guides/w3c_validator.rb +0 -91
  132. data/public/images/brickwall.jpg +0 -0
  133. data/public/images/jacks.jpg +0 -0
  134. data/public/images/normal_map.jpg +0 -0
  135. data/public/images/rock.png +0 -0
  136. data/public/images/rockNormal.png +0 -0
  137. data/public/images/rss.png +0 -0
  138. data/public/webgl_not_supported.html +0 -26
  139. data/spec/example_app/Gemfile +0 -1
  140. data/spec/example_app/Rakefile +0 -15
  141. data/spec/example_app/app/controllers/application_controller.js +0 -5
  142. data/spec/example_app/app/controllers/courthouse_controller.js +0 -24
  143. data/spec/example_app/app/controllers/lighting_controller.js +0 -67
  144. data/spec/example_app/app/controllers/noise_controller.js +0 -50
  145. data/spec/example_app/app/controllers/picking_controller.js +0 -32
  146. data/spec/example_app/app/controllers/shadows_controller.js +0 -130
  147. data/spec/example_app/app/controllers/textures_controller.js +0 -52
  148. data/spec/example_app/app/helpers/application_helper.js +0 -3
  149. data/spec/example_app/app/helpers/noise_helper.js +0 -3
  150. data/spec/example_app/app/helpers/picking_helper.js +0 -3
  151. data/spec/example_app/app/helpers/textures_helper.js +0 -3
  152. data/spec/example_app/app/models/blob.js +0 -38
  153. data/spec/example_app/app/models/character.js +0 -23
  154. data/spec/example_app/app/models/door.js +0 -10
  155. data/spec/example_app/app/models/scene.js +0 -19
  156. data/spec/example_app/app/resources/blobs/default.yml +0 -2
  157. data/spec/example_app/app/resources/characters/judge.yml +0 -3
  158. data/spec/example_app/app/resources/doors/courthouse_door.yml +0 -5
  159. data/spec/example_app/app/resources/light_sources/directional_light.yml +0 -13
  160. data/spec/example_app/app/resources/light_sources/point_light.yml +0 -31
  161. data/spec/example_app/app/resources/light_sources/spot_light.yml +0 -15
  162. data/spec/example_app/app/resources/light_sources/sun.yml +0 -7
  163. data/spec/example_app/app/resources/light_sources/textures_point.yml +0 -34
  164. data/spec/example_app/app/resources/materials/blob.yml +0 -28
  165. data/spec/example_app/app/resources/materials/bricks.yml +0 -36
  166. data/spec/example_app/app/resources/materials/lighting_with_shadows.yml +0 -27
  167. data/spec/example_app/app/resources/scenes/courthouse.yml +0 -4
  168. data/spec/example_app/app/shaders/blob/common.ejs +0 -13
  169. data/spec/example_app/app/shaders/blob/fragment.ejs +0 -8
  170. data/spec/example_app/app/shaders/blob/manifest.yml +0 -15
  171. data/spec/example_app/app/shaders/blob/material.js +0 -51
  172. data/spec/example_app/app/shaders/blob/vertex.ejs +0 -40
  173. data/spec/example_app/app/views/courthouse/index.js +0 -4
  174. data/spec/example_app/app/views/lighting/index.js +0 -4
  175. data/spec/example_app/app/views/noise/index.js +0 -4
  176. data/spec/example_app/app/views/picking/index.js +0 -4
  177. data/spec/example_app/app/views/shadows/index.js +0 -6
  178. data/spec/example_app/app/views/textures/index.js +0 -4
  179. data/spec/example_app/config/application.rb +0 -6
  180. data/spec/example_app/config/boot.rb +0 -13
  181. data/spec/example_app/config/routes.rb +0 -8
  182. data/spec/example_app/public/images/185__normalmap.png +0 -0
  183. data/spec/example_app/public/images/face_norm.jpg +0 -0
  184. data/spec/example_app/public/images/rock.png +0 -0
  185. data/spec/example_app/public/images/rockNormal.png +0 -0
  186. data/spec/example_app/public/images/rss.png +0 -0
  187. data/spec/example_app/public/webgl_not_supported.html +0 -26
  188. data/spec/example_app/script/jax +0 -7
  189. data/spec/example_app/spec/javascripts/controllers/noise_controller_spec.js +0 -11
  190. data/spec/example_app/spec/javascripts/controllers/picking_controller_spec.js +0 -11
  191. data/spec/example_app/spec/javascripts/controllers/textures_controller_spec.js +0 -11
  192. data/spec/example_app/spec/javascripts/helpers/application_helper_spec.js +0 -12
  193. data/spec/example_app/spec/javascripts/helpers/noise_helper_spec.js +0 -12
  194. data/spec/example_app/spec/javascripts/helpers/picking_helper_spec.js +0 -12
  195. data/spec/example_app/spec/javascripts/models/blob_spec.js +0 -11
  196. data/spec/example_app/spec/javascripts/resources/directional_light_spec.js +0 -16
  197. data/spec/example_app/spec/javascripts/resources/point_light_spec.js +0 -17
  198. data/spec/example_app/spec/javascripts/resources/spot_light_spec.js +0 -18
  199. data/spec/example_app/spec/javascripts/shaders/blob_spec.js +0 -27
  200. data/spec/example_app/spec/javascripts/support/jasmine.yml +0 -89
  201. data/spec/example_app/spec/javascripts/support/jasmine_runner.rb +0 -32
  202. data/spec/example_app/spec/javascripts/support/spec_helpers/jax_spec_environment_helper.js +0 -33
  203. data/spec/example_app/spec/javascripts/support/spec_helpers/jax_spec_helper.js +0 -93
  204. data/spec/example_app/spec/javascripts/support/spec_layout.html.erb +0 -111
  205. data/spec/javascripts/helpers/jax_spec_environment_helper.js +0 -33
  206. data/spec/javascripts/helpers/jax_spec_helper.js +0 -216
  207. data/spec/javascripts/jax/builtin/meshes/cube_spec.js +0 -10
  208. data/spec/javascripts/jax/builtin/meshes/plane_spec.js +0 -8
  209. data/spec/javascripts/jax/builtin/meshes/quad_spec.js +0 -8
  210. data/spec/javascripts/jax/builtin/meshes/sphere_spec.js +0 -8
  211. data/spec/javascripts/jax/builtin/meshes/teapot_spec.js +0 -8
  212. data/spec/javascripts/jax/builtin/meshes/torus_spec.js +0 -8
  213. data/spec/javascripts/jax/compatibility_spec.js +0 -50
  214. data/spec/javascripts/jax/context_spec.js +0 -82
  215. data/spec/javascripts/jax/controller_spec.js +0 -145
  216. data/spec/javascripts/jax/core/delegation_spec.js +0 -48
  217. data/spec/javascripts/jax/core/events_spec.js +0 -17
  218. data/spec/javascripts/jax/core/matrix_stack_spec.js +0 -28
  219. data/spec/javascripts/jax/core/utils_spec.js +0 -275
  220. data/spec/javascripts/jax/helper_spec.js +0 -33
  221. data/spec/javascripts/jax/model_spec.js +0 -97
  222. data/spec/javascripts/jax/optimizations/material_limitations_spec.js +0 -87
  223. data/spec/javascripts/jax/optimizations/shaders/basic_spec.js +0 -68
  224. data/spec/javascripts/jax/prototype/extensions_spec.js +0 -34
  225. data/spec/javascripts/jax/route_set_spec.js +0 -67
  226. data/spec/javascripts/jax/view_manager_spec.js +0 -17
  227. data/spec/javascripts/jax/webgl/camera_spec.js +0 -159
  228. data/spec/javascripts/jax/webgl/framebuffer_spec.js +0 -46
  229. data/spec/javascripts/jax/webgl/lighting_spec.js +0 -61
  230. data/spec/javascripts/jax/webgl/material_spec.js +0 -118
  231. data/spec/javascripts/jax/webgl/mesh_spec.js +0 -86
  232. data/spec/javascripts/jax/webgl/shader/manifest_spec.js +0 -60
  233. data/spec/javascripts/jax/webgl/shader_chain_spec.js +0 -192
  234. data/spec/javascripts/jax/webgl/shader_spec.js +0 -276
  235. data/spec/javascripts/jax/webgl/tangent_space_spec.js +0 -142
  236. data/spec/javascripts/jax/webgl/texture_spec.js +0 -162
  237. data/spec/javascripts/jax/webgl_spec.js +0 -5
  238. data/spec/javascripts/jax/world_spec.js +0 -161
  239. data/spec/javascripts/jax_spec.js +0 -27
  240. data/spec/javascripts/shaders/core_materials_spec.js +0 -42
  241. data/spec/javascripts/shaders/fog_spec.js +0 -19
  242. data/spec/javascripts/shaders/lighting_spec.js +0 -19
  243. data/spec/javascripts/shaders/normal_map_spec.js +0 -19
  244. data/spec/javascripts/shaders/paraboloid_spec.js +0 -37
  245. data/spec/javascripts/shaders/preprocessor_spec.js +0 -50
  246. data/spec/javascripts/shaders/shadow_map_spec.js +0 -19
  247. data/spec/javascripts/shaders/texture_spec.js +0 -40
  248. data/src/constants.yml +0 -1
  249. data/src/constants.yml.erb +0 -1
  250. data/src/jax.js +0 -119
  251. data/src/jax/anim_frame.js +0 -51
  252. data/src/jax/builtin/all.js +0 -7
  253. data/src/jax/builtin/meshes/cube.js +0 -83
  254. data/src/jax/builtin/meshes/plane.js +0 -63
  255. data/src/jax/builtin/meshes/quad.js +0 -86
  256. data/src/jax/builtin/meshes/sphere.js +0 -65
  257. data/src/jax/builtin/meshes/teapot.js +0 -48
  258. data/src/jax/builtin/meshes/torus.js +0 -64
  259. data/src/jax/compatibility.js +0 -303
  260. data/src/jax/context.js +0 -420
  261. data/src/jax/core.js +0 -42
  262. data/src/jax/core/math.js +0 -55
  263. data/src/jax/core/matrix_stack.js +0 -311
  264. data/src/jax/core/util.js +0 -253
  265. data/src/jax/events.js +0 -234
  266. data/src/jax/geometry.js +0 -7
  267. data/src/jax/geometry/plane.js +0 -113
  268. data/src/jax/mvc/controller.js +0 -195
  269. data/src/jax/mvc/helper.js +0 -35
  270. data/src/jax/mvc/model.js +0 -302
  271. data/src/jax/mvc/route_set.js +0 -125
  272. data/src/jax/mvc/view.js +0 -43
  273. data/src/jax/mvc/view_manager.js +0 -47
  274. data/src/jax/noise.js +0 -206
  275. data/src/jax/prototype/class.js +0 -81
  276. data/src/jax/prototype/core.js +0 -112
  277. data/src/jax/prototype/extensions.js +0 -142
  278. data/src/jax/vendor/ejs.js +0 -4
  279. data/src/jax/vendor/glMatrix.js +0 -3
  280. data/src/jax/webgl.js +0 -98
  281. data/src/jax/webgl/camera.js +0 -526
  282. data/src/jax/webgl/core.js +0 -6
  283. data/src/jax/webgl/core/buffer.js +0 -161
  284. data/src/jax/webgl/core/edge.js +0 -6
  285. data/src/jax/webgl/core/events.js +0 -25
  286. data/src/jax/webgl/core/face.js +0 -8
  287. data/src/jax/webgl/core/framebuffer.js +0 -211
  288. data/src/jax/webgl/material.js +0 -392
  289. data/src/jax/webgl/mesh.js +0 -427
  290. data/src/jax/webgl/scene.js +0 -11
  291. data/src/jax/webgl/scene/frustum.js +0 -260
  292. data/src/jax/webgl/scene/light_manager.js +0 -136
  293. data/src/jax/webgl/scene/light_source.js +0 -294
  294. data/src/jax/webgl/shader.js +0 -296
  295. data/src/jax/webgl/shader/delegator.js +0 -13
  296. data/src/jax/webgl/shader/delegator/attribute.js +0 -53
  297. data/src/jax/webgl/shader/delegator/uniform.js +0 -71
  298. data/src/jax/webgl/shader/manifest.js +0 -64
  299. data/src/jax/webgl/shader/program.js +0 -140
  300. data/src/jax/webgl/shader_chain.js +0 -264
  301. data/src/jax/webgl/texture.js +0 -312
  302. data/src/jax/webgl/world.js +0 -240
  303. data/vendor/ejs/.svn/all-wcprops +0 -17
  304. data/vendor/ejs/.svn/entries +0 -114
  305. data/vendor/ejs/.svn/text-base/Eratta.txt.svn-base +0 -3
  306. data/vendor/ejs/.svn/text-base/license.txt.svn-base +0 -21
  307. data/vendor/ejs/Eratta.txt +0 -3
  308. data/vendor/ejs/example/.svn/all-wcprops +0 -29
  309. data/vendor/ejs/example/.svn/entries +0 -164
  310. data/vendor/ejs/example/.svn/prop-base/ejs.gif.svn-base +0 -5
  311. data/vendor/ejs/example/.svn/text-base/demo.html.svn-base +0 -54
  312. data/vendor/ejs/example/.svn/text-base/ejs.gif.svn-base +0 -0
  313. data/vendor/ejs/example/.svn/text-base/example.css.svn-base +0 -31
  314. data/vendor/ejs/example/.svn/text-base/example.js.svn-base +0 -88
  315. data/vendor/ejs/example/demo.html +0 -54
  316. data/vendor/ejs/example/ejs.gif +0 -0
  317. data/vendor/ejs/example/example.css +0 -31
  318. data/vendor/ejs/example/example.js +0 -88
  319. data/vendor/ejs/lib/.svn/all-wcprops +0 -11
  320. data/vendor/ejs/lib/.svn/entries +0 -62
  321. data/vendor/ejs/lib/.svn/text-base/ejs_fulljslint.js.svn-base +0 -3774
  322. data/vendor/ejs/lib/ejs_fulljslint.js +0 -3774
  323. data/vendor/ejs/license.txt +0 -21
  324. data/vendor/ejs/script/.svn/all-wcprops +0 -17
  325. data/vendor/ejs/script/.svn/entries +0 -96
  326. data/vendor/ejs/script/.svn/prop-base/yuicompressor-2.2.4.jar.svn-base +0 -5
  327. data/vendor/ejs/script/.svn/text-base/production.bat.svn-base +0 -4
  328. data/vendor/ejs/script/.svn/text-base/yuicompressor-2.2.4.jar.svn-base +0 -0
  329. data/vendor/ejs/script/production.bat +0 -4
  330. data/vendor/ejs/script/yuicompressor-2.2.4.jar +0 -0
  331. data/vendor/ejs/src/.svn/all-wcprops +0 -17
  332. data/vendor/ejs/src/.svn/entries +0 -96
  333. data/vendor/ejs/src/.svn/text-base/ejs.js.svn-base +0 -505
  334. data/vendor/ejs/src/.svn/text-base/view.js.svn-base +0 -200
  335. data/vendor/ejs/src/ejs.js +0 -505
  336. data/vendor/ejs/src/view.js +0 -200
  337. data/vendor/ejs/test/.svn/all-wcprops +0 -23
  338. data/vendor/ejs/test/.svn/entries +0 -139
  339. data/vendor/ejs/test/.svn/text-base/index.html.svn-base +0 -18
  340. data/vendor/ejs/test/.svn/text-base/setup_test.html.svn-base +0 -44
  341. data/vendor/ejs/test/.svn/text-base/sidebar.html.svn-base +0 -28
  342. data/vendor/ejs/test/included/.svn/all-wcprops +0 -23
  343. data/vendor/ejs/test/included/.svn/entries +0 -130
  344. data/vendor/ejs/test/included/.svn/text-base/prototype.js.svn-base +0 -4184
  345. data/vendor/ejs/test/included/.svn/text-base/test.css.svn-base +0 -44
  346. data/vendor/ejs/test/included/.svn/text-base/unittest.js.svn-base +0 -564
  347. data/vendor/ejs/test/included/prototype.js +0 -4184
  348. data/vendor/ejs/test/included/test.css +0 -44
  349. data/vendor/ejs/test/included/unittest.js +0 -564
  350. data/vendor/ejs/test/index.html +0 -18
  351. data/vendor/ejs/test/setup_test.html +0 -44
  352. data/vendor/ejs/test/sidebar.html +0 -28
  353. data/vendor/ejs/test/templates/.svn/all-wcprops +0 -11
  354. data/vendor/ejs/test/templates/.svn/entries +0 -62
  355. data/vendor/ejs/test/templates/.svn/text-base/test.ejs.svn-base +0 -3
  356. data/vendor/ejs/test/templates/test.ejs +0 -3
  357. data/vendor/ejs/test/tests/.svn/all-wcprops +0 -23
  358. data/vendor/ejs/test/tests/.svn/entries +0 -130
  359. data/vendor/ejs/test/tests/.svn/text-base/rendering.js.svn-base +0 -94
  360. data/vendor/ejs/test/tests/.svn/text-base/templating.js.svn-base +0 -43
  361. data/vendor/ejs/test/tests/.svn/text-base/views.js.svn-base +0 -100
  362. data/vendor/ejs/test/tests/rendering.js +0 -94
  363. data/vendor/ejs/test/tests/templating.js +0 -43
  364. data/vendor/ejs/test/tests/views.js +0 -100
  365. data/vendor/glmatrix/benchmark/js/CanvasMatrix.js +0 -722
  366. data/vendor/glmatrix/benchmark/js/EWGL_math.js +0 -742
  367. data/vendor/glmatrix/benchmark/js/mjs.js +0 -1230
  368. data/vendor/glmatrix/benchmark/matrix_benchmark.html +0 -419
  369. data/vendor/glmatrix/glMatrix-min.js +0 -32
  370. data/vendor/glmatrix/glMatrix.js +0 -1772
  371. data/vendor/glmatrix/unit tests/glMatrix-test.js +0 -74
  372. data/vendor/glmatrix/unit tests/qunit.css +0 -119
  373. data/vendor/glmatrix/unit tests/qunit.js +0 -1069
  374. data/vendor/glmatrix/unit tests/test_glMatrix.html +0 -21
  375. data/vendor/pdoc_template/html/assets/images/pdoc/alias.png +0 -0
  376. data/vendor/pdoc_template/html/assets/images/pdoc/class.png +0 -0
  377. data/vendor/pdoc_template/html/assets/images/pdoc/class_deprecated.png +0 -0
  378. data/vendor/pdoc_template/html/assets/images/pdoc/class_method.png +0 -0
  379. data/vendor/pdoc_template/html/assets/images/pdoc/class_property.png +0 -0
  380. data/vendor/pdoc_template/html/assets/images/pdoc/constant.png +0 -0
  381. data/vendor/pdoc_template/html/assets/images/pdoc/constructor.png +0 -0
  382. data/vendor/pdoc_template/html/assets/images/pdoc/deprecated.png +0 -0
  383. data/vendor/pdoc_template/html/assets/images/pdoc/description.png +0 -0
  384. data/vendor/pdoc_template/html/assets/images/pdoc/information.png +0 -0
  385. data/vendor/pdoc_template/html/assets/images/pdoc/instance_method.png +0 -0
  386. data/vendor/pdoc_template/html/assets/images/pdoc/instance_property.png +0 -0
  387. data/vendor/pdoc_template/html/assets/images/pdoc/method.png +0 -0
  388. data/vendor/pdoc_template/html/assets/images/pdoc/method_deprecated.png +0 -0
  389. data/vendor/pdoc_template/html/assets/images/pdoc/mixin.png +0 -0
  390. data/vendor/pdoc_template/html/assets/images/pdoc/namespace.png +0 -0
  391. data/vendor/pdoc_template/html/assets/images/pdoc/property.png +0 -0
  392. data/vendor/pdoc_template/html/assets/images/pdoc/related_to.png +0 -0
  393. data/vendor/pdoc_template/html/assets/images/pdoc/search-background.png +0 -0
  394. data/vendor/pdoc_template/html/assets/images/pdoc/section-background.png +0 -0
  395. data/vendor/pdoc_template/html/assets/images/pdoc/section.png +0 -0
  396. data/vendor/pdoc_template/html/assets/images/pdoc/selected-section-background.png +0 -0
  397. data/vendor/pdoc_template/html/assets/images/pdoc/subclass.png +0 -0
  398. data/vendor/pdoc_template/html/assets/images/pdoc/superclass.png +0 -0
  399. data/vendor/pdoc_template/html/assets/images/pdoc/utility.png +0 -0
  400. data/vendor/pdoc_template/html/assets/javascripts/pdoc/application.js +0 -478
  401. data/vendor/pdoc_template/html/assets/javascripts/pdoc/prototype.js +0 -4874
  402. data/vendor/pdoc_template/html/assets/javascripts/pdoc/tabs.js +0 -506
  403. data/vendor/pdoc_template/html/assets/stylesheets/jax.css +0 -30
  404. data/vendor/pdoc_template/html/assets/stylesheets/pdoc/api.css +0 -681
  405. data/vendor/pdoc_template/html/assets/stylesheets/pdoc/pygments.css +0 -62
  406. data/vendor/pdoc_template/html/helpers.rb +0 -35
  407. data/vendor/pdoc_template/html/index.erb +0 -18
  408. data/vendor/pdoc_template/html/item_index.js.erb +0 -6
  409. data/vendor/pdoc_template/html/layout.erb +0 -67
  410. data/vendor/pdoc_template/html/leaf.erb +0 -22
  411. data/vendor/pdoc_template/html/node.erb +0 -30
  412. data/vendor/pdoc_template/html/partials/class_relationships.erb +0 -19
  413. data/vendor/pdoc_template/html/partials/classes.erb +0 -7
  414. data/vendor/pdoc_template/html/partials/constructor.erb +0 -5
  415. data/vendor/pdoc_template/html/partials/description.erb +0 -5
  416. data/vendor/pdoc_template/html/partials/link_list.erb +0 -1
  417. data/vendor/pdoc_template/html/partials/method_signatures.erb +0 -14
  418. data/vendor/pdoc_template/html/partials/methodized_note.erb +0 -9
  419. data/vendor/pdoc_template/html/partials/mixins.erb +0 -7
  420. data/vendor/pdoc_template/html/partials/namespaces.erb +0 -7
  421. data/vendor/pdoc_template/html/partials/related_utilities.erb +0 -5
  422. data/vendor/pdoc_template/html/partials/relationships.erb +0 -11
  423. data/vendor/pdoc_template/html/partials/short_description_list.erb +0 -7
  424. data/vendor/pdoc_template/html/partials/title.erb +0 -24
  425. data/vendor/pdoc_template/html/section.erb +0 -18
  426. data/vendor/yuicompressor-2.4.2.jar +0 -0
@@ -1,506 +0,0 @@
1
- /**
2
- * @author Ryan Johnson <http://syntacticx.com/>
3
- * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
4
- * @package LivePipe UI
5
- * @license MIT
6
- * @url http://livepipe.net/core
7
- * @require prototype.js
8
- */
9
-
10
- if(typeof(Control) == 'undefined')
11
- Control = {};
12
-
13
- var $proc = function(proc){
14
- return typeof(proc) == 'function' ? proc : function(){return proc};
15
- };
16
-
17
- var $value = function(value){
18
- return typeof(value) == 'function' ? value() : value;
19
- };
20
-
21
- Object.Event = {
22
- extend: function(object){
23
- object._objectEventSetup = function(event_name){
24
- this._observers = this._observers || {};
25
- this._observers[event_name] = this._observers[event_name] || [];
26
- };
27
- object.observe = function(event_name,observer){
28
- if(typeof(event_name) == 'string' && typeof(observer) != 'undefined'){
29
- this._objectEventSetup(event_name);
30
- if(!this._observers[event_name].include(observer))
31
- this._observers[event_name].push(observer);
32
- }else
33
- for(var e in event_name)
34
- this.observe(e,event_name[e]);
35
- };
36
- object.stopObserving = function(event_name,observer){
37
- this._objectEventSetup(event_name);
38
- if(event_name && observer)
39
- this._observers[event_name] = this._observers[event_name].without(observer);
40
- else if(event_name)
41
- this._observers[event_name] = [];
42
- else
43
- this._observers = {};
44
- };
45
- object.observeOnce = function(event_name,outer_observer){
46
- var inner_observer = function(){
47
- outer_observer.apply(this,arguments);
48
- this.stopObserving(event_name,inner_observer);
49
- }.bind(this);
50
- this._objectEventSetup(event_name);
51
- this._observers[event_name].push(inner_observer);
52
- };
53
- object.notify = function(event_name){
54
- this._objectEventSetup(event_name);
55
- var collected_return_values = [];
56
- var args = $A(arguments).slice(1);
57
- try{
58
- for(var i = 0; i < this._observers[event_name].length; ++i)
59
- collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null);
60
- }catch(e){
61
- if(e == $break)
62
- return false;
63
- else
64
- throw e;
65
- }
66
- return collected_return_values;
67
- };
68
- if(object.prototype){
69
- object.prototype._objectEventSetup = object._objectEventSetup;
70
- object.prototype.observe = object.observe;
71
- object.prototype.stopObserving = object.stopObserving;
72
- object.prototype.observeOnce = object.observeOnce;
73
- object.prototype.notify = function(event_name){
74
- if(object.notify){
75
- var args = $A(arguments).slice(1);
76
- args.unshift(this);
77
- args.unshift(event_name);
78
- object.notify.apply(object,args);
79
- }
80
- this._objectEventSetup(event_name);
81
- var args = $A(arguments).slice(1);
82
- var collected_return_values = [];
83
- try{
84
- if(this.options && this.options[event_name] && typeof(this.options[event_name]) == 'function')
85
- collected_return_values.push(this.options[event_name].apply(this,args) || null);
86
- for(var i = 0; i < this._observers[event_name].length; ++i)
87
- collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null);
88
- }catch(e){
89
- if(e == $break)
90
- return false;
91
- else
92
- throw e;
93
- }
94
- return collected_return_values;
95
- };
96
- }
97
- }
98
- };
99
-
100
- /* Begin Core Extensions */
101
-
102
- //Element.observeOnce
103
- Element.addMethods({
104
- observeOnce: function(element,event_name,outer_callback){
105
- var inner_callback = function(){
106
- outer_callback.apply(this,arguments);
107
- Element.stopObserving(element,event_name,inner_callback);
108
- };
109
- Element.observe(element,event_name,inner_callback);
110
- }
111
- });
112
-
113
- //mouseenter, mouseleave
114
- //from http://dev.rubyonrails.org/attachment/ticket/8354/event_mouseenter_106rc1.patch
115
- Object.extend(Event, (function() {
116
- var cache = Event.cache;
117
-
118
- function getEventID(element) {
119
- if (element._prototypeEventID) return element._prototypeEventID[0];
120
- arguments.callee.id = arguments.callee.id || 1;
121
- return element._prototypeEventID = [++arguments.callee.id];
122
- }
123
-
124
- function getDOMEventName(eventName) {
125
- if (eventName && eventName.include(':')) return "dataavailable";
126
- //begin extension
127
- if(!Prototype.Browser.IE){
128
- eventName = {
129
- mouseenter: 'mouseover',
130
- mouseleave: 'mouseout'
131
- }[eventName] || eventName;
132
- }
133
- //end extension
134
- return eventName;
135
- }
136
-
137
- function getCacheForID(id) {
138
- return cache[id] = cache[id] || { };
139
- }
140
-
141
- function getWrappersForEventName(id, eventName) {
142
- var c = getCacheForID(id);
143
- return c[eventName] = c[eventName] || [];
144
- }
145
-
146
- function createWrapper(element, eventName, handler) {
147
- var id = getEventID(element);
148
- var c = getWrappersForEventName(id, eventName);
149
- if (c.pluck("handler").include(handler)) return false;
150
-
151
- var wrapper = function(event) {
152
- if (!Event || !Event.extend ||
153
- (event.eventName && event.eventName != eventName))
154
- return false;
155
-
156
- Event.extend(event);
157
- handler.call(element, event);
158
- };
159
-
160
- //begin extension
161
- if(!(Prototype.Browser.IE) && ['mouseenter','mouseleave'].include(eventName)){
162
- wrapper = wrapper.wrap(function(proceed,event) {
163
- var rel = event.relatedTarget;
164
- var cur = event.currentTarget;
165
- if(rel && rel.nodeType == Node.TEXT_NODE)
166
- rel = rel.parentNode;
167
- if(rel && rel != cur && !rel.descendantOf(cur))
168
- return proceed(event);
169
- });
170
- }
171
- //end extension
172
-
173
- wrapper.handler = handler;
174
- c.push(wrapper);
175
- return wrapper;
176
- }
177
-
178
- function findWrapper(id, eventName, handler) {
179
- var c = getWrappersForEventName(id, eventName);
180
- return c.find(function(wrapper) { return wrapper.handler == handler });
181
- }
182
-
183
- function destroyWrapper(id, eventName, handler) {
184
- var c = getCacheForID(id);
185
- if (!c[eventName]) return false;
186
- c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
187
- }
188
-
189
- function destroyCache() {
190
- for (var id in cache)
191
- for (var eventName in cache[id])
192
- cache[id][eventName] = null;
193
- }
194
-
195
- if (window.attachEvent) {
196
- window.attachEvent("onunload", destroyCache);
197
- }
198
-
199
- return {
200
- observe: function(element, eventName, handler) {
201
- element = $(element);
202
- var name = getDOMEventName(eventName);
203
-
204
- var wrapper = createWrapper(element, eventName, handler);
205
- if (!wrapper) return element;
206
-
207
- if (element.addEventListener) {
208
- element.addEventListener(name, wrapper, false);
209
- } else {
210
- element.attachEvent("on" + name, wrapper);
211
- }
212
-
213
- return element;
214
- },
215
-
216
- stopObserving: function(element, eventName, handler) {
217
- element = $(element);
218
- var id = getEventID(element), name = getDOMEventName(eventName);
219
-
220
- if (!handler && eventName) {
221
- getWrappersForEventName(id, eventName).each(function(wrapper) {
222
- element.stopObserving(eventName, wrapper.handler);
223
- });
224
- return element;
225
-
226
- } else if (!eventName) {
227
- Object.keys(getCacheForID(id)).each(function(eventName) {
228
- element.stopObserving(eventName);
229
- });
230
- return element;
231
- }
232
-
233
- var wrapper = findWrapper(id, eventName, handler);
234
- if (!wrapper) return element;
235
-
236
- if (element.removeEventListener) {
237
- element.removeEventListener(name, wrapper, false);
238
- } else {
239
- element.detachEvent("on" + name, wrapper);
240
- }
241
-
242
- destroyWrapper(id, eventName, handler);
243
-
244
- return element;
245
- },
246
-
247
- fire: function(element, eventName, memo) {
248
- element = $(element);
249
- if (element == document && document.createEvent && !element.dispatchEvent)
250
- element = document.documentElement;
251
-
252
- var event;
253
- if (document.createEvent) {
254
- event = document.createEvent("HTMLEvents");
255
- event.initEvent("dataavailable", true, true);
256
- } else {
257
- event = document.createEventObject();
258
- event.eventType = "ondataavailable";
259
- }
260
-
261
- event.eventName = eventName;
262
- event.memo = memo || { };
263
-
264
- if (document.createEvent) {
265
- element.dispatchEvent(event);
266
- } else {
267
- element.fireEvent(event.eventType, event);
268
- }
269
-
270
- return Event.extend(event);
271
- }
272
- };
273
- })());
274
-
275
- Object.extend(Event, Event.Methods);
276
-
277
- Element.addMethods({
278
- fire: Event.fire,
279
- observe: Event.observe,
280
- stopObserving: Event.stopObserving
281
- });
282
-
283
- Object.extend(document, {
284
- fire: Element.Methods.fire.methodize(),
285
- observe: Element.Methods.observe.methodize(),
286
- stopObserving: Element.Methods.stopObserving.methodize()
287
- });
288
-
289
- //mouse:wheel
290
- (function(){
291
- function wheel(event){
292
- var delta;
293
- // normalize the delta
294
- if(event.wheelDelta) // IE & Opera
295
- delta = event.wheelDelta / 120;
296
- else if (event.detail) // W3C
297
- delta =- event.detail / 3;
298
- if(!delta)
299
- return;
300
- var custom_event = Event.element(event).fire('mouse:wheel',{
301
- delta: delta
302
- });
303
- if(custom_event.stopped){
304
- Event.stop(event);
305
- return false;
306
- }
307
- }
308
- document.observe('mousewheel',wheel);
309
- document.observe('DOMMouseScroll',wheel);
310
- })();
311
-
312
- /* End Core Extensions */
313
-
314
- //from PrototypeUI
315
- var IframeShim = Class.create({
316
- initialize: function() {
317
- this.element = new Element('iframe',{
318
- style: 'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',
319
- src: 'javascript:void(0);',
320
- frameborder: 0
321
- });
322
- $(document.body).insert(this.element);
323
- },
324
- hide: function() {
325
- this.element.hide();
326
- return this;
327
- },
328
- show: function() {
329
- this.element.show();
330
- return this;
331
- },
332
- positionUnder: function(element) {
333
- var element = $(element);
334
- var offset = element.cumulativeOffset();
335
- var dimensions = element.getDimensions();
336
- this.element.setStyle({
337
- left: offset[0] + 'px',
338
- top: offset[1] + 'px',
339
- width: dimensions.width + 'px',
340
- height: dimensions.height + 'px',
341
- zIndex: element.getStyle('zIndex') - 1
342
- }).show();
343
- return this;
344
- },
345
- setBounds: function(bounds) {
346
- for(prop in bounds)
347
- bounds[prop] += 'px';
348
- this.element.setStyle(bounds);
349
- return this;
350
- },
351
- destroy: function() {
352
- if(this.element)
353
- this.element.remove();
354
- return this;
355
- }
356
- });
357
-
358
- /**
359
- * @author Ryan Johnson <http://syntacticx.com/>
360
- * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
361
- * @package LivePipe UI
362
- * @license MIT
363
- * @url http://livepipe.net/control/tabs
364
- * @require prototype.js, livepipe.js
365
- */
366
-
367
- /*global window, document, Prototype, $, $A, $H, $break, Class, Element, Event, Control */
368
-
369
- if(typeof(Prototype) == "undefined") {
370
- throw "Control.Tabs requires Prototype to be loaded."; }
371
- if(typeof(Object.Event) == "undefined") {
372
- throw "Control.Tabs requires Object.Event to be loaded."; }
373
-
374
- Control.Tabs = Class.create({
375
- initialize: function(tab_list_container,options){
376
- if(!$(tab_list_container)) {
377
- throw "Control.Tabs could not find the element: " + tab_list_container; }
378
- this.activeContainer = false;
379
- this.activeLink = false;
380
- this.containers = $H({});
381
- this.links = [];
382
- Control.Tabs.instances.push(this);
383
- this.options = {
384
- beforeChange: Prototype.emptyFunction,
385
- afterChange: Prototype.emptyFunction,
386
- hover: false,
387
- linkSelector: 'li a',
388
- setClassOnContainer: false,
389
- activeClassName: 'active',
390
- defaultTab: 'first',
391
- autoLinkExternal: true,
392
- targetRegExp: /#(.+)$/,
393
- showFunction: Element.show,
394
- hideFunction: Element.hide
395
- };
396
- Object.extend(this.options,options || {});
397
- (typeof(this.options.linkSelector == 'string') ?
398
- $(tab_list_container).select(this.options.linkSelector) :
399
- this.options.linkSelector($(tab_list_container))
400
- ).findAll(function(link){
401
- return (/^#/).exec((Prototype.Browser.WebKit ? decodeURIComponent(link.href) : link.href).replace(window.location.href.split('#')[0],''));
402
- }).each(function(link){
403
- this.addTab(link);
404
- }.bind(this));
405
- this.containers.values().each(Element.hide);
406
- if(this.options.defaultTab == 'first') {
407
- this.setActiveTab(this.links.first());
408
- } else if(this.options.defaultTab == 'last') {
409
- this.setActiveTab(this.links.last());
410
- } else {
411
- this.setActiveTab(this.options.defaultTab); }
412
- var targets = this.options.targetRegExp.exec(window.location);
413
- if(targets && targets[1]){
414
- targets[1].split(',').each(function(target){
415
- this.setActiveTab(this.links.find(function(link){
416
- return link.key == target;
417
- }));
418
- }.bind(this));
419
- }
420
- if(this.options.autoLinkExternal){
421
- $A(document.getElementsByTagName('a')).each(function(a){
422
- if(!this.links.include(a)){
423
- var clean_href = a.href.replace(window.location.href.split('#')[0],'');
424
- if(clean_href.substring(0,1) == '#'){
425
- if(this.containers.keys().include(clean_href.substring(1))){
426
- $(a).observe('click',function(event,clean_href){
427
- this.setActiveTab(clean_href.substring(1));
428
- }.bindAsEventListener(this,clean_href));
429
- }
430
- }
431
- }
432
- }.bind(this));
433
- }
434
- },
435
- addTab: function(link){
436
- this.links.push(link);
437
- link.key = link.getAttribute('href').replace(window.location.href.split('#')[0],'').split('#').last().replace(/#/,'');
438
- var container = $(link.key);
439
- if(!container) {
440
- throw "Control.Tabs: #" + link.key + " was not found on the page."; }
441
- this.containers.set(link.key,container);
442
- link[this.options.hover ? 'onmouseover' : 'onclick'] = function(link){
443
- if(window.event) {
444
- Event.stop(window.event); }
445
- this.setActiveTab(link);
446
- return false;
447
- }.bind(this,link);
448
- },
449
- setActiveTab: function(link){
450
- if(!link && typeof(link) == 'undefined') {
451
- return; }
452
- if(typeof(link) == 'string'){
453
- this.setActiveTab(this.links.find(function(_link){
454
- return _link.key == link;
455
- }));
456
- }else if(typeof(link) == 'number'){
457
- this.setActiveTab(this.links[link]);
458
- }else{
459
- if(this.notify('beforeChange',this.activeContainer,this.containers.get(link.key)) === false) {
460
- return; }
461
- if(this.activeContainer) {
462
- this.options.hideFunction(this.activeContainer); }
463
- this.links.each(function(item){
464
- (this.options.setClassOnContainer ? $(item.parentNode) : item).removeClassName(this.options.activeClassName);
465
- }.bind(this));
466
- (this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.activeClassName);
467
- this.activeContainer = this.containers.get(link.key);
468
- this.activeLink = link;
469
- this.options.showFunction(this.containers.get(link.key));
470
- this.notify('afterChange',this.containers.get(link.key));
471
- }
472
- },
473
- next: function(){
474
- this.links.each(function(link,i){
475
- if(this.activeLink == link && this.links[i + 1]){
476
- this.setActiveTab(this.links[i + 1]);
477
- throw $break;
478
- }
479
- }.bind(this));
480
- },
481
- previous: function(){
482
- this.links.each(function(link,i){
483
- if(this.activeLink == link && this.links[i - 1]){
484
- this.setActiveTab(this.links[i - 1]);
485
- throw $break;
486
- }
487
- }.bind(this));
488
- },
489
- first: function(){
490
- this.setActiveTab(this.links.first());
491
- },
492
- last: function(){
493
- this.setActiveTab(this.links.last());
494
- }
495
- });
496
- Object.extend(Control.Tabs,{
497
- instances: [],
498
- findByTabId: function(id){
499
- return Control.Tabs.instances.find(function(tab){
500
- return tab.links.find(function(link){
501
- return link.key == id;
502
- });
503
- });
504
- }
505
- });
506
- Object.Event.extend(Control.Tabs);