diamonds 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +36 -0
  3. data/lib/diamonds.rb +74 -0
  4. data/lib/diamonds/Gemfile +28 -0
  5. data/lib/diamonds/README.md +254 -0
  6. data/lib/diamonds/Rakefile +5 -0
  7. data/lib/diamonds/apps/application.rb +15 -0
  8. data/lib/diamonds/apps/library.rb +321 -0
  9. data/lib/diamonds/apps/user_app.rb +5 -0
  10. data/lib/diamonds/config.ru +98 -0
  11. data/lib/diamonds/db/mysiteDB Back.sqlite3 +0 -0
  12. data/lib/diamonds/db/mysiteDB.sqlite3 +0 -0
  13. data/lib/diamonds/gems/auto_launch_browser.rb +22 -0
  14. data/lib/diamonds/gems/io.rb +146 -0
  15. data/lib/diamonds/gems/ruby_to_js.rb +173 -0
  16. data/lib/diamonds/gems/server_utils.rb +96 -0
  17. data/lib/diamonds/lib/opal-browser.rb +1 -0
  18. data/lib/diamonds/lib/opal/browser.rb +4 -0
  19. data/lib/diamonds/opal-browser.gemspec +21 -0
  20. data/lib/diamonds/opal/browser.rb +11 -0
  21. data/lib/diamonds/opal/browser/animation_frame.rb +111 -0
  22. data/lib/diamonds/opal/browser/canvas.rb +321 -0
  23. data/lib/diamonds/opal/browser/canvas/data.rb +63 -0
  24. data/lib/diamonds/opal/browser/canvas/gradient.rb +27 -0
  25. data/lib/diamonds/opal/browser/canvas/style.rb +113 -0
  26. data/lib/diamonds/opal/browser/canvas/text.rb +45 -0
  27. data/lib/diamonds/opal/browser/console.rb +103 -0
  28. data/lib/diamonds/opal/browser/cookies.rb +133 -0
  29. data/lib/diamonds/opal/browser/css.rb +24 -0
  30. data/lib/diamonds/opal/browser/css/declaration.rb +83 -0
  31. data/lib/diamonds/opal/browser/css/rule.rb +48 -0
  32. data/lib/diamonds/opal/browser/css/rule/style.rb +16 -0
  33. data/lib/diamonds/opal/browser/css/style_sheet.rb +83 -0
  34. data/lib/diamonds/opal/browser/css/unit.rb +188 -0
  35. data/lib/diamonds/opal/browser/database/sql.rb +194 -0
  36. data/lib/diamonds/opal/browser/delay.rb +78 -0
  37. data/lib/diamonds/opal/browser/dom.rb +84 -0
  38. data/lib/diamonds/opal/browser/dom/attribute.rb +26 -0
  39. data/lib/diamonds/opal/browser/dom/builder.rb +88 -0
  40. data/lib/diamonds/opal/browser/dom/cdata.rb +9 -0
  41. data/lib/diamonds/opal/browser/dom/character_data.rb +73 -0
  42. data/lib/diamonds/opal/browser/dom/comment.rb +9 -0
  43. data/lib/diamonds/opal/browser/dom/document.rb +149 -0
  44. data/lib/diamonds/opal/browser/dom/document_fragment.rb +7 -0
  45. data/lib/diamonds/opal/browser/dom/element.rb +474 -0
  46. data/lib/diamonds/opal/browser/dom/element/attributes.rb +87 -0
  47. data/lib/diamonds/opal/browser/dom/element/data.rb +67 -0
  48. data/lib/diamonds/opal/browser/dom/element/image.rb +23 -0
  49. data/lib/diamonds/opal/browser/dom/element/input.rb +28 -0
  50. data/lib/diamonds/opal/browser/dom/element/offset.rb +89 -0
  51. data/lib/diamonds/opal/browser/dom/element/position.rb +46 -0
  52. data/lib/diamonds/opal/browser/dom/element/scroll.rb +136 -0
  53. data/lib/diamonds/opal/browser/dom/element/select.rb +36 -0
  54. data/lib/diamonds/opal/browser/dom/element/size.rb +34 -0
  55. data/lib/diamonds/opal/browser/dom/element/template.rb +9 -0
  56. data/lib/diamonds/opal/browser/dom/element/textarea.rb +24 -0
  57. data/lib/diamonds/opal/browser/dom/mutation_observer.rb +178 -0
  58. data/lib/diamonds/opal/browser/dom/node.rb +464 -0
  59. data/lib/diamonds/opal/browser/dom/node_set.rb +110 -0
  60. data/lib/diamonds/opal/browser/dom/text.rb +36 -0
  61. data/lib/diamonds/opal/browser/effects.rb +50 -0
  62. data/lib/diamonds/opal/browser/event.rb +253 -0
  63. data/lib/diamonds/opal/browser/event/animation.rb +38 -0
  64. data/lib/diamonds/opal/browser/event/audio_processing.rb +33 -0
  65. data/lib/diamonds/opal/browser/event/base.rb +430 -0
  66. data/lib/diamonds/opal/browser/event/before_unload.rb +15 -0
  67. data/lib/diamonds/opal/browser/event/clipboard.rb +28 -0
  68. data/lib/diamonds/opal/browser/event/close.rb +47 -0
  69. data/lib/diamonds/opal/browser/event/composition.rb +50 -0
  70. data/lib/diamonds/opal/browser/event/custom.rb +65 -0
  71. data/lib/diamonds/opal/browser/event/device_light.rb +23 -0
  72. data/lib/diamonds/opal/browser/event/device_motion.rb +51 -0
  73. data/lib/diamonds/opal/browser/event/device_orientation.rb +48 -0
  74. data/lib/diamonds/opal/browser/event/device_proximity.rb +33 -0
  75. data/lib/diamonds/opal/browser/event/drag.rb +119 -0
  76. data/lib/diamonds/opal/browser/event/focus.rb +39 -0
  77. data/lib/diamonds/opal/browser/event/gamepad.rb +60 -0
  78. data/lib/diamonds/opal/browser/event/hash_change.rb +28 -0
  79. data/lib/diamonds/opal/browser/event/keyboard.rb +115 -0
  80. data/lib/diamonds/opal/browser/event/message.rb +70 -0
  81. data/lib/diamonds/opal/browser/event/mouse.rb +254 -0
  82. data/lib/diamonds/opal/browser/event/page_transition.rb +23 -0
  83. data/lib/diamonds/opal/browser/event/pop_state.rb +33 -0
  84. data/lib/diamonds/opal/browser/event/progress.rb +43 -0
  85. data/lib/diamonds/opal/browser/event/sensor.rb +15 -0
  86. data/lib/diamonds/opal/browser/event/storage.rb +43 -0
  87. data/lib/diamonds/opal/browser/event/touch.rb +60 -0
  88. data/lib/diamonds/opal/browser/event/ui.rb +38 -0
  89. data/lib/diamonds/opal/browser/event/wheel.rb +49 -0
  90. data/lib/diamonds/opal/browser/event_source.rb +70 -0
  91. data/lib/diamonds/opal/browser/history.rb +90 -0
  92. data/lib/diamonds/opal/browser/http.rb +169 -0
  93. data/lib/diamonds/opal/browser/http/binary.rb +58 -0
  94. data/lib/diamonds/opal/browser/http/headers.rb +109 -0
  95. data/lib/diamonds/opal/browser/http/request.rb +344 -0
  96. data/lib/diamonds/opal/browser/http/response.rb +115 -0
  97. data/lib/diamonds/opal/browser/immediate.rb +163 -0
  98. data/lib/diamonds/opal/browser/interval.rb +111 -0
  99. data/lib/diamonds/opal/browser/location.rb +87 -0
  100. data/lib/diamonds/opal/browser/navigator.rb +173 -0
  101. data/lib/diamonds/opal/browser/screen.rb +66 -0
  102. data/lib/diamonds/opal/browser/socket.rb +123 -0
  103. data/lib/diamonds/opal/browser/storage.rb +252 -0
  104. data/lib/diamonds/opal/browser/support.rb +287 -0
  105. data/lib/diamonds/opal/browser/utils.rb +74 -0
  106. data/lib/diamonds/opal/browser/version.rb +3 -0
  107. data/lib/diamonds/opal/browser/window.rb +120 -0
  108. data/lib/diamonds/opal/browser/window/scroll.rb +59 -0
  109. data/lib/diamonds/opal/browser/window/size.rb +59 -0
  110. data/lib/diamonds/opal/browser/window/view.rb +36 -0
  111. data/lib/diamonds/opal/opal-browser.rb +1 -0
  112. data/lib/diamonds/public/__OPAL_SOURCE_MAPS__/application.map +0 -0
  113. data/lib/diamonds/public/javascripts/font-awesome/HELP-US-OUT.txt +7 -0
  114. data/lib/diamonds/public/javascripts/font-awesome/css/font-awesome.css +2026 -0
  115. data/lib/diamonds/public/javascripts/font-awesome/css/font-awesome.min.css +1 -0
  116. data/lib/diamonds/public/javascripts/font-awesome/fonts/FontAwesome.otf +0 -0
  117. data/lib/diamonds/public/javascripts/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  118. data/lib/diamonds/public/javascripts/font-awesome/fonts/fontawesome-webfont.svg +640 -0
  119. data/lib/diamonds/public/javascripts/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  120. data/lib/diamonds/public/javascripts/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  121. data/lib/diamonds/public/javascripts/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  122. data/lib/diamonds/public/javascripts/font-awesome/less/animated.less +34 -0
  123. data/lib/diamonds/public/javascripts/font-awesome/less/bordered-pulled.less +25 -0
  124. data/lib/diamonds/public/javascripts/font-awesome/less/core.less +12 -0
  125. data/lib/diamonds/public/javascripts/font-awesome/less/fixed-width.less +6 -0
  126. data/lib/diamonds/public/javascripts/font-awesome/less/font-awesome.less +17 -0
  127. data/lib/diamonds/public/javascripts/font-awesome/less/icons.less +677 -0
  128. data/lib/diamonds/public/javascripts/font-awesome/less/larger.less +13 -0
  129. data/lib/diamonds/public/javascripts/font-awesome/less/list.less +19 -0
  130. data/lib/diamonds/public/javascripts/font-awesome/less/mixins.less +26 -0
  131. data/lib/diamonds/public/javascripts/font-awesome/less/path.less +15 -0
  132. data/lib/diamonds/public/javascripts/font-awesome/less/rotated-flipped.less +20 -0
  133. data/lib/diamonds/public/javascripts/font-awesome/less/stacked.less +20 -0
  134. data/lib/diamonds/public/javascripts/font-awesome/less/variables.less +688 -0
  135. data/lib/diamonds/public/javascripts/font-awesome/scss/_animated.scss +34 -0
  136. data/lib/diamonds/public/javascripts/font-awesome/scss/_bordered-pulled.scss +25 -0
  137. data/lib/diamonds/public/javascripts/font-awesome/scss/_core.scss +12 -0
  138. data/lib/diamonds/public/javascripts/font-awesome/scss/_fixed-width.scss +6 -0
  139. data/lib/diamonds/public/javascripts/font-awesome/scss/_icons.scss +677 -0
  140. data/lib/diamonds/public/javascripts/font-awesome/scss/_larger.scss +13 -0
  141. data/lib/diamonds/public/javascripts/font-awesome/scss/_list.scss +19 -0
  142. data/lib/diamonds/public/javascripts/font-awesome/scss/_mixins.scss +26 -0
  143. data/lib/diamonds/public/javascripts/font-awesome/scss/_path.scss +15 -0
  144. data/lib/diamonds/public/javascripts/font-awesome/scss/_rotated-flipped.scss +20 -0
  145. data/lib/diamonds/public/javascripts/font-awesome/scss/_stacked.scss +20 -0
  146. data/lib/diamonds/public/javascripts/font-awesome/scss/_variables.scss +688 -0
  147. data/lib/diamonds/public/javascripts/font-awesome/scss/font-awesome.scss +17 -0
  148. data/lib/diamonds/public/javascripts/jquery-2.1.4.min.js +4 -0
  149. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  150. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  151. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  152. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  153. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  154. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  155. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  156. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  157. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  158. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  159. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-icons_228ef1_256x240.png +0 -0
  160. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-icons_ef8c08_256x240.png +0 -0
  161. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-icons_ffd27a_256x240.png +0 -0
  162. data/lib/diamonds/public/javascripts/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  163. data/lib/diamonds/public/javascripts/jquery-ui/jquery-ui.min.css +7 -0
  164. data/lib/diamonds/public/javascripts/jquery-ui/jquery-ui.min.js +13 -0
  165. data/lib/diamonds/public/javascripts/jquery-ui/jquery-ui.structure.min.css +5 -0
  166. data/lib/diamonds/public/javascripts/jquery-ui/jquery-ui.theme.min.css +5 -0
  167. data/lib/diamonds/public/javascripts/jquery.js +4 -0
  168. data/lib/diamonds/public/javascripts/jquery.ui.touch-punch.min.js +11 -0
  169. data/lib/diamonds/public/javascripts/ne pas utiliser version en retard jeezs_editor.js b/data/lib/diamonds/public/javascripts/ne pas utiliser version en retard → jeezs_editor.js +0 -0
  170. data/lib/diamonds/public/javascripts/standalone.js +2316 -0
  171. data/lib/diamonds/public/javascripts/standalone.min.js +1 -0
  172. data/lib/diamonds/public/javascripts/wysiwyg-editor.min.css +1 -0
  173. data/lib/diamonds/public/javascripts/wysiwyg-editor.min.js +1 -0
  174. data/lib/diamonds/public/javascripts/wysiwyg.min.js +1 -0
  175. data/lib/diamonds/user_app/main.rb +45 -0
  176. data/lib/diamonds/version.rb +3 -0
  177. data/lib/diamonds/views/index.erb +35 -0
  178. data/lib/diamonds/views/javascripts/jeezs_editor.js.erb +365 -0
  179. data/lib/diamonds/views/stylesheets/main.css.erb +244 -0
  180. metadata +490 -0
@@ -0,0 +1 @@
1
+ !function(e){window.wysiwyg=e(window,document)}(function(e,t){"use strict";var n=function(e,t,n){var r;return function(){if(r){if(!n)return;clearTimeout(r)}var i=this,o=arguments;r=setTimeout(function(){r=null,e.apply(i,o)},t)}},r=function(t,n,r,i){t.addEventListener?t.addEventListener(n,r,i?!0:!1):t.attachEvent?t.attachEvent("on"+n,r):t!=e&&(t["on"+n]=r)},i=function(t,n,r,i){t.removeEventListener?t.removeEventListener(n,r,i?!0:!1):t.detachEvent?t.detachEvent("on"+n,r):t!=e&&(t["on"+n]=null)},o=function(e,n,r,i){if(t.createEvent){var o=t.createEvent("Event");o.initEvent(n,void 0!==r?r:!0,void 0!==i?i:!1),e.dispatchEvent(o)}else if(t.createEventObject){var o=t.createEventObject();e.fireEvent("on"+n,o)}else"function"==typeof e["on"+n]&&e["on"+n]()},a=function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,!1},l="undefined"!=typeof Node?Node.ELEMENT_NODE:1,s="undefined"!=typeof Node?Node.TEXT_NODE:3,u=function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},c=function(e,t){if(e.firstChild)return e.firstChild;for(;e;){if(e==t)return null;if(e.nextSibling)return e.nextSibling;e=e.parentNode}return null},f=function(n){if(e.getSelection){var r=e.getSelection();if(r.rangeCount>0)return r.getRangeAt(0)}else if(t.selection){var r=t.selection;return r.createRange()}return null},p=function(n,r){if(r)if(e.getSelection){var i=e.getSelection();i.removeAllRanges(),i.addRange(r)}else t.selection&&r.select()},d=function(){if(e.getSelection){var n=e.getSelection();if(!n.rangeCount)return!1;var r=n.getRangeAt(0).cloneRange();if(r.getBoundingClientRect){var i=r.getBoundingClientRect();if(i&&i.left&&i.top&&i.right&&i.bottom)return{left:parseInt(i.left),top:parseInt(i.top),width:parseInt(i.right-i.left),height:parseInt(i.bottom-i.top)};for(var o=r.getClientRects?r.getClientRects():[],a=0;a<o.length;++a){var i=o[a];if(i.left&&i.top&&i.right&&i.bottom)return{left:parseInt(i.left),top:parseInt(i.top),width:parseInt(i.right-i.left),height:parseInt(i.bottom-i.top)}}}}else if(t.selection){var n=t.selection;if("Control"!=n.type){var r=n.createRange();if(r.boundingLeft||r.boundingTop||r.boundingWidth||r.boundingHeight)return{left:r.boundingLeft,top:r.boundingTop,width:r.boundingWidth,height:r.boundingHeight}}}return!1},g=function(n){if(e.getSelection){var r=e.getSelection();return r.isCollapsed?!0:!1}if(t.selection){var r=t.selection;if("Text"==r.type){var i=t.selection.createRange(),o=t.body.createTextRange();return o.moveToElementText(n),o.setEndPoint("EndToStart",i),0==i.htmlText.length}if("Control"==r.type)return!1}return!0},h=function(n){if(e.getSelection){var r=e.getSelection();if(!r.rangeCount)return[];for(var i=[],o=0;o<r.rangeCount;++o)for(var a=r.getRangeAt(o),s=a.startContainer,f=a.endContainer;s;){if(s!=n){var p=!1;if(r.containsNode)p=r.containsNode(s,!0);else{var d=t.createRange();d.selectNodeContents(s);for(var o=0;o<r.rangeCount;++o){var a=r.getRangeAt(o);if(a.compareBoundaryPoints(a.END_TO_START,d)>=0&&a.compareBoundaryPoints(a.START_TO_END,d)<=0){p=!0;break}}}p&&i.push(s)}s=c(s,s==f?f:n)}return 0==i.length&&u(n,r.focusNode)&&r.focusNode!=n&&i.push(r.focusNode),i}if(t.selection){var r=t.selection;if("Text"==r.type){for(var i=[],g=r.createRangeCollection(),o=0;o<g.length;++o)for(var a=g[o],h=a.parentElement(),s=h;s;){var d=a.duplicate();if(d.moveToElementText(s.nodeType!=l?s.parentNode:s),d.compareEndPoints("EndToStart",a)>=0&&d.compareEndPoints("StartToEnd",a)<=0){for(var v=!1,y=0;y<i.length;++y)if(i[y]===s){v=!0;break}v||i.push(s)}s=c(s,h)}return 0==i.length&&u(n,t.activeElement)&&t.activeElement!=n&&i.push(t.activeElement),i}if("Control"==r.type){for(var i=[],a=r.createRange(),o=0;o<a.length;++o)i.push(a(o));return i}}return[]},v=function(){if(e.getSelection){var n=e.getSelection();if(!n.isCollapsed)try{n.collapseToEnd()}catch(r){}}else if(t.selection){var n=t.selection;if("Control"!=n.type){var i=n.createRange();i.collapse(!1),i.select()}}},y=function(n,r,i){if(e.getSelection){var o=e.getSelection();if(o.modify){for(var a=0;r>a;++a)o.modify("extend","backward","character");for(var a=0;i>a;++a)o.modify("extend","forward","character")}else{var l=o.getRangeAt(0);l.setStart(l.startContainer,l.startOffset-r),l.setEnd(l.endContainer,l.endOffset+i),o.removeAllRanges(),o.addRange(l)}}else if(t.selection){var o=t.selection;if("Control"!=o.type){var l=o.createRange();l.collapse(!0),l.moveStart("character",-r),l.moveEnd("character",i),l.select()}}},w=function(n){if(g(n))return null;if(e.getSelection){var r=e.getSelection();if(r.rangeCount){for(var i=t.createElement("div"),o=r.rangeCount,a=0;o>a;++a){var l=r.getRangeAt(a).cloneContents();i.appendChild(l)}return i.innerHTML}}else if(t.selection){var r=t.selection;if("Text"==r.type){var s=r.createRange();return s.htmlText}}return null},m=function(n,r){if(e.getSelection){var i=e.getSelection();if(u(n,i.anchorNode)&&u(n,i.focusNode))return!0;if(!r)return!1;var o=t.createRange();o.selectNodeContents(n),o.collapse(!1),i.removeAllRanges(),i.addRange(o)}else if(t.selection){var i=t.selection;if("Control"==i.type){var o=i.createRange();if(0!=o.length&&u(n,o(0)))return!0}else{var a=t.body.createTextRange();a.moveToElementText(n);var o=i.createRange();if(a.inRange(o))return!0}if(!r)return!1;var o=t.body.createTextRange();o.moveToElementText(n),o.setEndPoint("StartToEnd",o),o.select()}return!0},b=function(n,r){if(e.getSelection){var i=e.getSelection();if(i.getRangeAt&&i.rangeCount){var o=i.getRangeAt(0),a=t.createElement("div");a.innerHTML=r;for(var l,s,c=t.createDocumentFragment();l=a.firstChild;)s=c.appendChild(l);u(n,o.commonAncestorContainer)?(o.deleteContents(),o.insertNode(c)):n.appendChild(c),s&&(o=o.cloneRange(),o.setStartAfter(s),o.collapse(!0),i.removeAllRanges(),i.addRange(o))}}else if(t.selection){var i=t.selection;if("Control"!=i.type){var f=i.createRange();f.collapse(!0);var o=i.createRange();if(u(n,o.parentElement()))o.pasteHTML(r);else{var p=t.body.createTextRange();p.moveToElementText(n),p.collapse(!1),p.select(),p.pasteHTML(r)}o=i.createRange(),o.setEndPoint("StartToEnd",f),o.select()}}},C=function(C){C=C||{};var T=C.element||null;"string"==typeof T&&(T=t.getElementById(T));var E=C.onKeyDown||null,S=C.onKeyPress||null,L=C.onKeyUp||null,R=C.onSelection||null,x=C.onPlaceholder||null,k=C.onOpenpopup||null,P=C.onClosepopup||null,I=C.hijackContextmenu||!1,M=C.readOnly||!1,A="TEXTAREA"==T.nodeName||"INPUT"==T.nodeName;if(A){var N="contentEditable"in t.body;if(N){var H=navigator.userAgent.match(/(?:iPad|iPhone|Android).* AppleWebKit\/([^ ]+)/);H&&420<=parseInt(H[1])&&parseInt(H[1])<534&&(N=!1)}if(!N){var O=T,D=function(e){return e.replace(/<br[ \/]*>\n?/gi,"<br>\n")};O.value=D(O.value);var j=function(){return this},K=function(){return null};return{legacy:!0,getElement:function(){return O},getHTML:function(){return O.value},setHTML:function(e){return O.value=D(e),this},getSelectedHTML:K,sync:j,readOnly:function(e){return void 0===e?O.hasAttribute?O.hasAttribute("readonly"):!!O.getAttribute("readonly"):(e?O.setAttribute("readonly","readonly"):O.removeAttribute("readonly"),this)},collapseSelection:j,expandSelection:j,openPopup:K,closePopup:j,removeFormat:j,bold:j,italic:j,underline:j,strikethrough:j,forecolor:j,highlight:j,fontName:j,fontSize:j,subscript:j,superscript:j,align:j,format:j,indent:j,insertLink:j,insertImage:j,insertHTML:j,insertList:j}}}var O=null,B=null;if(A){O=T,O.style.display="none",B=t.createElement("DIV"),B.innerHTML=O.value;var F=O.parentNode,U=O.nextSibling;U?F.insertBefore(B,U):F.appendChild(B)}else B=T;M||B.setAttribute("contentEditable","true");var W=t.all&&!t.addEventListener?t:e,X=null;if(A){var Y=B.innerHTML;X=function(){var e=B.innerHTML;e!=Y&&(O.value=e,Y=e,o(O,"change",!1))}}var _;if(x){var V=!1;_=function(){for(var e=!0,t=B;t;)if(t=c(t,B)){if(t.nodeType==l){if("IMG"==t.nodeName){e=!1;break}}else if(t.nodeType==s){var n=t.nodeValue;if(n&&-1!=n.search(/[^\s]/)){e=!1;break}}}else;V!=e&&(x(e),V=e)},_()}var q=null,z=null,$=null;R&&(z=function(t,n,r){var i=g(B),o=h(B),a=null===t||null===n?null:{left:t,top:n,width:0,height:0},s=d();if(s&&(a=s),a){if(B.getBoundingClientRect){var u=B.getBoundingClientRect();a.left-=parseInt(u.left),a.top-=parseInt(u.top)}else{var c=B,f=0,p=0,v=!1;do f+=c.offsetLeft?parseInt(c.offsetLeft):0,p+=c.offsetTop?parseInt(c.offsetTop):0,"fixed"==c.style.position&&(v=!0);while(c=c.offsetParent);a.left-=f-(v?0:e.pageXOffset),a.top-=p-(v?0:e.pageYOffset)}a.left<0&&(a.left=0),a.top<0&&(a.top=0),a.width>B.offsetWidth&&(a.width=B.offsetWidth),a.height>B.offsetHeight&&(a.height=B.offsetHeight)}else if(o.length)for(var y=0;y<o.length;++y){var c=o[y];if(c.nodeType==l){a={left:c.offsetLeft,top:c.offsetTop,width:c.offsetWidth,height:c.offsetHeight};break}}R(i,a,o,r)},$=n(z,1));var G=null,Q=function(t){if(!t)var t=e.event;var n=t.target||t.srcElement;n.nodeType==s&&(n=n.parentNode),u(G,n)||Z()},J=function(){if(G)return G;r(W,"mousedown",Q,!0),G=t.createElement("DIV");var e=B.parentNode,n=B.nextSibling;return n?e.insertBefore(G,n):e.appendChild(G),k&&k(),G},Z=function(){G&&(G.parentNode.removeChild(G),G=null,i(W,"mousedown",Q,!0),P&&P())};r(B,"focus",function(){O&&o(O,"focus",!1)}),r(B,"blur",function(){X&&X(),O&&o(O,"blur",!1)});var ee=null;if(_||X){var te=X?n(X,250,!0):null,ne=function(e){_&&_(),te&&te()};ee=n(ne,1),r(B,"input",ee),r(B,"DOMNodeInserted",ee),r(B,"DOMNodeRemoved",ee),r(B,"DOMSubtreeModified",ee),r(B,"DOMCharacterDataModified",ee),r(B,"propertychange",ee),r(B,"textInput",ee),r(B,"paste",ee),r(B,"cut",ee),r(B,"drop",ee)}var re=function(t,n){if(!t)var t=e.event;var r=t.which||t.keyCode,i=String.fromCharCode(r||t.charCode),o=t.shiftKey||!1,l=t.altKey||!1,s=t.ctrlKey||!1,u=t.metaKey||!1;if(1==n){if(E&&E(r,i,o,l,s,u)===!1)return a(t)}else if(2==n){if(S&&S(r,i,o,l,s,u)===!1)return a(t)}else if(3==n&&L&&L(r,i,o,l,s,u)===!1)return a(t);if((2==n||3==n)&&(q=null,$&&$(null,null,!1)),2==n&&ee)switch(r){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:break;default:ee()}};r(B,"keydown",function(e){return re(e,1)}),r(B,"keypress",function(e){return re(e,2)}),r(B,"keyup",function(e){return re(e,3)});var ie=function(t,n){if(!t)var t=e.event;var r=null,o=null;t.clientX&&t.clientY?(r=t.clientX,o=t.clientY):t.pageX&&t.pageY&&(r=t.pageX-e.pageXOffset,o=t.pageY-e.pageYOffset),t.which&&3==t.which?n=!0:t.button&&2==t.button&&(n=!0),i(W,"mouseup",ie),q=null,(I||!n)&&$&&$(r,o,n)};r(B,"mousedown",function(e){i(W,"mouseup",ie),r(W,"mouseup",ie)}),r(B,"mouseup",function(e){ie(e),ee&&ee()}),r(B,"dblclick",function(e){ie(e)}),r(B,"selectionchange",function(e){ie(e)}),I&&r(B,"contextmenu",function(e){return ie(e,!0),a(e)});var oe=function(n,r,i){if(p(B,q),!m(B,i))return!1;if(e.getSelection)try{return t.queryCommandSupported&&!t.queryCommandSupported(n)?!1:t.execCommand(n,!1,r)}catch(o){}else if(t.selection){var a=t.selection;if("None"!=a.type){var l=a.createRange();try{return l.queryCommandEnabled(n)?l.execCommand(n,!1,r):!1}catch(o){}}}return!1},ae=null,le=function(){(t.all||e.MSInputMethodContext)&&(ae=t.createElement("DIV"),B.appendChild(ae))},se=function(e){ae&&(B.removeChild(ae),ae=null),ee&&ee(),e?(v(),q=null):q&&(q=f(B))};return{getElement:function(){return B},getHTML:function(){return B.innerHTML},setHTML:function(e){return B.innerHTML=e,se(!0),this},getSelectedHTML:function(){return p(B,q),m(B)?w(B):null},sync:function(){return X&&X(),this},readOnly:function(e){return void 0===e?B.hasAttribute?!B.hasAttribute("contentEditable"):!B.getAttribute("contentEditable"):(e?B.removeAttribute("contentEditable"):B.setAttribute("contentEditable","true"),this)},collapseSelection:function(){return v(),q=null,this},expandSelection:function(e,t){return p(B,q),m(B)?(y(B,e,t),q=f(B),this):this},openPopup:function(){return q||(q=f(B)),J()},closePopup:function(){return Z(),this},removeFormat:function(){return oe("removeFormat"),oe("unlink"),se(),this},bold:function(){return oe("bold"),se(),this},italic:function(){return oe("italic"),se(),this},underline:function(){return oe("underline"),se(),this},strikethrough:function(){return oe("strikeThrough"),se(),this},forecolor:function(e){return oe("foreColor",e),se(),this},highlight:function(e){return oe("hiliteColor",e)||oe("backColor",e),se(),this},fontName:function(e){return oe("fontName",e),se(),this},fontSize:function(e){return oe("fontSize",e),se(),this},subscript:function(){return oe("subscript"),se(),this},superscript:function(){return oe("superscript"),se(),this},align:function(e){return le(),"left"==e?oe("justifyLeft"):"center"==e?oe("justifyCenter"):"right"==e?oe("justifyRight"):"justify"==e&&oe("justifyFull"),se(),this},format:function(e){return le(),oe("formatBlock",e),se(),this},indent:function(e){return le(),oe(e?"outdent":"indent"),se(),this},insertLink:function(e){return oe("createLink",e),se(!0),this},insertImage:function(e){return oe("insertImage",e,!0),se(!0),this},insertHTML:function(e){return oe("insertHTML",e,!0)||(p(B,q),m(B,!0),b(B,e)),se(!0),this},insertList:function(e){return le(),oe(e?"insertOrderedList":"insertUnorderedList"),se(),this}}};return C}),function(e){return e(window,document,jQuery)}(function(e,t,n){"use strict";var r=function(e,t,n){var r,i,o,a,l,s,u,c;switch(a=Math.floor(6*e),l=6*e-a,s=n*(1-t),u=n*(1-l*t),c=n*(1-(1-l)*t),a%6){case 0:r=n,i=c,o=s;break;case 1:r=u,i=n,o=s;break;case 2:r=s,i=n,o=c;break;case 3:r=s,i=u,o=n;break;case 4:r=c,i=s,o=n;break;case 5:r=n,i=s,o=u}var f=Math.floor(255*r).toString(16),p=Math.floor(255*i).toString(16),d=Math.floor(255*o).toString(16);return"#"+(f.length<2?"0":"")+f+(p.length<2?"0":"")+p+(d.length<2?"0":"")+d},i=function(e){return e.replace(/[&<>"]/g,function(e){var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return t[e]||e})},o=function(o,a,l,s,u,c,f,p,d,g,h,v,y,w,m,b,C){var T=function(e,t){t&&(e.getSelectedHTML()?e.insertLink(t):e.insertHTML('<a href="'+i(t)+'">'+i(t)+"</a>")),e.closePopup().collapseSelection()},E=function(e,t){var r=n('<input type="text" value="'+(t?t.attr("href"):"")+'" />').addClass("wysiwyg-input").keypress(function(n){(10==n.which||13==n.which)&&(t?(t.attr("href",r.val()),e.closePopup().collapseSelection()):T(e,r.val()))});p&&r.attr("placeholder",p);var i=n();c&&(i=k(c).click(function(n){return t?(t.attr("href",r.val()),e.closePopup().collapseSelection()):T(e,r.val()),n.stopPropagation(),n.preventDefault(),!1}));var o=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on");return o.append(r).append(i),o},S=function(t){var r=function(e,r){var o='<img id="wysiwyg-insert-image" src="" alt=""'+(r?' title="'+i(r)+'"':"")+" />";t.insertHTML(o).closePopup().collapseSelection();var a=n("#wysiwyg-insert-image").removeAttr("id");g&&a.css({maxWidth:g[0]+"px",maxHeight:g[1]+"px"}).load(function(){a.css({maxWidth:"",maxHeight:""});var e=a.width(),t=a.height();(e>g[0]||t>g[1])&&(e/t>g[0]/g[1]?(t=parseInt(t/e*g[0]),e=g[0]):(e=parseInt(e/t*g[1]),t=g[1]),a.attr("width",e).attr("height",t))}),a.attr("src",e)},o=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on"),a=null,l=n('<input type="file" />').css({position:"absolute",left:0,top:0,width:"100%",height:"100%",opacity:0,cursor:"pointer"});if(!v&&e.File&&e.FileReader&&e.FileList){var s=function(e){if(e.type.match("image.*")){var t=new FileReader;t.onload=function(t){var n=t.target.result;r(n,e.name)},t.readAsDataURL(e)}};a=l.attr("draggable","true").change(function(e){for(var t=e.target.files,n=0;n<t.length;++n)s(t[n])}).on("dragover",function(e){return e.originalEvent.dataTransfer.dropEffect="copy",e.stopPropagation(),e.preventDefault(),!1}).on("drop",function(e){for(var t=e.originalEvent.dataTransfer.files,n=0;n<t.length;++n)s(t[n]);return e.stopPropagation(),e.preventDefault(),!1})}else if(h){var u=l.change(function(e){h.call(this,r)});a=n("<form/>").append(u)}a&&n("<div/>").addClass("wysiwyg-browse").html(f).append(a).appendTo(o);var d=n('<input type="text" value="" />').addClass("wysiwyg-input").keypress(function(e){(10==e.which||13==e.which)&&r(d.val())});p&&d.attr("placeholder",p);var y=n();return c&&(y=k(c).click(function(e){return r(d.val()),e.stopPropagation(),e.preventDefault(),!1})),o.append(n("<div/>").append(d).append(y)),o},L=function(e){var t=function(t,r){t=n.trim(t||""),r=n.trim(r||"");var o=!1;t.length&&!r.length?o=t:-1==r.indexOf("<")&&-1==r.indexOf(">")&&r.match(/^(?:https?:\/)?\/?(?:[^:\/\s]+)(?:(?:\/\w+)*\/)(?:[\w\-\.]+[^#?\s]+)(?:.*)?(?:#[\w\-]+)?$/)&&(o=r),o&&y&&(r=y(o)||""),!r.length&&o&&(r='<video src="'+i(o)+'" />'),e.insertHTML(r).closePopup().collapseSelection()},r=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on"),o=n("<textarea>").addClass("wysiwyg-input wysiwyg-inputtextarea");d&&o.attr("placeholder",d),n("<div/>").addClass("wysiwyg-embedcode").append(o).appendTo(r);var a=n('<input type="text" value="" />').addClass("wysiwyg-input").keypress(function(e){(10==e.which||13==e.which)&&t(a.val())});p&&a.attr("placeholder",p);var l=n();return c&&(l=k(c).click(function(e){return t(a.val(),o.val()),e.stopPropagation(),e.preventDefault(),!1})),r.append(n("<div/>").append(a).append(l)),r},R=function(e,t){for(var i=n("<table/>").attr("cellpadding","0").attr("cellspacing","0").attr("unselectable","on"),o=1;15>o;++o){for(var a=n("<tr/>"),l=0;25>l;++l){var s;if(24==l){var u=Math.floor(255/13*(14-o)).toString(16),c=(u.length<2?"0":"")+u;s="#"+c+c+c}else{var f=l/24,p=8>=o?o/8:1,d=o>8?(16-o)/8:1;s=r(f,p,d)}n("<td/>").addClass("wysiwyg-toolbar-color").attr("title",s).attr("unselectable","on").css({backgroundColor:s}).click(function(){var n=this.title;return t?e.forecolor(n).closePopup().collapseSelection():e.highlight(n).closePopup().collapseSelection(),!1}).appendTo(a)}i.append(a)}return i},x=function(e,t){switch(e){case"insertimage":return t?function(e){t(S(D),e)}:null;case"insertvideo":return t?function(e){t(L(D),e)}:null;case"insertlink":return t?function(e){t(E(D),e)}:null;case"bold":return function(){D.bold()};case"italic":return function(){D.italic()};case"underline":return function(){D.underline()};case"strikethrough":return function(){D.strikethrough()};case"forecolor":return t?function(e){t(R(D,!0),e)}:null;case"highlight":return t?function(e){t(R(D,!1),e)}:null;case"alignleft":return function(){D.align("left")};case"aligncenter":return function(){D.align("center")};case"alignright":return function(){D.align("right")};case"alignjustify":return function(){D.align("justify")};case"subscript":return function(){D.subscript()};case"superscript":return function(){D.superscript()};case"indent":return function(){D.indent()};case"outdent":return function(){D.indent(!0)};case"orderedList":return function(){D.insertList(!0)};case"unorderedList":return function(){D.insertList()};case"removeformat":return function(){D.removeFormat().closePopup().collapseSelection()}}return null},k=function(e){return n("<a/>").addClass("wysiwyg-toolbar-icon").attr("href","#").attr("title",e.title).attr("unselectable","on").append(e.image)},P=function(e,t,r,i){n.each(u,function(o,a){if(a&&!(t===!1&&"showstatic"in a&&!a.showstatic||t===!0&&"showselection"in a&&!a.showselection)){var l;l="click"in a?function(e){a.click(n(e))}:"popup"in a?function(e){var t=r(),o=a.popup(t,n(e));i(t,e,o)}:x(o,function(e,t){var n=r();n.append(e),i(n,t),n.find("input[type=text]:first").focus()});var s;l?s=k(a).click(function(e){return l(e.currentTarget),x(o)&&D.getElement().focus(),e.stopPropagation(),e.preventDefault(),!1}):a.html&&(s=n(a.html)),s&&e.append(s)}})},I=function(r,i,o,a){for(var l=i.get(0),s=l.offsetParent,u={left:0,top:0},c=!1,f=!1,p=r.width(),d=s;d;){u.left+=d.offsetLeft,u.top+=d.offsetTop;var g=n(d);"fixed"==g.css("position")&&(c=!0),"visible"!=g.css("overflow")&&(f=!0),d=d.offsetParent}var h=n(s||t.body);h.append(r),o+=l.offsetLeft,a+=l.offsetTop,(c||f)&&(o+p>h.width()-1&&(o=h.width()-p-1),1>o&&(o=1));var v=n(e).width();u.left+o+p>v-1&&(o=v-u.left-p-1);var y=c?0:n(e).scrollLeft();u.left+o<y+1&&(o=y-u.left+1),r.css({left:parseInt(o)+"px",top:parseInt(a)+"px"})},M={},A=null,N=function(e,t,r,i){var o=function(e,t,r,i,o,a,l){if(C){var s=A||"";switch(t){case 8:s=s.substring(0,s.length-1);case 13:case 27:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:if(e)return;r=!1;break;default:if(!e)return;s+=r}var c=C(s,t,r,i,o,a,l);if("object"!=typeof c||!c.length)return u.closePopup(),A=null,c;var f=n(u.openPopup());f.hide().addClass("wysiwyg-popup wysiwyg-popuphover").empty().append(c),A=s}},a={element:e.get(0),onKeyDown:function(e,t,n,r,i,a){if(w&&w(e,t,n,r,i,a)===!1)return!1;if(t&&!n&&!r&&i&&!a){var l=t.toLowerCase();if(!M[l])return;return M[l](),!1}return o(!1,e,t,n,r,i,a)},onKeyPress:function(e,t,n,r,i,a){return m&&m(e,t,n,r,i,a)===!1?!1:o(!0,e,t,n,r,i,a)},onKeyUp:function(e,t,n,r,i,o){return b&&b(e,t,n,r,i,o)===!1?!1:void 0},onSelection:function(e,t,i,o){var a=!0,l=null;if(e&&n.each(i,function(e,t){return 0!=n(t).parents("a").length?(l=E(u,n(t).parents("a:first")),!1):void 0}),u.readOnly()?a=!1:t?l||o||A||(-1==n.inArray("selection",s.split("-"))?a=!1:e?a=!1:1==i.length&&"IMG"==i[0].nodeName&&(a=!1)):a=!1,!a)return void u.closePopup();var c,f=function(){var e=c.outerWidth(),i=r.offset(),o=n(u.getElement()).offset(),a=t.left+parseInt(t.width/2)-parseInt(e/2)+o.left-i.left,l=t.top+t.height+o.top-i.top;I(c,r,a,l)};c=n(u.openPopup()),c.hasClass("wysiwyg-popuphover")&&!c.data("special")==!l||(c=n(u.closePopup().openPopup())),A?c.show():c.hasClass("wysiwyg-popup")||(c.addClass("wysiwyg-popup wysiwyg-popuphover"),l?c.empty().append(l).data("special",!0):P(c,!0,function(){return c.empty()},f)),f()},onOpenpopup:function(){K()},onClosepopup:function(){A=null,B()},hijackContextmenu:"selection"==s,readOnly:!!e.attr("readonly")};if(i){var l=n("<div/>").addClass("wysiwyg-placeholder").html(i).hide();r.prepend(l),a.onPlaceholder=function(e){e?l.show():l.hide()}}var u=wysiwyg(a);return u},H=n("<div/>").addClass("wysiwyg-container");a&&H.addClass(a),o.wrap(H),H=o.parent(".wysiwyg-container");var O=!1;l&&(O=n("<div/>").addClass("wysiwyg-wrapper").click(function(){D.getElement().focus()}),o.wrap(O),O=o.parent(".wysiwyg-wrapper"));var D=N(o,H,l?O:H,l);if(D.legacy){var o=n(D.getElement());o.addClass("wysiwyg-textarea"),o.is(":visible")&&o.width(H.width()-(o.outerWidth()-o.width()))}else n(D.getElement()).addClass("wysiwyg-editor");var j=null,K=function(){j&&clearTimeout(j),j=null,H.addClass("wysiwyg-active"),H.find(".wysiwyg-toolbar-focus").slideDown()},B=function(){j||t.activeElement==D.getElement()||(j=setTimeout(function(){H.removeClass("wysiwyg-active"),0==n.trim(D.getHTML().replace(/<br\s*[\/]?>/gi,"")).length&&H.find(".wysiwyg-toolbar-focus").slideUp()},100))};n(D.getElement()).focus(K).blur(B);var F={};if(n.each(u,function(e,t){if(t&&t.hotkey){var n=x(e);n&&(M[t.hotkey.toLowerCase()]=n,F[e]=n)}}),!n.isEmptyObject(u)&&"selection"!=s){var U=-1!=n.inArray("top",s.split("-")),W=-1!=n.inArray("focus",s.split("-")),X=n("<div/>").addClass("wysiwyg-toolbar").addClass(U?"wysiwyg-toolbar-top":"wysiwyg-toolbar-bottom");W&&X.hide().addClass("wysiwyg-toolbar-focus"),P(X,!1,function(){var e=n(D.openPopup());return e.hasClass("wysiwyg-popup")&&e.hasClass("wysiwyg-popuphover")&&(e=n(D.closePopup().openPopup())),e.hasClass("wysiwyg-popup")||e.addClass("wysiwyg-popup"),e},function(e,t,r){var i=n(t),o=e.outerWidth(),a=i.offset().left-H.offset().left+parseInt(i.width()/2)-parseInt(o/2),l=i.offset().top-H.offset().top;U?l+=i.outerHeight():l-=e.outerHeight(),r&&(a=r.left,l=r.top),I(e,H,a,l)}),U?H.prepend(X):H.append(X)}return{wysiwygeditor:D,$container:H}};n.fn.wysiwyg=function(e,t){if(!e||"object"==typeof e)return e=n.extend({},e),this.each(function(){var t=n(this);if(!t.data("wysiwyg")){var r=e.classes,i=e.placeholder||t.attr("placeholder"),a=e.toolbar||"top",l=e.buttons||{},s=e.submit,u=e.selectImage,c=e.placeholderUrl||null,f=e.placeholderEmbed||null,p=e.maxImageSize||null,d=e.onImageUpload||null,g=e.forceImageUpload&&d,h=e.videoFromUrl||null,v=e.onKeyDown||null,y=e.onKeyPress||null,w=e.onKeyUp||null,m=e.onAutocomplete||null,b=o(t,r,i,a,l,s,u,c,f,p,d,g,h,v,y,w,m);t.data("wysiwyg",b)}});if(1==this.length){var r=this.data("wysiwyg");if(!r)return this;if("container"==e)return r.$container;if("shell"==e)return r.wysiwygeditor}return this}});
@@ -0,0 +1 @@
1
+ .wysiwyg-container{overflow:visible;border:1px solid #ccc;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;border-radius:3px}.wysiwyg-container.wysiwyg-active{border-color:#66afe9;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(102,175,233,.6)}.wysiwyg-textarea{display:block;width:100%;height:10em;padding:0}.wysiwyg-wrapper{position:relative}.wysiwyg-editor{position:relative;min-height:1em;padding:10px;overflow:auto;outline:0;-ms-word-wrap:break-word;word-wrap:break-word}.wysiwyg-toolbar{overflow:hidden;white-space:nowrap}.wysiwyg-toolbar-top{border-bottom:1px solid #ccc;padding:0}.wysiwyg-toolbar-bottom{border-top:1px solid #ccc;padding:0 5px}.wysiwyg-toolbar a{vertical-align:top}.wysiwyg-placeholder{position:absolute;top:10px;left:10px;color:#ccc;background:transparent}.wysiwyg-popup{position:absolute;z-index:9999;color:#000;background:#fff;background:rgba(255,255,255,.9);left:-50%;white-space:nowrap;border:1px solid #aaa;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;border-radius:3px;-moz-user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;user-select:none}.wysiwyg-popup.wysiwyg-popuphover{margin-top:9px}.wysiwyg-popup.wysiwyg-popuphover:after{position:absolute;left:50%;bottom:100%;border:solid transparent;content:'';width:0;height:0;margin-left:-8px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:8px solid #aaa}.wysiwyg-toolbar-icon{display:-moz-inline-stack;display:inline-block;display:inline;margin:0;padding:0;color:#333;text-decoration:none;zoom:1;vertical-align:top;cursor:pointer;-moz-user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;user-select:none;padding:8px 12px;font:16px FontAwesome;-moz-transition:color .2s,background .2s;-webkit-transition:color .2s,background .2s;-ms-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s}.wysiwyg-toolbar-icon:hover{color:HighlightText;background-color:Highlight;-moz-transition:color .2s,background .2s;-webkit-transition:color .2s,background .2s;-ms-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s}.wysiwyg-toolbar-form{padding:10px;white-space:nowrap}.wysiwyg-toolbar-form .wysiwyg-toolbar-icon{margin-left:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;border-radius:5px}.wysiwyg-toolbar-color{width:12px;height:12px;cursor:pointer}.wysiwyg-input{display:-moz-inline-stack;display:inline-block;display:inline;color:#000;background:none #fff;border:1px solid #aaa;width:20em;height:20px;padding:5px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;border-radius:3px;outline:0}.wysiwyg-input.wysiwyg-inputtextarea{width:100%;height:5em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;resize:none}.wysiwyg-input:hover,.wysiwyg-input:active,.wysiwyg-input:focus{border-color:#777}.wysiwyg-browse{position:relative;left:0;top:0;height:3em;line-height:3em;border:2px dashed #aaa;padding:10px;color:#aaa;text-align:center;font-weight:700;margin-bottom:10px;cursor:pointer}.wysiwyg-browse:hover,.wysiwyg-browse:active,.wysiwyg-browse:focus{color:#000;border-color:#777}.wysiwyg-embedcode{margin-bottom:10px}
@@ -0,0 +1 @@
1
+ !function(e){"use strict";if("function"==typeof define&&define.amd)define(["jquery"],function(t){return e(window,document,t)});else{if("undefined"==typeof exports)return e(window,document,jQuery);module.exports=e(window,document,require("jquery"))}}(function(e,t,n){"use strict";var r=function(e,t,n){var r,a,o,i,s,l,c,u;switch(i=Math.floor(6*e),s=6*e-i,l=n*(1-t),c=n*(1-s*t),u=n*(1-(1-s)*t),i%6){case 0:r=n,a=u,o=l;break;case 1:r=c,a=n,o=l;break;case 2:r=l,a=n,o=u;break;case 3:r=l,a=c,o=n;break;case 4:r=u,a=l,o=n;break;case 5:r=n,a=l,o=c}var p=Math.floor(255*r).toString(16),f=Math.floor(255*a).toString(16),d=Math.floor(255*o).toString(16);return"#"+(p.length<2?"0":"")+p+(f.length<2?"0":"")+f+(d.length<2?"0":"")+d},a=function(e){return e.replace(/[&<>"]/g,function(e){var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return t[e]||e})},o=function(o,i,s,l,c,u,p,f,d,w,h,g,y,v,m,b,C){var P=function(e,t){t&&(e.getSelectedHTML()?e.insertLink(t):e.insertHTML('<a href="'+a(t)+'">'+a(t)+"</a>")),e.closePopup().collapseSelection()},k=function(e,t){var r=n('<input type="text" value="'+(t?t.attr("href"):"")+'" />').addClass("wysiwyg-input").keypress(function(n){(10==n.which||13==n.which)&&(t?(t.attr("href",r.val()),e.closePopup().collapseSelection()):P(e,r.val()))});f&&r.attr("placeholder",f);var a=n();u&&(a=E(u).click(function(n){return t?(t.attr("href",r.val()),e.closePopup().collapseSelection()):P(e,r.val()),n.stopPropagation(),n.preventDefault(),!1}));var o=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on");return o.append(r).append(a),o},x=function(t){var r=function(e,r){var o='<img id="wysiwyg-insert-image" src="" alt=""'+(r?' title="'+a(r)+'"':"")+" />";t.insertHTML(o).closePopup().collapseSelection();var i=n("#wysiwyg-insert-image").removeAttr("id");w&&i.css({maxWidth:w[0]+"px",maxHeight:w[1]+"px"}).load(function(){i.css({maxWidth:"",maxHeight:""});var e=i.width(),t=i.height();(e>w[0]||t>w[1])&&(e/t>w[0]/w[1]?(t=parseInt(t/e*w[0]),e=w[0]):(e=parseInt(e/t*w[1]),t=w[1]),i.attr("width",e).attr("height",t))}),i.attr("src",e)},o=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on"),i=null,s=n('<input type="file" />').css({position:"absolute",left:0,top:0,width:"100%",height:"100%",opacity:0,cursor:"pointer"});if(!g&&e.File&&e.FileReader&&e.FileList){var l=function(e){if(e.type.match("image.*")){var t=new FileReader;t.onload=function(t){var n=t.target.result;r(n,e.name)},t.readAsDataURL(e)}};i=s.attr("draggable","true").change(function(e){for(var t=e.target.files,n=0;n<t.length;++n)l(t[n])}).on("dragover",function(e){return e.originalEvent.dataTransfer.dropEffect="copy",e.stopPropagation(),e.preventDefault(),!1}).on("drop",function(e){for(var t=e.originalEvent.dataTransfer.files,n=0;n<t.length;++n)l(t[n]);return e.stopPropagation(),e.preventDefault(),!1})}else if(h){var c=s.change(function(e){h.call(this,r)});i=n("<form/>").append(c)}i&&n("<div/>").addClass("wysiwyg-browse").html(p).append(i).appendTo(o);var d=n('<input type="text" value="" />').addClass("wysiwyg-input").keypress(function(e){(10==e.which||13==e.which)&&r(d.val())});f&&d.attr("placeholder",f);var y=n();return u&&(y=E(u).click(function(e){return r(d.val()),e.stopPropagation(),e.preventDefault(),!1})),o.append(n("<div/>").append(d).append(y)),o},L=function(e){var t=function(t,r){t=n.trim(t||""),r=n.trim(r||"");var o=!1;t.length&&!r.length?o=t:-1==r.indexOf("<")&&-1==r.indexOf(">")&&r.match(/^(?:https?:\/)?\/?(?:[^:\/\s]+)(?:(?:\/\w+)*\/)(?:[\w\-\.]+[^#?\s]+)(?:.*)?(?:#[\w\-]+)?$/)&&(o=r),o&&y&&(r=y(o)||""),!r.length&&o&&(r='<video src="'+a(o)+'" />'),e.insertHTML(r).closePopup().collapseSelection()},r=n("<div/>").addClass("wysiwyg-toolbar-form").attr("unselectable","on"),o=n("<textarea>").addClass("wysiwyg-input wysiwyg-inputtextarea");d&&o.attr("placeholder",d),n("<div/>").addClass("wysiwyg-embedcode").append(o).appendTo(r);var i=n('<input type="text" value="" />').addClass("wysiwyg-input").keypress(function(e){(10==e.which||13==e.which)&&t(i.val())});f&&i.attr("placeholder",f);var s=n();return u&&(s=E(u).click(function(e){return t(i.val(),o.val()),e.stopPropagation(),e.preventDefault(),!1})),r.append(n("<div/>").append(i).append(s)),r},S=function(e,t){for(var a=n("<table/>").attr("cellpadding","0").attr("cellspacing","0").attr("unselectable","on"),o=1;15>o;++o){for(var i=n("<tr/>"),s=0;25>s;++s){var l;if(24==s){var c=Math.floor(255/13*(14-o)).toString(16),u=(c.length<2?"0":"")+c;l="#"+u+u+u}else{var p=s/24,f=8>=o?o/8:1,d=o>8?(16-o)/8:1;l=r(p,f,d)}n("<td/>").addClass("wysiwyg-toolbar-color").attr("title",l).attr("unselectable","on").css({backgroundColor:l}).click(function(){var n=this.title;return t?e.forecolor(n).closePopup().collapseSelection():e.highlight(n).closePopup().collapseSelection(),!1}).appendTo(i)}a.append(i)}return a},T=function(e,t){switch(e){case"insertimage":return t?function(e){t(x(F),e)}:null;case"insertvideo":return t?function(e){t(L(F),e)}:null;case"insertlink":return t?function(e){t(k(F),e)}:null;case"bold":return function(){F.bold()};case"italic":return function(){F.italic()};case"underline":return function(){F.underline()};case"strikethrough":return function(){F.strikethrough()};case"forecolor":return t?function(e){t(S(F,!0),e)}:null;case"highlight":return t?function(e){t(S(F,!1),e)}:null;case"alignleft":return function(){F.align("left")};case"aligncenter":return function(){F.align("center")};case"alignright":return function(){F.align("right")};case"alignjustify":return function(){F.align("justify")};case"subscript":return function(){F.subscript()};case"superscript":return function(){F.superscript()};case"indent":return function(){F.indent()};case"outdent":return function(){F.indent(!0)};case"orderedList":return function(){F.insertList(!0)};case"unorderedList":return function(){F.insertList()};case"removeformat":return function(){F.removeFormat().closePopup().collapseSelection()}}return null},E=function(e){return n("<a/>").addClass("wysiwyg-toolbar-icon").attr("href","#").attr("title",e.title).attr("unselectable","on").append(e.image)},I=function(e,t,r,a){n.each(c,function(o,i){if(i&&!(t===!1&&"showstatic"in i&&!i.showstatic||t===!0&&"showselection"in i&&!i.showselection)){var s;s="click"in i?function(e){i.click(n(e))}:"popup"in i?function(e){var t=r(),o=i.popup(t,n(e));a(t,e,o)}:T(o,function(e,t){var n=r();n.append(e),a(n,t),n.find("input[type=text]:first").focus()});var l;s?l=E(i).click(function(e){return s(e.currentTarget),T(o)&&F.getElement().focus(),e.stopPropagation(),e.preventDefault(),!1}):i.html&&(l=n(i.html)),l&&e.append(l)}})},M=function(r,a,o,i){for(var s=a.get(0),l=s.offsetParent,c={left:0,top:0},u=!1,p=!1,f=r.width(),d=l;d;){c.left+=d.offsetLeft,c.top+=d.offsetTop;var w=n(d);"fixed"==w.css("position")&&(u=!0),"visible"!=w.css("overflow")&&(p=!0),d=d.offsetParent}var h=n(l||t.body);h.append(r),o+=s.offsetLeft,i+=s.offsetTop,(u||p)&&(o+f>h.width()-1&&(o=h.width()-f-1),1>o&&(o=1));var g=n(e).width();c.left+o+f>g-1&&(o=g-c.left-f-1);var y=u?0:n(e).scrollLeft();c.left+o<y+1&&(o=y-c.left+1),r.css({left:parseInt(o)+"px",top:parseInt(i)+"px"})},D={},j=null,H=function(e,t,r,a){var o=function(e,t,r,a,o,i,s){if(C){var l=j||"";switch(t){case 8:l=l.substring(0,l.length-1);case 13:case 27:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:if(e)return;r=!1;break;default:if(!e)return;l+=r}var u=C(l,t,r,a,o,i,s);if("object"!=typeof u||!u.length)return c.closePopup(),j=null,u;var p=n(c.openPopup());p.hide().addClass("wysiwyg-popup wysiwyg-popuphover").empty().append(u),j=l}},i={element:e.get(0),onKeyDown:function(e,t,n,r,a,i){if(v&&v(e,t,n,r,a,i)===!1)return!1;if(t&&!n&&!r&&a&&!i){var s=t.toLowerCase();if(!D[s])return;return D[s](),!1}return o(!1,e,t,n,r,a,i)},onKeyPress:function(e,t,n,r,a,i){return m&&m(e,t,n,r,a,i)===!1?!1:o(!0,e,t,n,r,a,i)},onKeyUp:function(e,t,n,r,a,o){return b&&b(e,t,n,r,a,o)===!1?!1:void 0},onSelection:function(e,t,a,o){var i=!0,s=null;if(e&&n.each(a,function(e,t){return 0!=n(t).parents("a").length?(s=k(c,n(t).parents("a:first")),!1):void 0}),c.readOnly()?i=!1:t?s||o||j||(-1==n.inArray("selection",l.split("-"))?i=!1:e?i=!1:1==a.length&&"IMG"==a[0].nodeName&&(i=!1)):i=!1,!i)return void c.closePopup();var u,p=function(){var e=u.outerWidth(),a=r.offset(),o=n(c.getElement()).offset(),i=t.left+parseInt(t.width/2)-parseInt(e/2)+o.left-a.left,s=t.top+t.height+o.top-a.top;M(u,r,i,s)};u=n(c.openPopup()),u.hasClass("wysiwyg-popuphover")&&!u.data("special")==!s||(u=n(c.closePopup().openPopup())),j?u.show():u.hasClass("wysiwyg-popup")||(u.addClass("wysiwyg-popup wysiwyg-popuphover"),s?u.empty().append(s).data("special",!0):I(u,!0,function(){return u.empty()},p)),p()},onOpenpopup:function(){O()},onClosepopup:function(){j=null,W()},hijackContextmenu:"selection"==l,readOnly:!!e.attr("readonly")};if(a){var s=n("<div/>").addClass("wysiwyg-placeholder").html(a).hide();r.prepend(s),i.onPlaceholder=function(e){e?s.show():s.hide()}}var c=wysiwyg(i);return c},U=n("<div/>").addClass("wysiwyg-container");i&&U.addClass(i),o.wrap(U),U=o.parent(".wysiwyg-container");var A=!1;s&&(A=n("<div/>").addClass("wysiwyg-wrapper").click(function(){F.getElement().focus()}),o.wrap(A),A=o.parent(".wysiwyg-wrapper"));var F=H(o,U,s?A:U,s);if(F.legacy){var o=n(F.getElement());o.addClass("wysiwyg-textarea"),o.is(":visible")&&o.width(U.width()-(o.outerWidth()-o.width()))}else n(F.getElement()).addClass("wysiwyg-editor");var K=null,O=function(){K&&clearTimeout(K),K=null,U.addClass("wysiwyg-active"),U.find(".wysiwyg-toolbar-focus").slideDown()},W=function(){K||t.activeElement==F.getElement()||(K=setTimeout(function(){U.removeClass("wysiwyg-active"),0==n.trim(F.getHTML().replace(/<br\s*[\/]?>/gi,"")).length&&U.find(".wysiwyg-toolbar-focus").slideUp()},100))};n(F.getElement()).focus(O).blur(W);var q={};if(n.each(c,function(e,t){if(t&&t.hotkey){var n=T(e);n&&(D[t.hotkey.toLowerCase()]=n,q[e]=n)}}),!n.isEmptyObject(c)&&"selection"!=l){var R=-1!=n.inArray("top",l.split("-")),$=-1!=n.inArray("focus",l.split("-")),z=n("<div/>").addClass("wysiwyg-toolbar").addClass(R?"wysiwyg-toolbar-top":"wysiwyg-toolbar-bottom");$&&z.hide().addClass("wysiwyg-toolbar-focus"),I(z,!1,function(){var e=n(F.openPopup());return e.hasClass("wysiwyg-popup")&&e.hasClass("wysiwyg-popuphover")&&(e=n(F.closePopup().openPopup())),e.hasClass("wysiwyg-popup")||e.addClass("wysiwyg-popup"),e},function(e,t,r){var a=n(t),o=e.outerWidth(),i=a.offset().left-U.offset().left+parseInt(a.width()/2)-parseInt(o/2),s=a.offset().top-U.offset().top;R?s+=a.outerHeight():s-=e.outerHeight(),r&&(i=r.left,s=r.top),M(e,U,i,s)}),R?U.prepend(z):U.append(z)}return{wysiwygeditor:F,$container:U}};n.fn.wysiwyg=function(e,t){if(!e||"object"==typeof e)return e=n.extend({},e),this.each(function(){var t=n(this);if(!t.data("wysiwyg")){var r=e.classes,a=e.placeholder||t.attr("placeholder"),i=e.toolbar||"top",s=e.buttons||{},l=e.submit,c=e.selectImage,u=e.placeholderUrl||null,p=e.placeholderEmbed||null,f=e.maxImageSize||null,d=e.onImageUpload||null,w=e.forceImageUpload&&d,h=e.videoFromUrl||null,g=e.onKeyDown||null,y=e.onKeyPress||null,v=e.onKeyUp||null,m=e.onAutocomplete||null,b=o(t,r,a,i,s,l,c,u,p,f,d,w,h,g,y,v,m);t.data("wysiwyg",b)}});if(1==this.length){var r=this.data("wysiwyg");if(!r)return this;if("container"==e)return r.$container;if("shell"==e)return r.wysiwygeditor}return this}});
@@ -0,0 +1 @@
1
+ !function(e){"use strict";"function"==typeof define&&define.amd?define([],function(){return e(window,document)}):"undefined"!=typeof exports?module.exports=e(window,document):window.wysiwyg=e(window,document)}(function(e,t){"use strict";var n=function(e,t,n){var r;return function(){if(r){if(!n)return;clearTimeout(r)}var i=this,o=arguments;r=setTimeout(function(){r=null,e.apply(i,o)},t)}},r=function(t,n,r,i){t.addEventListener?t.addEventListener(n,r,i?!0:!1):t.attachEvent?t.attachEvent("on"+n,r):t!=e&&(t["on"+n]=r)},i=function(t,n,r,i){t.removeEventListener?t.removeEventListener(n,r,i?!0:!1):t.detachEvent?t.detachEvent("on"+n,r):t!=e&&(t["on"+n]=null)},o=function(e,n,r,i){if(t.createEvent){var o=t.createEvent("Event");o.initEvent(n,void 0!==r?r:!0,void 0!==i?i:!1),e.dispatchEvent(o)}else if(t.createEventObject){var o=t.createEventObject();e.fireEvent("on"+n,o)}else"function"==typeof e["on"+n]&&e["on"+n]()},a=function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,!1},l="undefined"!=typeof Node?Node.ELEMENT_NODE:1,u="undefined"!=typeof Node?Node.TEXT_NODE:3,f=function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},c=function(e,t){if(e.firstChild)return e.firstChild;for(;e;){if(e==t)return null;if(e.nextSibling)return e.nextSibling;e=e.parentNode}return null},s=function(n){if(e.getSelection){var r=e.getSelection();if(r.rangeCount>0)return r.getRangeAt(0)}else if(t.selection){var r=t.selection;return r.createRange()}return null},d=function(n,r){if(r)if(e.getSelection){var i=e.getSelection();i.removeAllRanges(),i.addRange(r)}else t.selection&&r.select()},p=function(){if(e.getSelection){var n=e.getSelection();if(!n.rangeCount)return!1;var r=n.getRangeAt(0).cloneRange();if(r.getBoundingClientRect){var i=r.getBoundingClientRect();if(i&&i.left&&i.top&&i.right&&i.bottom)return{left:parseInt(i.left),top:parseInt(i.top),width:parseInt(i.right-i.left),height:parseInt(i.bottom-i.top)};for(var o=r.getClientRects?r.getClientRects():[],a=0;a<o.length;++a){var i=o[a];if(i.left&&i.top&&i.right&&i.bottom)return{left:parseInt(i.left),top:parseInt(i.top),width:parseInt(i.right-i.left),height:parseInt(i.bottom-i.top)}}}}else if(t.selection){var n=t.selection;if("Control"!=n.type){var r=n.createRange();if(r.boundingLeft||r.boundingTop||r.boundingWidth||r.boundingHeight)return{left:r.boundingLeft,top:r.boundingTop,width:r.boundingWidth,height:r.boundingHeight}}}return!1},g=function(n){if(e.getSelection){var r=e.getSelection();return r.isCollapsed?!0:!1}if(t.selection){var r=t.selection;if("Text"==r.type){var i=t.selection.createRange(),o=t.body.createTextRange();return o.moveToElementText(n),o.setEndPoint("EndToStart",i),0==i.htmlText.length}if("Control"==r.type)return!1}return!0},v=function(n){if(e.getSelection){var r=e.getSelection();if(!r.rangeCount)return[];for(var i=[],o=0;o<r.rangeCount;++o)for(var a=r.getRangeAt(o),u=a.startContainer,s=a.endContainer;u;){if(u!=n){var d=!1;if(r.containsNode)d=r.containsNode(u,!0);else{var p=t.createRange();p.selectNodeContents(u);for(var o=0;o<r.rangeCount;++o){var a=r.getRangeAt(o);if(a.compareBoundaryPoints(a.END_TO_START,p)>=0&&a.compareBoundaryPoints(a.START_TO_END,p)<=0){d=!0;break}}}d&&i.push(u)}u=c(u,u==s?s:n)}return 0==i.length&&f(n,r.focusNode)&&r.focusNode!=n&&i.push(r.focusNode),i}if(t.selection){var r=t.selection;if("Text"==r.type){for(var i=[],g=r.createRangeCollection(),o=0;o<g.length;++o)for(var a=g[o],v=a.parentElement(),u=v;u;){var p=a.duplicate();if(p.moveToElementText(u.nodeType!=l?u.parentNode:u),p.compareEndPoints("EndToStart",a)>=0&&p.compareEndPoints("StartToEnd",a)<=0){for(var h=!1,m=0;m<i.length;++m)if(i[m]===u){h=!0;break}h||i.push(u)}u=c(u,v)}return 0==i.length&&f(n,t.activeElement)&&t.activeElement!=n&&i.push(t.activeElement),i}if("Control"==r.type){for(var i=[],a=r.createRange(),o=0;o<a.length;++o)i.push(a(o));return i}}return[]},h=function(){if(e.getSelection){var n=e.getSelection();if(!n.isCollapsed)try{n.collapseToEnd()}catch(r){}}else if(t.selection){var n=t.selection;if("Control"!=n.type){var i=n.createRange();i.collapse(!1),i.select()}}},m=function(n,r,i){if(e.getSelection){var o=e.getSelection();if(o.modify){for(var a=0;r>a;++a)o.modify("extend","backward","character");for(var a=0;i>a;++a)o.modify("extend","forward","character")}else{var l=o.getRangeAt(0);l.setStart(l.startContainer,l.startOffset-r),l.setEnd(l.endContainer,l.endOffset+i),o.removeAllRanges(),o.addRange(l)}}else if(t.selection){var o=t.selection;if("Control"!=o.type){var l=o.createRange();l.collapse(!0),l.moveStart("character",-r),l.moveEnd("character",i),l.select()}}},y=function(n){if(g(n))return null;if(e.getSelection){var r=e.getSelection();if(r.rangeCount){for(var i=t.createElement("div"),o=r.rangeCount,a=0;o>a;++a){var l=r.getRangeAt(a).cloneContents();i.appendChild(l)}return i.innerHTML}}else if(t.selection){var r=t.selection;if("Text"==r.type){var u=r.createRange();return u.htmlText}}return null},T=function(n,r){if(e.getSelection){var i=e.getSelection();if(f(n,i.anchorNode)&&f(n,i.focusNode))return!0;if(!r)return!1;var o=t.createRange();o.selectNodeContents(n),o.collapse(!1),i.removeAllRanges(),i.addRange(o)}else if(t.selection){var i=t.selection;if("Control"==i.type){var o=i.createRange();if(0!=o.length&&f(n,o(0)))return!0}else{var a=t.body.createTextRange();a.moveToElementText(n);var o=i.createRange();if(a.inRange(o))return!0}if(!r)return!1;var o=t.body.createTextRange();o.moveToElementText(n),o.setEndPoint("StartToEnd",o),o.select()}return!0},b=function(n,r){if(e.getSelection){var i=e.getSelection();if(i.getRangeAt&&i.rangeCount){var o=i.getRangeAt(0),a=t.createElement("div");a.innerHTML=r;for(var l,u,c=t.createDocumentFragment();l=a.firstChild;)u=c.appendChild(l);f(n,o.commonAncestorContainer)?(o.deleteContents(),o.insertNode(c)):n.appendChild(c),u&&(o=o.cloneRange(),o.setStartAfter(u),o.collapse(!0),i.removeAllRanges(),i.addRange(o))}}else if(t.selection){var i=t.selection;if("Control"!=i.type){var s=i.createRange();s.collapse(!0);var o=i.createRange();if(f(n,o.parentElement()))o.pasteHTML(r);else{var d=t.body.createTextRange();d.moveToElementText(n),d.collapse(!1),d.select(),d.pasteHTML(r)}o=i.createRange(),o.setEndPoint("StartToEnd",s),o.select()}}},E=function(E){E=E||{};var C=E.element||null;"string"==typeof C&&(C=t.getElementById(C));var R=E.onKeyDown||null,S=E.onKeyPress||null,L=E.onKeyUp||null,N=E.onSelection||null,A=E.onPlaceholder||null,x=E.onOpenpopup||null,w=E.onClosepopup||null,M=E.hijackContextmenu||!1,I=E.readOnly||!1,H="TEXTAREA"==C.nodeName||"INPUT"==C.nodeName;if(H){var k="contentEditable"in t.body;if(k){var O=navigator.userAgent.match(/(?:iPad|iPhone|Android).* AppleWebKit\/([^ ]+)/);O&&420<=parseInt(O[1])&&parseInt(O[1])<534&&(k=!1)}if(!k){var P=C,D=function(e){return e.replace(/<br[ \/]*>\n?/gi,"<br>\n")};P.value=D(P.value);var B=function(){return this},j=function(){return null};return{legacy:!0,getElement:function(){return P},getHTML:function(){return P.value},setHTML:function(e){return P.value=D(e),this},getSelectedHTML:j,sync:B,readOnly:function(e){return void 0===e?P.hasAttribute?P.hasAttribute("readonly"):!!P.getAttribute("readonly"):(e?P.setAttribute("readonly","readonly"):P.removeAttribute("readonly"),this)},collapseSelection:B,expandSelection:B,openPopup:j,closePopup:B,removeFormat:B,bold:B,italic:B,underline:B,strikethrough:B,forecolor:B,highlight:B,fontName:B,fontSize:B,subscript:B,superscript:B,align:B,format:B,indent:B,insertLink:B,insertImage:B,insertHTML:B,insertList:B}}}var P=null,K=null;if(H){P=C,P.style.display="none",K=t.createElement("DIV"),K.innerHTML=P.value;var X=P.parentNode,W=P.nextSibling;W?X.insertBefore(K,W):X.appendChild(K)}else K=C;I||K.setAttribute("contentEditable","true");var Y=t.all&&!t.addEventListener?t:e,_=null;if(H){var F=K.innerHTML;_=function(){var e=K.innerHTML;e!=F&&(P.value=e,F=e,o(P,"change",!1))}}var V;if(A){var q=!1;V=function(){for(var e=!0,t=K;t;)if(t=c(t,K)){if(t.nodeType==l){if("IMG"==t.nodeName){e=!1;break}}else if(t.nodeType==u){var n=t.nodeValue;if(n&&-1!=n.search(/[^\s]/)){e=!1;break}}}else;q!=e&&(A(e),q=e)},V()}var z=null,U=null,G=null;N&&(U=function(t,n,r){var i=g(K),o=v(K),a=null===t||null===n?null:{left:t,top:n,width:0,height:0},u=p();if(u&&(a=u),a){if(K.getBoundingClientRect){var f=K.getBoundingClientRect();a.left-=parseInt(f.left),a.top-=parseInt(f.top)}else{var c=K,s=0,d=0,h=!1;do s+=c.offsetLeft?parseInt(c.offsetLeft):0,d+=c.offsetTop?parseInt(c.offsetTop):0,"fixed"==c.style.position&&(h=!0);while(c=c.offsetParent);a.left-=s-(h?0:e.pageXOffset),a.top-=d-(h?0:e.pageYOffset)}a.left<0&&(a.left=0),a.top<0&&(a.top=0),a.width>K.offsetWidth&&(a.width=K.offsetWidth),a.height>K.offsetHeight&&(a.height=K.offsetHeight)}else if(o.length)for(var m=0;m<o.length;++m){var c=o[m];if(c.nodeType==l){a={left:c.offsetLeft,top:c.offsetTop,width:c.offsetWidth,height:c.offsetHeight};break}}N(i,a,o,r)},G=n(U,1));var J=null,Q=function(t){if(!t)var t=e.event;var n=t.target||t.srcElement;n.nodeType==u&&(n=n.parentNode),f(J,n)||$()},Z=function(){if(J)return J;r(Y,"mousedown",Q,!0),J=t.createElement("DIV");var e=K.parentNode,n=K.nextSibling;return n?e.insertBefore(J,n):e.appendChild(J),x&&x(),J},$=function(){J&&(J.parentNode.removeChild(J),J=null,i(Y,"mousedown",Q,!0),w&&w())};r(K,"focus",function(){P&&o(P,"focus",!1)}),r(K,"blur",function(){_&&_(),P&&o(P,"blur",!1)});var ee=null;if(V||_){var te=_?n(_,250,!0):null,ne=function(e){V&&V(),te&&te()};ee=n(ne,1),r(K,"input",ee),r(K,"DOMNodeInserted",ee),r(K,"DOMNodeRemoved",ee),r(K,"DOMSubtreeModified",ee),r(K,"DOMCharacterDataModified",ee),r(K,"propertychange",ee),r(K,"textInput",ee),r(K,"paste",ee),r(K,"cut",ee),r(K,"drop",ee)}var re=function(t,n){if(!t)var t=e.event;var r=t.which||t.keyCode,i=String.fromCharCode(r||t.charCode),o=t.shiftKey||!1,l=t.altKey||!1,u=t.ctrlKey||!1,f=t.metaKey||!1;if(1==n){if(R&&R(r,i,o,l,u,f)===!1)return a(t)}else if(2==n){if(S&&S(r,i,o,l,u,f)===!1)return a(t)}else if(3==n&&L&&L(r,i,o,l,u,f)===!1)return a(t);if((2==n||3==n)&&(z=null,G&&G(null,null,!1)),2==n&&ee)switch(r){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:break;default:ee()}};r(K,"keydown",function(e){return re(e,1)}),r(K,"keypress",function(e){return re(e,2)}),r(K,"keyup",function(e){return re(e,3)});var ie=function(t,n){if(!t)var t=e.event;var r=null,o=null;t.clientX&&t.clientY?(r=t.clientX,o=t.clientY):t.pageX&&t.pageY&&(r=t.pageX-e.pageXOffset,o=t.pageY-e.pageYOffset),t.which&&3==t.which?n=!0:t.button&&2==t.button&&(n=!0),i(Y,"mouseup",ie),z=null,(M||!n)&&G&&G(r,o,n)};r(K,"mousedown",function(e){i(Y,"mouseup",ie),r(Y,"mouseup",ie)}),r(K,"mouseup",function(e){ie(e),ee&&ee()}),r(K,"dblclick",function(e){ie(e)}),r(K,"selectionchange",function(e){ie(e)}),M&&r(K,"contextmenu",function(e){return ie(e,!0),a(e)});var oe=function(n,r,i){if(d(K,z),!T(K,i))return!1;if(e.getSelection)try{return t.queryCommandSupported&&!t.queryCommandSupported(n)?!1:t.execCommand(n,!1,r)}catch(o){}else if(t.selection){var a=t.selection;if("None"!=a.type){var l=a.createRange();try{return l.queryCommandEnabled(n)?l.execCommand(n,!1,r):!1}catch(o){}}}return!1},ae=null,le=function(){(t.all||e.MSInputMethodContext)&&(ae=t.createElement("DIV"),K.appendChild(ae))},ue=function(e){ae&&(K.removeChild(ae),ae=null),ee&&ee(),e?(h(),z=null):z&&(z=s(K))};return{getElement:function(){return K},getHTML:function(){return K.innerHTML},setHTML:function(e){return K.innerHTML=e,ue(!0),this},getSelectedHTML:function(){return d(K,z),T(K)?y(K):null},sync:function(){return _&&_(),this},readOnly:function(e){return void 0===e?K.hasAttribute?!K.hasAttribute("contentEditable"):!K.getAttribute("contentEditable"):(e?K.removeAttribute("contentEditable"):K.setAttribute("contentEditable","true"),this)},collapseSelection:function(){return h(),z=null,this},expandSelection:function(e,t){return d(K,z),T(K)?(m(K,e,t),z=s(K),this):this},openPopup:function(){return z||(z=s(K)),Z()},closePopup:function(){return $(),this},removeFormat:function(){return oe("removeFormat"),oe("unlink"),ue(),this},bold:function(){return oe("bold"),ue(),this},italic:function(){return oe("italic"),ue(),this},underline:function(){return oe("underline"),ue(),this},strikethrough:function(){return oe("strikeThrough"),ue(),this},forecolor:function(e){return oe("foreColor",e),ue(),this},highlight:function(e){return oe("hiliteColor",e)||oe("backColor",e),ue(),this},fontName:function(e){return oe("fontName",e),ue(),this},fontSize:function(e){return oe("fontSize",e),ue(),this},subscript:function(){return oe("subscript"),ue(),this},superscript:function(){return oe("superscript"),ue(),this},align:function(e){return le(),"left"==e?oe("justifyLeft"):"center"==e?oe("justifyCenter"):"right"==e?oe("justifyRight"):"justify"==e&&oe("justifyFull"),ue(),this},format:function(e){return le(),oe("formatBlock",e),ue(),this},indent:function(e){return le(),oe(e?"outdent":"indent"),ue(),this},insertLink:function(e){return oe("createLink",e),ue(!0),this},insertImage:function(e){return oe("insertImage",e,!0),ue(!0),this},insertHTML:function(e){return oe("insertHTML",e,!0)||(d(K,z),T(K,!0),b(K,e)),ue(!0),this},insertList:function(e){return le(),oe(e?"insertOrderedList":"insertUnorderedList"),ue(),this}}};return E});
@@ -0,0 +1,45 @@
1
+
2
+
3
+
4
+ this_file_is_call_by=$0
5
+ current_file=__FILE__
6
+ current_folder=File.dirname(current_file)
7
+
8
+ file_to_save=""
9
+ File.open(this_file_is_call_by).each do |line|
10
+
11
+ if (line.include? "require")
12
+
13
+ if (line.include? "diamond")
14
+ #We don not copy the line
15
+ else
16
+
17
+ if (line.include? "/")
18
+ #it's a local gem require we copy the file and keep the require
19
+ puts "*********** Part to modify ************"
20
+ puts "cp file to apps dir : "+line.gsub("require","").gsub("'","").gsub('"',"")
21
+ puts "***********************"
22
+ file_to_save=file_to_save+line
23
+ else
24
+ #it's a online gem require we add the line
25
+ file_to_save=file_to_save+line
26
+ end
27
+
28
+
29
+
30
+ end
31
+
32
+ else
33
+ file_to_save=file_to_save+line
34
+ end
35
+
36
+ end
37
+
38
+
39
+
40
+
41
+
42
+ File.write(current_folder+'/diamond/user_app/main.rb', file_to_save)
43
+
44
+ exec "cd #{File.expand_path(current_folder)}/diamond/;ls;bundle exec rackup"
45
+
@@ -0,0 +1,3 @@
1
+ module Diamonds
2
+ VERSION = "0.1.5"
3
+ end
@@ -0,0 +1,35 @@
1
+ <html>
2
+ <head>
3
+ <meta charset="utf-8">
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5
+ <meta name="apple-mobile-web-app-capable" content="yes">
6
+ <link rel="apple-touch-icon" href="touch-icon-iphone.png"/>
7
+ <link rel="apple-touch-icon" sizes="72x72" href="images/72.png"/>
8
+ <link rel="apple-touch-icon" sizes="114x114" href="images/114.png"/>
9
+ <link rel="apple-touch-icon" sizes="144x144" href="images/144.png"/>
10
+ <meta content="initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0, width=device-width, user-scalable=no"
11
+ name="viewport">
12
+ <meta name="generator" content="Dummy apps">
13
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
14
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
15
+ <meta name="generator" content="Dummy apps">
16
+ <!--************ Les JS ***************-->
17
+ <script type="text/javascript" src="javascripts/jquery.js"></script>
18
+ <script type="text/javascript" src="javascripts/jquery-ui/jquery-ui.min.js"></script>
19
+ <script type="text/javascript" src="javascripts/jquery.ui.touch-punch.min.js"></script>
20
+ <script type="text/javascript" src="javascripts/wysiwyg.min.js"></script>
21
+ <script type="text/javascript" src="javascripts/wysiwyg-editor.min.js"></script>
22
+ <script type="text/javascript" src="/assets/application.js"></script>
23
+ <script><%= @opal_boot_code %></script>
24
+ <script type="text/javascript"src="/javascripts/jeezs_editor.js"></script>
25
+ <!--************ Les Styles ***************-->
26
+ <link rel="stylesheet" href="javascripts/jquery-ui/jquery-ui.min.css" type="text/css" media="screen">
27
+ <link rel="stylesheet" href="javascripts/jquery-ui/jquery-ui.structure.min.css" type="text/css" media="screen">
28
+ <link rel="stylesheet" href="javascripts/jquery-ui/jquery-ui.theme.min.css" type="text/css" media="screen">
29
+ <link rel="stylesheet" href="javascripts/font-awesome/css/font-awesome.min.css" type="text/css" media="screen">
30
+ <link rel="stylesheet" href="javascripts/wysiwyg-editor.min.css" type="text/css" media="screen">
31
+ <link rel="stylesheet" href="stylesheets/main.css" type="text/css" media="screen"/>
32
+ </head>
33
+ <body>
34
+ </body>
35
+ </html>
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Created by jeezs on 15/08/15.
3
+ */
4
+
5
+
6
+ function get_full_object(obj_to_get) {
7
+ obj_to_get="#"+obj_to_get
8
+ obj_html = $(obj_to_get)[0].outerHTML
9
+ return obj_html;
10
+
11
+
12
+ }
13
+
14
+
15
+ // Featured editor
16
+ function editcontent() {
17
+ $('.editablecontent').each(function (index, element) {
18
+
19
+ $(element).wysiwyg({
20
+
21
+ classes: 'some-more-classes',
22
+ // 'selection'|'top'|'top-selection'|'bottom'|'bottom-selection'
23
+ // pour outil aus dessus=toolbar: index == 0 sinon index == 1
24
+ toolbar: index == 3 ? 'top-selection' : (index == 3 ? 'bottom-focus' : 'selection'),
25
+
26
+ buttons: {
27
+
28
+ insertimage: {
29
+ title: 'Insert image',
30
+ image: '\uf030', // <img src="path/to/image.png" width="16" height="16" alt="" />
31
+ //showstatic: true, // wanted on the toolbar
32
+ showselection: index == 3 ? true : true // wanted on selection
33
+ },
34
+ insertvideo: {
35
+ title: 'Insert video',
36
+ image: '\uf03d', // <img src="path/to/image.png" width="16" height="16" alt="" />
37
+ //showstatic: true, // wanted on the toolbar
38
+ showselection: index == 3 ? true : true // wanted on selection
39
+ },
40
+ insertlink: {
41
+ title: 'Insert link',
42
+ image: '\uf08e' // <img src="path/to/image.png" width="16" height="16" alt="" />
43
+ },
44
+ // Fontname plugin
45
+ fontname: {
46
+ title: 'Font',
47
+ image: '\uf031', // <img src="path/to/image.png" width="16" height="16" alt="" />
48
+ popup: function ($popup, $button) {
49
+ var list_fontnames = {
50
+ // Name : Font
51
+ 'Arial, Helvetica': 'Arial,Helvetica',
52
+ 'Verdana': 'Verdana,Geneva',
53
+ 'Georgia': 'Georgia',
54
+ 'Courier New': 'Courier New,Courier',
55
+ 'Times New Roman': 'Times New Roman,Times'
56
+ };
57
+ var $list = $('<div/>').addClass('wysiwyg-plugin-list')
58
+ .attr('unselectable', 'on');
59
+ $.each(list_fontnames, function (name, font) {
60
+ var $link = $('<a/>').attr('href', '#')
61
+ .css('font-family', font)
62
+ .html(name)
63
+ .click(function (event) {
64
+ $(element).wysiwyg('shell').fontName(font).closePopup();
65
+ // prevent link-href-#
66
+ event.stopPropagation();
67
+ event.preventDefault();
68
+ return false;
69
+ });
70
+ $list.append($link);
71
+ });
72
+ $popup.append($list);
73
+ },
74
+ //showstatic: true, // wanted on the toolbar
75
+ showselection: index == 3 ? true : true // wanted on selection
76
+ },
77
+ // Fontsize plugin
78
+ fontsize: {
79
+ title: 'Size',
80
+ image: '\uf034', // <img src="path/to/image.png" width="16" height="16" alt="" />
81
+ popup: function ($popup, $button) {
82
+ // Hack: http://stackoverflow.com/questions/5868295/document-execcommand-fontsize-in-pixels/5870603#5870603
83
+ var list_fontsizes = [];
84
+ for (var i = 8; i <= 11; ++i)
85
+ list_fontsizes.push(i + 'px');
86
+ for (var i = 12; i <= 28; i += 2)
87
+ list_fontsizes.push(i + 'px');
88
+ list_fontsizes.push('36px');
89
+ list_fontsizes.push('48px');
90
+ list_fontsizes.push('72px');
91
+ var $list = $('<div/>').addClass('wysiwyg-plugin-list')
92
+ .attr('unselectable', 'on');
93
+ $.each(list_fontsizes, function (index, size) {
94
+ var $link = $('<a/>').attr('href', '#')
95
+ .html(size)
96
+ .click(function (event) {
97
+ $(element).wysiwyg('shell').fontSize(7).closePopup();
98
+ $(element).wysiwyg('container')
99
+ .find('font[size=7]')
100
+ .removeAttr("size")
101
+ .css("font-size", size);
102
+ // prevent link-href-#
103
+ event.stopPropagation();
104
+ event.preventDefault();
105
+ return false;
106
+ });
107
+ $list.append($link);
108
+ });
109
+ $popup.append($list);
110
+ }
111
+ //showstatic: true, // wanted on the toolbar
112
+ //showselection: true // wanted on selection
113
+ },
114
+ // Header plugin
115
+ header: {
116
+ title: 'Header',
117
+ image: '\uf1dc', // <img src="path/to/image.png" width="16" height="16" alt="" />
118
+ popup: function ($popup, $button) {
119
+ var list_headers = {
120
+ // Name : Font
121
+ 'Header 1': '<h1>',
122
+ 'Header 2': '<h2>',
123
+ 'Header 3': '<h3>',
124
+ 'Header 4': '<h4>',
125
+ 'Header 5': '<h5>',
126
+ 'Header 6': '<h6>',
127
+ 'Code': '<pre>'
128
+ };
129
+ var $list = $('<div/>').addClass('wysiwyg-plugin-list')
130
+ .attr('unselectable', 'on');
131
+ $.each(list_headers, function (name, format) {
132
+ var $link = $('<a/>').attr('href', '#')
133
+ .css('font-family', format)
134
+ .html(name)
135
+ .click(function (event) {
136
+ $(element).wysiwyg('shell').format(format).closePopup();
137
+ // prevent link-href-#
138
+ event.stopPropagation();
139
+ event.preventDefault();
140
+ return false;
141
+ });
142
+ $list.append($link);
143
+ });
144
+ $popup.append($list);
145
+ }
146
+ //showstatic: true, // wanted on the toolbar
147
+ //showselection: true // wanted on selection
148
+ },
149
+
150
+ bold: {
151
+ title: 'Bold (Ctrl+B)',
152
+ image: '\uf032', // <img src="path/to/image.png" width="16" height="16" alt="" />
153
+ hotkey: 'b'
154
+ },
155
+ fontsize: {
156
+ title: 'Size',
157
+ image: '\uf034', // <img src="path/to/image.png" width="16" height="16" alt="" />
158
+ popup: function ($popup, $button) {
159
+ // Hack: http://stackoverflow.com/questions/5868295/document-execcommand-fontsize-in-pixels/5870603#5870603
160
+ var list_fontsizes = [];
161
+ for (var i = 8; i <= 11; ++i)
162
+ list_fontsizes.push(i + 'px');
163
+ for (var i = 12; i <= 28; i += 2)
164
+ list_fontsizes.push(i + 'px');
165
+ list_fontsizes.push('36px');
166
+ list_fontsizes.push('48px');
167
+ list_fontsizes.push('72px');
168
+ var $list = $('<div/>').addClass('wysiwyg-plugin-list')
169
+ .attr('unselectable', 'on');
170
+ $.each(list_fontsizes, function (index, size) {
171
+ var $link = $('<a/>').attr('href', '#')
172
+ .html(size)
173
+ .click(function (event) {
174
+ $(element).wysiwyg('shell').fontSize(7).closePopup();
175
+ $(element).wysiwyg('container')
176
+ .find('font[size=7]')
177
+ .removeAttr("size")
178
+ .css("font-size", size);
179
+ // prevent link-href-#
180
+ event.stopPropagation();
181
+ event.preventDefault();
182
+ return false;
183
+ });
184
+ $list.append($link);
185
+ });
186
+ $popup.append($list);
187
+ }
188
+ //showstatic: true, // wanted on the toolbar
189
+ //showselection: true // wanted on selection
190
+ },
191
+ // Header plugin
192
+ header: {
193
+ title: 'Header',
194
+ image: '\uf1dc', // <img src="path/to/image.png" width="16" height="16" alt="" />
195
+ popup: function ($popup, $button) {
196
+ var list_headers = {
197
+ // Name : Font
198
+ 'Header 1': '<h1>',
199
+ 'Header 2': '<h2>',
200
+ 'Header 3': '<h3>',
201
+ 'Header 4': '<h4>',
202
+ 'Header 5': '<h5>',
203
+ 'Header 6': '<h6>',
204
+ 'Code': '<pre>'
205
+ };
206
+ var $list = $('<div/>').addClass('wysiwyg-plugin-list')
207
+ .attr('unselectable', 'on');
208
+ $.each(list_headers, function (name, format) {
209
+ var $link = $('<a/>').attr('href', '#')
210
+ .css('font-family', format)
211
+ .html(name)
212
+ .click(function (event) {
213
+ $(element).wysiwyg('shell').format(format).closePopup();
214
+ // prevent link-href-#
215
+ event.stopPropagation();
216
+ event.preventDefault();
217
+ return false;
218
+ });
219
+ $list.append($link);
220
+ });
221
+ $popup.append($list);
222
+ }
223
+ //showstatic: true, // wanted on the toolbar
224
+ //showselection: true // wanted on selection
225
+ },
226
+ italic: {
227
+ title: 'Italic (Ctrl+f)',
228
+ image: '\uf033', // <img src="path/to/image.png" width="16" height="16" alt="" />
229
+ hotkey: 'i'
230
+ },
231
+ underline: {
232
+ title: 'Underline (Ctrl+U)',
233
+ image: '\uf0cd', // <img src="path/to/image.png" width="16" height="16" alt="" />
234
+ hotkey: 'u'
235
+ },
236
+ strikethrough: {
237
+ title: 'Strikethrough (Ctrl+S)',
238
+ image: '\uf0cc', // <img src="path/to/image.png" width="16" height="16" alt="" />
239
+ hotkey: 's'
240
+ },
241
+ forecolor: {
242
+ title: 'Text color',
243
+ image: '\uf1fc' // <img src="path/to/image.png" width="16" height="16" alt="" />
244
+ },
245
+ highlight: {
246
+ title: 'Background color',
247
+ image: '\uf043' // <img src="path/to/image.png" width="16" height="16" alt="" />
248
+ },
249
+ alignleft: {
250
+ title: 'Left',
251
+ image: '\uf036', // <img src="path/to/image.png" width="16" height="16" alt="" />
252
+ //showstatic: true, // wanted on the toolbar
253
+ showselection: true // wanted on selection
254
+ },
255
+ aligncenter: {
256
+ title: 'Center',
257
+ image: '\uf037', // <img src="path/to/image.png" width="16" height="16" alt="" />
258
+ //showstatic: true, // wanted on the toolbar
259
+ showselection: true // wanted on selection
260
+ },
261
+ alignright: {
262
+ title: 'Right',
263
+ image: '\uf038', // <img src="path/to/image.png" width="16" height="16" alt="" />
264
+ //showstatic: true, // wanted on the toolbar
265
+ showselection: true // wanted on selection
266
+ },
267
+ alignjustify: {
268
+ title: 'Justify',
269
+ image: '\uf039', // <img src="path/to/image.png" width="16" height="16" alt="" />
270
+ //showstatic: true, // wanted on the toolbar
271
+ showselection: true // wanted on selection
272
+ },
273
+ subscript: {
274
+ title: 'Subscript',
275
+ image: '\uf12c', // <img src="path/to/image.png" width="16" height="16" alt="" />
276
+ //showstatic: true, // wanted on the toolbar
277
+ showselection: true // wanted on selection
278
+ },
279
+ superscript: {
280
+ title: 'Superscript',
281
+ image: '\uf12b', // <img src="path/to/image.png" width="16" height="16" alt="" />
282
+ //showstatic: true, // wanted on the toolbar
283
+ showselection: true // wanted on selection
284
+ },
285
+ indent: {
286
+ title: 'Indent',
287
+ image: '\uf03c', // <img src="path/to/image.png" width="16" height="16" alt="" />
288
+ //showstatic: true, // wanted on the toolbar
289
+ showselection: true // wanted on selection
290
+ },
291
+ outdent: {
292
+ title: 'Outdent',
293
+ image: '\uf03b', // <img src="path/to/image.png" width="16" height="16" alt="" />
294
+ //showstatic: true, // wanted on the toolbar
295
+ showselection: true // wanted on selection
296
+ },
297
+ orderedList: {
298
+ title: 'Ordered list',
299
+ image: '\uf0cb', // <img src="path/to/image.png" width="16" height="16" alt="" />
300
+ //showstatic: true, // wanted on the toolbar
301
+ showselection: true // wanted on selection
302
+ },
303
+ unorderedList: {
304
+ title: 'Unordered list',
305
+ image: '\uf0ca', // <img src="path/to/image.png" width="16" height="16" alt="" />
306
+ //showstatic: true, // wanted on the toolbar
307
+ showselection: true // wanted on selection
308
+ },
309
+ removeformat: {
310
+ title: 'Remove format',
311
+ image: '\uf12d' // <img src="path/to/image.png" width="16" height="16" alt="" />
312
+ }
313
+
314
+ },
315
+ // Submit-Button
316
+ //submit: {
317
+ // title: 'Submit',
318
+ // image: '\uf00c' // <img src="path/to/image.png" width="16" height="16" alt="" />
319
+ //},
320
+ // Other properties
321
+ selectImage: 'Click or drop image',
322
+ placeholderUrl: 'www.example.com',
323
+ placeholderEmbed: '<embed/>',
324
+ maxImageSize: [600, 200],
325
+ //onKeyDown: function (key, character, shiftKey, altKey, ctrlKey, metaKey) {
326
+ // // E.g.: submit form on enter-key:
327
+ // if ((key == 83 || key == 13) && !shiftKey && !altKey && !ctrlKey && metaKey) {
328
+ // //savefile();
329
+ //
330
+ // // submit_form();
331
+ // return false; // swallow enter
332
+ // }
333
+ //
334
+ //
335
+ //},
336
+ //onKeyPress: function (key, character, shiftKey, altKey, ctrlKey, metaKey) {
337
+ //},
338
+ //onKeyUp: function (key, character, shiftKey, altKey, ctrlKey, metaKey) {
339
+ //
340
+ //},
341
+ forceImageUpload: false, // upload images even if File-API is present
342
+ videoFromUrl: function (url) {
343
+ // Contributions are welcome :-)
344
+
345
+ // youtube - http://stackoverflow.com/questions/3392993/php-regex-to-get-youtube-video-id
346
+ var youtube_match = url.match(/^(?:http(?:s)?:\/\/)?(?:[a-z0-9.]+\.)?(?:youtu\.be|youtube\.com)\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/)([^\?&\"'>]+)/);
347
+ if (youtube_match && youtube_match[1].length == 11)
348
+ return '<iframe src="//www.youtube.com/embed/' + youtube_match[1] + '" width="640" height="360" frameborder="0" allowfullscreen></iframe>';
349
+
350
+ // vimeo - http://embedresponsively.com/
351
+ var vimeo_match = url.match(/^(?:http(?:s)?:\/\/)?(?:[a-z0-9.]+\.)?vimeo\.com\/([0-9]+)$/);
352
+ if (vimeo_match)
353
+ return '<iframe src="//player.vimeo.com/video/' + vimeo_match[1] + '" width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
354
+
355
+ // dailymotion - http://embedresponsively.com/
356
+ var dailymotion_match = url.match(/^(?:http(?:s)?:\/\/)?(?:[a-z0-9.]+\.)?dailymotion\.com\/video\/([0-9a-z]+)$/);
357
+ if (dailymotion_match)
358
+ return '<iframe src="//www.dailymotion.com/embed/video/' + dailymotion_match[1] + '" width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
359
+ // undefined -> create '<video/>' tag
360
+ }
361
+ })
362
+
363
+ });
364
+ }
365
+