cyberweb 0.4.174

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of cyberweb might be problematic. Click here for more details.

Files changed (573) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3259 -0
  3. data/bin/cyberweb +27 -0
  4. data/cyberweb.gemspec +119 -0
  5. data/doc/AUTHORS.md +12 -0
  6. data/doc/CONVENTIONS.md +7 -0
  7. data/doc/CYBERWEB_TUTORIAL.cgi +43 -0
  8. data/doc/DOCUMENTATION_FOR_CYBERSPRAWL.md +50 -0
  9. data/doc/FUTURE_DESIGN_GOAL_CONSIDERATIONS.md +13 -0
  10. data/doc/JQUERY.md +122 -0
  11. data/doc/MOUSE.md +80 -0
  12. data/doc/README.gen +3231 -0
  13. data/doc/RENDER_WEB_BASE.md +46 -0
  14. data/doc/USAGE.md +246 -0
  15. data/doc/configuration/configuration.md +23 -0
  16. data/doc/deprecations.md +32 -0
  17. data/doc/html_characters.md +15 -0
  18. data/doc/todo/TODO_FOR_THE_CYBERWEB_PROJECT.md +1089 -0
  19. data/examples/README.md +4 -0
  20. data/examples/advanced/delayed_update_of_the_body_via_javascript.cgi +38 -0
  21. data/examples/advanced/hybrid_experiment.cgi +108 -0
  22. data/examples/advanced/larger_image_on_mouse_over_example.cgi +35 -0
  23. data/examples/advanced/no_right_click.cgi +26 -0
  24. data/examples/advanced/objectified_html_tags.cgi +35 -0
  25. data/examples/advanced/simple_calculator.cgi +42 -0
  26. data/examples/advanced/simple_form_example.cgi +38 -0
  27. data/examples/css/blue_border.html +28 -0
  28. data/examples/css/caret_colour_example.html +22 -0
  29. data/examples/css/css_border_spacing_example.html +69 -0
  30. data/examples/css/css_bubbles.html +43 -0
  31. data/examples/css/css_clock.html +344 -0
  32. data/examples/css/css_drag_and_drop.html +89 -0
  33. data/examples/css/css_neon_glow_effects.html +317 -0
  34. data/examples/css/css_text_decoration_example.html +70 -0
  35. data/examples/css/css_tooltip.html +44 -0
  36. data/examples/css/fade_in_and_fade_out_effect.html +66 -0
  37. data/examples/css/font_size_examples.html +40 -0
  38. data/examples/css/letter_spacing_example.cgi +36 -0
  39. data/examples/css/meter_example.html +31 -0
  40. data/examples/css/on_mouse_button_pressed.html +41 -0
  41. data/examples/css/planets.html +187 -0
  42. data/examples/css/scale_example.html +25 -0
  43. data/examples/css/shadow_example_in_CSS.cgi +30 -0
  44. data/examples/css/sticky_div_example.html +56 -0
  45. data/examples/css/stitched_div.html +36 -0
  46. data/examples/csv/README.md +1 -0
  47. data/examples/csv/sample.csv +10 -0
  48. data/examples/example1.rb +7 -0
  49. data/examples/flip_card_example/flip_card_example.html +72 -0
  50. data/examples/frames/frame_left.html +1 -0
  51. data/examples/frames/frame_right.html +1 -0
  52. data/examples/html/README.md +1 -0
  53. data/examples/html/abbr_example.html +25 -0
  54. data/examples/html/base64_image_example.html +26 -0
  55. data/examples/html/colour_wheel.html +1389 -0
  56. data/examples/html/column_width_example.html +34 -0
  57. data/examples/html/custom_cursor.html +103 -0
  58. data/examples/html/draggable_paragraph.html +12 -0
  59. data/examples/html/fieldset_example.html +25 -0
  60. data/examples/html/frames_example.html +7 -0
  61. data/examples/html/glyph_example.html +43 -0
  62. data/examples/html/hbox_and_vbox_example.html +65 -0
  63. data/examples/html/href_examples.html +27 -0
  64. data/examples/html/input_autofocus_example.html +16 -0
  65. data/examples/html/larger_image_on_mouse_over_example.html +30 -0
  66. data/examples/html/ordered_and_unordered_bulletsin.html +33 -0
  67. data/examples/html/play_video_example.html +13 -0
  68. data/examples/html/readonly_textarea_example.html +23 -0
  69. data/examples/html/remote_image_example.html +10 -0
  70. data/examples/html/simple_unordered_list.html +16 -0
  71. data/examples/html/table_with_header_example.html +27 -0
  72. data/examples/html/two_columns_flex_example.html +39 -0
  73. data/examples/javascript/README.md +2 -0
  74. data/examples/javascript/arrays/arrays_example_in_javascript.html +16 -0
  75. data/examples/javascript/delay_example/delay_example.html +46 -0
  76. data/examples/javascript/drag_support/drag_support.html +37 -0
  77. data/examples/javascript/jquery_drag_and_drop/drag_and_drop_image_example.html +33 -0
  78. data/examples/javascript/on_click_event_hello_world/on_click_event_hello_world.html +21 -0
  79. data/examples/javascript/rgb_to_hex/rgb_to_hex.html +15 -0
  80. data/examples/javascript/screen_resolution/screen_resolution.html +20 -0
  81. data/examples/javascript/select_everything/select_everything.html +14 -0
  82. data/examples/javascript/write_into_a_file/write_into_a_file.html +39 -0
  83. data/examples/rack/README.md +4 -0
  84. data/examples/rack/example_with_html_template.rb +123 -0
  85. data/examples/rack/example_with_rack_and_cyberweb_showing_how_to_use_images.rb +56 -0
  86. data/examples/rack/hello_world_example_with_rack.rb +45 -0
  87. data/examples/rack/lobster.rb +79 -0
  88. data/examples/rack/rack_env.rb +10 -0
  89. data/examples/rack/standalone_example.rb +26 -0
  90. data/examples/show_greek_letters.rb +3 -0
  91. data/examples/simple/on_click_event_hello_world.cgi +34 -0
  92. data/examples/sinatra/001_your_ip_address_is.rb +8 -0
  93. data/examples/sinatra/002_the_request_object.rb +16 -0
  94. data/examples/sinatra/003_hello_world_example.rb +82 -0
  95. data/examples/sinatra/004_splat_example.rb +10 -0
  96. data/examples/sinatra/005_attachment_example.rb +11 -0
  97. data/examples/sinatra/006_outer_self_example.rb +8 -0
  98. data/examples/sinatra/007_mime_type_example.rb +17 -0
  99. data/examples/sinatra/008_post_example.rb +55 -0
  100. data/examples/table_example.rb +37 -0
  101. data/images/cyberweb_favicon.png +0 -0
  102. data/images/cyberweb_logo.png +0 -0
  103. data/images/cyberweb_theme.png +0 -0
  104. data/lib/cyberweb/and_sinatra_base.rb +9 -0
  105. data/lib/cyberweb/autoinclude.rb +20 -0
  106. data/lib/cyberweb/autoinclude_webobject.rb +14 -0
  107. data/lib/cyberweb/base/base.rb +41 -0
  108. data/lib/cyberweb/base/colours.rb +69 -0
  109. data/lib/cyberweb/base/constants.rb +18 -0
  110. data/lib/cyberweb/base/encoding.rb +19 -0
  111. data/lib/cyberweb/base/misc.rb +239 -0
  112. data/lib/cyberweb/base/reset.rb +23 -0
  113. data/lib/cyberweb/base/save_file.rb +22 -0
  114. data/lib/cyberweb/cascading_style_sheets/README.md +4 -0
  115. data/lib/cyberweb/cascading_style_sheets/admonition.css +33 -0
  116. data/lib/cyberweb/cascading_style_sheets/balloon.css +344 -0
  117. data/lib/cyberweb/cascading_style_sheets/border.css +202 -0
  118. data/lib/cyberweb/cascading_style_sheets/code.css +58 -0
  119. data/lib/cyberweb/cascading_style_sheets/colours.css +476 -0
  120. data/lib/cyberweb/cascading_style_sheets/default.css +1836 -0
  121. data/lib/cyberweb/cascading_style_sheets/div.css +26 -0
  122. data/lib/cyberweb/cascading_style_sheets/fonts.css +365 -0
  123. data/lib/cyberweb/cascading_style_sheets/links.css +207 -0
  124. data/lib/cyberweb/cascading_style_sheets/margin.css +677 -0
  125. data/lib/cyberweb/cascading_style_sheets/menu.css +37 -0
  126. data/lib/cyberweb/cascading_style_sheets/message_boxes.css +48 -0
  127. data/lib/cyberweb/cascading_style_sheets/misc.css +162 -0
  128. data/lib/cyberweb/cascading_style_sheets/popup.css +63 -0
  129. data/lib/cyberweb/cascading_style_sheets/rpg.css +51 -0
  130. data/lib/cyberweb/cascading_style_sheets/ruby_regexes.css +33 -0
  131. data/lib/cyberweb/cascading_style_sheets/template2.css +18 -0
  132. data/lib/cyberweb/cascading_style_sheets/text_shadow.css +19 -0
  133. data/lib/cyberweb/cascading_style_sheets/tooltip.css +36 -0
  134. data/lib/cyberweb/cgi/README.md +6 -0
  135. data/lib/cyberweb/cgi/cgi.rb +340 -0
  136. data/lib/cyberweb/cgi/constants.rb +121 -0
  137. data/lib/cyberweb/cgi/cookie.rb +218 -0
  138. data/lib/cyberweb/cgi/core.rb +638 -0
  139. data/lib/cyberweb/cgi/exceptions.rb +223 -0
  140. data/lib/cyberweb/cgi/html.rb +1025 -0
  141. data/lib/cyberweb/cgi/mod_ruby_exception_printer.rb +40 -0
  142. data/lib/cyberweb/cgi/query_extension.rb +431 -0
  143. data/lib/cyberweb/cgi/session/file_store.rb +131 -0
  144. data/lib/cyberweb/cgi/session/memory_store.rb +90 -0
  145. data/lib/cyberweb/cgi/session/pstore.rb +127 -0
  146. data/lib/cyberweb/cgi/session.rb +444 -0
  147. data/lib/cyberweb/cgi/tag_maker.rb +94 -0
  148. data/lib/cyberweb/cgi/util.rb +239 -0
  149. data/lib/cyberweb/charts/README.md +2 -0
  150. data/lib/cyberweb/charts/google_charts.rb +51 -0
  151. data/lib/cyberweb/classes/simple_form.rb +55 -0
  152. data/lib/cyberweb/classes/tooltips.rb +169 -0
  153. data/lib/cyberweb/coloured_tags/coloured_tags.rb +3099 -0
  154. data/lib/cyberweb/colours/colour_chart.rb +117 -0
  155. data/lib/cyberweb/colours/colours.rb +50 -0
  156. data/lib/cyberweb/colours/random_colour.rb +28 -0
  157. data/lib/cyberweb/colours/sanitize_for_colours.rb +95 -0
  158. data/lib/cyberweb/commandline/commandline_interface.rb +49 -0
  159. data/lib/cyberweb/configuration/configuration.rb +66 -0
  160. data/lib/cyberweb/configuration/load_the_configuration_file.rb +73 -0
  161. data/lib/cyberweb/constants/array_images.rb +21 -0
  162. data/lib/cyberweb/constants/array_local_css_files.rb +35 -0
  163. data/lib/cyberweb/constants/array_predefined_constants.rb +23 -0
  164. data/lib/cyberweb/constants/configuration_file.rb +33 -0
  165. data/lib/cyberweb/constants/constants.rb +9 -0
  166. data/lib/cyberweb/constants/file_constants.rb +16 -0
  167. data/lib/cyberweb/constants/http_status_codes.rb +42 -0
  168. data/lib/cyberweb/constants/nl.rb +22 -0
  169. data/lib/cyberweb/constants/project_constants.rb +99 -0
  170. data/lib/cyberweb/constants/roebe.rb +28 -0
  171. data/lib/cyberweb/constants/standalone_constants.rb +309 -0
  172. data/lib/cyberweb/controller/README.md +4 -0
  173. data/lib/cyberweb/controller/webobject_controller.rb +50 -0
  174. data/lib/cyberweb/csv/README.md +2 -0
  175. data/lib/cyberweb/csv/csv.rb +58 -0
  176. data/lib/cyberweb/cybersprawl +1 -0
  177. data/lib/cyberweb/debug/debug.rb +69 -0
  178. data/lib/cyberweb/encoding/encoding.rb +84 -0
  179. data/lib/cyberweb/erb/test.rhtml +81 -0
  180. data/lib/cyberweb/erb/test_template.erb +9 -0
  181. data/lib/cyberweb/evaluate_from_the_same_named_file_then_serve.rb +9 -0
  182. data/lib/cyberweb/favicon/favicon.rb +196 -0
  183. data/lib/cyberweb/generator/README.md +2 -0
  184. data/lib/cyberweb/generator/cgi.rb +201 -0
  185. data/lib/cyberweb/generator/class.rb +25 -0
  186. data/lib/cyberweb/generator/static_webpage.rb +162 -0
  187. data/lib/cyberweb/generator/webpage_for_images.rb +553 -0
  188. data/lib/cyberweb/help/help.rb +29 -0
  189. data/lib/cyberweb/html_codes/README.md +15 -0
  190. data/lib/cyberweb/html_codes/greek_letters.rb +204 -0
  191. data/lib/cyberweb/html_tags/README.md +3 -0
  192. data/lib/cyberweb/html_tags/a.rb +65 -0
  193. data/lib/cyberweb/html_tags/accesskey.rb +25 -0
  194. data/lib/cyberweb/html_tags/blockquote.rb +56 -0
  195. data/lib/cyberweb/html_tags/body.rb +14 -0
  196. data/lib/cyberweb/html_tags/br.rb +19 -0
  197. data/lib/cyberweb/html_tags/button.rb +110 -0
  198. data/lib/cyberweb/html_tags/canvas.rb +59 -0
  199. data/lib/cyberweb/html_tags/chtml.rb +14 -0
  200. data/lib/cyberweb/html_tags/div.rb +163 -0
  201. data/lib/cyberweb/html_tags/fieldset.rb +67 -0
  202. data/lib/cyberweb/html_tags/figure.rb +72 -0
  203. data/lib/cyberweb/html_tags/form.rb +203 -0
  204. data/lib/cyberweb/html_tags/h1.rb +75 -0
  205. data/lib/cyberweb/html_tags/h2.rb +73 -0
  206. data/lib/cyberweb/html_tags/h3.rb +58 -0
  207. data/lib/cyberweb/html_tags/h4.rb +60 -0
  208. data/lib/cyberweb/html_tags/h5.rb +54 -0
  209. data/lib/cyberweb/html_tags/h6.rb +54 -0
  210. data/lib/cyberweb/html_tags/hr.rb +22 -0
  211. data/lib/cyberweb/html_tags/html_tags.rb +240 -0
  212. data/lib/cyberweb/html_tags/i.rb +50 -0
  213. data/lib/cyberweb/html_tags/img.rb +294 -0
  214. data/lib/cyberweb/html_tags/input.rb +345 -0
  215. data/lib/cyberweb/html_tags/label.rb +63 -0
  216. data/lib/cyberweb/html_tags/legend.rb +56 -0
  217. data/lib/cyberweb/html_tags/li.rb +67 -0
  218. data/lib/cyberweb/html_tags/map.rb +31 -0
  219. data/lib/cyberweb/html_tags/nav.rb +63 -0
  220. data/lib/cyberweb/html_tags/object.rb +56 -0
  221. data/lib/cyberweb/html_tags/ol.rb +56 -0
  222. data/lib/cyberweb/html_tags/option.rb +61 -0
  223. data/lib/cyberweb/html_tags/p.rb +90 -0
  224. data/lib/cyberweb/html_tags/pre.rb +164 -0
  225. data/lib/cyberweb/html_tags/section.rb +33 -0
  226. data/lib/cyberweb/html_tags/select.rb +100 -0
  227. data/lib/cyberweb/html_tags/span.rb +338 -0
  228. data/lib/cyberweb/html_tags/strong.rb +39 -0
  229. data/lib/cyberweb/html_tags/table.rb +273 -0
  230. data/lib/cyberweb/html_tags/tbody.rb +24 -0
  231. data/lib/cyberweb/html_tags/td.rb +214 -0
  232. data/lib/cyberweb/html_tags/textarea.rb +138 -0
  233. data/lib/cyberweb/html_tags/th.rb +68 -0
  234. data/lib/cyberweb/html_tags/thead.rb +36 -0
  235. data/lib/cyberweb/html_tags/tr.rb +97 -0
  236. data/lib/cyberweb/html_tags/ul.rb +51 -0
  237. data/lib/cyberweb/html_template/html_template.rb +352 -0
  238. data/lib/cyberweb/images/embed_this_image.rb +37 -0
  239. data/lib/cyberweb/images/images.rb +58 -0
  240. data/lib/cyberweb/images/is_image.rb +22 -0
  241. data/lib/cyberweb/images/path_to_images.rb +60 -0
  242. data/lib/cyberweb/images/real/README.md +6 -0
  243. data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +44 -0
  244. data/lib/cyberweb/images/standalone_drag_and_drop_this_image.rb +64 -0
  245. data/lib/cyberweb/images/string_image.rb +399 -0
  246. data/lib/cyberweb/images_base64_encoded/AUSRUFUNGSZEICHEN.png.md +1 -0
  247. data/lib/cyberweb/images_base64_encoded/BLUEARROW.png.md +1 -0
  248. data/lib/cyberweb/images_base64_encoded/BUBBLE.png.md +1 -0
  249. data/lib/cyberweb/images_base64_encoded/CAT.png.md +1 -0
  250. data/lib/cyberweb/images_base64_encoded/CAUTION.png.md +1 -0
  251. data/lib/cyberweb/images_base64_encoded/CHEERING_PERSON.png.md +1 -0
  252. data/lib/cyberweb/images_base64_encoded/CURSOR.png.md +1 -0
  253. data/lib/cyberweb/images_base64_encoded/DOT_01.png.md +5 -0
  254. data/lib/cyberweb/images_base64_encoded/DUCKY.png.md +1 -0
  255. data/lib/cyberweb/images_base64_encoded/ELEPHANT.png.md +1 -0
  256. data/lib/cyberweb/images_base64_encoded/HALLOWEEN.png.md +1 -0
  257. data/lib/cyberweb/images_base64_encoded/HANGING_MONKEY.png.md +1 -0
  258. data/lib/cyberweb/images_base64_encoded/LENS.png.md +1 -0
  259. data/lib/cyberweb/images_base64_encoded/README.md +2 -0
  260. data/lib/cyberweb/images_base64_encoded/TU_WIEN_LOGO.png.md +1 -0
  261. data/lib/cyberweb/images_base64_encoded/VOGEL.png.md +1 -0
  262. data/lib/cyberweb/io/README.md +1 -0
  263. data/lib/cyberweb/io/io.rb +19 -0
  264. data/lib/cyberweb/javascript/drag_and_drop.rb +105 -0
  265. data/lib/cyberweb/javascript/dragula_collection.rb +54 -0
  266. data/lib/cyberweb/javascript/javascript.rb +211 -0
  267. data/lib/cyberweb/javascript/javascript_bundle.rb +223 -0
  268. data/lib/cyberweb/javascript/javascript_clock.rb +69 -0
  269. data/lib/cyberweb/javascript/javascript_last_modified.rb +27 -0
  270. data/lib/cyberweb/javascript/javascript_magic.rb +150 -0
  271. data/lib/cyberweb/javascript/javascript_selectable.rb +24 -0
  272. data/lib/cyberweb/javascript/jquery.rb +30 -0
  273. data/lib/cyberweb/javascript/on_click_change_opacity.rb +97 -0
  274. data/lib/cyberweb/javascript/on_click_hide.rb +63 -0
  275. data/lib/cyberweb/javascript/popup.rb +80 -0
  276. data/lib/cyberweb/javascript/print_javascript.rb +33 -0
  277. data/lib/cyberweb/javascript/registered_javascript_methods.rb +30 -0
  278. data/lib/cyberweb/javascript/resize.rb +28 -0
  279. data/lib/cyberweb/javascript/return_javascript.rb +48 -0
  280. data/lib/cyberweb/javascript/scroll.rb +17 -0
  281. data/lib/cyberweb/javascript/snoweffect.rb +122 -0
  282. data/lib/cyberweb/javascript_code/README.md +6 -0
  283. data/lib/cyberweb/javascript_code/chmod_displayer.js +74 -0
  284. data/lib/cyberweb/javascript_code/custom_functions.js +267 -0
  285. data/lib/cyberweb/javascript_code/jquery/jquery-3.6.0.js +10881 -0
  286. data/lib/cyberweb/javascript_code/jquery/jquery-ui-1.12.1.js +18706 -0
  287. data/lib/cyberweb/javascript_code/rgb_to_hex.js +14 -0
  288. data/lib/cyberweb/javascript_code/select_even_numbers.js +7 -0
  289. data/lib/cyberweb/javascript_code/select_everything.js +22 -0
  290. data/lib/cyberweb/javascript_code/simple_calculator.js +15 -0
  291. data/lib/cyberweb/javascript_code/sleep.js +3 -0
  292. data/lib/cyberweb/javascript_code/to_celsius.js +8 -0
  293. data/lib/cyberweb/mouse/README.md +3 -0
  294. data/lib/cyberweb/mouse/libxdo.rb +321 -0
  295. data/lib/cyberweb/mouse/mouse.rb +264 -0
  296. data/lib/cyberweb/objectified_html_tags/README.md +8 -0
  297. data/lib/cyberweb/objectified_html_tags/a.rb +129 -0
  298. data/lib/cyberweb/objectified_html_tags/abbr.rb +84 -0
  299. data/lib/cyberweb/objectified_html_tags/base.rb +376 -0
  300. data/lib/cyberweb/objectified_html_tags/button.rb +135 -0
  301. data/lib/cyberweb/objectified_html_tags/combobox.rb +165 -0
  302. data/lib/cyberweb/objectified_html_tags/div.rb +129 -0
  303. data/lib/cyberweb/objectified_html_tags/embed.rb +161 -0
  304. data/lib/cyberweb/objectified_html_tags/form.rb +129 -0
  305. data/lib/cyberweb/objectified_html_tags/h1.rb +129 -0
  306. data/lib/cyberweb/objectified_html_tags/h2.rb +129 -0
  307. data/lib/cyberweb/objectified_html_tags/h3.rb +129 -0
  308. data/lib/cyberweb/objectified_html_tags/h4.rb +129 -0
  309. data/lib/cyberweb/objectified_html_tags/h5.rb +129 -0
  310. data/lib/cyberweb/objectified_html_tags/h6.rb +129 -0
  311. data/lib/cyberweb/objectified_html_tags/hbox.rb +71 -0
  312. data/lib/cyberweb/objectified_html_tags/img.rb +202 -0
  313. data/lib/cyberweb/objectified_html_tags/input.rb +185 -0
  314. data/lib/cyberweb/objectified_html_tags/p.rb +129 -0
  315. data/lib/cyberweb/objectified_html_tags/pre.rb +129 -0
  316. data/lib/cyberweb/objectified_html_tags/span.rb +92 -0
  317. data/lib/cyberweb/objectified_html_tags/table.rb +174 -0
  318. data/lib/cyberweb/objectified_html_tags/textarea.rb +173 -0
  319. data/lib/cyberweb/objectified_html_tags/title.rb +82 -0
  320. data/lib/cyberweb/objectified_html_tags/window.rb +79 -0
  321. data/lib/cyberweb/predefined_and_freeform_methods/README.md +1 -0
  322. data/lib/cyberweb/predefined_and_freeform_methods/frage.rb +45 -0
  323. data/lib/cyberweb/predefined_and_freeform_methods/freeform_methods.rb +93 -0
  324. data/lib/cyberweb/predefined_and_freeform_methods/hash_css_class_to_use.rb +55 -0
  325. data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +29 -0
  326. data/lib/cyberweb/predefined_and_freeform_methods/header.rb +81 -0
  327. data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +413 -0
  328. data/lib/cyberweb/project/project.rb +85 -0
  329. data/lib/cyberweb/rack/README.md +1 -0
  330. data/lib/cyberweb/rack/request.rb +31 -0
  331. data/lib/cyberweb/requires/README.md +4 -0
  332. data/lib/cyberweb/requires/do_require_web_object_files.rb +9 -0
  333. data/lib/cyberweb/requires/remove_html.rb +9 -0
  334. data/lib/cyberweb/requires/require_cgi.rb +16 -0
  335. data/lib/cyberweb/requires/require_charts.rb +20 -0
  336. data/lib/cyberweb/requires/require_generators.rb +23 -0
  337. data/lib/cyberweb/requires/require_html_tags_files.rb +23 -0
  338. data/lib/cyberweb/requires/require_javascript_files.rb +23 -0
  339. data/lib/cyberweb/requires/require_kimurai.rb +13 -0
  340. data/lib/cyberweb/requires/require_objectified_html_tags_files.rb +23 -0
  341. data/lib/cyberweb/requires/require_sinatra.rb +7 -0
  342. data/lib/cyberweb/requires/require_the_constants.rb +26 -0
  343. data/lib/cyberweb/requires/require_the_cyberweb_project.rb +172 -0
  344. data/lib/cyberweb/requires/require_the_html_template.rb +7 -0
  345. data/lib/cyberweb/requires/require_the_toplevel_methods_files.rb +24 -0
  346. data/lib/cyberweb/requires/require_web_images.rb +7 -0
  347. data/lib/cyberweb/requires/require_web_object_files.rb +25 -0
  348. data/lib/cyberweb/requires/require_yaml.rb +11 -0
  349. data/lib/cyberweb/sinatra/README.md +11 -0
  350. data/lib/cyberweb/sinatra/base.rb +145 -0
  351. data/lib/cyberweb/sinatra/custom_extensions.rb +131 -0
  352. data/lib/cyberweb/standalone_classes/all_css_classes.rb +255 -0
  353. data/lib/cyberweb/standalone_classes/calculator.rb +127 -0
  354. data/lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb +207 -0
  355. data/lib/cyberweb/standalone_classes/input_focus.rb +97 -0
  356. data/lib/cyberweb/standalone_classes/tag_prototype.rb +43 -0
  357. data/lib/cyberweb/standalone_classes/turn_html_into_cyberweb.rb +174 -0
  358. data/lib/cyberweb/svg/blue_rect.svg +12 -0
  359. data/lib/cyberweb/svg/butterfly.svg +15 -0
  360. data/lib/cyberweb/svg/chemical_molecule.svg +192 -0
  361. data/lib/cyberweb/svg/circles_on_background.svg +29 -0
  362. data/lib/cyberweb/svg/ellipse.svg +12 -0
  363. data/lib/cyberweb/svg/five_circles.svg +26 -0
  364. data/lib/cyberweb/svg/flag_germany.svg +10 -0
  365. data/lib/cyberweb/svg/gaussian_blur.svg +20 -0
  366. data/lib/cyberweb/svg/gradient_circle.svg +18 -0
  367. data/lib/cyberweb/svg/green_butterfly.svg +18 -0
  368. data/lib/cyberweb/svg/green_tilted_lines.svg +25 -0
  369. data/lib/cyberweb/svg/lion.svg +161 -0
  370. data/lib/cyberweb/svg/one_circle.svg +12 -0
  371. data/lib/cyberweb/svg/pie_chart.svg +130 -0
  372. data/lib/cyberweb/svg/svg.cgi +61 -0
  373. data/lib/cyberweb/svg/tetris.svg +487 -0
  374. data/lib/cyberweb/svg/three_circles.svg +18 -0
  375. data/lib/cyberweb/svg/tiger.svg +732 -0
  376. data/lib/cyberweb/svg/tilted_arcs.svg +74 -0
  377. data/lib/cyberweb/svg/transparent_rect.svg +12 -0
  378. data/lib/cyberweb/svg/yellow_fe_blending.svg +42 -0
  379. data/lib/cyberweb/toplevel_methods/a.rb +131 -0
  380. data/lib/cyberweb/toplevel_methods/anmerkung.rb +67 -0
  381. data/lib/cyberweb/toplevel_methods/audio.rb +59 -0
  382. data/lib/cyberweb/toplevel_methods/bold.rb +65 -0
  383. data/lib/cyberweb/toplevel_methods/cgi.rb +65 -0
  384. data/lib/cyberweb/toplevel_methods/charsets.rb +52 -0
  385. data/lib/cyberweb/toplevel_methods/clear.rb +30 -0
  386. data/lib/cyberweb/toplevel_methods/close.rb +62 -0
  387. data/lib/cyberweb/toplevel_methods/consider_serving_the_web_object.rb +41 -0
  388. data/lib/cyberweb/toplevel_methods/css.rb +732 -0
  389. data/lib/cyberweb/toplevel_methods/date.rb +71 -0
  390. data/lib/cyberweb/toplevel_methods/dictionary.rb +48 -0
  391. data/lib/cyberweb/toplevel_methods/disable.rb +49 -0
  392. data/lib/cyberweb/toplevel_methods/document.rb +56 -0
  393. data/lib/cyberweb/toplevel_methods/dot.rb +182 -0
  394. data/lib/cyberweb/toplevel_methods/download_webpage.rb +18 -0
  395. data/lib/cyberweb/toplevel_methods/edit_configuration_file.rb +26 -0
  396. data/lib/cyberweb/toplevel_methods/ee.rb +44 -0
  397. data/lib/cyberweb/toplevel_methods/env.rb +44 -0
  398. data/lib/cyberweb/toplevel_methods/escape_html.rb +54 -0
  399. data/lib/cyberweb/toplevel_methods/fields.rb +46 -0
  400. data/lib/cyberweb/toplevel_methods/filename.rb +33 -0
  401. data/lib/cyberweb/toplevel_methods/frames.rb +131 -0
  402. data/lib/cyberweb/toplevel_methods/glob.rb +30 -0
  403. data/lib/cyberweb/toplevel_methods/google.rb +35 -0
  404. data/lib/cyberweb/toplevel_methods/hardware_information.rb +90 -0
  405. data/lib/cyberweb/toplevel_methods/hfin.rb +56 -0
  406. data/lib/cyberweb/toplevel_methods/html_comment.rb +48 -0
  407. data/lib/cyberweb/toplevel_methods/html_mode.rb +39 -0
  408. data/lib/cyberweb/toplevel_methods/html_tables.rb +818 -0
  409. data/lib/cyberweb/toplevel_methods/input.rb +54 -0
  410. data/lib/cyberweb/toplevel_methods/jquery.rb +82 -0
  411. data/lib/cyberweb/toplevel_methods/last_modified.rb +39 -0
  412. data/lib/cyberweb/toplevel_methods/links.rb +426 -0
  413. data/lib/cyberweb/toplevel_methods/listing.rb +96 -0
  414. data/lib/cyberweb/toplevel_methods/localhost.rb +18 -0
  415. data/lib/cyberweb/toplevel_methods/log_directory.rb +84 -0
  416. data/lib/cyberweb/toplevel_methods/logging.rb +42 -0
  417. data/lib/cyberweb/toplevel_methods/logo.rb +30 -0
  418. data/lib/cyberweb/toplevel_methods/markdown.rb +112 -0
  419. data/lib/cyberweb/toplevel_methods/mathml.rb +130 -0
  420. data/lib/cyberweb/toplevel_methods/message_boxes.rb +140 -0
  421. data/lib/cyberweb/toplevel_methods/misc.rb +1398 -0
  422. data/lib/cyberweb/toplevel_methods/name_of_img_dir.rb +51 -0
  423. data/lib/cyberweb/toplevel_methods/padlem_and_marlem.rb +107 -0
  424. data/lib/cyberweb/toplevel_methods/params.rb +57 -0
  425. data/lib/cyberweb/toplevel_methods/path.rb +69 -0
  426. data/lib/cyberweb/toplevel_methods/pdf.rb +103 -0
  427. data/lib/cyberweb/toplevel_methods/process_content.rb +102 -0
  428. data/lib/cyberweb/toplevel_methods/progress.rb +42 -0
  429. data/lib/cyberweb/toplevel_methods/quote.rb +44 -0
  430. data/lib/cyberweb/toplevel_methods/random.rb +70 -0
  431. data/lib/cyberweb/toplevel_methods/rds.rb +35 -0
  432. data/lib/cyberweb/toplevel_methods/read_and_display.rb +284 -0
  433. data/lib/cyberweb/toplevel_methods/readlines.rb +31 -0
  434. data/lib/cyberweb/toplevel_methods/redirect.rb +29 -0
  435. data/lib/cyberweb/toplevel_methods/registered_ids.rb +178 -0
  436. data/lib/cyberweb/toplevel_methods/remove_html.rb +32 -0
  437. data/lib/cyberweb/toplevel_methods/remove_newlines.rb +28 -0
  438. data/lib/cyberweb/toplevel_methods/return_head_start.rb +33 -0
  439. data/lib/cyberweb/toplevel_methods/return_html_fin.rb +34 -0
  440. data/lib/cyberweb/toplevel_methods/return_html_header.rb +35 -0
  441. data/lib/cyberweb/toplevel_methods/return_html_start.rb +24 -0
  442. data/lib/cyberweb/toplevel_methods/return_html_to_head_start.rb +42 -0
  443. data/lib/cyberweb/toplevel_methods/return_meta_collection.rb +54 -0
  444. data/lib/cyberweb/toplevel_methods/return_pwd.rb +23 -0
  445. data/lib/cyberweb/toplevel_methods/return_strict_doctype.rb +51 -0
  446. data/lib/cyberweb/toplevel_methods/roebe.rb +43 -0
  447. data/lib/cyberweb/toplevel_methods/s2.rb +30 -0
  448. data/lib/cyberweb/toplevel_methods/sanitize_url.rb +57 -0
  449. data/lib/cyberweb/toplevel_methods/sbr.rb +170 -0
  450. data/lib/cyberweb/toplevel_methods/server_base_directory.rb +148 -0
  451. data/lib/cyberweb/toplevel_methods/show_and_display.rb +215 -0
  452. data/lib/cyberweb/toplevel_methods/show_configuration.rb +83 -0
  453. data/lib/cyberweb/toplevel_methods/sitemap.rb +111 -0
  454. data/lib/cyberweb/toplevel_methods/spacer.rb +119 -0
  455. data/lib/cyberweb/toplevel_methods/string_body_start.rb +65 -0
  456. data/lib/cyberweb/toplevel_methods/string_content.rb +35 -0
  457. data/lib/cyberweb/toplevel_methods/svg.rb +66 -0
  458. data/lib/cyberweb/toplevel_methods/tag.rb +237 -0
  459. data/lib/cyberweb/toplevel_methods/temp_directory.rb +73 -0
  460. data/lib/cyberweb/toplevel_methods/test_css.rb +24 -0
  461. data/lib/cyberweb/toplevel_methods/textile.rb +45 -0
  462. data/lib/cyberweb/toplevel_methods/title.rb +125 -0
  463. data/lib/cyberweb/toplevel_methods/umlaute.rb +90 -0
  464. data/lib/cyberweb/toplevel_methods/video.rb +352 -0
  465. data/lib/cyberweb/toplevel_methods/view_source.rb +50 -0
  466. data/lib/cyberweb/toplevel_methods/web_object.rb +42 -0
  467. data/lib/cyberweb/toplevel_methods/write_what_into.rb +27 -0
  468. data/lib/cyberweb/utility_scripts/README.md +4 -0
  469. data/lib/cyberweb/utility_scripts/create_coloured_tags.rb +172 -0
  470. data/lib/cyberweb/utility_scripts/download_balloon_css.rb +160 -0
  471. data/lib/cyberweb/utility_scripts/hyperlink_all_images_from.rb +148 -0
  472. data/lib/cyberweb/version/version.rb +25 -0
  473. data/lib/cyberweb/web_base/web_base.rb +28 -0
  474. data/lib/cyberweb/web_images/array_listing_all_project_images.rb +52 -0
  475. data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +1661 -0
  476. data/lib/cyberweb/web_images/web_images.rb +270 -0
  477. data/lib/cyberweb/web_object/css.rb +627 -0
  478. data/lib/cyberweb/web_object/evaluate.rb +126 -0
  479. data/lib/cyberweb/web_object/favicon.rb +160 -0
  480. data/lib/cyberweb/web_object/html_related_tags.rb +320 -0
  481. data/lib/cyberweb/web_object/images.rb +693 -0
  482. data/lib/cyberweb/web_object/initialize.rb +51 -0
  483. data/lib/cyberweb/web_object/input_related_functionality.rb +414 -0
  484. data/lib/cyberweb/web_object/javascript.rb +427 -0
  485. data/lib/cyberweb/web_object/languages.rb +172 -0
  486. data/lib/cyberweb/web_object/links.rb +228 -0
  487. data/lib/cyberweb/web_object/misc.rb +5159 -0
  488. data/lib/cyberweb/web_object/params.rb +289 -0
  489. data/lib/cyberweb/web_object/reset.rb +192 -0
  490. data/lib/cyberweb/web_object/run.rb +44 -0
  491. data/lib/cyberweb/web_object/sinatra_related_functionality.rb +30 -0
  492. data/lib/cyberweb/web_object/sitemap.rb +176 -0
  493. data/lib/cyberweb/web_object/table.rb +378 -0
  494. data/lib/cyberweb/web_object/web_object.rb +126 -0
  495. data/lib/cyberweb/web_scraper/README.md +8 -0
  496. data/lib/cyberweb/web_scraper/scrape_this_url.rb +183 -0
  497. data/lib/cyberweb/webmin/biology_server.cgi +256 -0
  498. data/lib/cyberweb/webmin/calculator.cgi +52 -0
  499. data/lib/cyberweb/webmin/colour_chart.cgi +33 -0
  500. data/lib/cyberweb/webmin/comments.cgi +137 -0
  501. data/lib/cyberweb/webmin/comments_data +18 -0
  502. data/lib/cyberweb/webmin/constants.rb +46 -0
  503. data/lib/cyberweb/webmin/dictionary.cgi +39 -0
  504. data/lib/cyberweb/webmin/sys_info.cgi +26 -0
  505. data/lib/cyberweb/webmin/webforum.cgi +58 -0
  506. data/lib/cyberweb/webmin/webmin.cgi +679 -0
  507. data/lib/cyberweb/yaml/autogenerated_system_settings.yml +14 -0
  508. data/lib/cyberweb/yaml/custom_tags.yml +7 -0
  509. data/lib/cyberweb/yaml/debug.yml +1 -0
  510. data/lib/cyberweb/yaml/html5_global_attributes.yml +12 -0
  511. data/lib/cyberweb/yaml/html5_new_elements.yml +108 -0
  512. data/lib/cyberweb/yaml/html_tag_legend.yml +12 -0
  513. data/lib/cyberweb/yaml/http_status_codes.yml +38 -0
  514. data/lib/cyberweb/yaml/js_files_to_load.yml +28 -0
  515. data/lib/cyberweb/yaml/project_configuration.yml +229 -0
  516. data/lib/cyberweb/yaml/video_attributes.yml +35 -0
  517. data/lib/cyberweb/yaml/web_images.yml +306 -0
  518. data/lib/cyberweb.rb +5 -0
  519. data/test/README.md +5 -0
  520. data/test/complex_tests/all_tests_in_one_page.cgi +666 -0
  521. data/test/complex_tests/simple_sinatra_example_using_cyberweb/simple.rb +60 -0
  522. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.cgi +7 -0
  523. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.rb +23 -0
  524. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.sinatra +65 -0
  525. data/test/complex_tests/testing_frames.cgi +42 -0
  526. data/test/complex_tests/testing_objectified_html_tags.rb +82 -0
  527. data/test/complex_tests/testing_style_variants/README.md +2 -0
  528. data/test/complex_tests/testing_style_variants/show_coloured_boxes.cgi +58 -0
  529. data/test/complex_tests/testing_tables.cgi +67 -0
  530. data/test/complex_tests/testing_the_cyberweb_shell.rb +188 -0
  531. data/test/complex_tests/testing_web_object.rb +94 -0
  532. data/test/css/README.md +5 -0
  533. data/test/css/return_the_content_of_these_css_classes.rb +7 -0
  534. data/test/css/testing_css_effects.cgi +159 -0
  535. data/test/css/testing_css_masking.cgi +36 -0
  536. data/test/dummy.pdf +0 -0
  537. data/test/hello_world/hello_world.cgi +25 -0
  538. data/test/javascript/README.md +2 -0
  539. data/test/javascript/testing_cheerleader_javascript.cgi +0 -0
  540. data/test/javascript/testing_drag_and_drop_support.cgi +33 -0
  541. data/test/javascript/testing_on_click_change_opacity.cgi +26 -0
  542. data/test/javascript/testing_snowflakes.cgi +20 -0
  543. data/test/simple_tests/README.md +3 -0
  544. data/test/simple_tests/ad-hoc-test.cgi +55 -0
  545. data/test/simple_tests/commandline_tests.rb +70 -0
  546. data/test/simple_tests/display_this_file.cgi +11 -0
  547. data/test/simple_tests/simple_html_example.cgi +29 -0
  548. data/test/simple_tests/simple_status_page.cgi +52 -0
  549. data/test/simple_tests/string_s2_test.rb +11 -0
  550. data/test/simple_tests/test_simple_string_as_input.rb +12 -0
  551. data/test/simple_tests/testing_base64_images.cgi +26 -0
  552. data/test/simple_tests/testing_dragging_an_image.cgi +23 -0
  553. data/test/simple_tests/testing_editable_text.cgi +16 -0
  554. data/test/simple_tests/testing_email.cgi +31 -0
  555. data/test/simple_tests/testing_embedding_a_pdf_file.cgi +32 -0
  556. data/test/simple_tests/testing_google_charts.cgi +24 -0
  557. data/test/simple_tests/testing_html_forms.cgi +31 -0
  558. data/test/simple_tests/testing_html_template.rb +13 -0
  559. data/test/simple_tests/testing_popup_div.cgi +22 -0
  560. data/test/simple_tests/testing_return_dataset_without_any_comments.rb +11 -0
  561. data/test/simple_tests/testing_the_cap_box.cgi +20 -0
  562. data/test/simple_tests/testing_the_div_tag.cgi +21 -0
  563. data/test/simple_tests/testing_the_headers_tag.cgi +36 -0
  564. data/test/simple_tests/testing_the_html_colours.cgi +19 -0
  565. data/test/simple_tests/testing_the_info_box.cgi +19 -0
  566. data/test/simple_tests/testing_the_li_tag.cgi +24 -0
  567. data/test/simple_tests/testing_the_s2_method.rb +7 -0
  568. data/test/simple_tests/testing_the_select_tag.cgi +23 -0
  569. data/test/simple_tests/testing_the_span_tag.cgi +36 -0
  570. data/test/simple_tests/testing_web_images.rb +12 -0
  571. data/test/testing_html_tags/README.md +7 -0
  572. data/test/testing_html_tags/button_example.cgi +42 -0
  573. metadata +759 -0
@@ -0,0 +1,1389 @@
1
+ <html>
2
+ <head>
3
+ <title>The epic colour wheel</title>
4
+ <link rel="stylesheet" type="text/css" href="../../lib/cyberweb/cascading_style_sheets/default.css"/ >
5
+ <link rel="stylesheet" type="text/css" href="../../lib/cyberweb/cascading_style_sheets/links.css" />
6
+ <link rel="stylesheet" type="text/css" href="../../lib/cyberweb/cascading_style_sheets/fonts.css" />
7
+ <link rel="stylesheet" type="text/css" href="../../lib/cyberweb/cascading_style_sheets/colours.css" />
8
+
9
+ <script>
10
+
11
+ /* w3color.js ver.1.18 by w3schools.com (Do not remove this line)*/
12
+ (function () {
13
+ function w3color(color, elmnt) {
14
+ if (!(this instanceof w3color)) { return new w3color(color, elmnt); }
15
+ if (typeof color == "object") {return color; }
16
+ this.attachValues(toColorObject(color));
17
+ if (elmnt) {elmnt.style.backgroundColor = this.toRgbString();}
18
+ }
19
+ w3color.prototype = {
20
+ toRgbString : function () {
21
+ return "rgb(" + this.red + ", " + this.green + ", " + this.blue + ")";
22
+ },
23
+ toRgbaString : function () {
24
+ return "rgba(" + this.red + ", " + this.green + ", " + this.blue + ", " + this.opacity + ")";
25
+ },
26
+ toHwbString : function () {
27
+ return "hwb(" + this.hue + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%)";
28
+ },
29
+ toHwbStringDecimal : function () {
30
+ return "hwb(" + this.hue + ", " + this.whiteness + ", " + this.blackness + ")";
31
+ },
32
+ toHwbaString : function () {
33
+ return "hwba(" + this.hue + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%, " + this.opacity + ")";
34
+ },
35
+ toHslString : function () {
36
+ return "hsl(" + this.hue + ", " + Math.round(this.sat * 100) + "%, " + Math.round(this.lightness * 100) + "%)";
37
+ },
38
+ toHslStringDecimal : function () {
39
+ return "hsl(" + this.hue + ", " + this.sat + ", " + this.lightness + ")";
40
+ },
41
+ toHslaString : function () {
42
+ return "hsla(" + this.hue + ", " + Math.round(this.sat * 100) + "%, " + Math.round(this.lightness * 100) + "%, " + this.opacity + ")";
43
+ },
44
+ toCmykString : function () {
45
+ return "cmyk(" + Math.round(this.cyan * 100) + "%, " + Math.round(this.magenta * 100) + "%, " + Math.round(this.yellow * 100) + "%, " + Math.round(this.black * 100) + "%)";
46
+ },
47
+ toCmykStringDecimal : function () {
48
+ return "cmyk(" + this.cyan + ", " + this.magenta + ", " + this.yellow + ", " + this.black + ")";
49
+ },
50
+ toNcolString : function () {
51
+ return this.ncol + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%";
52
+ },
53
+ toNcolStringDecimal : function () {
54
+ return this.ncol + ", " + this.whiteness + ", " + this.blackness;
55
+ },
56
+ toNcolaString : function () {
57
+ return this.ncol + ", " + Math.round(this.whiteness * 100) + "%, " + Math.round(this.blackness * 100) + "%, " + this.opacity;
58
+ },
59
+ toName : function () {
60
+ var r, g, b, colorhexs = getColorArr('hexs');
61
+ for (i = 0; i < colorhexs.length; i++) {
62
+ r = parseInt(colorhexs[i].substr(0,2), 16);
63
+ g = parseInt(colorhexs[i].substr(2,2), 16);
64
+ b = parseInt(colorhexs[i].substr(4,2), 16);
65
+ if (this.red == r && this.green == g && this.blue == b) {
66
+ return getColorArr('names')[i];
67
+ }
68
+ }
69
+ return "";
70
+ },
71
+ toHexString : function () {
72
+ var r = toHex(this.red);
73
+ var g = toHex(this.green);
74
+ var b = toHex(this.blue);
75
+ return "#" + r + g + b;
76
+ },
77
+ toRgb : function () {
78
+ return {r : this.red, g : this.green, b : this.blue, a : this.opacity};
79
+ },
80
+ toHsl : function () {
81
+ return {h : this.hue, s : this.sat, l : this.lightness, a : this.opacity};
82
+ },
83
+ toHwb : function () {
84
+ return {h : this.hue, w : this.whiteness, b : this.blackness, a : this.opacity};
85
+ },
86
+ toCmyk : function () {
87
+ return {c : this.cyan, m : this.magenta, y : this.yellow, k : this.black, a : this.opacity};
88
+ },
89
+ toNcol : function () {
90
+ return {ncol : this.ncol, w : this.whiteness, b : this.blackness, a : this.opacity};
91
+ },
92
+ isDark : function (n) {
93
+ var m = (n || 128);
94
+ return (((this.red * 299 + this.green * 587 + this.blue * 114) / 1000) < m);
95
+ },
96
+ saturate : function (n) {
97
+ var x, rgb, color;
98
+ x = (n / 100 || 0.1);
99
+ this.sat += x;
100
+ if (this.sat > 1) {this.sat = 1;}
101
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
102
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
103
+ this.attachValues(color);
104
+ },
105
+ desaturate : function (n) {
106
+ var x, rgb, color;
107
+ x = (n / 100 || 0.1);
108
+ this.sat -= x;
109
+ if (this.sat < 0) {this.sat = 0;}
110
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
111
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
112
+ this.attachValues(color);
113
+ },
114
+ lighter : function (n) {
115
+ var x, rgb, color;
116
+ x = (n / 100 || 0.1);
117
+ this.lightness += x;
118
+ if (this.lightness > 1) {this.lightness = 1;}
119
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
120
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
121
+ this.attachValues(color);
122
+ },
123
+ darker : function (n) {
124
+ var x, rgb, color;
125
+ x = (n / 100 || 0.1);
126
+ this.lightness -= x;
127
+ if (this.lightness < 0) {this.lightness = 0;}
128
+ rgb = hslToRgb(this.hue, this.sat, this.lightness);
129
+ color = colorObject(rgb, this.opacity, this.hue, this.sat);
130
+ this.attachValues(color);
131
+ },
132
+ attachValues : function(color) {
133
+ this.red = color.red;
134
+ this.green = color.green;
135
+ this.blue = color.blue;
136
+ this.hue = color.hue;
137
+ this.sat = color.sat;
138
+ this.lightness = color.lightness;
139
+ this.whiteness = color.whiteness;
140
+ this.blackness = color.blackness;
141
+ this.cyan = color.cyan;
142
+ this.magenta = color.magenta;
143
+ this.yellow = color.yellow;
144
+ this.black = color.black;
145
+ this.ncol = color.ncol;
146
+ this.opacity = color.opacity;
147
+ this.valid = color.valid;
148
+ }
149
+ };
150
+ function toColorObject(c) {
151
+ var x, y, typ, arr = [], arrlength, i, opacity, match, a, hue, sat, rgb, colornames = [], colorhexs = [];
152
+ c = w3trim(c.toLowerCase());
153
+ x = c.substr(0,1).toUpperCase();
154
+ y = c.substr(1);
155
+ a = 1;
156
+ if ((x == "R" || x == "Y" || x == "G" || x == "C" || x == "B" || x == "M" || x == "W") && !isNaN(y)) {
157
+ if (c.length == 6 && c.indexOf(",") == -1) {
158
+ } else {
159
+ c = "ncol(" + c + ")";
160
+ }
161
+ }
162
+ if (c.length != 3 && c.length != 6 && !isNaN(c)) {c = "ncol(" + c + ")";}
163
+ if (c.indexOf(",") > 0 && c.indexOf("(") == -1) {c = "ncol(" + c + ")";}
164
+ if (c.substr(0, 3) == "rgb" || c.substr(0, 3) == "hsl" || c.substr(0, 3) == "hwb" || c.substr(0, 4) == "ncol" || c.substr(0, 4) == "cmyk") {
165
+ if (c.substr(0, 4) == "ncol") {
166
+ if (c.split(",").length == 4 && c.indexOf("ncola") == -1) {
167
+ c = c.replace("ncol", "ncola");
168
+ }
169
+ typ = "ncol";
170
+ c = c.substr(4);
171
+ } else if (c.substr(0, 4) == "cmyk") {
172
+ typ = "cmyk";
173
+ c = c.substr(4);
174
+ } else {
175
+ typ = c.substr(0, 3);
176
+ c = c.substr(3);
177
+ }
178
+ arrlength = 3;
179
+ opacity = false;
180
+ if (c.substr(0, 1).toLowerCase() == "a") {
181
+ arrlength = 4;
182
+ opacity = true;
183
+ c = c.substr(1);
184
+ } else if (typ == "cmyk") {
185
+ arrlength = 4;
186
+ if (c.split(",").length == 5) {
187
+ arrlength = 5;
188
+ opacity = true;
189
+ }
190
+ }
191
+ c = c.replace("(", "");
192
+ c = c.replace(")", "");
193
+ arr = c.split(",");
194
+ if (typ == "rgb") {
195
+ if (arr.length != arrlength) {
196
+ return emptyObject();
197
+ }
198
+ for (i = 0; i < arrlength; i++) {
199
+ if (arr[i] == "" || arr[i] == " ") {arr[i] = "0"; }
200
+ if (arr[i].indexOf("%") > -1) {
201
+ arr[i] = arr[i].replace("%", "");
202
+ arr[i] = Number(arr[i] / 100);
203
+ if (i < 3 ) {arr[i] = Math.round(arr[i] * 255);}
204
+ }
205
+ if (isNaN(arr[i])) {return emptyObject(); }
206
+ if (parseInt(arr[i]) > 255) {arr[i] = 255; }
207
+ if (i < 3) {arr[i] = parseInt(arr[i]);}
208
+ if (i == 3 && Number(arr[i]) > 1) {arr[i] = 1;}
209
+ }
210
+ rgb = {r : arr[0], g : arr[1], b : arr[2]};
211
+ if (opacity == true) {a = Number(arr[3]);}
212
+ }
213
+ if (typ == "hsl" || typ == "hwb" || typ == "ncol") {
214
+ while (arr.length < arrlength) {arr.push("0"); }
215
+ if (typ == "hsl" || typ == "hwb") {
216
+ if (parseInt(arr[0]) >= 360) {arr[0] = 0; }
217
+ }
218
+ for (i = 1; i < arrlength; i++) {
219
+ if (arr[i].indexOf("%") > -1) {
220
+ arr[i] = arr[i].replace("%", "");
221
+ arr[i] = Number(arr[i]);
222
+ if (isNaN(arr[i])) {return emptyObject(); }
223
+ arr[i] = arr[i] / 100;
224
+ } else {
225
+ arr[i] = Number(arr[i]);
226
+ }
227
+ if (Number(arr[i]) > 1) {arr[i] = 1;}
228
+ if (Number(arr[i]) < 0) {arr[i] = 0;}
229
+ }
230
+ if (typ == "hsl") {rgb = hslToRgb(arr[0], arr[1], arr[2]); hue = Number(arr[0]); sat = Number(arr[1]);}
231
+ if (typ == "hwb") {rgb = hwbToRgb(arr[0], arr[1], arr[2]);}
232
+ if (typ == "ncol") {rgb = ncolToRgb(arr[0], arr[1], arr[2]);}
233
+ if (opacity == true) {a = Number(arr[3]);}
234
+ }
235
+ if (typ == "cmyk") {
236
+ while (arr.length < arrlength) {arr.push("0"); }
237
+ for (i = 0; i < arrlength; i++) {
238
+ if (arr[i].indexOf("%") > -1) {
239
+ arr[i] = arr[i].replace("%", "");
240
+ arr[i] = Number(arr[i]);
241
+ if (isNaN(arr[i])) {return emptyObject(); }
242
+ arr[i] = arr[i] / 100;
243
+ } else {
244
+ arr[i] = Number(arr[i]);
245
+ }
246
+ if (Number(arr[i]) > 1) {arr[i] = 1;}
247
+ if (Number(arr[i]) < 0) {arr[i] = 0;}
248
+ }
249
+ rgb = cmykToRgb(arr[0], arr[1], arr[2], arr[3]);
250
+ if (opacity == true) {a = Number(arr[4]);}
251
+ }
252
+ } else if (c.substr(0, 3) == "ncs") {
253
+ rgb = ncsToRgb(c);
254
+ } else {
255
+ match = false;
256
+ colornames = getColorArr('names');
257
+ for (i = 0; i < colornames.length; i++) {
258
+ if (c.toLowerCase() == colornames[i].toLowerCase()) {
259
+ colorhexs = getColorArr('hexs');
260
+ match = true;
261
+ rgb = {
262
+ r : parseInt(colorhexs[i].substr(0,2), 16),
263
+ g : parseInt(colorhexs[i].substr(2,2), 16),
264
+ b : parseInt(colorhexs[i].substr(4,2), 16)
265
+ };
266
+ break;
267
+ }
268
+ }
269
+ if (match == false) {
270
+ c = c.replace("#", "");
271
+ if (c.length == 3) {c = c.substr(0,1) + c.substr(0,1) + c.substr(1,1) + c.substr(1,1) + c.substr(2,1) + c.substr(2,1);}
272
+ for (i = 0; i < c.length; i++) {
273
+ if (!isHex(c.substr(i, 1))) {return emptyObject(); }
274
+ }
275
+ arr[0] = parseInt(c.substr(0,2), 16);
276
+ arr[1] = parseInt(c.substr(2,2), 16);
277
+ arr[2] = parseInt(c.substr(4,2), 16);
278
+ for (i = 0; i < 3; i++) {
279
+ if (isNaN(arr[i])) {return emptyObject(); }
280
+ }
281
+ rgb = {
282
+ r : arr[0],
283
+ g : arr[1],
284
+ b : arr[2]
285
+ };
286
+ }
287
+ }
288
+ return colorObject(rgb, a, hue, sat);
289
+ }
290
+ function colorObject(rgb, a, h, s) {
291
+ var hsl, hwb, cmyk, ncol, color, hue, sat;
292
+ if (!rgb) {return emptyObject();}
293
+ if (a === null) {a = 1;}
294
+ hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
295
+ hwb = rgbToHwb(rgb.r, rgb.g, rgb.b);
296
+ cmyk = rgbToCmyk(rgb.r, rgb.g, rgb.b);
297
+ hue = (h || hsl.h);
298
+ sat = (s || hsl.s);
299
+ ncol = hueToNcol(hue);
300
+ color = {
301
+ red : rgb.r,
302
+ green : rgb.g,
303
+ blue : rgb.b,
304
+ hue : hue,
305
+ sat : sat,
306
+ lightness : hsl.l,
307
+ whiteness : hwb.w,
308
+ blackness : hwb.b,
309
+ cyan : cmyk.c,
310
+ magenta : cmyk.m,
311
+ yellow : cmyk.y,
312
+ black : cmyk.k,
313
+ ncol : ncol,
314
+ opacity : a,
315
+ valid : true
316
+ };
317
+ color = roundDecimals(color);
318
+ return color;
319
+ }
320
+ function emptyObject() {
321
+ return {
322
+ red : 0,
323
+ green : 0,
324
+ blue : 0,
325
+ hue : 0,
326
+ sat : 0,
327
+ lightness : 0,
328
+ whiteness : 0,
329
+ blackness : 0,
330
+ cyan : 0,
331
+ magenta : 0,
332
+ yellow : 0,
333
+ black : 0,
334
+ ncol : "R",
335
+ opacity : 1,
336
+ valid : false
337
+ };
338
+ }
339
+ function getColorArr(x) {
340
+ if (x == "names") {return ['AliceBlue','AntiqueWhite','Aqua','Aquamarine','Azure','Beige','Bisque','Black','BlanchedAlmond','Blue','BlueViolet','Brown','BurlyWood','CadetBlue','Chartreuse','Chocolate','Coral','CornflowerBlue','Cornsilk','Crimson','Cyan','DarkBlue','DarkCyan','DarkGoldenRod','DarkGray','DarkGrey','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkSlateGrey','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DimGray','DimGrey','DodgerBlue','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','GoldenRod','Gray','Grey','Green','GreenYellow','HoneyDew','HotPink','IndianRed','Indigo','Ivory','Khaki','Lavender','LavenderBlush','LawnGreen','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenRodYellow','LightGray','LightGrey','LightGreen','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSlateGrey','LightSteelBlue','LightYellow','Lime','LimeGreen','Linen','Magenta','Maroon','MediumAquaMarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','MidnightBlue','MintCream','MistyRose','Moccasin','NavajoWhite','Navy','OldLace','Olive','OliveDrab','Orange','OrangeRed','Orchid','PaleGoldenRod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','PeachPuff','Peru','Pink','Plum','PowderBlue','Purple','RebeccaPurple','Red','RosyBrown','RoyalBlue','SaddleBrown','Salmon','SandyBrown','SeaGreen','SeaShell','Sienna','Silver','SkyBlue','SlateBlue','SlateGray','SlateGrey','Snow','SpringGreen','SteelBlue','Tan','Teal','Thistle','Tomato','Turquoise','Violet','Wheat','White','WhiteSmoke','Yellow','YellowGreen']; }
341
+ if (x == "hexs") {return ['f0f8ff','faebd7','00ffff','7fffd4','f0ffff','f5f5dc','ffe4c4','000000','ffebcd','0000ff','8a2be2','a52a2a','deb887','5f9ea0','7fff00','d2691e','ff7f50','6495ed','fff8dc','dc143c','00ffff','00008b','008b8b','b8860b','a9a9a9','a9a9a9','006400','bdb76b','8b008b','556b2f','ff8c00','9932cc','8b0000','e9967a','8fbc8f','483d8b','2f4f4f','2f4f4f','00ced1','9400d3','ff1493','00bfff','696969','696969','1e90ff','b22222','fffaf0','228b22','ff00ff','dcdcdc','f8f8ff','ffd700','daa520','808080','808080','008000','adff2f','f0fff0','ff69b4','cd5c5c','4b0082','fffff0','f0e68c','e6e6fa','fff0f5','7cfc00','fffacd','add8e6','f08080','e0ffff','fafad2','d3d3d3','d3d3d3','90ee90','ffb6c1','ffa07a','20b2aa','87cefa','778899','778899','b0c4de','ffffe0','00ff00','32cd32','faf0e6','ff00ff','800000','66cdaa','0000cd','ba55d3','9370db','3cb371','7b68ee','00fa9a','48d1cc','c71585','191970','f5fffa','ffe4e1','ffe4b5','ffdead','000080','fdf5e6','808000','6b8e23','ffa500','ff4500','da70d6','eee8aa','98fb98','afeeee','db7093','ffefd5','ffdab9','cd853f','ffc0cb','dda0dd','b0e0e6','800080','663399','ff0000','bc8f8f','4169e1','8b4513','fa8072','f4a460','2e8b57','fff5ee','a0522d','c0c0c0','87ceeb','6a5acd','708090','708090','fffafa','00ff7f','4682b4','d2b48c','008080','d8bfd8','ff6347','40e0d0','ee82ee','f5deb3','ffffff','f5f5f5','ffff00','9acd32']; }
342
+ }
343
+ function roundDecimals(c) {
344
+ c.red = Number(c.red.toFixed(0));
345
+ c.green = Number(c.green.toFixed(0));
346
+ c.blue = Number(c.blue.toFixed(0));
347
+ c.hue = Number(c.hue.toFixed(0));
348
+ c.sat = Number(c.sat.toFixed(2));
349
+ c.lightness = Number(c.lightness.toFixed(2));
350
+ c.whiteness = Number(c.whiteness.toFixed(2));
351
+ c.blackness = Number(c.blackness.toFixed(2));
352
+ c.cyan = Number(c.cyan.toFixed(2));
353
+ c.magenta = Number(c.magenta.toFixed(2));
354
+ c.yellow = Number(c.yellow.toFixed(2));
355
+ c.black = Number(c.black.toFixed(2));
356
+ c.ncol = c.ncol.substr(0, 1) + Math.round(Number(c.ncol.substr(1)));
357
+ c.opacity = Number(c.opacity.toFixed(2));
358
+ return c;
359
+ }
360
+ function hslToRgb(hue, sat, light) {
361
+ var t1, t2, r, g, b;
362
+ hue = hue / 60;
363
+ if ( light <= 0.5 ) {
364
+ t2 = light * (sat + 1);
365
+ } else {
366
+ t2 = light + sat - (light * sat);
367
+ }
368
+ t1 = light * 2 - t2;
369
+ r = hueToRgb(t1, t2, hue + 2) * 255;
370
+ g = hueToRgb(t1, t2, hue) * 255;
371
+ b = hueToRgb(t1, t2, hue - 2) * 255;
372
+ return {r : r, g : g, b : b};
373
+ }
374
+ function hueToRgb(t1, t2, hue) {
375
+ if (hue < 0) hue += 6;
376
+ if (hue >= 6) hue -= 6;
377
+ if (hue < 1) return (t2 - t1) * hue + t1;
378
+ else if(hue < 3) return t2;
379
+ else if(hue < 4) return (t2 - t1) * (4 - hue) + t1;
380
+ else return t1;
381
+ }
382
+ function hwbToRgb(hue, white, black) {
383
+ var i, rgb, rgbArr = [], tot;
384
+ rgb = hslToRgb(hue, 1, 0.50);
385
+ rgbArr[0] = rgb.r / 255;
386
+ rgbArr[1] = rgb.g / 255;
387
+ rgbArr[2] = rgb.b / 255;
388
+ tot = white + black;
389
+ if (tot > 1) {
390
+ white = Number((white / tot).toFixed(2));
391
+ black = Number((black / tot).toFixed(2));
392
+ }
393
+ for (i = 0; i < 3; i++) {
394
+ rgbArr[i] *= (1 - (white) - (black));
395
+ rgbArr[i] += (white);
396
+ rgbArr[i] = Number(rgbArr[i] * 255);
397
+ }
398
+ return {r : rgbArr[0], g : rgbArr[1], b : rgbArr[2] };
399
+ }
400
+ function cmykToRgb(c, m, y, k) {
401
+ var r, g, b;
402
+ r = 255 - ((Math.min(1, c * (1 - k) + k)) * 255);
403
+ g = 255 - ((Math.min(1, m * (1 - k) + k)) * 255);
404
+ b = 255 - ((Math.min(1, y * (1 - k) + k)) * 255);
405
+ return {r : r, g : g, b : b};
406
+ }
407
+ function ncolToRgb(ncol, white, black) {
408
+ var letter, percent, h, w, b;
409
+ h = ncol;
410
+ if (isNaN(ncol.substr(0,1))) {
411
+ letter = ncol.substr(0,1).toUpperCase();
412
+ percent = ncol.substr(1);
413
+ if (percent == "") {percent = 0;}
414
+ percent = Number(percent);
415
+ if (isNaN(percent)) {return false;}
416
+ if (letter == "R") {h = 0 + (percent * 0.6);}
417
+ if (letter == "Y") {h = 60 + (percent * 0.6);}
418
+ if (letter == "G") {h = 120 + (percent * 0.6);}
419
+ if (letter == "C") {h = 180 + (percent * 0.6);}
420
+ if (letter == "B") {h = 240 + (percent * 0.6);}
421
+ if (letter == "M") {h = 300 + (percent * 0.6);}
422
+ if (letter == "W") {
423
+ h = 0;
424
+ white = 1 - (percent / 100);
425
+ black = (percent / 100);
426
+ }
427
+ }
428
+ return hwbToRgb(h, white, black);
429
+ }
430
+ function hueToNcol(hue) {
431
+ while (hue >= 360) {
432
+ hue = hue - 360;
433
+ }
434
+ if (hue < 60) {return "R" + (hue / 0.6); }
435
+ if (hue < 120) {return "Y" + ((hue - 60) / 0.6); }
436
+ if (hue < 180) {return "G" + ((hue - 120) / 0.6); }
437
+ if (hue < 240) {return "C" + ((hue - 180) / 0.6); }
438
+ if (hue < 300) {return "B" + ((hue - 240) / 0.6); }
439
+ if (hue < 360) {return "M" + ((hue - 300) / 0.6); }
440
+ }
441
+ function ncsToRgb(ncs){
442
+ var black, chroma, bc, percent, black1, chroma1, red1, factor1, blue1, red1, red2, green2, blue2, max, factor2, grey, r, g, b;
443
+ ncs = w3trim(ncs).toUpperCase();
444
+ ncs = ncs.replace("(", "");
445
+ ncs = ncs.replace(")", "");
446
+ ncs = ncs.replace("NCS", "NCS ");
447
+ ncs = ncs.replace(/ /g, " ");
448
+ if (ncs.indexOf("NCS") == -1) {ncs = "NCS " + ncs;}
449
+ ncs = ncs.match(/^(?:NCS|NCS\sS)\s(\d{2})(\d{2})-(N|[A-Z])(\d{2})?([A-Z])?$/);
450
+ if (ncs === null) return false;
451
+ black = parseInt(ncs[1], 10);
452
+ chroma = parseInt(ncs[2], 10);
453
+ bc = ncs[3];
454
+ if (bc != "N" && bc != "Y" && bc != "R" && bc != "B" && bc != "G") {return false;}
455
+ percent = parseInt(ncs[4], 10) || 0;
456
+ if (bc !== 'N') {
457
+ black1 = (1.05 * black - 5.25);
458
+ chroma1 = chroma;
459
+ if (bc === 'Y' && percent <= 60) {
460
+ red1 = 1;
461
+ } else if (( bc === 'Y' && percent > 60) || ( bc === 'R' && percent <= 80)) {
462
+ if (bc === 'Y') {
463
+ factor1 = percent - 60;
464
+ } else {
465
+ factor1 = percent + 40;
466
+ }
467
+ red1 = ((Math.sqrt(14884 - Math.pow(factor1, 2))) - 22) / 100;
468
+ } else if ((bc === 'R' && percent > 80) || (bc === 'B')) {
469
+ red1 = 0;
470
+ } else if (bc === 'G') {
471
+ factor1 = (percent - 170);
472
+ red1 = ((Math.sqrt(33800 - Math.pow(factor1, 2))) - 70) / 100;
473
+ }
474
+ if (bc === 'Y' && percent <= 80) {
475
+ blue1 = 0;
476
+ } else if (( bc === 'Y' && percent > 80) || ( bc === 'R' && percent <= 60)) {
477
+ if (bc ==='Y') {
478
+ factor1 = (percent - 80) + 20.5;
479
+ } else {
480
+ factor1 = (percent + 20) + 20.5;
481
+ }
482
+ blue1 = (104 - (Math.sqrt(11236 - Math.pow(factor1, 2)))) / 100;
483
+ } else if ((bc === 'R' && percent > 60) || ( bc === 'B' && percent <= 80)) {
484
+ if (bc ==='R') {
485
+ factor1 = (percent - 60) - 60;
486
+ } else {
487
+ factor1 = (percent + 40) - 60;
488
+ }
489
+ blue1 = ((Math.sqrt(10000 - Math.pow(factor1, 2))) - 10) / 100;
490
+ } else if (( bc === 'B' && percent > 80) || ( bc === 'G' && percent <= 40)) {
491
+ if (bc === 'B') {
492
+ factor1 = (percent - 80) - 131;
493
+ } else {
494
+ factor1 = (percent + 20) - 131;
495
+ }
496
+ blue1 = (122 - (Math.sqrt(19881 - Math.pow(factor1, 2)))) / 100;
497
+ } else if (bc === 'G' && percent > 40) {
498
+ blue1 = 0;
499
+ }
500
+ if (bc === 'Y') {
501
+ green1 = (85 - 17/20 * percent) / 100;
502
+ } else if (bc === 'R' && percent <= 60) {
503
+ green1 = 0;
504
+ } else if (bc === 'R' && percent > 60) {
505
+ factor1 = (percent - 60) + 35;
506
+ green1 = (67.5 - (Math.sqrt(5776 - Math.pow(factor1, 2)))) / 100;
507
+ } else if (bc === 'B' && percent <= 60) {
508
+ factor1 = (1*percent - 68.5);
509
+ green1 = (6.5 + (Math.sqrt(7044.5 - Math.pow(factor1, 2)))) / 100;
510
+ } else if ((bc === 'B' && percent > 60) || ( bc === 'G' && percent <= 60)) {
511
+ green1 = 0.9;
512
+ } else if (bc === 'G' && percent > 60) {
513
+ factor1 = (percent - 60);
514
+ green1 = (90 - (1/8 * factor1)) / 100;
515
+ }
516
+ factor1 = (red1 + green1 + blue1)/3;
517
+ red2 = ((factor1 - red1) * (100 - chroma1) / 100) + red1;
518
+ green2 = ((factor1 - green1) * (100 - chroma1) / 100) + green1;
519
+ blue2 = ((factor1 - blue1) * (100 - chroma1) / 100) + blue1;
520
+ if (red2 > green2 && red2 > blue2) {
521
+ max = red2;
522
+ } else if (green2 > red2 && green2 > blue2) {
523
+ max = green2;
524
+ } else if (blue2 > red2 && blue2 > green2) {
525
+ max = blue2;
526
+ } else {
527
+ max = (red2 + green2 + blue2) / 3;
528
+ }
529
+ factor2 = 1 / max;
530
+ r = parseInt((red2 * factor2 * (100 - black1) / 100) * 255, 10);
531
+ g = parseInt((green2 * factor2 * (100 - black1) / 100) * 255, 10);
532
+ b = parseInt((blue2 * factor2 * (100 - black1) / 100) * 255, 10);
533
+ if (r > 255) {r = 255;}
534
+ if (g > 255) {g = 255;}
535
+ if (b > 255) {b = 255;}
536
+ if (r < 0) {r = 0;}
537
+ if (g < 0) {g = 0;}
538
+ if (b < 0) {b = 0;}
539
+ } else {
540
+ grey = parseInt((1 - black / 100) * 255, 10);
541
+ if (grey > 255) {grey = 255;}
542
+ if (grey < 0) {grey = 0;}
543
+ r = grey;
544
+ g = grey;
545
+ b = grey;
546
+ }
547
+ return {
548
+ r : r,
549
+ g : g,
550
+ b : b
551
+ };
552
+ }
553
+ function rgbToHsl(r, g, b) {
554
+ var min, max, i, l, s, maxcolor, h, rgb = [];
555
+ rgb[0] = r / 255;
556
+ rgb[1] = g / 255;
557
+ rgb[2] = b / 255;
558
+ min = rgb[0];
559
+ max = rgb[0];
560
+ maxcolor = 0;
561
+ for (i = 0; i < rgb.length - 1; i++) {
562
+ if (rgb[i + 1] <= min) {min = rgb[i + 1];}
563
+ if (rgb[i + 1] >= max) {max = rgb[i + 1];maxcolor = i + 1;}
564
+ }
565
+ if (maxcolor == 0) {
566
+ h = (rgb[1] - rgb[2]) / (max - min);
567
+ }
568
+ if (maxcolor == 1) {
569
+ h = 2 + (rgb[2] - rgb[0]) / (max - min);
570
+ }
571
+ if (maxcolor == 2) {
572
+ h = 4 + (rgb[0] - rgb[1]) / (max - min);
573
+ }
574
+ if (isNaN(h)) {h = 0;}
575
+ h = h * 60;
576
+ if (h < 0) {h = h + 360; }
577
+ l = (min + max) / 2;
578
+ if (min == max) {
579
+ s = 0;
580
+ } else {
581
+ if (l < 0.5) {
582
+ s = (max - min) / (max + min);
583
+ } else {
584
+ s = (max - min) / (2 - max - min);
585
+ }
586
+ }
587
+ s = s;
588
+ return {h : h, s : s, l : l};
589
+ }
590
+ function rgbToHwb(r, g, b) {
591
+ var h, w, bl;
592
+ r = r / 255;
593
+ g = g / 255;
594
+ b = b / 255;
595
+ max = Math.max(r, g, b);
596
+ min = Math.min(r, g, b);
597
+ chroma = max - min;
598
+ if (chroma == 0) {
599
+ h = 0;
600
+ } else if (r == max) {
601
+ h = (((g - b) / chroma) % 6) * 360;
602
+ } else if (g == max) {
603
+ h = ((((b - r) / chroma) + 2) % 6) * 360;
604
+ } else {
605
+ h = ((((r - g) / chroma) + 4) % 6) * 360;
606
+ }
607
+ w = min;
608
+ bl = 1 - max;
609
+ return {h : h, w : w, b : bl};
610
+ }
611
+ function rgbToCmyk(r, g, b) {
612
+ var c, m, y, k;
613
+ r = r / 255;
614
+ g = g / 255;
615
+ b = b / 255;
616
+ max = Math.max(r, g, b);
617
+ k = 1 - max;
618
+ if (k == 1) {
619
+ c = 0;
620
+ m = 0;
621
+ y = 0;
622
+ } else {
623
+ c = (1 - r - k) / (1 - k);
624
+ m = (1 - g - k) / (1 - k);
625
+ y = (1 - b - k) / (1 - k);
626
+ }
627
+ return {c : c, m : m, y : y, k : k};
628
+ }
629
+ function toHex(n) {
630
+ var hex = n.toString(16);
631
+ while (hex.length < 2) {hex = "0" + hex; }
632
+ return hex;
633
+ }
634
+ function cl(x) {
635
+ console.log(x);
636
+ }
637
+ function w3trim(x) {
638
+ return x.replace(/^\s+|\s+$/g, '');
639
+ }
640
+ function isHex(x) {
641
+ return ('0123456789ABCDEFabcdef'.indexOf(x) > -1);
642
+ }
643
+ window.w3color = w3color;
644
+
645
+ })();
646
+
647
+ function w3SetColorsByAttribute() {
648
+ var z, i, att;
649
+ z = document.getElementsByTagName("*");
650
+ for (i = 0; i < z.length; i++) {
651
+ att = z[i].getAttribute("data-w3-color");
652
+ if (att) {
653
+ z[i].style.backgroundColor = w3color(att).toRgbString();
654
+ }
655
+ }
656
+ }
657
+ </script>
658
+ </head>
659
+
660
+ <body style="margin: 0px; paddding: 0px">
661
+
662
+ <div class="BG_Black" style="background-color:black">
663
+ <table class="pad1em" style="border:1px solid grey">
664
+ <tr><td>
665
+ <span style="color:#F0F8FF">
666
+ aliceblue - color: #F0F8FF
667
+ </span>
668
+ </td><td>
669
+ <span style="color:#FAEBD7">
670
+ antiquewhite - color: #FAEBD7
671
+ </span>
672
+ </td><td>
673
+ <span style="color:#7FFFD4">
674
+ aquamarine - color: #7FFFD4
675
+ </span>
676
+ </td><td>
677
+ <span style="color:#F0FFFF">
678
+ azure - color: #F0FFFF
679
+ </span>
680
+ </td></tr><tr><td>
681
+ <span style="color:#F5F5DC">
682
+ beige - color: #F5F5DC
683
+ </span>
684
+ </td><td>
685
+ <span style="color:#FFE4C4">
686
+ bisque - color: #FFE4C4
687
+ </span>
688
+
689
+ </td><td>
690
+ <span style="color:#000000">
691
+ black - color: #000000
692
+ </span>
693
+ </td><td>
694
+ <span style="color:#FFEBCD">
695
+ blanchedalmond - color: #FFEBCD
696
+ </span>
697
+ </td></tr><tr><td>
698
+ <span style="color:#0000FF">
699
+ blue - color: #0000FF
700
+ </span>
701
+ </td><td>
702
+ <span style="color:#8A2BE2">
703
+ blueviolet - color: #8A2BE2
704
+ </span>
705
+ </td><td>
706
+
707
+ <span style="color:#A52A2A">
708
+ brown - color: #A52A2A
709
+ </span>
710
+ </td><td>
711
+ <span style="color:#DEB887">
712
+ burlywood - color: #DEB887
713
+ </span>
714
+ </td></tr><tr><td>
715
+ <span style="color:#5F9EA0">
716
+ cadetblue - color: #5F9EA0
717
+ </span>
718
+ </td><td>
719
+ <span style="color:#7FFF00">
720
+ chartreuse - color: #7FFF00
721
+ </span>
722
+ </td><td>
723
+ <span style="color:#D2691E">
724
+
725
+ chocolate - color: #D2691E
726
+ </span>
727
+ </td><td>
728
+ <span style="color:#FF7F50">
729
+ coral - color: #FF7F50
730
+ </span>
731
+ </td></tr><tr><td>
732
+ <span style="color:#6495ED">
733
+ cornflowerblue - color: #6495ED
734
+ </span>
735
+ </td><td>
736
+ <span style="color:#FFF8DC">
737
+ cornsilk - color: #FFF8DC
738
+ </span>
739
+ </td><td>
740
+ <span style="color:#DC143C">
741
+ crimson - color: #DC143C
742
+ </span>
743
+ </td><td>
744
+ <span style="color:#00FFFF">
745
+ cyan - color: #00FFFF
746
+ </span>
747
+ </td></tr><tr><td>
748
+ <span style="color:#00008B">
749
+ darkblue - color: #00008B
750
+ </span>
751
+ </td><td>
752
+ <span style="color:#008B8B">
753
+ darkcyan - color: #008B8B
754
+ </span>
755
+ </td><td>
756
+ <span style="color:#B8860B">
757
+ darkgoldenrod - color: #B8860B
758
+ </span>
759
+
760
+ </td><td>
761
+ <span style="color:#A9A9A9">
762
+ darkgray - color: #A9A9A9
763
+ </span>
764
+ </td></tr><tr><td>
765
+ <span style="color:#006400">
766
+ darkgreen - color: #006400
767
+ </span>
768
+ </td><td>
769
+ <span style="color:#BDB76B">
770
+ darkkhaki - color: #BDB76B
771
+ </span>
772
+ </td><td>
773
+ <span style="color:#8B008B">
774
+ darkmagenta - color: #8B008B
775
+ </span>
776
+ </td><td>
777
+
778
+ <span style="color:#556B2F">
779
+ darkolivegreen - color: #556B2F
780
+ </span>
781
+ </td></tr><tr><td>
782
+ <span style="color:#FF8C00">
783
+ darkorange - color: #FF8C00
784
+ </span>
785
+ </td><td>
786
+ <span style="color:#9932CC">
787
+ darkorchid - color: #9932CC
788
+ </span>
789
+ </td><td>
790
+ <span style="color:#8B0000">
791
+ darkred - color: #8B0000
792
+ </span>
793
+ </td><td>
794
+ <span style="color:#E9967A">
795
+
796
+ darksalmon - color: #E9967A
797
+ </span>
798
+ </td></tr><tr><td>
799
+ <span style="color:#8FBC8F">
800
+ darkseagreen - color: #8FBC8F
801
+ </span>
802
+ </td><td>
803
+ <span style="color:#483D8B">
804
+ darkslateblue - color: #483D8B
805
+ </span>
806
+ </td><td>
807
+ <span style="color:#2F4F4F">
808
+ darkslategray - color: #2F4F4F
809
+ </span>
810
+ </td><td>
811
+ <span style="color:#00CED1">
812
+ darkturquoise - color: #00CED1
813
+ </span>
814
+ </td></tr><tr><td>
815
+ <span style="color:#9400D3">
816
+ darkviolet - color: #9400D3
817
+ </span>
818
+ </td><td>
819
+ <span style="color:#FF1493">
820
+ deeppink - color: #FF1493
821
+ </span>
822
+ </td><td>
823
+ <span style="color:#00BFFF">
824
+ deepskyblue - color: #00BFFF
825
+ </span>
826
+ </td><td>
827
+ <span style="color:#696969">
828
+ dimgray - color: #696969
829
+ </span>
830
+
831
+ </td></tr><tr><td>
832
+ <span style="color:#1E90FF">
833
+ dodgerblue - color: #1E90FF
834
+ </span>
835
+ </td><td>
836
+ <span style="color:#B22222">
837
+ firebrick - color: #B22222
838
+ </span>
839
+ </td><td>
840
+ <span style="color:#FFFAF0">
841
+ floralwhite - color: #FFFAF0
842
+ </span>
843
+ </td><td>
844
+ <span style="color:#228B22">
845
+ forestgreen - color: #228B22
846
+ </span>
847
+ </td></tr><tr><td>
848
+
849
+ <span style="color:#DCDCDC">
850
+ gainsboro - color: #DCDCDC
851
+ </span>
852
+ </td><td>
853
+ <span style="color:#F8F8FF">
854
+ ghostwhite - color: #F8F8FF
855
+ </span>
856
+ </td><td>
857
+ <span style="color:#FFD700">
858
+ gold - color: #FFD700
859
+ </span>
860
+ </td><td>
861
+ <span style="color:#DAA520">
862
+ goldenrod - color: #DAA520
863
+ </span>
864
+ </td></tr><tr><td>
865
+ <span style="color:#008000">
866
+
867
+ green - color: #008000
868
+ </span>
869
+ </td><td>
870
+ <span style="color:#ADFF2F">
871
+ greenyellow - color: #ADFF2F
872
+ </span>
873
+ </td><td>
874
+ <span style="color:#808080">
875
+ grey - color: #808080
876
+ </span>
877
+ </td><td>
878
+ <span style="color:#F0FFF0">
879
+ honeydew - color: #F0FFF0
880
+ </span>
881
+ </td></tr><tr><td>
882
+ <span style="color:#FF69B4">
883
+ hotpink - color: #FF69B4
884
+ </span>
885
+ </td><td>
886
+ <span style="color:#CD5C5C">
887
+ indianred - color: #CD5C5C
888
+ </span>
889
+ </td><td>
890
+ <span style="color:#4B0082">
891
+ indigo - color: #4B0082
892
+ </span>
893
+ </td><td>
894
+ <span style="color:#FFFFF0">
895
+ ivory - color: #FFFFF0
896
+ </span>
897
+ </td></tr><tr><td>
898
+ <span style="color:#F0E68C">
899
+ khaki - color: #F0E68C
900
+ </span>
901
+ </td><td>
902
+ <span style="color:#E6E6FA">
903
+ lavender - color: #E6E6FA
904
+ </span>
905
+ </td><td>
906
+ <span style="color:#FFF0F5">
907
+ lavenderblush - color: #FFF0F5
908
+ </span>
909
+ </td><td>
910
+ <span style="color:#7CFC00">
911
+ lawngreen - color: #7CFC00
912
+ </span>
913
+ </td></tr><tr><td>
914
+ <span style="color:#FFFACD">
915
+ lemonchiffon - color: #FFFACD
916
+ </span>
917
+ </td><td>
918
+ <span style="color:#ADD8E6">
919
+ lightblue - color: #ADD8E6
920
+ </span>
921
+ </td><td>
922
+ <span style="color:#F08080">
923
+ lightcoral - color: #F08080
924
+ </span>
925
+ </td><td>
926
+ <span style="color:#E0FFFF">
927
+ lightcyan - color: #E0FFFF
928
+ </span>
929
+ </td></tr><tr><td>
930
+ <span style="color:#FAFAD2">
931
+ lightgoldenrodyellow - color: #FAFAD2
932
+ </span>
933
+ </td><td>
934
+ <span style="color:#90EE90">
935
+ lightgreen - color: #90EE90
936
+ </span>
937
+ </td><td>
938
+ <span style="color:#D3D3D3">
939
+ lightgrey - color: #D3D3D3
940
+ </span>
941
+ </td><td>
942
+ <span style="color:#FFB6C1">
943
+ lightpink - color: #FFB6C1
944
+ </span>
945
+ </td></tr><tr><td>
946
+ <span style="color:#FFA07A">
947
+ lightsalmon - color: #FFA07A
948
+ </span>
949
+ </td><td>
950
+ <span style="color:#20B2AA">
951
+ lightseagreen - color: #20B2AA
952
+ </span>
953
+ </td><td>
954
+ <span style="color:#87CEFA">
955
+ lightskyblue - color: #87CEFA
956
+ </span>
957
+ </td><td>
958
+ <span style="color:#778899">
959
+ lightslategray - color: #778899
960
+ </span>
961
+ </td></tr><tr><td>
962
+ <span style="color:#B0C4DE">
963
+ lightsteelblue - color: #B0C4DE
964
+ </span>
965
+ </td><td>
966
+ <span style="color:#FFFFE0">
967
+ lightyellow - color: #FFFFE0
968
+ </span>
969
+
970
+ </td><td>
971
+ <span style="color:#00FF00">
972
+ lime - color: #00FF00
973
+ </span>
974
+ </td><td>
975
+ <span style="color:#32CD32">
976
+ limegreen - color: #32CD32
977
+ </span>
978
+ </td></tr><tr><td>
979
+ <span style="color:#FAF0E6">
980
+ linen - color: #FAF0E6
981
+ </span>
982
+ </td><td>
983
+ <span style="color:#FF00FF">
984
+ magenta - color: #FF00FF
985
+ </span>
986
+ </td><td>
987
+
988
+ <span style="color:#800000">
989
+ maroon - color: #800000
990
+ </span>
991
+ </td><td>
992
+ <span style="color:#66CDAA">
993
+ mediumaquamarine - color: #66CDAA
994
+ </span>
995
+ </td></tr><tr><td>
996
+ <span style="color:#0000CD">
997
+ mediumblue - color: #0000CD
998
+ </span>
999
+ </td><td>
1000
+ <span style="color:#9370DB">
1001
+ mediumpurple - color: #9370DB
1002
+ </span>
1003
+ </td><td>
1004
+ <span style="color:#3CB371">
1005
+
1006
+ mediumseagreen - color: #3CB371
1007
+ </span>
1008
+ </td><td>
1009
+ <span style="color:#7B68EE">
1010
+ mediumslateblue - color: #7B68EE
1011
+ </span>
1012
+ </td></tr><tr><td>
1013
+ <span style="color:#00FA9A">
1014
+ mediumspringgreen - color: #00FA9A
1015
+ </span>
1016
+ </td><td>
1017
+ <span style="color:#48D1CC">
1018
+ mediumturquoise - color: #48D1CC
1019
+ </span>
1020
+ </td><td>
1021
+ <span style="color:#C71585">
1022
+ mediumvioletred - color: #C71585
1023
+ </span>
1024
+ </td><td>
1025
+ <span style="color:#191970">
1026
+ midnightblue - color: #191970
1027
+ </span>
1028
+ </td></tr><tr><td>
1029
+ <span style="color:#F5FFFA">
1030
+ mintcream - color: #F5FFFA
1031
+ </span>
1032
+ </td><td>
1033
+ <span style="color:#FFE4E1">
1034
+ mistyrose - color: #FFE4E1
1035
+ </span>
1036
+ </td><td>
1037
+ <span style="color:#FFE4B5">
1038
+ moccasin - color: #FFE4B5
1039
+ </span>
1040
+
1041
+ </td><td>
1042
+ <span style="color:#FFDEAD">
1043
+ navajowhite - color: #FFDEAD
1044
+ </span>
1045
+ </td></tr><tr><td>
1046
+ <span style="color:#000080">
1047
+ navy - color: #000080
1048
+ </span>
1049
+ </td><td>
1050
+ <span style="color:#FDF5E6">
1051
+ oldlace - color: #FDF5E6
1052
+ </span>
1053
+ </td><td>
1054
+ <span style="color:#808000">
1055
+ olive - color: #808000
1056
+ </span>
1057
+ </td><td>
1058
+
1059
+ <span style="color:#6B8E23">
1060
+ olivedrab - color: #6B8E23
1061
+ </span>
1062
+ </td></tr><tr><td>
1063
+ <span style="color:#FFA500">
1064
+ orange - color: #FFA500
1065
+ </span>
1066
+ </td><td>
1067
+ <span style="color:#FF4500">
1068
+ orangered - color: #FF4500
1069
+ </span>
1070
+ </td><td>
1071
+ <span style="color:#DA70D6">
1072
+ orchid - color: #DA70D6
1073
+ </span>
1074
+ </td><td>
1075
+ <span style="color:#EEE8AA">
1076
+
1077
+ palegoldenrod - color: #EEE8AA
1078
+ </span>
1079
+ </td></tr><tr><td>
1080
+ <span style="color:#98FB98">
1081
+ palegreen - color: #98FB98
1082
+ </span>
1083
+ </td><td>
1084
+ <span style="color:#AFEEEE">
1085
+ paleturquoise - color: #AFEEEE
1086
+ </span>
1087
+ </td><td>
1088
+ <span style="color:#DB7093">
1089
+ palevioletred - color: #DB7093
1090
+ </span>
1091
+ </td><td>
1092
+ <span style="color:#FFEFD5">
1093
+ papayawhip - color: #FFEFD5
1094
+ </span>
1095
+ </td></tr><tr><td>
1096
+ <span style="color:#FFDAB9">
1097
+ peachpuff - color: #FFDAB9
1098
+ </span>
1099
+ </td><td>
1100
+ <span style="color:#CD853F">
1101
+ peru - color: #CD853F
1102
+ </span>
1103
+ </td><td>
1104
+ <span style="color:#FFC0CB">
1105
+ pink - color: #FFC0CB
1106
+ </span>
1107
+ </td><td>
1108
+ <span style="color:#DDA0DD">
1109
+ plum - color: #DDA0DD
1110
+ </span>
1111
+
1112
+ </td></tr><tr><td>
1113
+ <span style="color:#B0E0E6">
1114
+ powderblue - color: #B0E0E6
1115
+ </span>
1116
+ </td><td>
1117
+ <span style="color:#800080">
1118
+ purple - color: #800080
1119
+ </span>
1120
+ </td><td>
1121
+ <span style="color:#FF0000">
1122
+ red - color: #FF0000
1123
+ </span>
1124
+ </td><td>
1125
+ <span style="color:#BC8F8F">
1126
+ rosybrown - color: #BC8F8F
1127
+ </span>
1128
+ </td></tr><tr><td>
1129
+
1130
+ <span style="color:#4169E1">
1131
+ royalblue - color: #4169E1
1132
+ </span>
1133
+ </td><td>
1134
+ <span style="color:#8B4513">
1135
+ saddlebrown - color: #8B4513
1136
+ </span>
1137
+ </td><td>
1138
+ <span style="color:#FA8072">
1139
+ salmon - color: #FA8072
1140
+ </span>
1141
+ </td><td>
1142
+ <span style="color:#F4A460">
1143
+ sandybrown - color: #F4A460
1144
+ </span>
1145
+ </td></tr><tr><td>
1146
+ <span style="color:#2E8B57">
1147
+
1148
+ seagreen - color: #2E8B57
1149
+ </span>
1150
+ </td><td>
1151
+ <span style="color:#FFF5EE">
1152
+ seashell - color: #FFF5EE
1153
+ </span>
1154
+ </td><td>
1155
+ <span style="color:#A0522D">
1156
+ sienna - color: #A0522D
1157
+ </span>
1158
+ </td><td>
1159
+ <span style="color:#C0C0C0">
1160
+ silver - color: #C0C0C0
1161
+ </span>
1162
+ </td></tr><tr><td>
1163
+ <span style="color:#87CEEB">
1164
+ skyblue - color: #87CEEB
1165
+ </span>
1166
+ </td><td>
1167
+ <span style="color:#6A5ACD">
1168
+ slateblue - color: #6A5ACD
1169
+ </span>
1170
+ </td><td>
1171
+ <span style="color:#708090">
1172
+ slategray - color: #708090
1173
+ </span>
1174
+ </td><td>
1175
+ <span style="color:#FFFAFA">
1176
+ snow - color: #FFFAFA
1177
+ </span>
1178
+ </td></tr><tr><td>
1179
+ <span style="color:#00FF7F">
1180
+ springgreen - color: #00FF7F
1181
+ </span>
1182
+
1183
+ </td><td>
1184
+ <span style="color:#4682B4">
1185
+ steelblue - color: #4682B4
1186
+ </span>
1187
+ </td><td>
1188
+ <span style="color:#D2B48C">
1189
+ tan - color: #D2B48C
1190
+ </span>
1191
+ </td><td>
1192
+ <span style="color:#008080">
1193
+ teal - color: #008080
1194
+ </span>
1195
+ </td></tr><tr><td>
1196
+ <span style="color:#D8BFD8">
1197
+ thistle - color: #D8BFD8
1198
+ </span>
1199
+ </td><td>
1200
+
1201
+ <span style="color:#FF6347">
1202
+ tomato - color: #FF6347
1203
+ </span>
1204
+ </td><td>
1205
+ <span style="color:#40E0D0">
1206
+ turquoise - color: #40E0D0
1207
+ </span>
1208
+ </td><td>
1209
+ <span style="color:#EE82EE">
1210
+ violet - color: #EE82EE
1211
+ </span>
1212
+ </td></tr><tr><td>
1213
+ <span style="color:#BA55D3">
1214
+ mediumorchid - color: #BA55D3
1215
+ </span>
1216
+ </td><td>
1217
+ <span style="color:#F5DEB3">
1218
+
1219
+ wheat - color: #F5DEB3
1220
+ </span>
1221
+ </td><td>
1222
+ <span style="color:#FFFFFF">
1223
+ white - color: #FFFFFF
1224
+ </span>
1225
+ </td><td>
1226
+ <span style="color:#F5F5F5">
1227
+ whitesmoke - color: #F5F5F5
1228
+ </span>
1229
+ </td></tr><tr><td>
1230
+ <span style="color:#FFFF00">
1231
+ yellow - color: #FFFF00
1232
+ </span>
1233
+ </td><td>
1234
+ <span style="color:#9ACD32">
1235
+ yellowgreen - color: #9ACD32
1236
+ </span>
1237
+ </td></tr></table></div>
1238
+
1239
+
1240
+ <div class="w3-container w3-padding-large" style="background-color:#f1f1f1;border:1px solid #d3d3d3;">
1241
+ <div class="w3-row">
1242
+ <div class="w3-col l6">
1243
+ <h2>Enter a colour next</h2>
1244
+ <label><span class="w3-text-grey"><i>Enter the rgb() value here:</i></span></label>
1245
+ <input id="color01" type="text" class="bblack1" style="border: 1px solid black; padding: 8px; background-color: gold; text-align: center" value="rgb(0, 191, 255)" class="w3-input w3-border" oninput="convertColor()" onchange="validate_the_colour()" onkeydown="submitOnEnter(event)">
1246
+ <br>
1247
+ <div class="resultStrings">
1248
+ <div id="error01"></div>
1249
+ <table id="resultTable">
1250
+ <tr><td id="helpname01"></td><td id="name01"></td></tr>
1251
+ <tr><td id="helprgb01"></td><td id="rgb01"></td></tr>
1252
+ <tr><td id="helphex01"></td><td id="hex01"></td></tr>
1253
+ <tr><td id="helphsl01"></td><td id="hsl01"></td></tr>
1254
+ <tr><td id="helphwb01"></td><td id="hwb01"></td></tr>
1255
+ <tr><td id="helpcmyk01"></td><td id="cmyk01"></td></tr>
1256
+ <tr><td id="helpncol01"></td><td id="ncol01"></td></tr>
1257
+ </table>
1258
+ </div>
1259
+ </div>
1260
+ <div class="w3-col l6" style="padding:40px 40px 10px 40px;">
1261
+ <div id="behindresult01">
1262
+ <div style="height:294px" id="result01">&nbsp;</div>
1263
+ </div>
1264
+ </div>
1265
+ </div>
1266
+ <div class="w3-row">
1267
+ <div class="w3-col">
1268
+ <div id="linktocp"></div>
1269
+ </div>
1270
+ </div>
1271
+ </div>
1272
+
1273
+
1274
+ <hr>
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+ <script>
1283
+ function convertColor() {
1284
+ color = document.getElementById("color01").value;
1285
+ if (color == "") {
1286
+ validate_the_colour();
1287
+ return;
1288
+ }
1289
+ color = color.toLowerCase();
1290
+ //document.getElementsByTagName("h1")[0].style.color = w3color(color).toRgbString();
1291
+ c = w3color(color);
1292
+ if (c.valid) {
1293
+ document.getElementById("resultTable").style.display = "table";
1294
+ document.getElementById("error01").innerHTML = "";
1295
+ document.getElementById("result01").style.backgroundColor = c.toRgbaString();
1296
+ if (c.toName() == "") {
1297
+ document.getElementById("name01").style.fontStyle = "italic";
1298
+ document.getElementById("name01").style.color = "#757575";
1299
+ document.getElementById("name01").innerHTML = "no name";
1300
+ } else {
1301
+ document.getElementById("name01").style.fontStyle = "normal";
1302
+ document.getElementById("name01").style.color = "#000000";
1303
+ document.getElementById("name01").innerHTML = c.toName();
1304
+ }
1305
+ document.getElementById("helpname01").innerHTML = "Name";
1306
+ document.getElementById("hex01").innerHTML = c.toHexString();
1307
+ document.getElementById("helphex01").innerHTML = "<a href='colors_hexadecimal.asp?color=" + c.toHexString().substr(1) + "'>Hex</a>";
1308
+ document.getElementById("cmyk01").innerHTML = c.toCmykString();
1309
+ document.getElementById("helpcmyk01").innerHTML = "<a href='colors_cmyk.asp?color=" + c.toCmykStringDecimal() + "'>Cmyk</a>";
1310
+ document.getElementById("helpncol01").innerHTML = "<a href='colors_ncol.asp?color=" + c.toNcolStringDecimal() + "'>Ncol</a>";
1311
+ if ((color.indexOf("rgba") > -1 || color.indexOf("hsla") > -1 || color.indexOf("hwba") > -1 || color.indexOf("ncola")) > -1
1312
+ || (color.indexOf("cmyk") == -1 && color.split(",").length == 4)
1313
+ || (color.indexOf("cmyk") > -1 && color.split(",").length == 5)) {
1314
+ document.getElementById("rgb01").innerHTML = c.toRgbaString();
1315
+ document.getElementById("hsl01").innerHTML = c.toHslaString();
1316
+ document.getElementById("hwb01").innerHTML = c.toHwbaString();
1317
+ document.getElementById("ncol01").innerHTML = c.toNcolaString();
1318
+ document.getElementById("helprgb01").innerHTML = "Rgba";
1319
+ document.getElementById("helphsl01").innerHTML = "Hsla";
1320
+ document.getElementById("helphwb01").innerHTML = "Hwba";
1321
+ } else {
1322
+ document.getElementById("rgb01").innerHTML = c.toRgbString();
1323
+ document.getElementById("hsl01").innerHTML = c.toHslString();
1324
+ document.getElementById("hwb01").innerHTML = c.toHwbString();
1325
+ document.getElementById("ncol01").innerHTML = c.toNcolString();
1326
+ document.getElementById("helprgb01").innerHTML = "<a href='colors_rgb.asp?color=" + c.toRgbString() + "'>Rgb</a>";
1327
+ document.getElementById("helphsl01").innerHTML = "<a href='colors_hsl.asp?color=" + c.toHslStringDecimal() + "'>Hsl</a>";
1328
+ document.getElementById("helphwb01").innerHTML = "<a href='colors_hwb.asp?color=" + c.toHwbStringDecimal() + "'>Hwb</a>";
1329
+ }
1330
+ } else {
1331
+ validate_the_colour();
1332
+ }
1333
+ }
1334
+
1335
+ function validate_the_colour() {
1336
+ var color, c, x, i, l;
1337
+ color = document.getElementById("color01").value;
1338
+ c = w3color(color);
1339
+ if (color == "" || !c.valid) {
1340
+ document.getElementById("result01").style.backgroundColor = "#f1f1f1";
1341
+ document.getElementById("resultTable").style.display = "none";
1342
+ document.getElementById("error01").innerHTML = "Not a legal color value";
1343
+ document.getElementById("hex01").innerHTML = "";
1344
+ document.getElementById("rgb01").innerHTML = "";
1345
+ document.getElementById("hsl01").innerHTML = "";
1346
+ document.getElementById("hwb01").innerHTML = "";
1347
+ document.getElementById("ncol01").innerHTML = "";
1348
+ document.getElementById("helpname01").innerHTML = "";
1349
+ document.getElementById("helphex01").innerHTML = "";
1350
+ document.getElementById("helprgb01").innerHTML = "";
1351
+ document.getElementById("helphsl01").innerHTML = "";
1352
+ document.getElementById("helphwb01").innerHTML = "";
1353
+ document.getElementById("helpncol01").innerHTML = "";
1354
+ } else {
1355
+ document.getElementById("resultTable").style.display = "table";
1356
+ document.getElementById("error01").innerHTML = "";
1357
+ convertColor();
1358
+ }
1359
+ }
1360
+ function submitOnEnter(e) {
1361
+ keyboardKey = e.which || e.keyCode;
1362
+ if (keyboardKey == 13) {
1363
+ validate_the_colour();
1364
+ }
1365
+ }
1366
+
1367
+ convertColor();
1368
+ </script>
1369
+
1370
+ <div id="mypagediv2" style="position:relative;text-align:center;"></div>
1371
+ <br>
1372
+
1373
+ </div>
1374
+ <div class="w3-col l2 m12" id="right">
1375
+
1376
+ <div class="sidesection">
1377
+ <div id="skyscraper">
1378
+
1379
+ <!--<pre>wide_skyscraper, all: [160,600][300,600][320,50][120,600][300,1050]</pre>-->
1380
+ <div id="snhb-wide_skyscraper-0"></div>
1381
+ <!-- adspace wide-->
1382
+
1383
+ </div>
1384
+ </div>
1385
+
1386
+
1387
+
1388
+ </body>
1389
+ </html>