sketchily 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +39 -0
  3. data/Rakefile +40 -0
  4. data/app/helpers/sketchily.rb~ +10 -0
  5. data/app/helpers/sketchily_helper.rb +10 -0
  6. data/app/views/sketchily/_embed.html.erb +28 -0
  7. data/app/views/sketchily/_embed.html.erb~ +28 -0
  8. data/app/views/sketchily/_embed.js.erb +50 -0
  9. data/app/views/sketchily/_embed.js.erb~ +50 -0
  10. data/app/views/sketchily/_sketchily.html.erb +23 -0
  11. data/app/views/sketchily/_sketchily.html.erb~ +23 -0
  12. data/app/views/sketchily/_sketchily_tag.html.erb +21 -0
  13. data/app/views/sketchily/_sketchily_tag.html.erb~ +21 -0
  14. data/app/views/sketchily/_svg_edit_tag.html.erb~ +51 -0
  15. data/app/views/sketchily/svg_edit_tag_.html~ +35 -0
  16. data/lib/sketchily.rb +15 -0
  17. data/lib/sketchily.rb~ +16 -0
  18. data/lib/sketchily/engine.rb +4 -0
  19. data/lib/sketchily/sketchily.rb +28 -0
  20. data/lib/sketchily/sketchily_show.rb~ +13 -0
  21. data/lib/sketchily/sketchily_tag.rb +15 -0
  22. data/lib/sketchily/svg_edit_tag.rb~ +9 -0
  23. data/lib/sketchily/version.rb +3 -0
  24. data/lib/sketchily/version.rb~ +3 -0
  25. data/spec/dummy/README.rdoc +261 -0
  26. data/spec/dummy/Rakefile +7 -0
  27. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  28. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  29. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  30. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  31. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  32. data/spec/dummy/config.ru +4 -0
  33. data/spec/dummy/config/application.rb +59 -0
  34. data/spec/dummy/config/boot.rb +10 -0
  35. data/spec/dummy/config/database.yml +25 -0
  36. data/spec/dummy/config/environment.rb +5 -0
  37. data/spec/dummy/config/environments/development.rb +37 -0
  38. data/spec/dummy/config/environments/production.rb +67 -0
  39. data/spec/dummy/config/environments/test.rb +37 -0
  40. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  41. data/spec/dummy/config/initializers/inflections.rb +15 -0
  42. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  43. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  44. data/spec/dummy/config/initializers/session_store.rb +8 -0
  45. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  46. data/spec/dummy/config/locales/en.yml +5 -0
  47. data/spec/dummy/config/routes.rb +58 -0
  48. data/spec/dummy/public/404.html +26 -0
  49. data/spec/dummy/public/422.html +26 -0
  50. data/spec/dummy/public/500.html +25 -0
  51. data/spec/dummy/public/favicon.ico +0 -0
  52. data/spec/dummy/script/rails +6 -0
  53. data/spec/lib/sketchily_spec.rb +0 -0
  54. data/spec/spec_helper.rb +11 -0
  55. data/vendor/assets/svg-edit-2.6/browser-not-supported.html +27 -0
  56. data/vendor/assets/svg-edit-2.6/browser.js +180 -0
  57. data/vendor/assets/svg-edit-2.6/canvg/canvg.js +2620 -0
  58. data/vendor/assets/svg-edit-2.6/canvg/rgbcolor.js +287 -0
  59. data/vendor/assets/svg-edit-2.6/contextmenu.js +67 -0
  60. data/vendor/assets/svg-edit-2.6/contextmenu/jquery.contextMenu.js +203 -0
  61. data/vendor/assets/svg-edit-2.6/draw.js +528 -0
  62. data/vendor/assets/svg-edit-2.6/embedapi.html +56 -0
  63. data/vendor/assets/svg-edit-2.6/embedapi.js +173 -0
  64. data/vendor/assets/svg-edit-2.6/extensions/closepath_icons.svg +41 -0
  65. data/vendor/assets/svg-edit-2.6/extensions/ext-arrows.js +298 -0
  66. data/vendor/assets/svg-edit-2.6/extensions/ext-closepath.js +92 -0
  67. data/vendor/assets/svg-edit-2.6/extensions/ext-connector.js +587 -0
  68. data/vendor/assets/svg-edit-2.6/extensions/ext-eyedropper.js +109 -0
  69. data/vendor/assets/svg-edit-2.6/extensions/ext-foreignobject.js +277 -0
  70. data/vendor/assets/svg-edit-2.6/extensions/ext-grid.js +184 -0
  71. data/vendor/assets/svg-edit-2.6/extensions/ext-helloworld.js +78 -0
  72. data/vendor/assets/svg-edit-2.6/extensions/ext-imagelib.js +453 -0
  73. data/vendor/assets/svg-edit-2.6/extensions/ext-imagelib.xml +14 -0
  74. data/vendor/assets/svg-edit-2.6/extensions/ext-markers.js +572 -0
  75. data/vendor/assets/svg-edit-2.6/extensions/ext-server_moinsave.js +56 -0
  76. data/vendor/assets/svg-edit-2.6/extensions/ext-server_opensave.js +180 -0
  77. data/vendor/assets/svg-edit-2.6/extensions/ext-shapes.js +387 -0
  78. data/vendor/assets/svg-edit-2.6/extensions/ext-shapes.xml +10 -0
  79. data/vendor/assets/svg-edit-2.6/extensions/eyedropper-icon.xml +34 -0
  80. data/vendor/assets/svg-edit-2.6/extensions/eyedropper.png +0 -0
  81. data/vendor/assets/svg-edit-2.6/extensions/fileopen.php +31 -0
  82. data/vendor/assets/svg-edit-2.6/extensions/filesave.php +44 -0
  83. data/vendor/assets/svg-edit-2.6/extensions/foreignobject-icons.xml +96 -0
  84. data/vendor/assets/svg-edit-2.6/extensions/grid-icon.xml +30 -0
  85. data/vendor/assets/svg-edit-2.6/extensions/helloworld-icon.xml +21 -0
  86. data/vendor/assets/svg-edit-2.6/extensions/imagelib/index.html +64 -0
  87. data/vendor/assets/svg-edit-2.6/extensions/imagelib/smiley.svg +12 -0
  88. data/vendor/assets/svg-edit-2.6/extensions/markers-icons.xml +115 -0
  89. data/vendor/assets/svg-edit-2.6/extensions/shapelib/animal.json +21 -0
  90. data/vendor/assets/svg-edit-2.6/extensions/shapelib/arrow.json +28 -0
  91. data/vendor/assets/svg-edit-2.6/extensions/shapelib/dialog_balloon.json +9 -0
  92. data/vendor/assets/svg-edit-2.6/extensions/shapelib/electronics.json +20 -0
  93. data/vendor/assets/svg-edit-2.6/extensions/shapelib/flowchart.json +25 -0
  94. data/vendor/assets/svg-edit-2.6/extensions/shapelib/game.json +13 -0
  95. data/vendor/assets/svg-edit-2.6/extensions/shapelib/math.json +9 -0
  96. data/vendor/assets/svg-edit-2.6/extensions/shapelib/misc.json +37 -0
  97. data/vendor/assets/svg-edit-2.6/extensions/shapelib/music.json +21 -0
  98. data/vendor/assets/svg-edit-2.6/extensions/shapelib/object.json +19 -0
  99. data/vendor/assets/svg-edit-2.6/extensions/shapelib/raphael.txt +12 -0
  100. data/vendor/assets/svg-edit-2.6/extensions/shapelib/raphael_1.json +67 -0
  101. data/vendor/assets/svg-edit-2.6/extensions/shapelib/raphael_2.json +64 -0
  102. data/vendor/assets/svg-edit-2.6/extensions/shapelib/symbol.json +28 -0
  103. data/vendor/assets/svg-edit-2.6/history.js +601 -0
  104. data/vendor/assets/svg-edit-2.6/images/README.txt +61 -0
  105. data/vendor/assets/svg-edit-2.6/images/align-bottom.png +0 -0
  106. data/vendor/assets/svg-edit-2.6/images/align-bottom.svg +277 -0
  107. data/vendor/assets/svg-edit-2.6/images/align-center.png +0 -0
  108. data/vendor/assets/svg-edit-2.6/images/align-center.svg +252 -0
  109. data/vendor/assets/svg-edit-2.6/images/align-left.png +0 -0
  110. data/vendor/assets/svg-edit-2.6/images/align-left.svg +235 -0
  111. data/vendor/assets/svg-edit-2.6/images/align-middle.png +0 -0
  112. data/vendor/assets/svg-edit-2.6/images/align-middle.svg +250 -0
  113. data/vendor/assets/svg-edit-2.6/images/align-right.png +0 -0
  114. data/vendor/assets/svg-edit-2.6/images/align-right.svg +233 -0
  115. data/vendor/assets/svg-edit-2.6/images/align-top.png +0 -0
  116. data/vendor/assets/svg-edit-2.6/images/align-top.svg +233 -0
  117. data/vendor/assets/svg-edit-2.6/images/bold.png +0 -0
  118. data/vendor/assets/svg-edit-2.6/images/cancel.png +0 -0
  119. data/vendor/assets/svg-edit-2.6/images/circle.png +0 -0
  120. data/vendor/assets/svg-edit-2.6/images/clear.png +0 -0
  121. data/vendor/assets/svg-edit-2.6/images/clone.png +0 -0
  122. data/vendor/assets/svg-edit-2.6/images/conn.svg +29 -0
  123. data/vendor/assets/svg-edit-2.6/images/copy.png +0 -0
  124. data/vendor/assets/svg-edit-2.6/images/cut.png +0 -0
  125. data/vendor/assets/svg-edit-2.6/images/delete.png +0 -0
  126. data/vendor/assets/svg-edit-2.6/images/document-properties.png +0 -0
  127. data/vendor/assets/svg-edit-2.6/images/dropdown.gif +0 -0
  128. data/vendor/assets/svg-edit-2.6/images/ellipse.png +0 -0
  129. data/vendor/assets/svg-edit-2.6/images/eye.png +0 -0
  130. data/vendor/assets/svg-edit-2.6/images/fhpath.png +0 -0
  131. data/vendor/assets/svg-edit-2.6/images/flyouth.png +0 -0
  132. data/vendor/assets/svg-edit-2.6/images/flyup.gif +0 -0
  133. data/vendor/assets/svg-edit-2.6/images/freehand-circle.png +0 -0
  134. data/vendor/assets/svg-edit-2.6/images/freehand-square.png +0 -0
  135. data/vendor/assets/svg-edit-2.6/images/go-down.png +0 -0
  136. data/vendor/assets/svg-edit-2.6/images/go-up.png +0 -0
  137. data/vendor/assets/svg-edit-2.6/images/image.png +0 -0
  138. data/vendor/assets/svg-edit-2.6/images/italic.png +0 -0
  139. data/vendor/assets/svg-edit-2.6/images/line.png +0 -0
  140. data/vendor/assets/svg-edit-2.6/images/link_controls.png +0 -0
  141. data/vendor/assets/svg-edit-2.6/images/logo.png +0 -0
  142. data/vendor/assets/svg-edit-2.6/images/logo.svg +32 -0
  143. data/vendor/assets/svg-edit-2.6/images/move_bottom.png +0 -0
  144. data/vendor/assets/svg-edit-2.6/images/move_top.png +0 -0
  145. data/vendor/assets/svg-edit-2.6/images/node_clone.png +0 -0
  146. data/vendor/assets/svg-edit-2.6/images/node_delete.png +0 -0
  147. data/vendor/assets/svg-edit-2.6/images/none.png +0 -0
  148. data/vendor/assets/svg-edit-2.6/images/open.png +0 -0
  149. data/vendor/assets/svg-edit-2.6/images/paste.png +0 -0
  150. data/vendor/assets/svg-edit-2.6/images/path.png +0 -0
  151. data/vendor/assets/svg-edit-2.6/images/polygon.png +0 -0
  152. data/vendor/assets/svg-edit-2.6/images/polygon.svg +219 -0
  153. data/vendor/assets/svg-edit-2.6/images/rect.png +0 -0
  154. data/vendor/assets/svg-edit-2.6/images/redo.png +0 -0
  155. data/vendor/assets/svg-edit-2.6/images/reorient.png +0 -0
  156. data/vendor/assets/svg-edit-2.6/images/rotate.png +0 -0
  157. data/vendor/assets/svg-edit-2.6/images/save.png +0 -0
  158. data/vendor/assets/svg-edit-2.6/images/select.png +0 -0
  159. data/vendor/assets/svg-edit-2.6/images/select_node.png +0 -0
  160. data/vendor/assets/svg-edit-2.6/images/sep.png +0 -0
  161. data/vendor/assets/svg-edit-2.6/images/shape_group.png +0 -0
  162. data/vendor/assets/svg-edit-2.6/images/shape_ungroup.png +0 -0
  163. data/vendor/assets/svg-edit-2.6/images/source.png +0 -0
  164. data/vendor/assets/svg-edit-2.6/images/spinbtn_updn_big.png +0 -0
  165. data/vendor/assets/svg-edit-2.6/images/square.png +0 -0
  166. data/vendor/assets/svg-edit-2.6/images/svg_edit_icons.svg +1034 -0
  167. data/vendor/assets/svg-edit-2.6/images/svg_edit_icons.svgz +0 -0
  168. data/vendor/assets/svg-edit-2.6/images/text.png +0 -0
  169. data/vendor/assets/svg-edit-2.6/images/text.svg +157 -0
  170. data/vendor/assets/svg-edit-2.6/images/to_path.png +0 -0
  171. data/vendor/assets/svg-edit-2.6/images/undo.png +0 -0
  172. data/vendor/assets/svg-edit-2.6/images/view-refresh.png +0 -0
  173. data/vendor/assets/svg-edit-2.6/images/wave.png +0 -0
  174. data/vendor/assets/svg-edit-2.6/images/wireframe.png +0 -0
  175. data/vendor/assets/svg-edit-2.6/images/zoom.png +0 -0
  176. data/vendor/assets/svg-edit-2.6/jgraduate/LICENSE +202 -0
  177. data/vendor/assets/svg-edit-2.6/jgraduate/README +3 -0
  178. data/vendor/assets/svg-edit-2.6/jgraduate/css/jPicker.css +1 -0
  179. data/vendor/assets/svg-edit-2.6/jgraduate/css/jgraduate.css +351 -0
  180. data/vendor/assets/svg-edit-2.6/jgraduate/images/AlphaBar.png +0 -0
  181. data/vendor/assets/svg-edit-2.6/jgraduate/images/Bars.png +0 -0
  182. data/vendor/assets/svg-edit-2.6/jgraduate/images/Maps.png +0 -0
  183. data/vendor/assets/svg-edit-2.6/jgraduate/images/NoColor.png +0 -0
  184. data/vendor/assets/svg-edit-2.6/jgraduate/images/bar-opacity.png +0 -0
  185. data/vendor/assets/svg-edit-2.6/jgraduate/images/map-opacity.png +0 -0
  186. data/vendor/assets/svg-edit-2.6/jgraduate/images/mappoint.gif +0 -0
  187. data/vendor/assets/svg-edit-2.6/jgraduate/images/mappoint_c.png +0 -0
  188. data/vendor/assets/svg-edit-2.6/jgraduate/images/mappoint_f.png +0 -0
  189. data/vendor/assets/svg-edit-2.6/jgraduate/images/picker.gif +0 -0
  190. data/vendor/assets/svg-edit-2.6/jgraduate/images/preview-opacity.png +0 -0
  191. data/vendor/assets/svg-edit-2.6/jgraduate/images/rangearrows.gif +0 -0
  192. data/vendor/assets/svg-edit-2.6/jgraduate/images/rangearrows2.gif +0 -0
  193. data/vendor/assets/svg-edit-2.6/jgraduate/jpicker.js +2091 -0
  194. data/vendor/assets/svg-edit-2.6/jgraduate/jpicker.min.js +1 -0
  195. data/vendor/assets/svg-edit-2.6/jgraduate/jquery.jgraduate.js +1175 -0
  196. data/vendor/assets/svg-edit-2.6/jgraduate/jquery.jgraduate.min.js +37 -0
  197. data/vendor/assets/svg-edit-2.6/jquery-ui/jquery-ui-1.8.17.custom.min.js +54 -0
  198. data/vendor/assets/svg-edit-2.6/jquery-ui/jquery-ui-1.8.custom.min.js +84 -0
  199. data/vendor/assets/svg-edit-2.6/jquery.js +4 -0
  200. data/vendor/assets/svg-edit-2.6/jquerybbq/jquery.bbq.min.js +18 -0
  201. data/vendor/assets/svg-edit-2.6/js-hotkeys/README.md +45 -0
  202. data/vendor/assets/svg-edit-2.6/js-hotkeys/jquery.hotkeys.min.js +15 -0
  203. data/vendor/assets/svg-edit-2.6/locale/README.txt +17 -0
  204. data/vendor/assets/svg-edit-2.6/locale/lang.af.js +234 -0
  205. data/vendor/assets/svg-edit-2.6/locale/lang.ar.js +234 -0
  206. data/vendor/assets/svg-edit-2.6/locale/lang.az.js +234 -0
  207. data/vendor/assets/svg-edit-2.6/locale/lang.be.js +234 -0
  208. data/vendor/assets/svg-edit-2.6/locale/lang.bg.js +234 -0
  209. data/vendor/assets/svg-edit-2.6/locale/lang.ca.js +234 -0
  210. data/vendor/assets/svg-edit-2.6/locale/lang.cs.js +234 -0
  211. data/vendor/assets/svg-edit-2.6/locale/lang.cy.js +234 -0
  212. data/vendor/assets/svg-edit-2.6/locale/lang.da.js +234 -0
  213. data/vendor/assets/svg-edit-2.6/locale/lang.de.js +234 -0
  214. data/vendor/assets/svg-edit-2.6/locale/lang.el.js +234 -0
  215. data/vendor/assets/svg-edit-2.6/locale/lang.en.js +234 -0
  216. data/vendor/assets/svg-edit-2.6/locale/lang.es.js +234 -0
  217. data/vendor/assets/svg-edit-2.6/locale/lang.et.js +234 -0
  218. data/vendor/assets/svg-edit-2.6/locale/lang.fa.js +234 -0
  219. data/vendor/assets/svg-edit-2.6/locale/lang.fi.js +234 -0
  220. data/vendor/assets/svg-edit-2.6/locale/lang.fr.js +234 -0
  221. data/vendor/assets/svg-edit-2.6/locale/lang.fy.js +234 -0
  222. data/vendor/assets/svg-edit-2.6/locale/lang.ga.js +234 -0
  223. data/vendor/assets/svg-edit-2.6/locale/lang.gl.js +234 -0
  224. data/vendor/assets/svg-edit-2.6/locale/lang.he.js +234 -0
  225. data/vendor/assets/svg-edit-2.6/locale/lang.hi.js +234 -0
  226. data/vendor/assets/svg-edit-2.6/locale/lang.hr.js +234 -0
  227. data/vendor/assets/svg-edit-2.6/locale/lang.hu.js +234 -0
  228. data/vendor/assets/svg-edit-2.6/locale/lang.hy.js +234 -0
  229. data/vendor/assets/svg-edit-2.6/locale/lang.id.js +234 -0
  230. data/vendor/assets/svg-edit-2.6/locale/lang.is.js +234 -0
  231. data/vendor/assets/svg-edit-2.6/locale/lang.it.js +234 -0
  232. data/vendor/assets/svg-edit-2.6/locale/lang.ja.js +234 -0
  233. data/vendor/assets/svg-edit-2.6/locale/lang.ko.js +234 -0
  234. data/vendor/assets/svg-edit-2.6/locale/lang.lt.js +234 -0
  235. data/vendor/assets/svg-edit-2.6/locale/lang.lv.js +234 -0
  236. data/vendor/assets/svg-edit-2.6/locale/lang.mk.js +234 -0
  237. data/vendor/assets/svg-edit-2.6/locale/lang.ms.js +234 -0
  238. data/vendor/assets/svg-edit-2.6/locale/lang.mt.js +234 -0
  239. data/vendor/assets/svg-edit-2.6/locale/lang.nl.js +234 -0
  240. data/vendor/assets/svg-edit-2.6/locale/lang.no.js +234 -0
  241. data/vendor/assets/svg-edit-2.6/locale/lang.pl.js +234 -0
  242. data/vendor/assets/svg-edit-2.6/locale/lang.pt-BR.js +234 -0
  243. data/vendor/assets/svg-edit-2.6/locale/lang.pt-PT.js +234 -0
  244. data/vendor/assets/svg-edit-2.6/locale/lang.ro.js +234 -0
  245. data/vendor/assets/svg-edit-2.6/locale/lang.ru.js +234 -0
  246. data/vendor/assets/svg-edit-2.6/locale/lang.sk.js +234 -0
  247. data/vendor/assets/svg-edit-2.6/locale/lang.sl.js +234 -0
  248. data/vendor/assets/svg-edit-2.6/locale/lang.sq.js +234 -0
  249. data/vendor/assets/svg-edit-2.6/locale/lang.sr.js +234 -0
  250. data/vendor/assets/svg-edit-2.6/locale/lang.sv.js +234 -0
  251. data/vendor/assets/svg-edit-2.6/locale/lang.sw.js +234 -0
  252. data/vendor/assets/svg-edit-2.6/locale/lang.test.js +234 -0
  253. data/vendor/assets/svg-edit-2.6/locale/lang.th.js +234 -0
  254. data/vendor/assets/svg-edit-2.6/locale/lang.tl.js +234 -0
  255. data/vendor/assets/svg-edit-2.6/locale/lang.tr.js +234 -0
  256. data/vendor/assets/svg-edit-2.6/locale/lang.uk.js +234 -0
  257. data/vendor/assets/svg-edit-2.6/locale/lang.vi.js +234 -0
  258. data/vendor/assets/svg-edit-2.6/locale/lang.yi.js +234 -0
  259. data/vendor/assets/svg-edit-2.6/locale/lang.zh-CN.js +234 -0
  260. data/vendor/assets/svg-edit-2.6/locale/lang.zh-HK.js +234 -0
  261. data/vendor/assets/svg-edit-2.6/locale/lang.zh-TW.js +234 -0
  262. data/vendor/assets/svg-edit-2.6/locale/locale.js +320 -0
  263. data/vendor/assets/svg-edit-2.6/math.js +246 -0
  264. data/vendor/assets/svg-edit-2.6/path.js +980 -0
  265. data/vendor/assets/svg-edit-2.6/sanitize.js +273 -0
  266. data/vendor/assets/svg-edit-2.6/select.js +532 -0
  267. data/vendor/assets/svg-edit-2.6/spinbtn/JQuerySpinBtn.css +41 -0
  268. data/vendor/assets/svg-edit-2.6/spinbtn/JQuerySpinBtn.js +266 -0
  269. data/vendor/assets/svg-edit-2.6/spinbtn/JQuerySpinBtn.min.js +7 -0
  270. data/vendor/assets/svg-edit-2.6/spinbtn/spinbtn_updn.png +0 -0
  271. data/vendor/assets/svg-edit-2.6/svg-editor.css +1495 -0
  272. data/vendor/assets/svg-edit-2.6/svg-editor.css~ +1500 -0
  273. data/vendor/assets/svg-edit-2.6/svg-editor.html +788 -0
  274. data/vendor/assets/svg-edit-2.6/svg-editor.html~ +788 -0
  275. data/vendor/assets/svg-edit-2.6/svg-editor.js +4969 -0
  276. data/vendor/assets/svg-edit-2.6/svg-editor.manifest +121 -0
  277. data/vendor/assets/svg-edit-2.6/svgcanvas.js +8775 -0
  278. data/vendor/assets/svg-edit-2.6/svgedit.compiled.js +465 -0
  279. data/vendor/assets/svg-edit-2.6/svgicons/jquery.svgicons.js +486 -0
  280. data/vendor/assets/svg-edit-2.6/svgtransformlist.js +291 -0
  281. data/vendor/assets/svg-edit-2.6/svgutils.js +651 -0
  282. data/vendor/assets/svg-edit-2.6/touch.js +30 -0
  283. data/vendor/assets/svg-edit-2.6/units.js +281 -0
  284. metadata +407 -0
@@ -0,0 +1 @@
1
+ (function(e,a){Math.precision=function(j,h){if(h===undefined){h=0}return Math.round(j*Math.pow(10,h))/Math.pow(10,h)};var d=function(z,k){var o=this,j=z.find("img:first"),F=0,E=100,w=100,D=0,C=100,v=100,s=0,p=0,n,q,u=new Array(),l=function(y){for(var x=0;x<u.length;x++){u[x].call(o,o,y)}},H=function(x){var y=z.offset();n={l:y.left|0,t:y.top|0};clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);e(document).bind("mousemove",h).bind("mouseup",B);x.preventDefault()},h=function(x){clearTimeout(q);q=setTimeout(function(){A.call(o,x)},0);x.stopPropagation();x.preventDefault();return false},B=function(x){e(document).unbind("mouseup",B).unbind("mousemove",h);x.stopPropagation();x.preventDefault();return false},A=function(M){var K=M.pageX-n.l,x=M.pageY-n.t,L=z.w,y=z.h;if(K<0){K=0}else{if(K>L){K=L}}if(x<0){x=0}else{if(x>y){x=y}}J.call(o,"xy",{x:((K/L)*w)+F,y:((x/y)*v)+D})},r=function(){var L=0,x=0,N=z.w,K=z.h,M=j.w,y=j.h;setTimeout(function(){if(w>0){if(s==E){L=N}else{L=((s/w)*N)|0}}if(v>0){if(p==C){x=K}else{x=((p/v)*K)|0}}if(M>=N){L=(N>>1)-(M>>1)}else{L-=M>>1}if(y>=K){x=(K>>1)-(y>>1)}else{x-=y>>1}j.css({left:L+"px",top:x+"px"})},0)},J=function(x,K,y){var O=K!==undefined;if(!O){if(x===undefined||x==null){x="xy"}switch(x.toLowerCase()){case"x":return s;case"y":return p;case"xy":default:return{x:s,y:p}}}if(y!=null&&y==o){return}var N=false,M,L;if(x==null){x="xy"}switch(x.toLowerCase()){case"x":M=K&&(K.x&&K.x|0||K|0)||0;break;case"y":L=K&&(K.y&&K.y|0||K|0)||0;break;case"xy":default:M=K&&K.x&&K.x|0||0;L=K&&K.y&&K.y|0||0;break}if(M!=null){if(M<F){M=F}else{if(M>E){M=E}}if(s!=M){s=M;N=true}}if(L!=null){if(L<D){L=D}else{if(L>C){L=C}}if(p!=L){p=L;N=true}}N&&l.call(o,y||o)},t=function(x,L){var P=L!==undefined;if(!P){if(x===undefined||x==null){x="all"}switch(x.toLowerCase()){case"minx":return F;case"maxx":return E;case"rangex":return{minX:F,maxX:E,rangeX:w};case"miny":return D;case"maxy":return C;case"rangey":return{minY:D,maxY:C,rangeY:v};case"all":default:return{minX:F,maxX:E,rangeX:w,minY:D,maxY:C,rangeY:v}}}var O=false,N,K,M,y;if(x==null){x="all"}switch(x.toLowerCase()){case"minx":N=L&&(L.minX&&L.minX|0||L|0)||0;break;case"maxx":K=L&&(L.maxX&&L.maxX|0||L|0)||0;break;case"rangex":N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;break;case"miny":M=L&&(L.minY&&L.minY|0||L|0)||0;break;case"maxy":y=L&&(L.maxY&&L.maxY|0||L|0)||0;break;case"rangey":M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break;case"all":default:N=L&&L.minX&&L.minX|0||0;K=L&&L.maxX&&L.maxX|0||0;M=L&&L.minY&&L.minY|0||0;y=L&&L.maxY&&L.maxY|0||0;break}if(N!=null&&F!=N){F=N;w=E-F}if(K!=null&&E!=K){E=K;w=E-F}if(M!=null&&D!=M){D=M;v=C-D}if(y!=null&&C!=y){C=y;v=C-D}},I=function(x){if(e.isFunction(x)){u.push(x)}},m=function(y){if(!e.isFunction(y)){return}var x;while((x=e.inArray(y,u))!=-1){u.splice(x,1)}},G=function(){e(document).unbind("mouseup",B).unbind("mousemove",h);z.unbind("mousedown",H);z=null;j=null;u=null};e.extend(true,o,{val:J,range:t,bind:I,unbind:m,destroy:G});j.src=k.arrow&&k.arrow.image;j.w=k.arrow&&k.arrow.width||j.width();j.h=k.arrow&&k.arrow.height||j.height();z.w=k.map&&k.map.width||z.width();z.h=k.map&&k.map.height||z.height();z.bind("mousedown",H);I.call(o,r)},b=function(u,z,k,y){var q=this,l=u.find("td.Text input"),r=l.eq(3),v=l.eq(4),h=l.eq(5),o=l.length>7?l.eq(6):null,n=l.eq(0),p=l.eq(1),x=l.eq(2),s=l.eq(l.length>7?7:6),B=l.length>7?l.eq(8):null,w=function(D){if(D.target.value==""&&D.target!=s.get(0)&&(k!=null&&D.target!=k.get(0)||k==null)){return}if(!t(D)){return D}switch(D.target){case r.get(0):r.val(j.call(q,r.val(),0,255));z.val("r",r.val(),D.target);break;case v.get(0):v.val(j.call(q,v.val(),0,255));z.val("g",v.val(),D.target);break;case h.get(0):h.val(j.call(q,h.val(),0,255));z.val("b",h.val(),D.target);break;case o&&o.get(0):o.val(j.call(q,o.val(),0,100));z.val("a",Math.precision((o.val()*255)/100,y),D.target);break;case n.get(0):n.val(j.call(q,n.val(),0,360));z.val("h",n.val(),D.target);break;case p.get(0):p.val(j.call(q,p.val(),0,100));z.val("s",p.val(),D.target);break;case x.get(0):x.val(j.call(q,x.val(),0,100));z.val("v",x.val(),D.target);break;case s.get(0):s.val(s.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));k&&k.val(s.val());z.val("hex",s.val()!=""?s.val():null,D.target);break;case k&&k.get(0):k.val(k.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,6));s.val(k.val());z.val("hex",k.val()!=""?k.val():null,D.target);break;case B&&B.get(0):B.val(B.val().replace(/[^a-fA-F0-9]/g,"").toLowerCase().substring(0,2));z.val("a",B.val()!=null?parseInt(B.val(),16):null,D.target);break}},A=function(D){if(z.val()!=null){switch(D.target){case r.get(0):r.val(z.val("r"));break;case v.get(0):v.val(z.val("g"));break;case h.get(0):h.val(z.val("b"));break;case o&&o.get(0):o.val(Math.precision((z.val("a")*100)/255,y));break;case n.get(0):n.val(z.val("h"));break;case p.get(0):p.val(z.val("s"));break;case x.get(0):x.val(z.val("v"));break;case s.get(0):case k&&k.get(0):s.val(z.val("hex"));k&&k.val(z.val("hex"));break;case B&&B.get(0):B.val(z.val("ahex").substring(6));break}}},t=function(D){switch(D.keyCode){case 9:case 16:case 29:case 37:case 38:case 40:return false;case"c".charCodeAt():case"v".charCodeAt():if(D.ctrlKey){return false}}return true},j=function(F,E,D){if(F==""||isNaN(F)){return E}if(F>D){return D}if(F<E){return E}return F},m=function(F,D){var E=F.val("all");if(D!=r.get(0)){r.val(E!=null?E.r:"")}if(D!=v.get(0)){v.val(E!=null?E.g:"")}if(D!=h.get(0)){h.val(E!=null?E.b:"")}if(o&&D!=o.get(0)){o.val(E!=null?Math.precision((E.a*100)/255,y):"")}if(D!=n.get(0)){n.val(E!=null?E.h:"")}if(D!=p.get(0)){p.val(E!=null?E.s:"")}if(D!=x.get(0)){x.val(E!=null?E.v:"")}if(D!=s.get(0)&&(k&&D!=k.get(0)||!k)){s.val(E!=null?E.hex:"")}if(k&&D!=k.get(0)&&D!=s.get(0)){k.val(E!=null?E.hex:"")}if(B&&D!=B.get(0)){B.val(E!=null?E.ahex.substring(6):"")}},C=function(){r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).unbind("keyup",w).unbind("blur",A);z.unbind(m);r=null;v=null;h=null;o=null;n=null;p=null;x=null;s=null;B=null};e.extend(true,q,{destroy:C});r.add(v).add(h).add(o).add(n).add(p).add(x).add(s).add(k).add(B).bind("keyup",w).bind("blur",A);z.bind(m)};e.jPicker={List:[],Color:function(z){var q=this,j,o,t,u,n,A,x,k=new Array(),m=function(r){for(var h=0;h<k.length;h++){k[h].call(q,q,r)}},l=function(h,G,r){var F=G!==undefined;if(!F){if(h===undefined||h==null||h==""){h="all"}if(j==null){return null}switch(h.toLowerCase()){case"ahex":return g.rgbaToHex({r:j,g:o,b:t,a:u});case"hex":return l("ahex").substring(0,6);case"all":return{r:j,g:o,b:t,a:u,h:n,s:A,v:x,hex:l.call(q,"hex"),ahex:l.call(q,"ahex")};default:var D={};for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(h.length==1){D=j}else{D.r=j}break;case"g":if(h.length==1){D=o}else{D.g=o}break;case"b":if(h.length==1){D=t}else{D.b=t}break;case"a":if(h.length==1){D=u}else{D.a=u}break;case"h":if(h.length==1){D=n}else{D.h=n}break;case"s":if(h.length==1){D=A}else{D.s=A}break;case"v":if(h.length==1){D=x}else{D.v=x}break}}return D=={}?l.call(q,"all"):D;break}}if(r!=null&&r==q){return}var v=false;if(h==null){h=""}if(G==null){if(j!=null){j=null;v=true}if(o!=null){o=null;v=true}if(t!=null){t=null;v=true}if(u!=null){u=null;v=true}if(n!=null){n=null;v=true}if(A!=null){A=null;v=true}if(x!=null){x=null;v=true}v&&m.call(q,r||q);return}switch(h.toLowerCase()){case"ahex":case"hex":var D=g.hexToRgba(G&&(G.ahex||G.hex)||G||"00000000");l.call(q,"rgba",{r:D.r,g:D.g,b:D.b,a:h=="ahex"?D.a:u!=null?u:255},r);break;default:if(G&&(G.ahex!=null||G.hex!=null)){l.call(q,"ahex",G.ahex||G.hex||"00000000",r);return}var s={},E=false,C=false;if(G.r!==undefined&&!h.indexOf("r")==-1){h+="r"}if(G.g!==undefined&&!h.indexOf("g")==-1){h+="g"}if(G.b!==undefined&&!h.indexOf("b")==-1){h+="b"}if(G.a!==undefined&&!h.indexOf("a")==-1){h+="a"}if(G.h!==undefined&&!h.indexOf("h")==-1){h+="h"}if(G.s!==undefined&&!h.indexOf("s")==-1){h+="s"}if(G.v!==undefined&&!h.indexOf("v")==-1){h+="v"}for(var B=0;B<h.length;B++){switch(h.charAt(B)){case"r":if(C){continue}E=true;s.r=G&&G.r&&G.r|0||G&&G|0||0;if(s.r<0){s.r=0}else{if(s.r>255){s.r=255}}if(j!=s.r){j=s.r;v=true}break;case"g":if(C){continue}E=true;s.g=G&&G.g&&G.g|0||G&&G|0||0;if(s.g<0){s.g=0}else{if(s.g>255){s.g=255}}if(o!=s.g){o=s.g;v=true}break;case"b":if(C){continue}E=true;s.b=G&&G.b&&G.b|0||G&&G|0||0;if(s.b<0){s.b=0}else{if(s.b>255){s.b=255}}if(t!=s.b){t=s.b;v=true}break;case"a":s.a=G&&G.a!=null?G.a|0:G!=null?G|0:255;if(s.a<0){s.a=0}else{if(s.a>255){s.a=255}}if(u!=s.a){u=s.a;v=true}break;case"h":if(E){continue}C=true;s.h=G&&G.h&&G.h|0||G&&G|0||0;if(s.h<0){s.h=0}else{if(s.h>360){s.h=360}}if(n!=s.h){n=s.h;v=true}break;case"s":if(E){continue}C=true;s.s=G&&G.s!=null?G.s|0:G!=null?G|0:100;if(s.s<0){s.s=0}else{if(s.s>100){s.s=100}}if(A!=s.s){A=s.s;v=true}break;case"v":if(E){continue}C=true;s.v=G&&G.v!=null?G.v|0:G!=null?G|0:100;if(s.v<0){s.v=0}else{if(s.v>100){s.v=100}}if(x!=s.v){x=s.v;v=true}break}}if(v){if(E){j=j||0;o=o||0;t=t||0;var D=g.rgbToHsv({r:j,g:o,b:t});n=D.h;A=D.s;x=D.v}else{if(C){n=n||0;A=A!=null?A:100;x=x!=null?x:100;var D=g.hsvToRgb({h:n,s:A,v:x});j=D.r;o=D.g;t=D.b}}u=u!=null?u:255;m.call(q,r||q)}break}},p=function(h){if(e.isFunction(h)){k.push(h)}},y=function(r){if(!e.isFunction(r)){return}var h;while((h=e.inArray(r,k))!=-1){k.splice(h,1)}},w=function(){k=null};e.extend(true,q,{val:l,bind:p,unbind:y,destroy:w});if(z){if(z.ahex!=null){l("ahex",z)}else{if(z.hex!=null){l((z.a!=null?"a":"")+"hex",z.a!=null?{ahex:z.hex+g.intToHex(z.a)}:z)}else{if(z.r!=null&&z.g!=null&&z.b!=null){l("rgb"+(z.a!=null?"a":""),z)}else{if(z.h!=null&&z.s!=null&&z.v!=null){l("hsv"+(z.a!=null?"a":""),z)}}}}}},ColorMethods:{hexToRgba:function(m){m=this.validateHex(m);if(m==""){return{r:null,g:null,b:null,a:null}}var l="00",k="00",h="00",j="255";if(m.length==6){m+="ff"}if(m.length>6){l=m.substring(0,2);k=m.substring(2,4);h=m.substring(4,6);j=m.substring(6,m.length)}else{if(m.length>4){l=m.substring(4,m.length);m=m.substring(0,4)}if(m.length>2){k=m.substring(2,m.length);m=m.substring(0,2)}if(m.length>0){h=m.substring(0,m.length)}}return{r:this.hexToInt(l),g:this.hexToInt(k),b:this.hexToInt(h),a:this.hexToInt(j)}},validateHex:function(h){h=h.toLowerCase().replace(/[^a-f0-9]/g,"");if(h.length>8){h=h.substring(0,8)}return h},rgbaToHex:function(h){return this.intToHex(h.r)+this.intToHex(h.g)+this.intToHex(h.b)+this.intToHex(h.a)},intToHex:function(j){var h=(j|0).toString(16);if(h.length==1){h=("0"+h)}return h.toLowerCase()},hexToInt:function(h){return parseInt(h,16)},rgbToHsv:function(l){var o=l.r/255,n=l.g/255,j=l.b/255,k={h:0,s:0,v:0},m=0,h=0,p;if(o>=n&&o>=j){h=o;m=n>j?j:n}else{if(n>=j&&n>=o){h=n;m=o>j?j:o}else{h=j;m=n>o?o:n}}k.v=h;k.s=h?(h-m)/h:0;if(!k.s){k.h=0}else{p=h-m;if(o==h){k.h=(n-j)/p}else{if(n==h){k.h=2+(j-o)/p}else{k.h=4+(o-n)/p}}k.h=parseInt(k.h*60);if(k.h<0){k.h+=360}}k.s=(k.s*100)|0;k.v=(k.v*100)|0;return k},hsvToRgb:function(n){var r={r:0,g:0,b:0,a:100},m=n.h,x=n.s,u=n.v;if(x==0){if(u==0){r.r=r.g=r.b=0}else{r.r=r.g=r.b=(u*255/100)|0}}else{if(m==360){m=0}m/=60;x=x/100;u=u/100;var l=m|0,o=m-l,k=u*(1-x),j=u*(1-(x*o)),w=u*(1-(x*(1-o)));switch(l){case 0:r.r=u;r.g=w;r.b=k;break;case 1:r.r=j;r.g=u;r.b=k;break;case 2:r.r=k;r.g=u;r.b=w;break;case 3:r.r=k;r.g=j;r.b=u;break;case 4:r.r=w;r.g=k;r.b=u;break;case 5:r.r=u;r.g=k;r.b=j;break}r.r=(r.r*255)|0;r.g=(r.g*255)|0;r.b=(r.b*255)|0}return r}}};var f=e.jPicker.Color,c=e.jPicker.List,g=e.jPicker.ColorMethods;e.fn.jPicker=function(j){var h=arguments;return this.each(function(){var w=this,av=e.extend(true,{},e.fn.jPicker.defaults,j);if(e(w).get(0).nodeName.toLowerCase()=="input"){e.extend(true,av,{window:{bindToInput:true,expandable:true,input:e(w)}});if(e(w).val()==""){av.color.active=new f({hex:null});av.color.current=new f({hex:null})}else{if(g.validateHex(e(w).val())){av.color.active=new f({hex:e(w).val(),a:av.color.active.val("a")});av.color.current=new f({hex:e(w).val(),a:av.color.active.val("a")})}}}if(av.window.expandable){e(w).after('<span class="jPicker"><span class="Icon"><span class="Color">&nbsp;</span><span class="Alpha">&nbsp;</span><span class="Image" title="Click To Open Color Picker">&nbsp;</span><span class="Container">&nbsp;</span></span></span>')}else{av.window.liveUpdate=false}var Q=parseFloat(navigator.appVersion.split("MSIE")[1])<7&&document.body.filters,R=null,l=null,s=null,au=null,at=null,ar=null,P=null,O=null,N=null,M=null,L=null,K=null,D=null,U=null,aw=null,J=null,I=null,am=null,ai=null,E=null,an=null,ah=null,X=null,ab=null,aq=null,r=null,C=null,u=null,ag=function(aB){var aD=G.active,aE=n.clientPath,aA=aD.val("hex"),aC,az;av.color.mode=aB;switch(aB){case"h":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,0);Y.call(w,au,100);x.call(w,at,260);Y.call(w,at,100);y.call(w,s,"transparent");x.call(w,P,0);Y.call(w,P,100);x.call(w,O,260);Y.call(w,O,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:100,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:360});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("s"),y:100-aD.val("v")},D);U.val("y",360-aD.val("h"),U);break;case"s":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,-260);x.call(w,O,-520);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",100-aD.val("s"),U);break;case"v":setTimeout(function(){y.call(w,l,"000000");x.call(w,au,-780);x.call(w,at,260);y.call(w,s,aA);x.call(w,P,-520);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,260);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:100});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("s")},D);U.val("y",100-aD.val("v"),U);break;case"r":aC=-1040;az=-780;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("g")},D);U.val("y",255-aD.val("r"),U);break;case"g":aC=-1560;az=-1820;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("b"),y:255-aD.val("r")},D);U.val("y",255-aD.val("g"),U);break;case"b":aC=-2080;az=-2860;D.range("all",{minX:0,maxX:255,minY:0,maxY:255});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("r"),y:255-aD.val("g")},D);U.val("y",255-aD.val("b"),U);break;case"a":setTimeout(function(){y.call(w,l,"transparent");x.call(w,au,-260);x.call(w,at,-520);x.call(w,P,260);x.call(w,O,260);Y.call(w,O,100);x.call(w,K,0);Y.call(w,K,100)},0);D.range("all",{minX:0,maxX:360,minY:0,maxY:100});U.range("rangeY",{minY:0,maxY:255});if(aD.val("ahex")==null){break}D.val("xy",{x:aD.val("h"),y:100-aD.val("v")},D);U.val("y",255-aD.val("a"),U);break;default:throw ("Invalid Mode");break}switch(aB){case"h":break;case"s":case"v":case"a":setTimeout(function(){Y.call(w,au,100);Y.call(w,P,100);x.call(w,N,260);Y.call(w,N,100);x.call(w,M,260);Y.call(w,M,100)},0);break;case"r":case"g":case"b":setTimeout(function(){y.call(w,l,"transparent");y.call(w,s,"transparent");Y.call(w,P,100);Y.call(w,au,100);x.call(w,au,aC);x.call(w,at,aC-260);x.call(w,P,az-780);x.call(w,O,az-520);x.call(w,N,az);x.call(w,M,az-260);x.call(w,K,260);Y.call(w,K,100)},0);break}if(aD.val("ahex")==null){return}aj.call(w,aD)},aj=function(aA,az){if(az==null||(az!=U&&az!=D)){v.call(w,aA,az)}setTimeout(function(){ay.call(w,aA);al.call(w,aA);W.call(w,aA)},0)},z=function(aA,az){var aC=G.active;if(az!=D&&aC.val()==null){return}var aB=aA.val("all");switch(av.color.mode){case"h":aC.val("sv",{s:aB.x,v:100-aB.y},az);break;case"s":case"a":aC.val("hv",{h:aB.x,v:100-aB.y},az);break;case"v":aC.val("hs",{h:aB.x,s:100-aB.y},az);break;case"r":aC.val("gb",{g:255-aB.y,b:aB.x},az);break;case"g":aC.val("rb",{r:255-aB.y,b:aB.x},az);break;case"b":aC.val("rg",{r:aB.x,g:255-aB.y},az);break}},ac=function(aA,az){var aB=G.active;if(az!=U&&aB.val()==null){return}switch(av.color.mode){case"h":aB.val("h",{h:360-aA.val("y")},az);break;case"s":aB.val("s",{s:100-aA.val("y")},az);break;case"v":aB.val("v",{v:100-aA.val("y")},az);break;case"r":aB.val("r",{r:255-aA.val("y")},az);break;case"g":aB.val("g",{g:255-aA.val("y")},az);break;case"b":aB.val("b",{b:255-aA.val("y")},az);break;case"a":aB.val("a",255-aA.val("y"),az);break}},v=function(aC,az){if(az!=D){switch(av.color.mode){case"h":var aH=aC.val("sv");D.val("xy",{x:aH!=null?aH.s:100,y:100-(aH!=null?aH.v:100)},az);break;case"s":case"a":var aB=aC.val("hv");D.val("xy",{x:aB&&aB.h||0,y:100-(aB!=null?aB.v:100)},az);break;case"v":var aE=aC.val("hs");D.val("xy",{x:aE&&aE.h||0,y:100-(aE!=null?aE.s:100)},az);break;case"r":var aA=aC.val("bg");D.val("xy",{x:aA&&aA.b||0,y:255-(aA&&aA.g||0)},az);break;case"g":var aI=aC.val("br");D.val("xy",{x:aI&&aI.b||0,y:255-(aI&&aI.r||0)},az);break;case"b":var aG=aC.val("rg");D.val("xy",{x:aG&&aG.r||0,y:255-(aG&&aG.g||0)},az);break}}if(az!=U){switch(av.color.mode){case"h":U.val("y",360-(aC.val("h")||0),az);break;case"s":var aJ=aC.val("s");U.val("y",100-(aJ!=null?aJ:100),az);break;case"v":var aF=aC.val("v");U.val("y",100-(aF!=null?aF:100),az);break;case"r":U.val("y",255-(aC.val("r")||0),az);break;case"g":U.val("y",255-(aC.val("g")||0),az);break;case"b":U.val("y",255-(aC.val("b")||0),az);break;case"a":var aD=aC.val("a");U.val("y",255-(aD!=null?aD:255),az);break}}},ay=function(aA){try{var az=aA.val("all");E.css({backgroundColor:az&&"#"+az.hex||"transparent"});Y.call(w,E,az&&Math.precision((az.a*100)/255,4)||0)}catch(aB){}},al=function(aC){switch(av.color.mode){case"h":y.call(w,l,new f({h:aC.val("h")||0,s:100,v:100}).val("hex"));break;case"s":case"a":var aB=aC.val("s");Y.call(w,at,100-(aB!=null?aB:100));break;case"v":var aA=aC.val("v");Y.call(w,au,aA!=null?aA:100);break;case"r":Y.call(w,at,Math.precision((aC.val("r")||0)/255*100,4));break;case"g":Y.call(w,at,Math.precision((aC.val("g")||0)/255*100,4));break;case"b":Y.call(w,at,Math.precision((aC.val("b")||0)/255*100));break}var az=aC.val("a");Y.call(w,ar,Math.precision(((255-(az||0))*100)/255,4))},W=function(aF){switch(av.color.mode){case"h":var aH=aF.val("a");Y.call(w,L,Math.precision(((255-(aH||0))*100)/255,4));break;case"s":var aA=aF.val("hva"),aB=new f({h:aA&&aA.h||0,s:100,v:aA!=null?aA.v:100});y.call(w,s,aB.val("hex"));Y.call(w,O,100-(aA!=null?aA.v:100));Y.call(w,L,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));break;case"v":var aC=aF.val("hsa"),aE=new f({h:aC&&aC.h||0,s:aC!=null?aC.s:100,v:100});y.call(w,s,aE.val("hex"));Y.call(w,L,Math.precision(((255-(aC&&aC.a||0))*100)/255,4));break;case"r":case"g":case"b":var aD=0,aG=0,az=aF.val("rgba");if(av.color.mode=="r"){aD=az&&az.b||0;aG=az&&az.g||0}else{if(av.color.mode=="g"){aD=az&&az.b||0;aG=az&&az.r||0}else{if(av.color.mode=="b"){aD=az&&az.r||0;aG=az&&az.g||0}}}var aI=aG>aD?aD:aG;Y.call(w,O,aD>aG?Math.precision(((aD-aG)/(255-aG))*100,4):0);Y.call(w,N,aG>aD?Math.precision(((aG-aD)/(255-aD))*100,4):0);Y.call(w,M,Math.precision((aI/255)*100,4));Y.call(w,L,Math.precision(((255-(az&&az.a||0))*100)/255,4));break;case"a":var aH=aF.val("a");y.call(w,s,aF.val("hex")||"000000");Y.call(w,L,aH!=null?0:100);Y.call(w,K,aH!=null?100:0);break}},y=function(az,aA){az.css({backgroundColor:aA&&aA.length==6&&"#"+aA||"transparent"})},t=function(az,aA){if(Q&&(aA.indexOf("AlphaBar.png")!=-1||aA.indexOf("Bars.png")!=-1||aA.indexOf("Maps.png")!=-1)){az.attr("pngSrc",aA);az.css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aA+"', sizingMethod='scale')"})}else{az.css({backgroundImage:"url("+aA+")"})}},x=function(az,aA){az.css({top:aA+"px"})},Y=function(aA,az){aA.css({visibility:az>0?"visible":"hidden"});if(az>0&&az<100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale') progid:DXImageTransform.Microsoft.Alpha(opacity="+az+")"})}else{aA.css({opacity:Math.precision(az/100,4)})}}else{aA.css({opacity:Math.precision(az/100,4)})}}else{if(az==0||az==100){if(Q){var aB=aA.attr("pngSrc");if(aB!=null&&(aB.indexOf("AlphaBar.png")!=-1||aB.indexOf("Bars.png")!=-1||aB.indexOf("Maps.png")!=-1)){aA.css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+aB+"', sizingMethod='scale')"})}else{aA.css({opacity:""})}}else{aA.css({opacity:""})}}}},B=function(){G.active.val("ahex",G.current.val("ahex"))},T=function(){G.current.val("ahex",G.active.val("ahex"))},A=function(az){e(this).parents("tbody:first").find('input:radio[value!="'+az.target.value+'"]').removeAttr("checked");ag.call(w,az.target.value)},Z=function(){B.call(w)},q=function(){B.call(w);av.window.expandable&&ao.call(w);e.isFunction(ax)&&ax.call(w,G.active,X)},m=function(){T.call(w);av.window.expandable&&ao.call(w);e.isFunction(ae)&&ae.call(w,G.active,ah)},af=function(){V.call(w)},ap=function(aB,az){var aA=aB.val("hex");an.css({backgroundColor:aA&&"#"+aA||"transparent"});Y.call(w,an,Math.precision(((aB.val("a")||0)*100)/255,4))},H=function(aC,az){var aB=aC.val("hex");var aA=aC.val("va");aq.css({backgroundColor:aB&&"#"+aB||"transparent"});Y.call(w,r,Math.precision(((255-(aA&&aA.a||0))*100)/255,4));if(av.window.bindToInput&&av.window.updateInputColor){av.window.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aA==null||aA.v>75?"#000000":"#ffffff"})}},S=function(aB){var az=av.window.element,aA=av.window.page;J=parseInt(R.css("left"));I=parseInt(R.css("top"));am=aB.pageX;ai=aB.pageY;e(document).bind("mousemove",k).bind("mouseup",p);aB.preventDefault()},k=function(az){R.css({left:J-(am-az.pageX)+"px",top:I-(ai-az.pageY)+"px"});if(av.window.expandable&&!e.support.boxModel){R.prev().css({left:R.css("left"),top:R.css("top")})}az.stopPropagation();az.preventDefault();return false},p=function(az){e(document).unbind("mousemove",k).unbind("mouseup",p);az.stopPropagation();az.preventDefault();return false},F=function(az){az.preventDefault();az.stopPropagation();G.active.val("ahex",e(this).attr("title")||null,az.target);return false},ae=e.isFunction(h[1])&&h[1]||null,ad=e.isFunction(h[2])&&h[2]||null,ax=e.isFunction(h[3])&&h[3]||null,V=function(){G.current.val("ahex",G.active.val("ahex"));var az=function(){if(!av.window.expandable||e.support.boxModel){return}var aA=R.find("table:first");R.before("<iframe/>");R.prev().css({width:aA.width(),height:R.height(),opacity:0,position:"absolute",left:R.css("left"),top:R.css("top")})};if(av.window.expandable){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})}switch(av.window.effects.type){case"fade":R.fadeIn(av.window.effects.speed.show,az);break;case"slide":R.slideDown(av.window.effects.speed.show,az);break;case"show":default:R.show(av.window.effects.speed.show,az);break}},ao=function(){var az=function(){if(av.window.expandable){R.css({zIndex:10})}if(!av.window.expandable||e.support.boxModel){return}R.prev().remove()};switch(av.window.effects.type){case"fade":R.fadeOut(av.window.effects.speed.hide,az);break;case"slide":R.slideUp(av.window.effects.speed.hide,az);break;case"show":default:R.hide(av.window.effects.speed.hide,az);break}},o=function(){var aG=av.window,az=aG.expandable?e(w).next().find(".Container:first"):null;R=aG.expandable?e("<div/>"):e(w);R.addClass("jPicker Container");if(aG.expandable){R.hide()}R.get(0).onselectstart=function(){return false};var aJ=G.active.val("all");if(aG.alphaPrecision<0){aG.alphaPrecision=0}else{if(aG.alphaPrecision>2){aG.alphaPrecision=2}}var aK='<table class="jPicker" cellpadding="0" cellspacing="0"><tbody>'+(aG.expandable?'<tr><td class="Move" colspan="5">&nbsp;</td></tr>':"")+'<tr><td rowspan="9"><h2 class="Title">'+(aG.title||aa.text.title)+'</h2><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="'+n.clientPath+n.colorMap.arrow.file+'" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="'+n.clientPath+n.colorBar.arrow.file+'" class="Arrow"/></div></td><td colspan="2" class="Preview">'+aa.text.newColor+'<div><span class="Active" title="'+aa.tooltips.colors.newColor+'">&nbsp;</span><span class="Current" title="'+aa.tooltips.colors.currentColor+'">&nbsp;</span></div>'+aa.text.currentColor+'</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="'+aa.text.ok+'" title="'+aa.tooltips.buttons.ok+'"/><input type="button" class="Cancel" value="'+aa.text.cancel+'" title="'+aa.tooltips.buttons.cancel+'"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label title="'+aa.tooltips.hue.radio+'"><input type="radio" value="h"'+(av.color.mode=="h"?' checked="checked"':"")+'/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.h:"")+'" title="'+aa.tooltips.hue.textbox+'"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label title="'+aa.tooltips.saturation.radio+'"><input type="radio" value="s"'+(av.color.mode=="s"?' checked="checked"':"")+'/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.s:"")+'" title="'+aa.tooltips.saturation.textbox+'"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label title="'+aa.tooltips.value.radio+'"><input type="radio" value="v"'+(av.color.mode=="v"?' checked="checked"':"")+'/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.v:"")+'" title="'+aa.tooltips.value.textbox+'"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label title="'+aa.tooltips.red.radio+'"><input type="radio" value="r"'+(av.color.mode=="r"?' checked="checked"':"")+'/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.r:"")+'" title="'+aa.tooltips.red.textbox+'"/></td></tr><tr class="Green"><td class="Radio"><label title="'+aa.tooltips.green.radio+'"><input type="radio" value="g"'+(av.color.mode=="g"?' checked="checked"':"")+'/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.g:"")+'" title="'+aa.tooltips.green.textbox+'"/></td></tr><tr class="Blue"><td class="Radio"><label title="'+aa.tooltips.blue.radio+'"><input type="radio" value="b"'+(av.color.mode=="b"?' checked="checked"':"")+'/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="'+(aJ!=null?aJ.b:"")+'" title="'+aa.tooltips.blue.textbox+'"/></td></tr><tr class="Alpha"><td class="Radio">'+(aG.alphaSupport?'<label title="'+aa.tooltips.alpha.radio+'"><input type="radio" value="a"'+(av.color.mode=="a"?' checked="checked"':"")+"/>A:</label>":"&nbsp;")+'</td><td class="Text">'+(aG.alphaSupport?'<input type="text" maxlength="'+(3+aG.alphaPrecision)+'" value="'+(aJ!=null?Math.precision((aJ.a*100)/255,aG.alphaPrecision):"")+'" title="'+aa.tooltips.alpha.textbox+'"/>&nbsp;%':"&nbsp;")+'</td></tr><tr class="Hex"><td colspan="2" class="Text"><label title="'+aa.tooltips.hex.textbox+'">#:<input type="text" maxlength="6" class="Hex" value="'+(aJ!=null?aJ.hex:"")+'"/></label>'+(aG.alphaSupport?'<input type="text" maxlength="2" class="AHex" value="'+(aJ!=null?aJ.ahex.substring(6):"")+'" title="'+aa.tooltips.hex.alpha+'"/></td>':"&nbsp;")+"</tr></tbody></table>";if(aG.expandable){R.html(aK);if(e(document.body).children("div.jPicker.Container").length==0){e(document.body).prepend(R)}else{e(document.body).children("div.jPicker.Container:last").after(R)}R.mousedown(function(){e(document.body).children("div.jPicker.Container").css({zIndex:10});R.css({zIndex:20})});R.css({left:aG.position.x=="left"?(az.offset().left-530-(aG.position.y=="center"?25:0))+"px":aG.position.x=="center"?(az.offset().left-260)+"px":aG.position.x=="right"?(az.offset().left-10+(aG.position.y=="center"?25:0))+"px":aG.position.x=="screenCenter"?((e(document).width()>>1)-260)+"px":(az.offset().left+parseInt(aG.position.x))+"px",position:"absolute",top:aG.position.y=="top"?(az.offset().top-312)+"px":aG.position.y=="center"?(az.offset().top-156)+"px":aG.position.y=="bottom"?(az.offset().top+25)+"px":(az.offset().top+parseInt(aG.position.y))+"px"})}else{R=e(w);R.html(aK)}var aD=R.find("tbody:first");l=aD.find("div.Map:first");s=aD.find("div.Bar:first");var aL=l.find("span"),aI=s.find("span");au=aL.filter(".Map1:first");at=aL.filter(".Map2:first");ar=aL.filter(".Map3:first");P=aI.filter(".Map1:first");O=aI.filter(".Map2:first");N=aI.filter(".Map3:first");M=aI.filter(".Map4:first");L=aI.filter(".Map5:first");K=aI.filter(".Map6:first");D=new d(l,{map:{width:n.colorMap.width,height:n.colorMap.height},arrow:{image:n.clientPath+n.colorMap.arrow.file,width:n.colorMap.arrow.width,height:n.colorMap.arrow.height}});D.bind(z);U=new d(s,{map:{width:n.colorBar.width,height:n.colorBar.height},arrow:{image:n.clientPath+n.colorBar.arrow.file,width:n.colorBar.arrow.width,height:n.colorBar.arrow.height}});U.bind(ac);aw=new b(aD,G.active,aG.expandable&&aG.bindToInput?aG.input:null,aG.alphaPrecision);var aB=aJ!=null?aJ.hex:null,aH=aD.find(".Preview"),aF=aD.find(".Button");E=aH.find(".Active:first").css({backgroundColor:aB&&"#"+aB||"transparent"});an=aH.find(".Current:first").css({backgroundColor:aB&&"#"+aB||"transparent"}).bind("click",Z);Y.call(w,an,Math.precision(G.current.val("a")*100)/255,4);ah=aF.find(".Ok:first").bind("click",m);X=aF.find(".Cancel:first").bind("click",q);ab=aF.find(".Grid:first");setTimeout(function(){t.call(w,au,n.clientPath+"Maps.png");t.call(w,at,n.clientPath+"Maps.png");t.call(w,ar,n.clientPath+"map-opacity.png");t.call(w,P,n.clientPath+"Bars.png");t.call(w,O,n.clientPath+"Bars.png");t.call(w,N,n.clientPath+"Bars.png");t.call(w,M,n.clientPath+"Bars.png");t.call(w,L,n.clientPath+"bar-opacity.png");t.call(w,K,n.clientPath+"AlphaBar.png");t.call(w,aH.find("div:first"),n.clientPath+"preview-opacity.png")},0);aD.find("td.Radio input").bind("click",A);if(G.quickList&&G.quickList.length>0){var aE="";for(i=0;i<G.quickList.length;i++){if((typeof(G.quickList[i])).toString().toLowerCase()=="string"){G.quickList[i]=new f({hex:G.quickList[i]})}var aC=G.quickList[i].val("a");var aM=G.quickList[i].val("ahex");if(!aG.alphaSupport&&aM){aM=aM.substring(0,6)+"ff"}var aA=G.quickList[i].val("hex");aE+='<span class="QuickColor"'+(aM&&' title="#'+aM+'"'||"")+' style="background-color:'+(aA&&"#"+aA||"")+";"+(aA?"":"background-image:url("+n.clientPath+"NoColor.png)")+(aG.alphaSupport&&aC&&aC<255?";opacity:"+Math.precision(aC/255,4)+";filter:Alpha(opacity="+Math.precision(aC/2.55,4)+")":"")+'">&nbsp;</span>'}t.call(w,ab,n.clientPath+"bar-opacity.png");ab.html(aE);ab.find(".QuickColor").click(F)}ag.call(w,av.color.mode);G.active.bind(aj);e.isFunction(ad)&&G.active.bind(ad);G.current.bind(ap);if(aG.expandable){w.icon=az.parents(".Icon:first");aq=w.icon.find(".Color:first").css({backgroundColor:aB&&"#"+aB||"transparent"});r=w.icon.find(".Alpha:first");t.call(w,r,n.clientPath+"bar-opacity.png");Y.call(w,r,Math.precision(((255-(aJ!=null?aJ.a:0))*100)/255,4));C=w.icon.find(".Image:first").css({backgroundImage:"url("+n.clientPath+n.picker.file+")"}).bind("click",af);if(aG.bindToInput&&aG.updateInputColor){aG.input.css({backgroundColor:aB&&"#"+aB||"transparent",color:aJ==null||aJ.v>75?"#000000":"#ffffff"})}u=aD.find(".Move:first").bind("mousedown",S);G.active.bind(H)}else{V.call(w)}},ak=function(){R.find("td.Radio input").unbind("click",A);an.unbind("click",Z);X.unbind("click",q);ah.unbind("click",m);if(av.window.expandable){C.unbind("click",af);u.unbind("mousedown",S);w.icon=null}R.find(".QuickColor").unbind("click",F);l=null;s=null;au=null;at=null;ar=null;P=null;O=null;N=null;M=null;L=null;K=null;D.destroy();D=null;U.destroy();U=null;aw.destroy();aw=null;E=null;an=null;ah=null;X=null;ab=null;ae=null;ax=null;ad=null;R.html("");for(i=0;i<c.length;i++){if(c[i]==w){c.splice(i,1)}}},n=av.images,aa=av.localization,G={active:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),current:(typeof(av.color.active)).toString().toLowerCase()=="string"?new f({ahex:!av.window.alphaSupport&&av.color.active?av.color.active.substring(0,6)+"ff":av.color.active}):new f({ahex:!av.window.alphaSupport&&av.color.active.val("ahex")?av.color.active.val("ahex").substring(0,6)+"ff":av.color.active.val("ahex")}),quickList:av.color.quickList};e.extend(true,w,{commitCallback:ae,liveCallback:ad,cancelCallback:ax,color:G,show:V,hide:ao,destroy:ak});c.push(w);setTimeout(function(){o.call(w)},0)})};e.fn.jPicker.defaults={window:{title:null,effects:{type:"slide",speed:{show:"slow",hide:"fast"}},position:{x:"screenCenter",y:"top"},expandable:false,liveUpdate:true,alphaSupport:false,alphaPrecision:0,updateInputColor:true},color:{mode:"h",active:new f({ahex:"#ffcc00ff"}),quickList:[new f({h:360,s:33,v:100}),new f({h:360,s:66,v:100}),new f({h:360,s:100,v:100}),new f({h:360,s:100,v:75}),new f({h:360,s:100,v:50}),new f({h:180,s:0,v:100}),new f({h:30,s:33,v:100}),new f({h:30,s:66,v:100}),new f({h:30,s:100,v:100}),new f({h:30,s:100,v:75}),new f({h:30,s:100,v:50}),new f({h:180,s:0,v:90}),new f({h:60,s:33,v:100}),new f({h:60,s:66,v:100}),new f({h:60,s:100,v:100}),new f({h:60,s:100,v:75}),new f({h:60,s:100,v:50}),new f({h:180,s:0,v:80}),new f({h:90,s:33,v:100}),new f({h:90,s:66,v:100}),new f({h:90,s:100,v:100}),new f({h:90,s:100,v:75}),new f({h:90,s:100,v:50}),new f({h:180,s:0,v:70}),new f({h:120,s:33,v:100}),new f({h:120,s:66,v:100}),new f({h:120,s:100,v:100}),new f({h:120,s:100,v:75}),new f({h:120,s:100,v:50}),new f({h:180,s:0,v:60}),new f({h:150,s:33,v:100}),new f({h:150,s:66,v:100}),new f({h:150,s:100,v:100}),new f({h:150,s:100,v:75}),new f({h:150,s:100,v:50}),new f({h:180,s:0,v:50}),new f({h:180,s:33,v:100}),new f({h:180,s:66,v:100}),new f({h:180,s:100,v:100}),new f({h:180,s:100,v:75}),new f({h:180,s:100,v:50}),new f({h:180,s:0,v:40}),new f({h:210,s:33,v:100}),new f({h:210,s:66,v:100}),new f({h:210,s:100,v:100}),new f({h:210,s:100,v:75}),new f({h:210,s:100,v:50}),new f({h:180,s:0,v:30}),new f({h:240,s:33,v:100}),new f({h:240,s:66,v:100}),new f({h:240,s:100,v:100}),new f({h:240,s:100,v:75}),new f({h:240,s:100,v:50}),new f({h:180,s:0,v:20}),new f({h:270,s:33,v:100}),new f({h:270,s:66,v:100}),new f({h:270,s:100,v:100}),new f({h:270,s:100,v:75}),new f({h:270,s:100,v:50}),new f({h:180,s:0,v:10}),new f({h:300,s:33,v:100}),new f({h:300,s:66,v:100}),new f({h:300,s:100,v:100}),new f({h:300,s:100,v:75}),new f({h:300,s:100,v:50}),new f({h:180,s:0,v:0}),new f({h:330,s:33,v:100}),new f({h:330,s:66,v:100}),new f({h:330,s:100,v:100}),new f({h:330,s:100,v:75}),new f({h:330,s:100,v:50}),new f()]},images:{clientPath:"/jPicker/images/",colorMap:{width:256,height:256,arrow:{file:"mappoint.gif",width:15,height:15}},colorBar:{width:20,height:256,arrow:{file:"rangearrows.gif",width:20,height:7}},picker:{file:"picker.gif",width:25,height:24}},localization:{text:{title:"Drag Markers To Pick A Color",newColor:"new",currentColor:"current",ok:"OK",cancel:"Cancel"},tooltips:{colors:{newColor:"New Color - Press &ldquo;OK&rdquo; To Commit",currentColor:"Click To Revert To Original Color"},buttons:{ok:"Commit To This Color Selection",cancel:"Cancel And Revert To Original Color"},hue:{radio:"Set To &ldquo;Hue&rdquo; Color Mode",textbox:"Enter A &ldquo;Hue&rdquo; Value (0-360&deg;)"},saturation:{radio:"Set To &ldquo;Saturation&rdquo; Color Mode",textbox:"Enter A &ldquo;Saturation&rdquo; Value (0-100%)"},value:{radio:"Set To &ldquo;Value&rdquo; Color Mode",textbox:"Enter A &ldquo;Value&rdquo; Value (0-100%)"},red:{radio:"Set To &ldquo;Red&rdquo; Color Mode",textbox:"Enter A &ldquo;Red&rdquo; Value (0-255)"},green:{radio:"Set To &ldquo;Green&rdquo; Color Mode",textbox:"Enter A &ldquo;Green&rdquo; Value (0-255)"},blue:{radio:"Set To &ldquo;Blue&rdquo; Color Mode",textbox:"Enter A &ldquo;Blue&rdquo; Value (0-255)"},alpha:{radio:"Set To &ldquo;Alpha&rdquo; Color Mode",textbox:"Enter A &ldquo;Alpha&rdquo; Value (0-100)"},hex:{textbox:"Enter A &ldquo;Hex&rdquo; Color Value (#000000-#ffffff)",alpha:"Enter A &ldquo;Alpha&rdquo; Value (#00-#ff)"}}}}})(jQuery,"1.1.5");
@@ -0,0 +1,1175 @@
1
+ /*
2
+ * jGraduate 0.4
3
+ *
4
+ * jQuery Plugin for a gradient picker
5
+ *
6
+ * Copyright (c) 2010 Jeff Schiller
7
+ * http://blog.codedread.com/
8
+ * Copyright (c) 2010 Alexis Deveria
9
+ * http://a.deveria.com/
10
+ *
11
+ * Apache 2 License
12
+
13
+ jGraduate( options, okCallback, cancelCallback )
14
+
15
+ where options is an object literal:
16
+ {
17
+ window: { title: "Pick the start color and opacity for the gradient" },
18
+ images: { clientPath: "images/" },
19
+ paint: a Paint object,
20
+ newstop: String of value "same", "inverse", "black" or "white"
21
+ OR object with one or both values {color: #Hex color, opac: number 0-1}
22
+ }
23
+
24
+ - the Paint object is:
25
+ Paint {
26
+ type: String, // one of "none", "solidColor", "linearGradient", "radialGradient"
27
+ alpha: Number representing opacity (0-100),
28
+ solidColor: String representing #RRGGBB hex of color,
29
+ linearGradient: object of interface SVGLinearGradientElement,
30
+ radialGradient: object of interface SVGRadialGradientElement,
31
+ }
32
+
33
+ $.jGraduate.Paint() -> constructs a 'none' color
34
+ $.jGraduate.Paint({copy: o}) -> creates a copy of the paint o
35
+ $.jGraduate.Paint({hex: "#rrggbb"}) -> creates a solid color paint with hex = "#rrggbb"
36
+ $.jGraduate.Paint({linearGradient: o, a: 50}) -> creates a linear gradient paint with opacity=0.5
37
+ $.jGraduate.Paint({radialGradient: o, a: 7}) -> creates a radial gradient paint with opacity=0.07
38
+ $.jGraduate.Paint({hex: "#rrggbb", linearGradient: o}) -> throws an exception?
39
+
40
+ - picker accepts the following object as input:
41
+ {
42
+ okCallback: function to call when Ok is pressed
43
+ cancelCallback: function to call when Cancel is pressed
44
+ paint: object describing the paint to display initially, if not set, then default to opaque white
45
+ }
46
+
47
+ - okCallback receives a Paint object
48
+
49
+ *
50
+ */
51
+
52
+ (function() {
53
+
54
+ var ns = { svg: 'http://www.w3.org/2000/svg', xlink: 'http://www.w3.org/1999/xlink' };
55
+ if(!window.console) {
56
+ window.console = new function() {
57
+ this.log = function(str) {};
58
+ this.dir = function(str) {};
59
+ };
60
+ }
61
+
62
+ $.jGraduate = {
63
+ Paint:
64
+ function(opt) {
65
+ var options = opt || {};
66
+ this.alpha = isNaN(options.alpha) ? 100 : options.alpha;
67
+ // copy paint object
68
+ if (options.copy) {
69
+ this.type = options.copy.type;
70
+ this.alpha = options.copy.alpha;
71
+ this.solidColor = null;
72
+ this.linearGradient = null;
73
+ this.radialGradient = null;
74
+
75
+ switch(this.type) {
76
+ case "none":
77
+ break;
78
+ case "solidColor":
79
+ this.solidColor = options.copy.solidColor;
80
+ break;
81
+ case "linearGradient":
82
+ this.linearGradient = options.copy.linearGradient.cloneNode(true);
83
+ break;
84
+ case "radialGradient":
85
+ this.radialGradient = options.copy.radialGradient.cloneNode(true);
86
+ break;
87
+ }
88
+ }
89
+ // create linear gradient paint
90
+ else if (options.linearGradient) {
91
+ this.type = "linearGradient";
92
+ this.solidColor = null;
93
+ this.radialGradient = null;
94
+ this.linearGradient = options.linearGradient.cloneNode(true);
95
+ }
96
+ // create linear gradient paint
97
+ else if (options.radialGradient) {
98
+ this.type = "radialGradient";
99
+ this.solidColor = null;
100
+ this.linearGradient = null;
101
+ this.radialGradient = options.radialGradient.cloneNode(true);
102
+ }
103
+ // create solid color paint
104
+ else if (options.solidColor) {
105
+ this.type = "solidColor";
106
+ this.solidColor = options.solidColor;
107
+ }
108
+ // create empty paint
109
+ else {
110
+ this.type = "none";
111
+ this.solidColor = null;
112
+ this.linearGradient = null;
113
+ this.radialGradient = null;
114
+ }
115
+ }
116
+ };
117
+
118
+ jQuery.fn.jGraduateDefaults = {
119
+ paint: new $.jGraduate.Paint(),
120
+ window: {
121
+ pickerTitle: "Drag markers to pick a paint"
122
+ },
123
+ images: {
124
+ clientPath: "images/"
125
+ },
126
+ newstop: 'inverse' // same, inverse, black, white
127
+ };
128
+
129
+ var isGecko = navigator.userAgent.indexOf('Gecko/') >= 0;
130
+
131
+ function setAttrs(elem, attrs) {
132
+ if(isGecko) {
133
+ for (var aname in attrs) elem.setAttribute(aname, attrs[aname]);
134
+ } else {
135
+ for (var aname in attrs) {
136
+ var val = attrs[aname], prop = elem[aname];
137
+ if(prop && prop.constructor === 'SVGLength') {
138
+ prop.baseVal.value = val;
139
+ } else {
140
+ elem.setAttribute(aname, val);
141
+ }
142
+ }
143
+ }
144
+ }
145
+
146
+ function mkElem(name, attrs, newparent) {
147
+ var elem = document.createElementNS(ns.svg, name);
148
+ setAttrs(elem, attrs);
149
+ if(newparent) newparent.appendChild(elem);
150
+ return elem;
151
+ }
152
+
153
+ jQuery.fn.jGraduate =
154
+ function(options) {
155
+ var $arguments = arguments;
156
+ return this.each( function() {
157
+ var $this = $(this), $settings = $.extend(true, {}, jQuery.fn.jGraduateDefaults, options),
158
+ id = $this.attr('id'),
159
+ idref = '#'+$this.attr('id')+' ';
160
+
161
+ if (!idref)
162
+ {
163
+ alert('Container element must have an id attribute to maintain unique id strings for sub-elements.');
164
+ return;
165
+ }
166
+
167
+ var okClicked = function() {
168
+ switch ( $this.paint.type ) {
169
+ case "radialGradient":
170
+ $this.paint.linearGradient = null;
171
+ break;
172
+ case "linearGradient":
173
+ $this.paint.radialGradient = null;
174
+ break;
175
+ case "solidColor":
176
+ $this.paint.radialGradient = $this.paint.linearGradient = null;
177
+ break;
178
+ }
179
+ $.isFunction($this.okCallback) && $this.okCallback($this.paint);
180
+ $this.hide();
181
+ },
182
+ cancelClicked = function() {
183
+ $.isFunction($this.cancelCallback) && $this.cancelCallback();
184
+ $this.hide();
185
+ };
186
+
187
+ $.extend(true, $this, // public properties, methods, and callbacks
188
+ {
189
+ // make a copy of the incoming paint
190
+ paint: new $.jGraduate.Paint({copy: $settings.paint}),
191
+ okCallback: $.isFunction($arguments[1]) && $arguments[1] || null,
192
+ cancelCallback: $.isFunction($arguments[2]) && $arguments[2] || null
193
+ });
194
+
195
+ var pos = $this.position(),
196
+ color = null;
197
+ var $win = $(window);
198
+
199
+ if ($this.paint.type == "none") {
200
+ $this.paint = $.jGraduate.Paint({solidColor: 'ffffff'});
201
+ }
202
+
203
+ $this.addClass('jGraduate_Picker');
204
+ $this.html('<ul class="jGraduate_tabs">' +
205
+ '<li class="jGraduate_tab_color jGraduate_tab_current" data-type="col">Solid Color</li>' +
206
+ '<li class="jGraduate_tab_lingrad" data-type="lg">Linear Gradient</li>' +
207
+ '<li class="jGraduate_tab_radgrad" data-type="rg">Radial Gradient</li>' +
208
+ '</ul>' +
209
+ '<div class="jGraduate_colPick"></div>' +
210
+ '<div class="jGraduate_gradPick"></div>' +
211
+ '<div class="jGraduate_LightBox"></div>' +
212
+ '<div id="' + id + '_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>'
213
+
214
+
215
+ );
216
+ var colPicker = $(idref + '> .jGraduate_colPick');
217
+ var gradPicker = $(idref + '> .jGraduate_gradPick');
218
+
219
+ gradPicker.html(
220
+ '<div id="' + id + '_jGraduate_Swatch" class="jGraduate_Swatch">' +
221
+ '<h2 class="jGraduate_Title">' + $settings.window.pickerTitle + '</h2>' +
222
+ '<div id="' + id + '_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' +
223
+ '<div id="' + id + '_jGraduate_StopSlider" class="jGraduate_StopSlider"></div>' +
224
+ '</div>' +
225
+ '<div class="jGraduate_Form jGraduate_Points jGraduate_lg_field">' +
226
+ '<div class="jGraduate_StopSection">' +
227
+ '<label class="jGraduate_Form_Heading">Begin Point</label>' +
228
+ '<div class="jGraduate_Form_Section">' +
229
+ '<label>x:</label>' +
230
+ '<input type="text" id="' + id + '_jGraduate_x1" size="3" title="Enter starting x value between 0.0 and 1.0"/>' +
231
+ '<label> y:</label>' +
232
+ '<input type="text" id="' + id + '_jGraduate_y1" size="3" title="Enter starting y value between 0.0 and 1.0"/>' +
233
+ '</div>' +
234
+ '</div>' +
235
+ '<div class="jGraduate_StopSection">' +
236
+ '<label class="jGraduate_Form_Heading">End Point</label>' +
237
+ '<div class="jGraduate_Form_Section">' +
238
+ '<label>x:</label>' +
239
+ '<input type="text" id="' + id + '_jGraduate_x2" size="3" title="Enter ending x value between 0.0 and 1.0"/>' +
240
+ '<label> y:</label>' +
241
+ '<input type="text" id="' + id + '_jGraduate_y2" size="3" title="Enter ending y value between 0.0 and 1.0"/>' +
242
+ '</div>' +
243
+ '</div>' +
244
+ '</div>' +
245
+ '<div class="jGraduate_Form jGraduate_Points jGraduate_rg_field">' +
246
+ '<div class="jGraduate_StopSection">' +
247
+ '<label class="jGraduate_Form_Heading">Center Point</label>' +
248
+ '<div class="jGraduate_Form_Section">' +
249
+ '<label>x:</label>' +
250
+ '<input type="text" id="' + id + '_jGraduate_cx" size="3" title="Enter x value between 0.0 and 1.0"/>' +
251
+ '<label> y:</label>' +
252
+ '<input type="text" id="' + id + '_jGraduate_cy" size="3" title="Enter y value between 0.0 and 1.0"/>' +
253
+ '</div>' +
254
+ '</div>' +
255
+ '<div class="jGraduate_StopSection">' +
256
+ '<label class="jGraduate_Form_Heading">Focal Point</label>' +
257
+ '<div class="jGraduate_Form_Section">' +
258
+ '<label>Match center: <input type="checkbox" checked="checked" id="' + id + '_jGraduate_match_ctr"/></label><br/>' +
259
+ '<label>x:</label>' +
260
+ '<input type="text" id="' + id + '_jGraduate_fx" size="3" title="Enter x value between 0.0 and 1.0"/>' +
261
+ '<label> y:</label>' +
262
+ '<input type="text" id="' + id + '_jGraduate_fy" size="3" title="Enter y value between 0.0 and 1.0"/>' +
263
+ '</div>' +
264
+ '</div>' +
265
+ '</div>' +
266
+ '<div class="jGraduate_StopSection jGraduate_SpreadMethod">' +
267
+ '<label class="jGraduate_Form_Heading">Spread method</label>' +
268
+ '<div class="jGraduate_Form_Section">' +
269
+ '<select class="jGraduate_spreadMethod">' +
270
+ '<option value=pad selected>Pad</option>' +
271
+ '<option value=reflect>Reflect</option>' +
272
+ '<option value=repeat>Repeat</option>' +
273
+ '</select>' +
274
+ '</div>' +
275
+ '</div>' +
276
+ '<div class="jGraduate_Form">' +
277
+ '<div class="jGraduate_Slider jGraduate_RadiusField jGraduate_rg_field">' +
278
+ '<label class="prelabel">Radius:</label>' +
279
+ '<div id="' + id + '_jGraduate_Radius" class="jGraduate_SliderBar jGraduate_Radius" title="Click to set radius">' +
280
+ '<img id="' + id + '_jGraduate_RadiusArrows" class="jGraduate_RadiusArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
281
+ '</div>' +
282
+ '<label><input type="text" id="' + id + '_jGraduate_RadiusInput" size="3" value="100"/>%</label>' +
283
+ '</div>' +
284
+ '<div class="jGraduate_Slider jGraduate_EllipField jGraduate_rg_field">' +
285
+ '<label class="prelabel">Ellip:</label>' +
286
+ '<div id="' + id + '_jGraduate_Ellip" class="jGraduate_SliderBar jGraduate_Ellip" title="Click to set Ellip">' +
287
+ '<img id="' + id + '_jGraduate_EllipArrows" class="jGraduate_EllipArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
288
+ '</div>' +
289
+ '<label><input type="text" id="' + id + '_jGraduate_EllipInput" size="3" value="0"/>%</label>' +
290
+ '</div>' +
291
+ '<div class="jGraduate_Slider jGraduate_AngleField jGraduate_rg_field">' +
292
+ '<label class="prelabel">Angle:</label>' +
293
+ '<div id="' + id + '_jGraduate_Angle" class="jGraduate_SliderBar jGraduate_Angle" title="Click to set Angle">' +
294
+ '<img id="' + id + '_jGraduate_AngleArrows" class="jGraduate_AngleArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
295
+ '</div>' +
296
+ '<label><input type="text" id="' + id + '_jGraduate_AngleInput" size="3" value="0"/>deg</label>' +
297
+ '</div>' +
298
+ '<div class="jGraduate_Slider jGraduate_OpacField">' +
299
+ '<label class="prelabel">Opac:</label>' +
300
+ '<div id="' + id + '_jGraduate_Opac" class="jGraduate_SliderBar jGraduate_Opac" title="Click to set Opac">' +
301
+ '<img id="' + id + '_jGraduate_OpacArrows" class="jGraduate_OpacArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif">' +
302
+ '</div>' +
303
+ '<label><input type="text" id="' + id + '_jGraduate_OpacInput" size="3" value="100"/>%</label>' +
304
+ '</div>' +
305
+ '</div>' +
306
+ '<div class="jGraduate_OkCancel">' +
307
+ '<input type="button" id="' + id + '_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' +
308
+ '<input type="button" id="' + id + '_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' +
309
+ '</div>');
310
+
311
+ // --------------
312
+ // Set up all the SVG elements (the gradient, stops and rectangle)
313
+ var MAX = 256, MARGINX = 0, MARGINY = 0, STOP_RADIUS = 15/2,
314
+ SIZEX = MAX - 2*MARGINX, SIZEY = MAX - 2*MARGINY;
315
+
316
+ var curType, curGradient, previewRect;
317
+
318
+ var attr_input = {};
319
+
320
+ var SLIDERW = 145;
321
+ $('.jGraduate_SliderBar').width(SLIDERW);
322
+
323
+ var container = $('#' + id+'_jGraduate_GradContainer')[0];
324
+
325
+ var svg = mkElem('svg', {
326
+ id: id + '_jgraduate_svg',
327
+ width: MAX,
328
+ height: MAX,
329
+ xmlns: ns.svg
330
+ }, container);
331
+
332
+ // if we are sent a gradient, import it
333
+
334
+ curType = curType || $this.paint.type;
335
+
336
+ var grad = curGradient = $this.paint[curType];
337
+
338
+ var gradalpha = $this.paint.alpha;
339
+
340
+ var isSolid = curType === 'solidColor';
341
+
342
+ // Make any missing gradients
343
+ switch ( curType ) {
344
+ case "solidColor":
345
+ // fall through
346
+ case "linearGradient":
347
+ if(!isSolid) {
348
+ curGradient.id = id+'_lg_jgraduate_grad';
349
+ grad = curGradient = svg.appendChild(curGradient);//.cloneNode(true));
350
+ }
351
+ mkElem('radialGradient', {
352
+ id: id + '_rg_jgraduate_grad'
353
+ }, svg);
354
+ if(curType === "linearGradient") break;
355
+ case "radialGradient":
356
+ if(!isSolid) {
357
+ curGradient.id = id+'_rg_jgraduate_grad';
358
+ grad = curGradient = svg.appendChild(curGradient);//.cloneNode(true));
359
+ }
360
+ mkElem('linearGradient', {
361
+ id: id + '_lg_jgraduate_grad'
362
+ }, svg);
363
+ }
364
+
365
+ if(isSolid) {
366
+ grad = curGradient = $('#' + id + '_lg_jgraduate_grad')[0];
367
+ var color = $this.paint[curType];
368
+ mkStop(0, '#' + color, 1);
369
+
370
+ var type = typeof $settings.newstop;
371
+
372
+ if(type === 'string') {
373
+ switch ( $settings.newstop ) {
374
+ case 'same':
375
+ mkStop(1, '#' + color, 1);
376
+ break;
377
+
378
+ case 'inverse':
379
+ // Invert current color for second stop
380
+ var inverted = '';
381
+
382
+ for(var i = 0; i < 6; i += 2) {
383
+ var ch = color.substr(i, 2);
384
+ var inv = (255 - parseInt(color.substr(i, 2), 16)).toString(16);
385
+ if(inv.length < 2) inv = 0 + inv;
386
+ inverted += inv;
387
+ }
388
+ mkStop(1, '#' + inverted, 1);
389
+ break;
390
+
391
+ case 'white':
392
+ mkStop(1, '#ffffff', 1);
393
+ break;
394
+
395
+ case 'black':
396
+ mkStop(1, '#000000', 1);
397
+ break;
398
+ }
399
+ } else if(type === 'object'){
400
+ var opac = ('opac' in $settings.newstop) ? $settings.newstop.opac : 1;
401
+ mkStop(1, ($settings.newstop.color || '#' + color), opac);
402
+ }
403
+ }
404
+
405
+
406
+ var x1 = parseFloat(grad.getAttribute('x1')||0.0),
407
+ y1 = parseFloat(grad.getAttribute('y1')||0.0),
408
+ x2 = parseFloat(grad.getAttribute('x2')||1.0),
409
+ y2 = parseFloat(grad.getAttribute('y2')||0.0);
410
+
411
+ var cx = parseFloat(grad.getAttribute('cx')||0.5),
412
+ cy = parseFloat(grad.getAttribute('cy')||0.5),
413
+ fx = parseFloat(grad.getAttribute('fx')|| cx),
414
+ fy = parseFloat(grad.getAttribute('fy')|| cy);
415
+
416
+
417
+ var previewRect = mkElem('rect', {
418
+ id: id + '_jgraduate_rect',
419
+ x: MARGINX,
420
+ y: MARGINY,
421
+ width: SIZEX,
422
+ height: SIZEY,
423
+ fill: 'url(#'+id+'_jgraduate_grad)',
424
+ 'fill-opacity': gradalpha/100
425
+ }, svg);
426
+
427
+ // stop visuals created here
428
+ var beginCoord = $('<div/>').attr({
429
+ 'class': 'grad_coord jGraduate_lg_field',
430
+ title: 'Begin Stop'
431
+ }).text(1).css({
432
+ top: y1 * MAX,
433
+ left: x1 * MAX
434
+ }).data('coord', 'start').appendTo(container);
435
+
436
+ var endCoord = beginCoord.clone().text(2).css({
437
+ top: y2 * MAX,
438
+ left: x2 * MAX
439
+ }).attr('title', 'End stop').data('coord', 'end').appendTo(container);
440
+
441
+ var centerCoord = $('<div/>').attr({
442
+ 'class': 'grad_coord jGraduate_rg_field',
443
+ title: 'Center stop'
444
+ }).text('C').css({
445
+ top: cy * MAX,
446
+ left: cx * MAX
447
+ }).data('coord', 'center').appendTo(container);
448
+
449
+ var focusCoord = centerCoord.clone().text('F').css({
450
+ top: fy * MAX,
451
+ left: fx * MAX,
452
+ display: 'none'
453
+ }).attr('title', 'Focus point').data('coord', 'focus').appendTo(container);
454
+
455
+ focusCoord[0].id = id + '_jGraduate_focusCoord';
456
+
457
+ var coords = $(idref + ' .grad_coord');
458
+
459
+ // $(container).hover(function() {
460
+ // coords.animate({
461
+ // opacity: 1
462
+ // }, 500);
463
+ // }, function() {
464
+ // coords.animate({
465
+ // opacity: .2
466
+ // }, 500);
467
+ // });
468
+
469
+ $.each(['x1', 'y1', 'x2', 'y2', 'cx', 'cy', 'fx', 'fy'], function(i, attr) {
470
+ var attrval = curGradient.getAttribute(attr);
471
+
472
+ var isRadial = isNaN(attr[1]);
473
+
474
+ if(!attrval) {
475
+ // Set defaults
476
+ if(isRadial) {
477
+ // For radial points
478
+ attrval = "0.5";
479
+ } else {
480
+ // Only x2 is 1
481
+ attrval = attr === 'x2' ? "1.0" : "0.0";
482
+ }
483
+ }
484
+
485
+ attr_input[attr] = $('#'+id+'_jGraduate_' + attr)
486
+ .val(attrval)
487
+ .change(function() {
488
+ // TODO: Support values < 0 and > 1 (zoomable preview?)
489
+ if (isNaN(parseFloat(this.value)) || this.value < 0) {
490
+ this.value = 0.0;
491
+ } else if(this.value > 1) {
492
+ this.value = 1.0;
493
+ }
494
+
495
+ if(!(attr[0] === 'f' && !showFocus)) {
496
+ if(isRadial && curType === 'radialGradient' || !isRadial && curType === 'linearGradient') {
497
+ curGradient.setAttribute(attr, this.value);
498
+ }
499
+ }
500
+
501
+ if(isRadial) {
502
+ var $elem = attr[0] === "c" ? centerCoord : focusCoord;
503
+ } else {
504
+ var $elem = attr[1] === "1" ? beginCoord : endCoord;
505
+ }
506
+
507
+ var cssName = attr.indexOf('x') >= 0 ? 'left' : 'top';
508
+
509
+ $elem.css(cssName, this.value * MAX);
510
+ }).change();
511
+ });
512
+
513
+
514
+
515
+ function mkStop(n, color, opac, sel, stop_elem) {
516
+ var stop = stop_elem || mkElem('stop',{'stop-color':color,'stop-opacity':opac,offset:n}, curGradient);
517
+ if(stop_elem) {
518
+ color = stop_elem.getAttribute('stop-color');
519
+ opac = stop_elem.getAttribute('stop-opacity');
520
+ n = stop_elem.getAttribute('offset');
521
+ } else {
522
+ curGradient.appendChild(stop);
523
+ }
524
+ if(opac === null) opac = 1;
525
+
526
+ var picker_d = 'M-6.2,0.9c3.6-4,6.7-4.3,6.7-12.4c-0.2,7.9,3.1,8.8,6.5,12.4c3.5,3.8,2.9,9.6,0,12.3c-3.1,2.8-10.4,2.7-13.2,0C-9.6,9.9-9.4,4.4-6.2,0.9z';
527
+
528
+ var pathbg = mkElem('path',{
529
+ d: picker_d,
530
+ fill: 'url(#jGraduate_trans)',
531
+ transform: 'translate(' + (10 + n * MAX) + ', 26)'
532
+ }, stopGroup);
533
+
534
+ var path = mkElem('path',{
535
+ d: picker_d,
536
+ fill: color,
537
+ 'fill-opacity': opac,
538
+ transform: 'translate(' + (10 + n * MAX) + ', 26)',
539
+ stroke: '#000',
540
+ 'stroke-width': 1.5
541
+ }, stopGroup);
542
+
543
+ $(path).mousedown(function(e) {
544
+ selectStop(this);
545
+ drag = cur_stop;
546
+ $win.mousemove(dragColor).mouseup(remDrags);
547
+ stop_offset = stopMakerDiv.offset();
548
+ e.preventDefault();
549
+ return false;
550
+ }).data('stop', stop).data('bg', pathbg).dblclick(function() {
551
+ $('div.jGraduate_LightBox').show();
552
+ var colorhandle = this;
553
+ var stopOpacity = +stop.getAttribute('stop-opacity') || 1;
554
+ var stopColor = stop.getAttribute('stop-color') || 1;
555
+ var thisAlpha = (parseFloat(stopOpacity)*255).toString(16);
556
+ while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
557
+ color = stopColor.substr(1) + thisAlpha;
558
+ $('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({
559
+ window: { title: "Pick the start color and opacity for the gradient" },
560
+ images: { clientPath: $settings.images.clientPath },
561
+ color: { active: color, alphaSupport: true }
562
+ }, function(color, arg2){
563
+ stopColor = color.val('hex') ? ('#'+color.val('hex')) : "none";
564
+ stopOpacity = color.val('a') !== null ? color.val('a')/256 : 1;
565
+ colorhandle.setAttribute('fill', stopColor);
566
+ colorhandle.setAttribute('fill-opacity', stopOpacity);
567
+ stop.setAttribute('stop-color', stopColor);
568
+ stop.setAttribute('stop-opacity', stopOpacity);
569
+ $('div.jGraduate_LightBox').hide();
570
+ $('#'+id+'_jGraduate_stopPicker').hide();
571
+ }, null, function() {
572
+ $('div.jGraduate_LightBox').hide();
573
+ $('#'+id+'_jGraduate_stopPicker').hide();
574
+ });
575
+ });
576
+
577
+ $(curGradient).find('stop').each(function() {
578
+ var cur_s = $(this);
579
+ if(+this.getAttribute('offset') > n) {
580
+ if(!color) {
581
+ var newcolor = this.getAttribute('stop-color');
582
+ var newopac = this.getAttribute('stop-opacity');
583
+ stop.setAttribute('stop-color', newcolor);
584
+ path.setAttribute('fill', newcolor);
585
+ stop.setAttribute('stop-opacity', newopac === null ? 1 : newopac);
586
+ path.setAttribute('fill-opacity', newopac === null ? 1 : newopac);
587
+ }
588
+ cur_s.before(stop);
589
+ return false;
590
+ }
591
+ });
592
+ if(sel) selectStop(path);
593
+ return stop;
594
+ }
595
+
596
+ function remStop() {
597
+ delStop.setAttribute('display', 'none');
598
+ var path = $(cur_stop);
599
+ var stop = path.data('stop');
600
+ var bg = path.data('bg');
601
+ $([cur_stop, stop, bg]).remove();
602
+ }
603
+
604
+
605
+ var stops, stopGroup;
606
+
607
+ var stopMakerDiv = $('#' + id + '_jGraduate_StopSlider');
608
+
609
+ var cur_stop, stopGroup, stopMakerSVG, drag;
610
+
611
+ var delStop = mkElem('path',{
612
+ d:'m9.75,-6l-19.5,19.5m0,-19.5l19.5,19.5',
613
+ fill:'none',
614
+ stroke:'#D00',
615
+ 'stroke-width':5,
616
+ display:'none'
617
+ }, stopMakerSVG);
618
+
619
+
620
+ function selectStop(item) {
621
+ if(cur_stop) cur_stop.setAttribute('stroke', '#000');
622
+ item.setAttribute('stroke', 'blue');
623
+ cur_stop = item;
624
+ cur_stop.parentNode.appendChild(cur_stop);
625
+ // stops = $('stop');
626
+ // opac_select.val(cur_stop.attr('fill-opacity') || 1);
627
+ // root.append(delStop);
628
+ }
629
+
630
+ var stop_offset;
631
+
632
+ function remDrags() {
633
+ $win.unbind('mousemove', dragColor);
634
+ if(delStop.getAttribute('display') !== 'none') {
635
+ remStop();
636
+ }
637
+ drag = null;
638
+ }
639
+
640
+ var scale_x = 1, scale_y = 1, angle = 0;
641
+ var c_x = cx;
642
+ var c_y = cy;
643
+
644
+ function xform() {
645
+ var rot = angle?'rotate(' + angle + ',' + c_x + ',' + c_y + ') ':'';
646
+ if(scale_x === 1 && scale_y === 1) {
647
+ curGradient.removeAttribute('gradientTransform');
648
+ // $('#ang').addClass('dis');
649
+ } else {
650
+ var x = -c_x * (scale_x-1);
651
+ var y = -c_y * (scale_y-1);
652
+ curGradient.setAttribute('gradientTransform', rot + 'translate(' + x + ',' + y + ') scale(' + scale_x + ',' + scale_y + ')');
653
+ // $('#ang').removeClass('dis');
654
+ }
655
+ }
656
+
657
+ function dragColor(evt) {
658
+
659
+ var x = evt.pageX - stop_offset.left;
660
+ var y = evt.pageY - stop_offset.top;
661
+ x = x < 10 ? 10 : x > MAX + 10 ? MAX + 10: x;
662
+
663
+ var xf_str = 'translate(' + x + ', 26)';
664
+ if(y < -60 || y > 130) {
665
+ delStop.setAttribute('display', 'block');
666
+ delStop.setAttribute('transform', xf_str);
667
+ } else {
668
+ delStop.setAttribute('display', 'none');
669
+ }
670
+
671
+ drag.setAttribute('transform', xf_str);
672
+ $.data(drag, 'bg').setAttribute('transform', xf_str);
673
+ var stop = $.data(drag, 'stop');
674
+ var s_x = (x - 10) / MAX;
675
+
676
+ stop.setAttribute('offset', s_x);
677
+ var last = 0;
678
+
679
+ $(curGradient).find('stop').each(function(i) {
680
+ var cur = this.getAttribute('offset');
681
+ var t = $(this);
682
+ if(cur < last) {
683
+ t.prev().before(t);
684
+ stops = $(curGradient).find('stop');
685
+ }
686
+ last = cur;
687
+ });
688
+
689
+ }
690
+
691
+ stopMakerSVG = mkElem('svg', {
692
+ width: '100%',
693
+ height: 45
694
+ }, stopMakerDiv[0]);
695
+
696
+ var trans_pattern = mkElem('pattern', {
697
+ width: 16,
698
+ height: 16,
699
+ patternUnits: 'userSpaceOnUse',
700
+ id: 'jGraduate_trans'
701
+ }, stopMakerSVG);
702
+
703
+ var trans_img = mkElem('image', {
704
+ width: 16,
705
+ height: 16
706
+ }, trans_pattern);
707
+
708
+ var bg_image = $settings.images.clientPath + 'map-opacity.png';
709
+
710
+ trans_img.setAttributeNS(ns.xlink, 'xlink:href', bg_image);
711
+
712
+ $(stopMakerSVG).click(function(evt) {
713
+ stop_offset = stopMakerDiv.offset();
714
+ var target = evt.target;
715
+ if(target.tagName === 'path') return;
716
+ var x = evt.pageX - stop_offset.left - 8;
717
+ x = x < 10 ? 10 : x > MAX + 10 ? MAX + 10: x;
718
+ mkStop(x / MAX, 0, 0, true);
719
+ evt.stopPropagation();
720
+ });
721
+
722
+ $(stopMakerSVG).mouseover(function() {
723
+ stopMakerSVG.appendChild(delStop);
724
+ });
725
+
726
+ stopGroup = mkElem('g', {}, stopMakerSVG);
727
+
728
+ mkElem('line', {
729
+ x1: 10,
730
+ y1: 15,
731
+ x2: MAX + 10,
732
+ y2: 15,
733
+ 'stroke-width': 2,
734
+ stroke: '#000'
735
+ }, stopMakerSVG);
736
+
737
+
738
+ var spreadMethodOpt = gradPicker.find('.jGraduate_spreadMethod').change(function() {
739
+ curGradient.setAttribute('spreadMethod', $(this).val());
740
+ });
741
+
742
+
743
+ // handle dragging the stop around the swatch
744
+ var draggingCoord = null;
745
+
746
+ var onCoordDrag = function(evt) {
747
+ var x = evt.pageX - offset.left;
748
+ var y = evt.pageY - offset.top;
749
+
750
+ // clamp stop to the swatch
751
+ x = x < 0 ? 0 : x > MAX ? MAX : x;
752
+ y = y < 0 ? 0 : y > MAX ? MAX : y;
753
+
754
+ draggingCoord.css('left', x).css('top', y);
755
+
756
+ // calculate stop offset
757
+ var fracx = x / SIZEX;
758
+ var fracy = y / SIZEY;
759
+
760
+ var type = draggingCoord.data('coord');
761
+ var grad = curGradient;
762
+
763
+ switch ( type ) {
764
+ case 'start':
765
+ attr_input.x1.val(fracx);
766
+ attr_input.y1.val(fracy);
767
+ grad.setAttribute('x1', fracx);
768
+ grad.setAttribute('y1', fracy);
769
+ break;
770
+ case 'end':
771
+ attr_input.x2.val(fracx);
772
+ attr_input.y2.val(fracy);
773
+ grad.setAttribute('x2', fracx);
774
+ grad.setAttribute('y2', fracy);
775
+ break;
776
+ case 'center':
777
+ attr_input.cx.val(fracx);
778
+ attr_input.cy.val(fracy);
779
+ grad.setAttribute('cx', fracx);
780
+ grad.setAttribute('cy', fracy);
781
+ c_x = fracx;
782
+ c_y = fracy;
783
+ xform();
784
+ break;
785
+ case 'focus':
786
+ attr_input.fx.val(fracx);
787
+ attr_input.fy.val(fracy);
788
+ grad.setAttribute('fx', fracx);
789
+ grad.setAttribute('fy', fracy);
790
+ xform();
791
+ }
792
+
793
+ evt.preventDefault();
794
+ }
795
+
796
+ var onCoordUp = function() {
797
+ draggingCoord = null;
798
+ $win.unbind('mousemove', onCoordDrag).unbind('mouseup', onCoordUp);
799
+ }
800
+
801
+ // Linear gradient
802
+ // (function() {
803
+
804
+
805
+ stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
806
+
807
+ // if there are not at least two stops, then
808
+ if (numstops < 2) {
809
+ while (numstops < 2) {
810
+ curGradient.appendChild( document.createElementNS(ns.svg, 'stop') );
811
+ ++numstops;
812
+ }
813
+ stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
814
+ }
815
+
816
+ var numstops = stops.length;
817
+ for(var i = 0; i < numstops; i++) {
818
+ mkStop(0, 0, 0, 0, stops[i]);
819
+ }
820
+
821
+ spreadMethodOpt.val(curGradient.getAttribute('spreadMethod') || 'pad');
822
+
823
+ var offset;
824
+
825
+ // No match, so show focus point
826
+ var showFocus = false;
827
+
828
+ previewRect.setAttribute('fill-opacity', gradalpha/100);
829
+
830
+
831
+ $('#' + id + ' div.grad_coord').mousedown(function(evt) {
832
+ evt.preventDefault();
833
+ draggingCoord = $(this);
834
+ var s_pos = draggingCoord.offset();
835
+ offset = draggingCoord.parent().offset();
836
+ $win.mousemove(onCoordDrag).mouseup(onCoordUp);
837
+ });
838
+
839
+ // bind GUI elements
840
+ $('#'+id+'_jGraduate_Ok').bind('click', function() {
841
+ $this.paint.type = curType;
842
+ $this.paint[curType] = curGradient.cloneNode(true);;
843
+ $this.paint.solidColor = null;
844
+ okClicked();
845
+ });
846
+ $('#'+id+'_jGraduate_Cancel').bind('click', function(paint) {
847
+ cancelClicked();
848
+ });
849
+
850
+ if(curType === 'radialGradient') {
851
+ if(showFocus) {
852
+ focusCoord.show();
853
+ } else {
854
+ focusCoord.hide();
855
+ attr_input.fx.val("");
856
+ attr_input.fy.val("");
857
+ }
858
+ }
859
+
860
+ $("#" + id + "_jGraduate_match_ctr")[0].checked = !showFocus;
861
+
862
+ var lastfx, lastfy;
863
+
864
+ $("#" + id + "_jGraduate_match_ctr").change(function() {
865
+ showFocus = !this.checked;
866
+ focusCoord.toggle(showFocus);
867
+ attr_input.fx.val('');
868
+ attr_input.fy.val('');
869
+ var grad = curGradient;
870
+ if(!showFocus) {
871
+ lastfx = grad.getAttribute('fx');
872
+ lastfy = grad.getAttribute('fy');
873
+ grad.removeAttribute('fx');
874
+ grad.removeAttribute('fy');
875
+ } else {
876
+ var fx = lastfx || .5;
877
+ var fy = lastfy || .5;
878
+ grad.setAttribute('fx', fx);
879
+ grad.setAttribute('fy', fy);
880
+ attr_input.fx.val(fx);
881
+ attr_input.fy.val(fy);
882
+ }
883
+ });
884
+
885
+ var stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
886
+ var numstops = stops.length;
887
+ // if there are not at least two stops, then
888
+ if (numstops < 2) {
889
+ while (numstops < 2) {
890
+ curGradient.appendChild( document.createElementNS(ns.svg, 'stop') );
891
+ ++numstops;
892
+ }
893
+ stops = curGradient.getElementsByTagNameNS(ns.svg, 'stop');
894
+ }
895
+
896
+ var slider;
897
+
898
+ var setSlider = function(e) {
899
+ var offset = slider.offset;
900
+ var div = slider.parent;
901
+ var x = (e.pageX - offset.left - parseInt(div.css('border-left-width')));
902
+ if (x > SLIDERW) x = SLIDERW;
903
+ if (x <= 0) x = 0;
904
+ var posx = x - 5;
905
+ x /= SLIDERW;
906
+
907
+ switch ( slider.type ) {
908
+ case 'radius':
909
+ x = Math.pow(x * 2, 2.5);
910
+ if(x > .98 && x < 1.02) x = 1;
911
+ if (x <= .01) x = .01;
912
+ curGradient.setAttribute('r', x);
913
+ break;
914
+ case 'opacity':
915
+ $this.paint.alpha = parseInt(x*100);
916
+ previewRect.setAttribute('fill-opacity', x);
917
+ break;
918
+ case 'ellip':
919
+ scale_x = 1, scale_y = 1;
920
+ if(x < .5) {
921
+ x /= .5; // 0.001
922
+ scale_x = x <= 0 ? .01 : x;
923
+ } else if(x > .5) {
924
+ x /= .5; // 2
925
+ x = 2 - x;
926
+ scale_y = x <= 0 ? .01 : x;
927
+ }
928
+ xform();
929
+ x -= 1;
930
+ if(scale_y === x + 1) {
931
+ x = Math.abs(x);
932
+ }
933
+ break;
934
+ case 'angle':
935
+ x = x - .5;
936
+ angle = x *= 180;
937
+ xform();
938
+ x /= 100;
939
+ break;
940
+ }
941
+ slider.elem.css({'margin-left':posx});
942
+ x = Math.round(x*100);
943
+ slider.input.val(x);
944
+ };
945
+
946
+ var ellip_val = 0, angle_val = 0;
947
+
948
+ if(curType === 'radialGradient') {
949
+ var tlist = curGradient.gradientTransform.baseVal;
950
+ if(tlist.numberOfItems === 2) {
951
+ var t = tlist.getItem(0);
952
+ var s = tlist.getItem(1);
953
+ if(t.type === 2 && s.type === 3) {
954
+ var m = s.matrix;
955
+ if(m.a !== 1) {
956
+ ellip_val = Math.round(-(1 - m.a) * 100);
957
+ } else if(m.d !== 1) {
958
+ ellip_val = Math.round((1 - m.d) * 100);
959
+ }
960
+ }
961
+ } else if(tlist.numberOfItems === 3) {
962
+ // Assume [R][T][S]
963
+ var r = tlist.getItem(0);
964
+ var t = tlist.getItem(1);
965
+ var s = tlist.getItem(2);
966
+
967
+ if(r.type === 4
968
+ && t.type === 2
969
+ && s.type === 3) {
970
+
971
+ angle_val = Math.round(r.angle);
972
+ var m = s.matrix;
973
+ if(m.a !== 1) {
974
+ ellip_val = Math.round(-(1 - m.a) * 100);
975
+ } else if(m.d !== 1) {
976
+ ellip_val = Math.round((1 - m.d) * 100);
977
+ }
978
+
979
+ }
980
+ }
981
+ }
982
+
983
+ var sliders = {
984
+ radius: {
985
+ handle: '#' + id + '_jGraduate_RadiusArrows',
986
+ input: '#' + id + '_jGraduate_RadiusInput',
987
+ val: (curGradient.getAttribute('r') || .5) * 100
988
+ },
989
+ opacity: {
990
+ handle: '#' + id + '_jGraduate_OpacArrows',
991
+ input: '#' + id + '_jGraduate_OpacInput',
992
+ val: $this.paint.alpha || 100
993
+ },
994
+ ellip: {
995
+ handle: '#' + id + '_jGraduate_EllipArrows',
996
+ input: '#' + id + '_jGraduate_EllipInput',
997
+ val: ellip_val
998
+ },
999
+ angle: {
1000
+ handle: '#' + id + '_jGraduate_AngleArrows',
1001
+ input: '#' + id + '_jGraduate_AngleInput',
1002
+ val: angle_val
1003
+ }
1004
+ }
1005
+
1006
+ $.each(sliders, function(type, data) {
1007
+ var handle = $(data.handle);
1008
+ handle.mousedown(function(evt) {
1009
+ var parent = handle.parent();
1010
+ slider = {
1011
+ type: type,
1012
+ elem: handle,
1013
+ input: $(data.input),
1014
+ parent: parent,
1015
+ offset: parent.offset()
1016
+ };
1017
+ $win.mousemove(dragSlider).mouseup(stopSlider);
1018
+ evt.preventDefault();
1019
+ });
1020
+
1021
+ $(data.input).val(data.val).change(function() {
1022
+ var val = +this.value;
1023
+ var xpos = 0;
1024
+ var isRad = curType === 'radialGradient';
1025
+ switch ( type ) {
1026
+ case 'radius':
1027
+ if(isRad) curGradient.setAttribute('r', val / 100);
1028
+ xpos = (Math.pow(val / 100, 1 / 2.5) / 2) * SLIDERW;
1029
+ break;
1030
+
1031
+ case 'opacity':
1032
+ $this.paint.alpha = val;
1033
+ previewRect.setAttribute('fill-opacity', val / 100);
1034
+ xpos = val * (SLIDERW / 100);
1035
+ break;
1036
+
1037
+ case 'ellip':
1038
+ scale_x = scale_y = 1;
1039
+ if(val === 0) {
1040
+ xpos = SLIDERW * .5;
1041
+ break;
1042
+ }
1043
+ if(val > 99.5) val = 99.5;
1044
+ if(val > 0) {
1045
+ scale_y = 1 - (val / 100);
1046
+ } else {
1047
+ scale_x = - (val / 100) - 1;
1048
+ }
1049
+
1050
+ xpos = SLIDERW * ((val + 100) / 2) / 100;
1051
+ if(isRad) xform();
1052
+ break;
1053
+
1054
+ case 'angle':
1055
+ angle = val;
1056
+ xpos = angle / 180;
1057
+ xpos += .5;
1058
+ xpos *= SLIDERW;
1059
+ if(isRad) xform();
1060
+ }
1061
+ if(xpos > SLIDERW) {
1062
+ xpos = SLIDERW;
1063
+ } else if(xpos < 0) {
1064
+ xpos = 0;
1065
+ }
1066
+ handle.css({'margin-left': xpos - 5});
1067
+ }).change();
1068
+ });
1069
+
1070
+ var dragSlider = function(evt) {
1071
+ setSlider(evt);
1072
+ evt.preventDefault();
1073
+ };
1074
+
1075
+ var stopSlider = function(evt) {
1076
+ $win.unbind('mousemove', dragSlider).unbind('mouseup', stopSlider);
1077
+ slider = null;
1078
+ };
1079
+
1080
+
1081
+ // --------------
1082
+ var thisAlpha = ($this.paint.alpha*255/100).toString(16);
1083
+ while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; }
1084
+ thisAlpha = thisAlpha.split(".")[0];
1085
+ color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha;
1086
+
1087
+ if(!isSolid) {
1088
+ color = stops[0].getAttribute('stop-color');
1089
+ }
1090
+
1091
+ // This should be done somewhere else, probably
1092
+ $.extend($.fn.jPicker.defaults.window, {
1093
+ alphaSupport: true, effects: {type: 'show',speed: 0}
1094
+ });
1095
+
1096
+ colPicker.jPicker(
1097
+ {
1098
+ window: { title: $settings.window.pickerTitle },
1099
+ images: { clientPath: $settings.images.clientPath },
1100
+ color: { active: color, alphaSupport: true }
1101
+ },
1102
+ function(color) {
1103
+ $this.paint.type = "solidColor";
1104
+ $this.paint.alpha = color.val('ahex') ? Math.round((color.val('a') / 255) * 100) : 100;
1105
+ $this.paint.solidColor = color.val('hex') ? color.val('hex') : "none";
1106
+ $this.paint.radialGradient = null;
1107
+ okClicked();
1108
+ },
1109
+ null,
1110
+ function(){ cancelClicked(); }
1111
+ );
1112
+
1113
+
1114
+ var tabs = $(idref + ' .jGraduate_tabs li');
1115
+ tabs.click(function() {
1116
+ tabs.removeClass('jGraduate_tab_current');
1117
+ $(this).addClass('jGraduate_tab_current');
1118
+ $(idref + " > div").hide();
1119
+ var type = $(this).attr('data-type');
1120
+ var container = $(idref + ' .jGraduate_gradPick').show();
1121
+ if(type === 'rg' || type === 'lg') {
1122
+ // Show/hide appropriate fields
1123
+ $('.jGraduate_' + type + '_field').show();
1124
+ $('.jGraduate_' + (type === 'lg' ? 'rg' : 'lg') + '_field').hide();
1125
+
1126
+ $('#' + id + '_jgraduate_rect')[0].setAttribute('fill', 'url(#' + id + '_' + type + '_jgraduate_grad)');
1127
+
1128
+ // Copy stops
1129
+
1130
+ curType = type === 'lg' ? 'linearGradient' : 'radialGradient';
1131
+
1132
+ $('#' + id + '_jGraduate_OpacInput').val($this.paint.alpha).change();
1133
+
1134
+ var newGrad = $('#' + id + '_' + type + '_jgraduate_grad')[0];
1135
+
1136
+ if(curGradient !== newGrad) {
1137
+ var cur_stops = $(curGradient).find('stop');
1138
+ $(newGrad).empty().append(cur_stops);
1139
+ curGradient = newGrad;
1140
+ var sm = spreadMethodOpt.val();
1141
+ curGradient.setAttribute('spreadMethod', sm);
1142
+ }
1143
+ showFocus = type === 'rg' && curGradient.getAttribute('fx') != null && !(cx == fx && cy == fy);
1144
+ $('#' + id + '_jGraduate_focusCoord').toggle(showFocus);
1145
+ if(showFocus) {
1146
+ $('#' + id + '_jGraduate_match_ctr')[0].checked = false;
1147
+ }
1148
+ } else {
1149
+ $(idref + ' .jGraduate_gradPick').hide();
1150
+ $(idref + ' .jGraduate_colPick').show();
1151
+ }
1152
+ });
1153
+ $(idref + " > div").hide();
1154
+ tabs.removeClass('jGraduate_tab_current');
1155
+ var tab;
1156
+ switch ( $this.paint.type ) {
1157
+ case 'linearGradient':
1158
+ tab = $(idref + ' .jGraduate_tab_lingrad');
1159
+ break;
1160
+ case 'radialGradient':
1161
+ tab = $(idref + ' .jGraduate_tab_radgrad');
1162
+ break;
1163
+ default:
1164
+ tab = $(idref + ' .jGraduate_tab_color');
1165
+ break;
1166
+ }
1167
+ $this.show();
1168
+
1169
+ // jPicker will try to show after a 0ms timeout, so need to fire this after that
1170
+ setTimeout(function() {
1171
+ tab.addClass('jGraduate_tab_current').click();
1172
+ }, 10);
1173
+ });
1174
+ };
1175
+ })();