rails-redactorjs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +53 -0
  5. data/Rakefile +2 -0
  6. data/lib/rails-redactorjs.rb +14 -0
  7. data/lib/rails-redactorjs/configuration.rb +54 -0
  8. data/lib/rails-redactorjs/engine.rb +11 -0
  9. data/lib/rails-redactorjs/helper.rb +15 -0
  10. data/lib/rails-redactorjs/version.rb +5 -0
  11. data/rails-redactorjs.gemspec +17 -0
  12. data/vendor/assets/javascripts/rails-redactorjs/css/docstyle.css +123 -0
  13. data/vendor/assets/javascripts/rails-redactorjs/css/style.css +119 -0
  14. data/vendor/assets/javascripts/rails-redactorjs/css/wym.css +136 -0
  15. data/vendor/assets/javascripts/rails-redactorjs/index.js +1 -0
  16. data/vendor/assets/javascripts/rails-redactorjs/langs/by.js +72 -0
  17. data/vendor/assets/javascripts/rails-redactorjs/langs/de.js +75 -0
  18. data/vendor/assets/javascripts/rails-redactorjs/langs/en.js +76 -0
  19. data/vendor/assets/javascripts/rails-redactorjs/langs/es.js +76 -0
  20. data/vendor/assets/javascripts/rails-redactorjs/langs/fr.js +74 -0
  21. data/vendor/assets/javascripts/rails-redactorjs/langs/hu.js +76 -0
  22. data/vendor/assets/javascripts/rails-redactorjs/langs/it.js +76 -0
  23. data/vendor/assets/javascripts/rails-redactorjs/langs/ja.js +76 -0
  24. data/vendor/assets/javascripts/rails-redactorjs/langs/lv.js +74 -0
  25. data/vendor/assets/javascripts/rails-redactorjs/langs/nl.js +76 -0
  26. data/vendor/assets/javascripts/rails-redactorjs/langs/pl.js +75 -0
  27. data/vendor/assets/javascripts/rails-redactorjs/langs/pt_br.js +81 -0
  28. data/vendor/assets/javascripts/rails-redactorjs/langs/ru.js +75 -0
  29. data/vendor/assets/javascripts/rails-redactorjs/langs/sq.js +76 -0
  30. data/vendor/assets/javascripts/rails-redactorjs/langs/tr.js +76 -0
  31. data/vendor/assets/javascripts/rails-redactorjs/langs/ua.js +75 -0
  32. data/vendor/assets/javascripts/rails-redactorjs/langs/zh_cn.js +77 -0
  33. data/vendor/assets/javascripts/rails-redactorjs/langs/zh_tw.js +76 -0
  34. data/vendor/assets/javascripts/rails-redactorjs/plugins/file.html +3 -0
  35. data/vendor/assets/javascripts/rails-redactorjs/plugins/image.html +39 -0
  36. data/vendor/assets/javascripts/rails-redactorjs/plugins/image_edit.html +35 -0
  37. data/vendor/assets/javascripts/rails-redactorjs/plugins/link.html +74 -0
  38. data/vendor/assets/javascripts/rails-redactorjs/plugins/table.html +25 -0
  39. data/vendor/assets/javascripts/rails-redactorjs/plugins/video.html +15 -0
  40. data/vendor/assets/javascripts/rails-redactorjs/redactor.js +2259 -0
  41. data/vendor/assets/javascripts/rails-redactorjs/redactor.min.js +1 -0
  42. data/vendor/assets/javascripts/rails-redactorjs/toolbars/default.js +214 -0
  43. data/vendor/assets/javascripts/rails-redactorjs/toolbars/mini.js +103 -0
  44. data/vendor/assets/stylesheets/rails-redactorjs/css/redactor.css +368 -0
  45. data/vendor/assets/stylesheets/rails-redactorjs/img/icons.png +0 -0
  46. data/vendor/assets/stylesheets/rails-redactorjs/index.css +1 -0
  47. metadata +95 -0
@@ -0,0 +1 @@
1
+ var RTOOLBAR={};(function(b){jQuery.fn.redactor=function(c){return this.each(function(){var e=b(this);var d=e.data("redactor");if(!d){e.data("redactor",(d=new a(this,c)))}})};var a=function(d,c){this.$el=b(d);this.opts=b.extend({lang:"en",toolbar:"default",load:true,path:false,css:"style.css",focus:true,resize:true,autoresize:false,fixed:false,autoformat:true,cleanUp:true,convertDivs:true,removeClasses:true,removeStyles:false,convertLinks:true,handler:false,autosave:false,interval:60,imageGetJson:false,imageUpload:false,linkFileUpload:false,fileUpload:false,visual:true,fullscreen:false,overlay:true,colors:Array("#ffffff","#000000","#eeece1","#1f497d","#4f81bd","#c0504d","#9bbb59","#8064a2","#4bacc6","#f79646","#ffff00","#f2f2f2","#7f7f7f","#ddd9c3","#c6d9f0","#dbe5f1","#f2dcdb","#ebf1dd","#e5e0ec","#dbeef3","#fdeada","#fff2ca","#d8d8d8","#595959","#c4bd97","#8db3e2","#b8cce4","#e5b9b7","#d7e3bc","#ccc1d9","#b7dde8","#fbd5b5","#ffe694","#bfbfbf","#3f3f3f","#938953","#548dd4","#95b3d7","#d99694","#c3d69b","#b2a2c7","#b7dde8","#fac08f","#f2c314","#a5a5a5","#262626","#494429","#17365d","#366092","#953734","#76923c","#5f497a","#92cddc","#e36c09","#c09100","#7f7f7f","#0c0c0c","#1d1b10","#0f243e","#244061","#632423","#4f6128","#3f3151","#31859b","#974806","#7f6000"),allEmptyHtml:"<p><br /></p>",mozillaEmptyHtml:"<p>&nbsp;</p>"},c,this.$el.data());this.dropdowns=[];this.init()};a.prototype={_loadFile:function(c,f){var d=f[0];f.splice(0,1);var e;if(typeof(d)=="function"){e=d}else{e=b.proxy(function(){this._loadFile(d,f)},this)}this.dynamicallyLoad(c,e)},loadFiles:function(d){var c=d[0];d.splice(0,1);this._loadFile(c,d)},dynamicallyLoad:function(e,g){var f=document.getElementsByTagName("head")[0];var d=document.createElement("script");d.src=e;var c=false;d.onload=d.onreadystatechange=function(){if(!c&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){c=true;if(g){g()}d.onload=d.onreadystatechange=null}};f.appendChild(d)},init:function(){this.getPath();if(this.opts.load){var c=[];c.push(this.opts.path+"/langs/"+this.opts.lang+".js");if(this.opts.toolbar!==false){c.push(this.opts.path+"/toolbars/"+this.opts.toolbar+".js")}c.push(b.proxy(this.start,this));this.loadFiles(c)}else{this.start()}},start:function(){this.height=this.$el.css("height");this.width=this.$el.css("width");this.build();var c=this.$el.val();c=this.preformater(c);if(this.opts.autoformat){c=this.paragraphy(c)}this.$editor=this.enable(c);b(this.doc).click(b.proxy(function(d){this.$editor.focus()},this));b(this.doc).bind("paste",b.proxy(function(d){setTimeout(b.proxy(function(){var e=b('<span id="pastemarkerend">&nbsp;</span>');this.insertNodeAtCaret(e.get(0));this.pasteCleanUp()},this),200)},this));b(this.doc).keypress(b.proxy(function(f){var d=f.keyCode||f.which;if(navigator.userAgent.indexOf("AppleWebKit")!=-1){return this.safariShiftKeyEnter(f,d)}},this)).keyup(b.proxy(function(f){var d=f.keyCode||f.which;if(this.opts.autoformat){if(d==8||d==46){return this.formatEmpty(f)}if(d==13&&!f.shiftKey&&!f.ctrlKey&&!f.metaKey){return this.formatNewLine(f)}}this.syncCode()},this));this.buildToolbar();if(this.opts.autoresize===false){this.buildResizer()}else{this.observeAutoResize()}this.shortcuts();this.autoSave();this.observeImages();if(this.opts.fullscreen){this.opts.fullscreen=false;this.fullscreen()}if(this.opts.focus){this.focus()}if(this.opts.fixed){this.observeScroll();b(document).scroll(b.proxy(this.observeScroll,this))}},shortcuts:function(){b(this.doc).keydown(b.proxy(function(d){var c=d.keyCode||d.which;if(d.ctrlKey){if(c==90){this._shortcuts(d,"undo")}else{if(c==90&&d.shiftKey){this._shortcuts(d,"redo")}else{if(c==77){this._shortcuts(d,"removeFormat")}else{if(c==66){this._shortcuts(d,"bold")}else{if(c==73){this._shortcuts(d,"italic")}else{if(c==74){this._shortcuts(d,"insertunorderedlist")}else{if(c==75){this._shortcuts(d,"insertorderedlist")}else{if(c==76){this._shortcuts(d,"superscript")}}}}}}}}}if(!d.shiftKey&&c==9){this._shortcuts(d,"indent")}else{if(d.shiftKey&&c==9){this._shortcuts(d,"outdent")}}},this))},_shortcuts:function(d,c){if(d.preventDefault){d.preventDefault()}this.execCommand(c,null)},getPath:function(){if(this.opts.path!==false){return this.opts.path}b("script").each(b.proxy(function(c,d){if(d.src){var e=new RegExp(/\/redactor(\.min)?\.js(\?.*)?/);if(d.src.match(e)){this.opts.path=d.src.replace(e,"")}}},this))},build:function(){this.$box=b('<div class="redactor_box"></div>');this.$frame=b('<iframe frameborder="0" scrolling="auto" style="height: '+this.height+';" class="redactor_frame"></iframe>');this.$el.css("width","100%").hide();this.$box.insertAfter(this.$el).append(this.$frame).append(this.$el)},write:function(c){this.doc.open();this.doc.write(c);this.doc.close()},enable:function(c){this.doc=this.getDoc(this.$frame.get(0));if(this.doc!==null){this.write(this.setDoc(c));if(b.browser.mozilla){this.doc.execCommand("useCSS",false,true)}return b(this.doc).find("#page")}else{return false}},setDoc:function(d){var c="<!DOCTYPE html>\n";c+='<html><head><link media="all" type="text/css" href="'+this.opts.path+"/css/"+this.opts.css+'" rel="stylesheet"></head>';c+='<body><div id="page" contenteditable="true">';c+=d;c+="</div></body></html>";return c},getDoc:function(c){if(c.contentDocument){return c.contentDocument}else{if(c.contentWindow&&c.contentWindow.document){return c.contentWindow.document}else{if(c.document){return c.document}else{return null}}}},focus:function(){this.$editor.focus()},syncCode:function(){var c=this.formating(this.$editor.html());this.$el.val(c)},setCode:function(c){c=this.preformater(c);this.$editor.html(c).focus();this.syncCode()},getCode:function(){var c=this.$editor?this.$editor.html():this.$el.val();c=this.reformater(c);return c},insertHtml:function(c){this.execCommand("inserthtml",c)},destroy:function(){var c=this.getCode();this.$box.after(this.$el);this.$box.remove();this.$el.val(c).show();this.dropdowns.forEach(function(e,d){e.remove();delete (this.dropdowns[d])},this)},handler:function(){b.ajax({url:this.opts.handler,type:"post",data:"redactor="+escape(encodeURIComponent(this.getCode())),success:b.proxy(function(c){this.setCode(c);this.syncCode()},this)})},observeImages:function(){if(b.browser.mozilla){this.doc.execCommand("enableObjectResizing",false,"false")}b(this.doc).find("img").attr("unselectable","on").each(b.proxy(function(c,d){this.resizeImage(d)},this))},observeScroll:function(){var c=b(document).scrollTop();var d=this.$box.offset().top;if(c>d){this.fixed=true;this.$toolbar.css({position:"fixed",width:"100%"})}else{this.fixed=false;this.$toolbar.css({position:"relative",width:"auto"})}},observeAutoResize:function(){this.$editor.css({"min-height":this.$el.height()+"px"});this.$frame.css({"overflow-x":"auto","overflow-y":"hidden"});this.$frame.load(b.proxy(this.setAutoSize,this));b(this.doc).keyup(b.proxy(this.setAutoSize,this))},setAutoSize:function(){this.$frame.height(this.$editor.outerHeight(true)+30)},execCommand:function(c,f){if(this.opts.visual&&this.doc){try{if(b.browser.msie){this.focus()}if(c=="inserthtml"&&b.browser.msie){this.doc.selection.createRange().pasteHTML(f)}else{if(c=="formatblock"&&b.browser.msie){this.doc.execCommand(c,false,"<"+f+">")}else{this.doc.execCommand(c,false,f)}}this.syncCode();this.focus()}catch(d){}}},formatNewLine:function(d){var c=this.getParentNode();if(c.nodeName=="DIV"&&c.id=="page"){if(d.preventDefault){d.preventDefault()}element=b(this.getCurrentNode());if(element.get(0).tagName=="DIV"&&(element.html()==""||element.html()=="<br>")){newElement=b("<p>").append(element.clone().get(0).childNodes);element.replaceWith(newElement);newElement.html("<br />");this.setFocusNode(newElement.get(0));this.syncCode();return false}else{this.syncCode()}if(this.opts.convertLinks){this.$editor.linkify()}}else{this.syncCode();return true}},safariShiftKeyEnter:function(f,d){if(f.shiftKey&&d==13){if(f.preventDefault){f.preventDefault()}var c=b("<span><br /></span>");this.insertNodeAtCaret(c.get(0));this.setFocusNode(c.get(0));this.syncCode();return false}},formatEmpty:function(g){var d=b.trim(this.$editor.html());if(b.browser.mozilla){d=d.replace(/<br>/gi,"")}if(d===""){if(g.preventDefault){g.preventDefault()}var c=this.opts.allEmptyHtml;if(b.browser.mozilla){c=this.opts.mozillaEmptyHtml}var f=b(c).get(0);this.$editor.html(f);this.setFocusNode(f);this.syncCode();return false}else{this.syncCode()}},paragraphy:function(e){e=b.trim(e);if(e===""){if(!b.browser.mozilla){return this.opts.allEmptyHtml}else{return this.opts.mozillaEmptyHtml}}if(this.opts.convertDivs){e=e.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p>$2</p>")}var f=function(h,i,g){return h.replace(new RegExp(i,"g"),g)};var c=function(h,g){return f(e,h,g)};var d="(table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|style|script|object|input|param|p|h[1-6])";e+="\n";c("<br />\\s*<br />","\n\n");c("(<"+d+"[^>]*>)","\n$1");c("(</"+d+">)","$1\n\n");c("\r\n|\r","\n");c("\n\n+","\n\n");c("\n?((.|\n)+?)$","<p>$1</p>\n");c("<p>\\s*?</p>","");c("<p>(<div[^>]*>\\s*)","$1<p>");c("<p>([^<]+)\\s*?(</(div|address|form)[^>]*>)","<p>$1</p>$2");c("<p>\\s*(</?"+d+"[^>]*>)\\s*</p>","$1");c("<p>(<li.+?)</p>","$1");c("<p>\\s*(</?"+d+"[^>]*>)","$1");c("(</?"+d+"[^>]*>)\\s*</p>","$1");c("(</?"+d+"[^>]*>)\\s*<br />","$1");c("<br />(\\s*</?(p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)","$1");if(e.indexOf("<pre")!=-1){c("(<pre(.|\n)*?>)((.|\n)*?)</pre>",function(j,i,h,g){return f(i,"\\\\(['\"\\\\])","$1")+f(f(f(g,"<p>","\n"),"</p>|<br />",""),"\\\\(['\"\\\\])","$1")+"</pre>"})}return c("\n</p>$","</p>")},preformater:function(c){c=c.replace(/<br>/gi,"<br />");c=c.replace(/<blockquote\b[^>]*>([\w\W]*?)<p>([\w\W]*?)<\/p>([\w\W]*?)<\/blockquote[^>]*>/gi,"<blockquote>$1$2<br />$3</blockquote>");c=c.replace(/<strong\b[^>]*>([\w\W]*?)<\/strong[^>]*>/gi,"<b>$1</b>");c=c.replace(/<em\b[^>]*>([\w\W]*?)<\/em[^>]*>/gi,"<i>$1</i>");c=c.replace(/<del\b[^>]*>([\w\W]*?)<\/del[^>]*>/gi,"<strike>$1</strike>");return c},reformater:function(c){c=c.replace(/<br>/gi,"<br />");c=c.replace(/<b\b[^>]*>([\w\W]*?)<\/b[^>]*>/gi,"<strong>$1</strong>");c=c.replace(/<i\b[^>]*>([\w\W]*?)<\/i[^>]*>/gi,"<em>$1</em>");c=c.replace(/<strike\b[^>]*>([\w\W]*?)<\/strike[^>]*>/gi,"<del>$1</del>");c=c.replace(/<span(.*?)style="font-weight: bold;">([\w\W]*?)<\/span>/gi,"<strong>$2</strong>");c=c.replace(/<span(.*?)style="font-style: italic;">([\w\W]*?)<\/span>/gi,"<em>$2</em>");c=c.replace(/<span(.*?)style="font-weight: bold; font-style: italic;">([\w\W]*?)<\/span>/gi,"<em><strong>$2</strong></em>");c=c.replace(/<span(.*?)style="font-style: italic; font-weight: bold;">([\w\W]*?)<\/span>/gi,"<strong><em>$2</em></strong>");return c},cleanUpClasses:function(c){c=c.replace(/\s*class="TOC(.*?)"/gi,"");c=c.replace(/\s*class="Heading(.*?)"/gi,"");c=c.replace(/\s*class="Body(.*?)"/gi,"");return c},cleanUpStyles:function(c){c=c.replace(/\s*mso-[^:]+:[^;"]+;?/gi,"");c=c.replace(/\s*margin(.*?)pt\s*;/gi,"");c=c.replace(/\s*margin(.*?)cm\s*;/gi,"");c=c.replace(/\s*text-indent:(.*?)\s*;/gi,"");c=c.replace(/\s*line-height:(.*?)\s*;/gi,"");c=c.replace(/\s*page-break-before: [^\s;]+;?"/gi,'"');c=c.replace(/\s*font-variant: [^\s;]+;?"/gi,'"');c=c.replace(/\s*tab-stops:[^;"]*;?/gi,"");c=c.replace(/\s*tab-stops:[^"]*/gi,"");c=c.replace(/\s*face="[^"]*"/gi,"");c=c.replace(/\s*face=[^ >]*/gi,"");c=c.replace(/\s*font:(.*?);/gi,"");c=c.replace(/\s*font-size:(.*?);/gi,"");c=c.replace(/\s*font-weight:(.*?);/gi,"");c=c.replace(/\s*font-family:[^;"]*;?/gi,"");c=c.replace(/<span style="Times New Roman&quot;">\s\n<\/span>/gi,"");return c},cleanUp:function(c){c=c.replace(/(<\!\-\-([\w\W]*?)\-\->)/ig,"");if(this.opts.convertDivs){c=c.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p$1>$2</p>")}c=c.replace(/ lang="([\w\W]*?)"/gi,"");c=c.replace(/<a name="(.*?)">([\w\W]*?)<\/a>/gi,"");c=c.replace(/\&nbsp;\&nbsp;\&nbsp;/gi," ");c=c.replace(/\&nbsp;\&nbsp;/gi," ");c=c.replace(/<o:p>(.*?)<\/o:p>/gi,"");c=c.replace(/\s*style="\s*"/gi,"");c=c.replace(/<span>&nbsp;<\/span>/gi,"");c=c.replace(/<span>([\w\W]*?)<\/span>/gi,"$1");return c},removeTags:function(c){return c.replace(/<(?!\s*\/?(code|span|div|label|a|br|p|b|i|del|strike|img|video|audio|iframe|object|embed|param|blockquote|mark|cite|small|ul|ol|li|hr|dl|dt|dd|sup|sub|big|pre|code|figure|figcaption|strong|em|table|tr|td|th|tbody|thead|tfoot|h1|h2|h3|h4|h5|h6)\b)[^>]+>/gi,"")},pasteCleanUp:function(){var c=this.$editor.html();c=c.replace(/<span id="pastemarkerend">&nbsp;<\/span>/,"#marker#");c=this.formating(c);c=this.cleanUp(c);if(this.opts.removeClasses){c=c.replace(/ class="([\w\W]*?)"/gi,"")}else{c=this.cleanUpClasses(c)}if(this.opts.removeStyles){c=c.replace(/ style="([\w\W]*?)"/gi,"")}else{c=this.cleanUpStyles(c)}c=this.cleanUp(c);c=this.formating(c);c=c.replace(/<b(.*?)id="internal-source-marker(.*?)">([\w\W]*?)<\/b>/gi,"$3");c=c.replace(/#marker#/,'<span id="pastemarkerend">&nbsp;</span>');this.$editor.html(c);var d=b(this.doc.body).find("#pastemarkerend").get(0);this.setFocusNode(d);this.syncCode();this.observeImages()},formating:function(j){if(b.browser.msie){j=j.replace(/<*(\/ *)?(\w+)/g,function(i){return i.toLowerCase()});j=j.replace(/style="(.*?)"/g,function(i){return i.toLowerCase()});j=j.replace(/ jQuery(.*?)=\"(.*?)\"/gi,"")}j=j.replace(/<font([\w\W]*?)color="(.*?)">([\w\W]*?)<\/font\>/gi,'<span style="color: $2;">$3</span>');j=j.replace(/<font([\w\W]*?)>([\w\W]*?)<\/font\>/gi,"<span$1>$2</span>");j=j.replace(/<span>([\w\W]*?)<\/span>/gi,"$1");j=j.replace(/ class="Apple-style-span"/gi,"");j=j.replace(/ class="Apple-tab-span"/gi,"");j=j.replace(/<p><p>/g,"<p>");j=j.replace(/<\/p><\/p>/g,"</p>");j=j.replace(/<hr(.*?)>/g,"<hr />");j=j.replace(/<p>&nbsp;/g,"<p>");j=j.replace(/<p><ul>/g,"<ul>");j=j.replace(/<p><ol>/g,"<ol>");j=j.replace(/<\/ul><\/p>/g,"</ul>");j=j.replace(/<\/ol><\/p>/g,"</ol>");j=j.replace(/<p(.*?)>&nbsp;<\/p>/gi,"");j=j.replace(/[\t]*/g,"");j=j.replace(/\n\s*\n/g,"\n");j=j.replace(/^[\s\n]*/,"");j=j.replace(/[\s\n]*$/,"");var e=["<pre></pre>","<blockquote>\\s*</blockquote>","<em>\\s*</em>","<b>\\s*</b>","<ul></ul>","<ol></ol>","<li></li>","<table></table>","<tr></tr>","<span>\\s*<span>","<span>&nbsp;<span>","<p>\\s*</p>","<p>&nbsp;</p>","<p>\\s*<br>\\s*</p>","<div>\\s*</div>","<div>\\s*<br>\\s*</div>"];for(var f=0;f<e.length;++f){var l=e[f];j=j.replace(new RegExp(l,"gi"),"")}var d="\r\n";var h=["<form","<fieldset","<legend","<object","<embed","<select","<option","<input","<textarea","<pre","<blockquote","<ul","<ol","<li","<dl","<dt","<dd","<table","<thead","<tbody","<caption","</caption>","<th","<tr","<td","<figure"];for(var f=0;f<h.length;++f){var g=h[f];j=j.replace(new RegExp(g,"gi"),d+g)}var k=["</p>","</div>","</ul>","</ol>","</h1>","</h2>","</h3>","</h4>","</h5>","</h6>","<br>","<br />","</dl>","</dt>","</dd>","</form>","</blockquote>","</pre>","</legend>","</fieldset>","</object>","</embed>","</textarea>","</select>","</option>","</table>","</thead>","</tbody>","</tr>","</td>","</th>","</figure>"];for(var f=0;f<k.length;++f){var c=k[f];j=j.replace(new RegExp(c,"gi"),c+d)}j=j.replace(/<li/g,"\t<li");j=j.replace(/<tr/g,"\t<tr");j=j.replace(/<td/g,"\t\t<td");j=j.replace(/<\/tr>/g,"\t</tr>");return j},toggle:function(){var c;if(this.opts.visual){this.$frame.hide();c=this.$editor.html();c=b.trim(this.formating(c));this.$el.val(c).show().focus();this.setBtnActive("html");this.opts.visual=false}else{this.$el.hide();this.$editor.html(this.$el.val());this.$frame.show();if(this.$editor.html()===""){if(!b.browser.mozilla){c=this.opts.allEmptyHtml}else{c=this.opts.mozillaEmptyHtml}this.setCode(c)}this.focus();this.setBtnInactive("html");this.opts.visual=true;this.observeImages()}},autoSave:function(){if(this.opts.autosave===false){return false}setInterval(b.proxy(function(){b.post(this.opts.autosave,{data:this.getCode()})},this),this.opts.interval*1000)},buildToolbar:function(){if(this.opts.toolbar===false){return false}this.$toolbar=b("<ul>").addClass("redactor_toolbar");this.$box.prepend(this.$toolbar);b.each(RTOOLBAR[this.opts.toolbar],b.proxy(function(e,f){if(this.opts.fileUpload===false&&e=="file"){return true}var c=b("<li>");if(e=="fullscreen"){b(c).addClass("redactor_toolbar_right")}var d=this.buildButton(e,f);if(e=="backcolor"||e=="fontcolor"||typeof(f.dropdown)!="undefined"){var g=b('<div class="redactor_dropdown" style="display: none;">');if(e=="backcolor"||e=="fontcolor"){g=this.buildColorPicker(g,e)}else{g=this.buildDropdown(g,f.dropdown)}this.dropdowns.push(g.appendTo(b(document.body)));this.hdlHideDropDown=b.proxy(function(h){this.hideDropDown(h,g,e)},this);this.hdlShowDropDown=b.proxy(function(h){this.showDropDown(h,g,e)},this);d.click(this.hdlShowDropDown)}this.$toolbar.append(b(c).append(d));if(typeof(f.separator)!="undefined"){this.$toolbar.append(b('<li class="redactor_separator"></li>'))}},this));b(document).click(this.hdlHideDropDown);b(this.doc).click(this.hdlHideDropDown)},buildButton:function(d,e){var c=b('<a href="javascript:void(null);" title="'+e.title+'" class="redactor_btn_'+d+'"><span>&nbsp;</span></a>');if(typeof(e.func)=="undefined"){c.click(b.proxy(function(){this.execCommand(e.exec,d)},this))}else{if(e.func!="show"){c.click(b.proxy(function(f){this[e.func](f)},this))}}return c},buildDropdown:function(d,c){b.each(c,b.proxy(function(e,g){if(typeof(g.style)=="undefined"){g.style=""}var f;if(g.name=="separator"){f=b('<a class="redactor_separator_drop">')}else{f=b('<a href="javascript:void(null);" style="'+g.style+'">'+g.title+"</a>");if(typeof(g.func)=="undefined"){b(f).click(b.proxy(function(){this.execCommand(g.exec,e)},this))}else{b(f).click(b.proxy(function(h){this[g.func](h)},this))}}b(d).append(f)},this));return d},buildColorPicker:function(l,k){var f;if(k=="backcolor"){if(b.browser.msie){f="BackColor"}else{f="hilitecolor"}}else{f="forecolor"}b(l).width(210);var g=this.opts.colors.length;for(var e=0;e<g;++e){var c=this.opts.colors[e];var j=b('<a rel="'+c+'" href="javascript:void(null);" class="redactor_color_link"></a>').css({backgroundColor:c});b(l).append(j);var h=this;b(j).click(function(){h.execCommand(f,b(this).attr("rel"))})}var d=b('<a href="javascript:void(null);" class="redactor_color_none"></a>').html(RLANG.none);if(k=="backcolor"){d.click(b.proxy(this.setBackgroundNone,this))}else{d.click(b.proxy(this.setColorNone,this))}b(l).append(d);return l},setBackgroundNone:function(){b(this.getParentNode()).css("background-color","transparent");this.syncCode()},setColorNone:function(){b(this.getParentNode()).attr("color","").css("color","");this.syncCode()},showDropDown:function(g,h,c){this.hideAllDropDown();this.setBtnActive(c);this.getBtn(c).addClass("dropact");var f=this.getBtn(c).offset().left;if(this.opts.fixed&&this.fixed){b(h).css({position:"fixed",left:f+"px",top:"30px"}).show()}else{var d=this.$toolbar.offset().top+30;b(h).css({position:"absolute",left:f+"px",top:d+"px"}).show()}},hideAllDropDown:function(){this.$toolbar.find("a.dropact").removeClass("act").removeClass("dropact");b(".redactor_dropdown").hide()},hideDropDown:function(d,f,c){if(!b(d.target).parent().hasClass("dropact")){b(f).removeClass("act");this.showedDropDown=false;this.hideAllDropDown()}},getSelection:function(){if(this.$frame.get(0).contentWindow.getSelection){return this.$frame.get(0).contentWindow.getSelection()}else{if(this.$frame.get(0).contentWindow.document.selection){return this.$frame.get(0).contentWindow.document.selection.createRange()}}},getParentNode:function(){if(window.getSelection){return this.getSelection().getRangeAt(0).startContainer.parentNode}else{if(document.selection){return this.getSelection().parentElement()}}},getCurrentNode:function(){if(window.getSelection){return this.getSelection().getRangeAt(0).startContainer}else{if(document.selection){return this.getSelection()}}},setFocusNode:function(f,d){var c=this.doc.createRange();var e=this.getSelection();d=d?0:1;if(e!==null){c.selectNodeContents(f);e.addRange(c);e.collapse(f,d)}this.focus()},insertNodeAtCaret:function(g){if(typeof window.getSelection!="undefined"){var h=this.getSelection();if(h.rangeCount){var d=h.getRangeAt(0);d.collapse(false);d.insertNode(g);d=d.cloneRange();d.selectNodeContents(g);d.collapse(false);h.removeAllRanges();h.addRange(d)}}else{if(typeof document.selection!="undefined"&&document.selection.type!="Control"){var e=(g.nodeType==1)?g.outerHTML:g.data;var i="marker_"+(""+Math.random()).slice(2);e+='<span id="'+i+'"></span>';var f=this.getSelection();f.collapse(false);f.pasteHTML(e);var c=document.getElementById(i);f.moveToElementText(c);f.select();c.parentNode.removeChild(c)}}},getBtn:function(c){return b(this.$toolbar.find("a.redactor_btn_"+c))},setBtnActive:function(c){this.getBtn(c).addClass("act")},setBtnInactive:function(c){this.getBtn(c).removeClass("act")},changeBtnIcon:function(c,d){this.getBtn(c).addClass("redactor_btn_"+d)},removeBtnIcon:function(c,d){this.getBtn(c).removeClass("redactor_btn_"+d)},removeBtn:function(c){this.getBtn(c).remove()},addBtn:function(c,d){this.$toolbar.append(b("<li>").append(this.buildButton(c,d)))},fullscreen:function(){var c;if(this.opts.fullscreen===false){this.changeBtnIcon("fullscreen","normalscreen");this.setBtnActive("fullscreen");this.opts.fullscreen=true;this.height=this.$frame.css("height");this.width=(this.$box.width()-2)+"px";c=this.getCode();this.tmpspan=b("<span></span>");this.$box.addClass("redactor_box_fullscreen").after(this.tmpspan);b(document.body).prepend(this.$box).css("overflow","hidden");this.$editor=this.enable(c);b(this.doc).click(b.proxy(this.hideAllDropDown,this));b(this.doc).click(b.proxy(function(d){this.$editor.focus()},this));this.observeImages();this.$box.find(".redactor_resizer").hide();this.fullScreenResize();b(window).resize(b.proxy(this.fullScreenResize,this));b(document).scrollTop(0,0);this.focus()}else{this.removeBtnIcon("fullscreen","normalscreen");this.setBtnInactive("fullscreen");this.opts.fullscreen=false;b(window).unbind("resize",b.proxy(this.fullScreenResize,this));b(document.body).css("overflow","");c=this.getCode();this.$box.removeClass("redactor_box_fullscreen").css("width","auto");this.tmpspan.after(this.$box).remove();this.$editor=this.enable(c);this.observeImages();this.observeAutoResize();this.$box.find(".redactor_resizer").show();b(this.doc).click(b.proxy(this.hideAllDropDown,this));b(this.doc).click(b.proxy(function(d){this.$editor.focus()},this));this.syncCode();this.$frame.css("height",this.height);this.$el.css("height",this.height);this.focus()}},fullScreenResize:function(){if(this.opts.fullscreen===false){return}var d=42;if(this.opts.air){d=2}var c=b(window).height()-d;this.$box.width(b(window).width()-2);this.$frame.height(c);this.$el.height(c)},buildResizer:function(){if(this.opts.resize===false){return false}this.$resizer=b('<div class="redactor_resizer">&mdash;</div>');this.$box.append(this.$resizer);this.$resizer.mousedown(b.proxy(this.initResize,this))},initResize:function(c){if(c.preventDefault){c.preventDefault()}this.splitter=c.target;if(this.opts.visual){this.element_resize=this.$frame;this.element_resize.get(0).style.visibility="hidden";this.element_resize_parent=this.$el}else{this.element_resize=this.$el;this.element_resize_parent=this.$frame}this.stopResizeHdl=b.proxy(this.stopResize,this);this.startResizeHdl=b.proxy(this.startResize,this);this.resizeHdl=b.proxy(this.resize,this);b(document).mousedown(this.startResizeHdl);b(document).mouseup(this.stopResizeHdl);b(this.splitter).mouseup(this.stopResizeHdl);this.null_point=false;this.h_new=false;this.h=this.element_resize.height()},startResize:function(){b(document).mousemove(this.resizeHdl)},resize:function(d){if(d.preventDefault){d.preventDefault()}var f=d.pageY;if(this.null_point===false){this.null_point=f}if(this.h_new===false){this.h_new=this.element_resize.height()}var c=(this.h_new+f-this.null_point)-10;if(c<=30){return true}if(c>=0){this.element_resize.get(0).style.height=c+"px";this.element_resize_parent.get(0).style.height=c+"px"}},stopResize:function(c){b(document).unbind("mousemove",this.resizeHdl);b(document).unbind("mousedown",this.startResizeHdl);b(document).unbind("mouseup",this.stopResizeHdl);b(this.splitter).unbind("mouseup",this.stopResizeHdl);this.element_resize.get(0).style.visibility="visible"},resizeImage:function(d){var g=false;var c=false;var l;var k;var f=b(d).width()/b(d).height();var h=1;var i=1;var j=1;var e=1;b(d).hover(function(){b(d).css("cursor","nw-resize")},function(){b(d).css("cursor","default");g=false});b(d).mousedown(function(m){if(m.preventDefault){m.preventDefault()}g=true;c=true;l=Math.round(m.pageX-b(d).eq(0).offset().left);k=Math.round(m.pageY-b(d).eq(0).offset().top)});b(d).mouseup(b.proxy(function(m){g=false;this.syncCode()},this));b(d).click(b.proxy(function(m){if(c){this.imageEdit(m)}},this));b(d).mousemove(function(q){if(g){c=false;var n=Math.round(q.pageX-b(this).eq(0).offset().left)-l;var m=Math.round(q.pageY-b(this).eq(0).offset().top)-k;var p=b(d).height();var r=parseInt(p)+m;var o=r*f;if(i==1||(typeof(i)=="number"&&o<i&&o>j)){b(d).width(o)}if(h==1||(typeof(h)=="number"&&r<h&&r>e)){b(d).height(r)}l=Math.round(q.pageX-b(this).eq(0).offset().left);k=Math.round(q.pageY-b(this).eq(0).offset().top)}})},showTable:function(){this.modalInit(RLANG.table,this.opts.path+"/plugins/table.html",300,b.proxy(function(){b("#redactor_table_rows").focus();b("#redactor_insert_table_btn").click(b.proxy(this.insertTable,this))},this))},insertTable:function(){var m=b("#redactor_table_rows").val();var f=b("#redactor_table_columns").val();var c=b("<div></div>");var d=Math.floor(Math.random()*99999);var k=b('<table id="table'+d+'"><tbody></tbody></table>');for(var g=0;g<m;g++){var l=b("<tr></tr>");for(var j=0;j<f;j++){var e=b("<td>&nbsp;</td>");b(l).append(e)}b(k).append(l)}b(c).append(k);var h=b(c).html();if(b.browser.msie){h+="<p></p>"}else{h+="<p>&nbsp;</p>"}this.execCommand("inserthtml",h);this.modalClose();this.$table=b(this.doc).find("body").find("#table"+d);this.$table.click(b.proxy(this.tableObserver,this))},tableObserver:function(c){this.$table=b(c.target).parents("table");this.$table_tr=this.$table.find("tr");this.$table_td=this.$table.find("td");this.$table_td.removeClass("current");this.$tbody=b(c.target).parents("tbody");this.$thead=b(this.$table).find("thead");this.$current_td=b(c.target);this.$current_td.addClass("current");this.$current_tr=b(c.target).parents("tr")},deleteTable:function(){b(this.$table).remove();this.$table=false;this.syncCode()},deleteRow:function(){b(this.$current_tr).remove();this.syncCode()},deleteColumn:function(){var c=b(this.$current_td).get(0).cellIndex;b(this.$table).find("tr").each(function(){b(this).find("td").eq(c).remove()});this.syncCode()},addHead:function(){if(b(this.$table).find("thead").size()!==0){this.deleteHead()}else{var c=b(this.$table).find("tr").first().clone();c.find("td").html("&nbsp;");this.$thead=b("<thead></thead>");this.$thead.append(c);b(this.$table).prepend(this.$thead);this.syncCode()}},deleteHead:function(){b(this.$thead).remove();this.$thead=false;this.syncCode()},insertRowAbove:function(){this.insertRow("before")},insertRowBelow:function(){this.insertRow("after")},insertColumnLeft:function(){this.insertColumn("before")},insertColumnRight:function(){this.insertColumn("after")},insertRow:function(c){var d=b(this.$current_tr).clone();d.find("td").html("&nbsp;");if(c=="after"){b(this.$current_tr).after(d)}else{b(this.$current_tr).before(d)}this.syncCode()},insertColumn:function(d){var c=0;this.$current_td.addClass("current");this.$current_tr.find("td").each(function(e,f){if(b(f).hasClass("current")){c=e}});this.$table_tr.each(function(e,f){var g=b(f).find("td").eq(c);var h=g.clone();h.html("&nbsp;");if(d=="after"){b(g).after(h)}else{b(g).before(h)}});this.syncCode()},showVideo:function(){if(b.browser.msie){this.markerIE()}this.modalInit(RLANG.video,this.opts.path+"/plugins/video.html",600,b.proxy(function(){b("#redactor_insert_video_area").focus();b("#redactor_insert_video_btn").click(b.proxy(this.insertVideo,this))},this))},insertVideo:function(){var c=b("#redactor_insert_video_area").val();if(b.browser.msie){b(this.doc.getElementById("span"+this.spanid)).after(c).remove();this.syncCode()}else{this.execCommand("inserthtml",c)}this.modalClose()},imageEdit:function(g){var c=b(g.target);var f=c.parent();var d=b.proxy(function(){b("#redactor_file_alt").val(c.attr("alt"));b("#redactor_image_edit_src").attr("href",c.attr("src"));b("#redactor_form_image_align").val(c.css("float"));if(b(f).get(0).tagName=="A"){b("#redactor_file_link").val(b(f).attr("href"))}b("#redactor_image_delete_btn").click(b.proxy(function(){this.imageDelete(c)},this));b("#redactorSaveBtn").click(b.proxy(function(){this.imageSave(c)},this))},this);this.modalInit(RLANG.image,this.opts.path+"/plugins/image_edit.html",380,d)},imageDelete:function(c){b(c).remove();this.modalClose();this.syncCode()},imageSave:function(d){var c=b(d).parent();b(d).attr("alt",b("#redactor_file_alt").val());var f=b("#redactor_form_image_align").val();if(f=="left"){b(d).css({"float":"left",margin:"0 10px 10px 0"})}else{if(f=="right"){b(d).css({"float":"right",margin:"0 0 10px 10px"})}else{b(d).css({"float":"none",margin:"0"})}}var e=b.trim(b("#redactor_file_link").val());if(e!==""){if(b(c).get(0).tagName!="A"){b(d).replaceWith('<a href="'+e+'">'+this.outerHTML(d)+"</a>")}else{b(c).attr("href",e)}}this.modalClose();this.observeImages();this.syncCode()},showImage:function(){if(b.browser.msie){this.markerIE()}var c=b.proxy(function(){if(this.opts.imageGetJson!==false){b.getJSON(this.opts.imageGetJson,b.proxy(function(e){b.each(e,b.proxy(function(g,h){var f=b('<img src="'+h.thumb+'" rel="'+h.image+'" />');b("#redactor_image_box").append(f);b(f).click(b.proxy(this.imageSetThumb,this))},this))},this))}else{b("#redactor_tabs a").eq(1).remove()}if(this.opts.imageUpload!==false){if(b("#redactor_file").size()!==0){b("#redactor_file").dragupload({url:this.opts.imageUpload,success:b.proxy(this.imageUploadCallback,this)})}this.uploadInit("redactor_file",{auto:true,url:this.opts.imageUpload,success:b.proxy(this.imageUploadCallback,this)})}else{b(".redactor_tab").hide();if(this.opts.imageGetJson===false){b("#redactor_tabs").remove();b("#redactor_tab3").show()}else{var d=b("#redactor_tabs a");d.eq(0).remove();d.eq(1).addClass("redactor_tabs_act");b("#redactor_tab2").show()}}b("#redactor_upload_btn").click(b.proxy(this.imageUploadCallbackLink,this))},this);this.modalInit(RLANG.image,this.opts.path+"/plugins/image.html",570,c,true)},imageSetThumb:function(c){this._imageSet('<img alt="" src="'+b(c.target).attr("rel")+'" />')},imageUploadCallbackLink:function(){if(b("#redactor_file_link").val()!==""){var c='<img src="'+b("#redactor_file_link").val()+'" />';this._imageSet(c)}else{this.modalClose()}},imageUploadCallback:function(c){this._imageSet(c)},_imageSet:function(c){c="<p>"+c+"</p>";this.focus();if(b.browser.msie){b(this.doc.getElementById("span"+this.spanid)).after(c).remove();this.syncCode()}else{this.execCommand("inserthtml",c)}this.modalClose();this.observeImages()},showLink:function(){var c=b.proxy(function(){var g=this.getSelection();if(b.browser.msie){var f=this.getParentNode();if(f.nodeName=="A"){this.insert_link_node=b(f);var h=this.insert_link_node.text();var d=this.insert_link_node.attr("href")}else{if(this.oldIE()){var h=g.text}else{var h=g.toString()}var d="";this.spanid=Math.floor(Math.random()*99999);var e='<span id="span'+this.spanid+'">'+h+"</span>";if(h!=""){e='<span id="span'+this.spanid+'">'+h+"</span>"}this.execCommand("inserthtml",e)}}else{if(g&&g.anchorNode.parentNode.tagName=="A"){var d=g.anchorNode.parentNode.href;var h=g.anchorNode.parentNode.text;if(g.toString()===""){this.insert_link_node=g.anchorNode.parentNode}}else{var h=g.toString();var d=""}}b(".redactor_link_text").val(h);b("#redactor_link_url").val(d).focus();b("#redactor_insert_link_btn").click(b.proxy(this.insertLink,this));if(this.opts.linkFileUpload===false){b("#redactor_tabs a").eq(3).remove()}else{if(b("#redactor_file").size()!=0){b("#redactor_file").dragupload({url:this.opts.linkFileUpload,success:b.proxy(this.insertLinkFile,this)})}this.uploadInit("redactor_file",{auto:true,url:this.opts.linkFileUpload,success:b.proxy(this.insertLinkFile,this)})}},this);this.modalInit(RLANG.link,this.opts.path+"/plugins/link.html",460,c)},insertLink:function(){var d=b("#redactor_tab_selected").val();var c="",e="";if(d==1){c=b("#redactor_link_url").val();e=b("#redactor_link_url_text").val()}else{if(d==2){c="mailto:"+b("#redactor_link_mailto").val();e=b("#redactor_link_mailto_text").val()}else{if(d==3){c="#"+b("#redactor_link_anchor").val();e=b("#redactor_link_anchor_text").val()}}}this._insertLink('<a href="'+c+'">'+e+"</a> ",b.trim(e),c)},insertLinkFile:function(c){text=b("#redactor_link_file_text").val();this._insertLink('<a href="'+c+'">'+text+"</a> ",b.trim(text),c)},_insertLink:function(c,e,d){if(e!=""){if(this.insert_link_node){b(this.insert_link_node).text(e);b(this.insert_link_node).attr("href",d);this.syncCode()}else{if(b.browser.msie){b(this.doc.getElementById("span"+this.spanid)).replaceWith(c);this.syncCode()}else{this.execCommand("inserthtml",c)}}}this.modalClose()},showFile:function(){if(b.browser.msie){this.markerIE()}var c=b.proxy(function(){b("#redactor_file").dragupload({url:this.opts.fileUpload,success:b.proxy(function(d){this.fileUploadCallback(d)},this)});this.uploadInit("redactor_file",{auto:true,url:this.opts.fileUpload,success:b.proxy(function(d){this.fileUploadCallback(d)},this)})},this);this.modalInit(RLANG.file,this.opts.path+"/plugins/file.html",500,c)},fileUploadCallback:function(c){if(b.browser.webkit&&!!window.chrome){c=c+"&nbsp;"}if(b.browser.msie){b(this.doc.getElementById("span"+this.spanid)).after(c).remove();this.syncCode()}else{this.execCommand("inserthtml",c)}this.modalClose()},modalInit:function(g,d,f,e,c){if(b("#redactor_modal_overlay").size()==0){this.overlay=b('<div id="redactor_modal_overlay" style="display: none;"></div>');b("body").prepend(this.overlay)}if(this.opts.overlay){b("#redactor_modal_overlay").show();b("#redactor_modal_overlay").click(b.proxy(this.modalClose,this))}if(b("#redactor_modal").size()==0){this.modal=b('<div id="redactor_modal" style="display: none;"><div id="redactor_modal_close">&times;</div><div id="redactor_modal_header"></div><div id="redactor_modal_inner"></div></div>');b("body").append(this.modal)}b("#redactor_modal_close").click(b.proxy(this.modalClose,this));this.hdlModalClose=b.proxy(function(h){if(h.keyCode==27){this.modalClose()}},this);b(document).keyup(this.hdlModalClose);b(this.doc).keyup(this.hdlModalClose);b.ajax({dataType:"html",type:"get",url:d,success:b.proxy(function(i){b.each(RLANG,function(j,l){var k=new RegExp("%RLANG."+j+"%","gi");i=i.replace(k,l)});b("#redactor_modal_inner").html(i);b("#redactor_modal_header").html(g);if(b("#redactor_tabs").size()!=0){b("#redactor_tabs a").each(function(j,k){j++;b(k).click(function(){b("#redactor_tabs a").removeClass("redactor_tabs_act");b(this).addClass("redactor_tabs_act");b(".redactor_tab").hide();b("#redactor_tab"+j).show();b("#redactor_tab_selected").val(j);var l=b("#redactor_modal").outerHeight();b("#redactor_modal").css("margin-top","-"+(l+10)/2+"px")})})}b("#redactor_btn_modal_close").click(b.proxy(this.modalClose,this));if(typeof(e)=="function"){e()}var h=b("#redactor_modal").outerHeight();b("#redactor_modal").css({width:f+"px",height:"auto",marginTop:"-"+(h+10)/2+"px",marginLeft:"-"+(f+60)/2+"px"}).fadeIn("fast");if(c===true){b("#redactor_image_box").height(300).css("overflow","auto")}},this)})},modalClose:function(){b("#redactor_modal_close").unbind("click",this.modalClose);b("#redactor_modal").fadeOut("fast",b.proxy(function(){b("#redactor_modal_inner").html("");if(this.opts.overlay){b("#redactor_modal_overlay").hide();b("#redactor_modal_overlay").unbind("click",this.modalClose)}b(document).unbind("keyup",this.hdlModalClose);b(this.doc).unbind("keyup",this.hdlModalClose)},this))},uploadInit:function(d,c){this.uploadOptions={url:false,success:false,start:false,trigger:false,auto:false,input:false};b.extend(this.uploadOptions,c);if(b("#"+d).size()!=0&&b("#"+d).get(0).tagName=="INPUT"){this.uploadOptions.input=b("#"+d);this.element=b(b("#"+d).get(0).form)}else{this.element=b("#"+d)}this.element_action=this.element.attr("action");if(this.uploadOptions.auto){b(this.uploadOptions.input).change(b.proxy(function(){this.element.submit(function(f){return false});this.uploadSubmit()},this))}else{if(this.uploadOptions.trigger){b("#"+this.uploadOptions.trigger).click(b.proxy(this.uploadSubmit,this))}}},uploadSubmit:function(){this.uploadForm(this.element,this.uploadFrame())},uploadFrame:function(){this.id="f"+Math.floor(Math.random()*99999);var e=document.createElement("div");var c='<iframe style="display:none" src="about:blank" id="'+this.id+'" name="'+this.id+'"></iframe>';e.innerHTML=c;document.body.appendChild(e);if(this.uploadOptions.start){this.uploadOptions.start()}b("#"+this.id).load(b.proxy(this.uploadLoaded,this));return this.id},uploadForm:function(g,e){if(this.uploadOptions.input){var h="redactorUploadForm"+this.id;var c="redactorUploadFile"+this.id;this.form=b('<form action="'+this.uploadOptions.url+'" method="POST" target="'+e+'" name="'+h+'" id="'+h+'" enctype="multipart/form-data"></form>');var d=this.uploadOptions.input;var i=b(d).clone();b(d).attr("id",c);b(d).before(i);b(d).appendTo(this.form);b(this.form).css("position","absolute");b(this.form).css("top","-2000px");b(this.form).css("left","-2000px");b(this.form).appendTo("body");this.form.submit()}else{g.attr("target",e);g.attr("method","POST");g.attr("enctype","multipart/form-data");g.attr("action",this.uploadOptions.url);this.element.submit()}},uploadLoaded:function(){var c=b("#"+this.id);if(c.contentDocument){var e=c.contentDocument}else{if(c.contentWindow){var e=c.contentWindow.document}else{var e=window.frames[this.id].document}}if(e.location.href=="about:blank"){return true}if(this.uploadOptions.success){this.uploadOptions.success(e.body.innerHTML)}this.element.attr("action",this.element_action);this.element.attr("target","")},markerIE:function(){this.spanid=Math.floor(Math.random()*99999);this.execCommand("inserthtml",'<span id="span'+this.spanid+'"></span>')},oldIE:function(){if(b.browser.msie&&parseInt(b.browser.version,10)<9){return true}return false},outerHTML:function(c){return b("<p>").append(b(c).eq(0).clone()).html()},normalize:function(c){return parseInt(c.replace("px",""))}};b.fn.getDoc=function(){return b(this.data("redactor").doc)};b.fn.getFrame=function(){return this.data("redactor").$frame};b.fn.getEditor=function(){return this.data("redactor").$editor};b.fn.getCode=function(){return this.data("redactor").getCode()};b.fn.setCode=function(c){this.data("redactor").setCode(c)};b.fn.insertHtml=function(c){this.data("redactor").insertHtml(c)};b.fn.destroyEditor=function(){this.data("redactor").destroy();this.removeData("redactor")};b.fn.setFocus=function(){this.data("redactor").focus()};b.fn.execCommand=function(c,d){this.data("redactor").execCommand(c,d)}})(jQuery);(function(b){b.fn.dragupload=function(c){return this.each(function(){var d=new a(this,c);d.init()})};function a(d,c){this.opts=b.extend({url:false,success:false,preview:false,text:RLANG.drop_file_here,atext:RLANG.or_choose},c);this.$el=b(d)}a.prototype={init:function(){if(!b.browser.opera&&!b.browser.msie){this.droparea=b('<div class="redactor_droparea"></div>');this.dropareabox=b('<div class="redactor_dropareabox">'+this.opts.text+"</div>");this.dropalternative=b('<div class="redactor_dropalternative">'+this.opts.atext+"</div>");this.droparea.append(this.dropareabox);this.$el.before(this.droparea);this.$el.before(this.dropalternative);this.dropareabox.bind("dragover",b.proxy(function(){return this.ondrag()},this));this.dropareabox.bind("dragleave",b.proxy(function(){return this.ondragleave()},this));this.dropareabox.get(0).ondrop=b.proxy(function(e){e.preventDefault();this.dropareabox.removeClass("hover").addClass("drop");var d=e.dataTransfer.files[0];var c=new FormData();c.append("file",d);b.ajax({dataType:"html",url:this.opts.url,data:c,cache:false,contentType:false,processData:false,type:"POST",success:b.proxy(function(f){if(this.opts.success!==false){this.opts.success(f)}if(this.opts.preview===true){this.dropareabox.html(f)}},this)})},this)}},ondrag:function(){this.dropareabox.addClass("hover");return false},ondragleave:function(){this.dropareabox.removeClass("hover");return false}}})(jQuery);(function(b){var d=/(^|&lt;|\s)(www\..+?\..+?)(\s|&gt;|$)/g,a=/(^|&lt;|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|&gt;|$)/g,c=function(){var g=this.childNodes,f=g.length;while(f--){var h=g[f];if(h.nodeType==3){var e=h.nodeValue;if(e){e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(d,'$1<a href="http://$2">$2</a>$3').replace(a,'$1<a href="$2">$2</a>$5');b(h).after(e).remove()}}else{if(h.nodeType==1&&!/^(a|button|textarea)$/i.test(h.tagName)){c.call(h)}}}};b.fn.linkify=function(){this.each(c)}})(jQuery);
@@ -0,0 +1,214 @@
1
+ if (typeof RTOOLBAR == 'undefined') var RTOOLBAR = {};
2
+
3
+ RTOOLBAR['default'] =
4
+ {
5
+ html:
6
+ {
7
+ title: RLANG.html,
8
+ func: 'toggle',
9
+ separator: true
10
+ },
11
+ styles:
12
+ {
13
+ title: RLANG.styles,
14
+ func: 'show',
15
+ dropdown:
16
+ {
17
+ p:
18
+ {
19
+ title: RLANG.paragraph,
20
+ exec: 'formatblock',
21
+ param: '<p>'
22
+ },
23
+ blockquote:
24
+ {
25
+ title: RLANG.quote,
26
+ exec: 'formatblock',
27
+ param: '<blockquote>',
28
+ style: 'font-style: italic; color: #666; padding-left: 10px;'
29
+ },
30
+ pre:
31
+ {
32
+ title: RLANG.code,
33
+ exec: 'formatblock',
34
+ param: '<pre>',
35
+ style: 'font-family: monospace, sans-serif;'
36
+ },
37
+ h1:
38
+ {
39
+ title: RLANG.header1,
40
+ exec: 'formatblock',
41
+ param: '<h1>',
42
+ style: 'font-size: 30px; line-height: 36px; font-weight: bold;'
43
+ },
44
+ h2:
45
+ {
46
+ title: RLANG.header2,
47
+ exec: 'formatblock',
48
+ param: '<h2>',
49
+ style: 'font-size: 24px; line-height: 36px; font-weight: bold;'
50
+ },
51
+ h3:
52
+ {
53
+ title: RLANG.header3,
54
+ exec: 'formatblock',
55
+ param: '<h3>',
56
+ style: 'font-size: 20px; line-height: 30px; font-weight: bold;'
57
+ },
58
+ h4:
59
+ {
60
+ title: RLANG.header4,
61
+ exec: 'formatblock',
62
+ param: '<h3>',
63
+ style: 'font-size: 16px; line-height: 26px; font-weight: bold;'
64
+ }
65
+ },
66
+ separator: true
67
+ },
68
+ bold:
69
+ {
70
+ title: RLANG.bold,
71
+ exec: 'Bold',
72
+ param: false
73
+ },
74
+ italic:
75
+ {
76
+ title: RLANG.italic,
77
+ exec: 'italic',
78
+ param: null
79
+ },
80
+ deleted:
81
+ {
82
+ title: RLANG.deleted,
83
+ exec: 'strikethrough',
84
+ param: null,
85
+ separator: true
86
+ },
87
+ insertunorderedlist:
88
+ {
89
+ title: '&bull; ' + RLANG.unorderedlist,
90
+ exec: 'insertunorderedlist',
91
+ param: null
92
+ },
93
+ insertorderedlist:
94
+ {
95
+ title: '1. ' + RLANG.orderedlist,
96
+ exec: 'insertorderedlist',
97
+ param: null
98
+ },
99
+ outdent:
100
+ {
101
+ title: '< ' + RLANG.outdent,
102
+ exec: 'outdent',
103
+ param: null
104
+ },
105
+ indent:
106
+ {
107
+ title: '> ' + RLANG.indent,
108
+ exec: 'indent',
109
+ param: null,
110
+ separator: true
111
+ },
112
+ image:
113
+ {
114
+ title: RLANG.image,
115
+ func: 'showImage'
116
+ },
117
+ video:
118
+ {
119
+ title: RLANG.video,
120
+ func: 'showVideo'
121
+ },
122
+ file:
123
+ {
124
+ title: RLANG.file,
125
+ func: 'showFile'
126
+ },
127
+ table:
128
+ {
129
+ title: RLANG.table,
130
+ func: 'show',
131
+ dropdown:
132
+ {
133
+ insert_table: { name: 'insert_table', title: RLANG.insert_table, func: 'showTable' },
134
+ separator_drop1: { name: 'separator' },
135
+ insert_row_above: { name: 'insert_row_above', title: RLANG.insert_row_above, func: 'insertRowAbove' },
136
+ insert_row_below: { name: 'insert_row_below', title: RLANG.insert_row_below, func: 'insertRowBelow' },
137
+ insert_column_left: { name: 'insert_column_left', title: RLANG.insert_column_left, func: 'insertColumnLeft' },
138
+ insert_column_right: { name: 'insert_column_right', title: RLANG.insert_column_right, func: 'insertColumnRight' },
139
+ separator_drop2: { name: 'separator' },
140
+ add_head: { name: 'add_head', title: RLANG.add_head, func: 'addHead' },
141
+ delete_head: { name: 'delete_head', title: RLANG.delete_head, func: 'deleteHead' },
142
+ separator_drop3: { name: 'separator' },
143
+ delete_column: { name: 'insert_table', title: RLANG.delete_column, func: 'deleteColumn' },
144
+ delete_row: { name: 'delete_row', title: RLANG.delete_row, func: 'deleteRow' },
145
+ delete_table: { name: 'delete_table', title: RLANG.delete_table, func: 'deleteTable' }
146
+ }
147
+ },
148
+ link:
149
+ {
150
+ title: RLANG.link,
151
+ func: 'show',
152
+ dropdown:
153
+ {
154
+ link:
155
+ {
156
+ title: RLANG.link_insert,
157
+ func: 'showLink'
158
+ },
159
+ unlink:
160
+ {
161
+ title: RLANG.unlink,
162
+ exec: 'unlink',
163
+ param: null
164
+ }
165
+ },
166
+ separator: true
167
+ },
168
+ fontcolor:
169
+ {
170
+ title: RLANG.fontcolor,
171
+ func: 'show'
172
+ },
173
+ backcolor:
174
+ {
175
+ title: RLANG.backcolor,
176
+ func: 'show',
177
+ separator: true
178
+ },
179
+ justifyleft:
180
+ {
181
+ exec: 'JustifyLeft',
182
+ name: 'JustifyLeft',
183
+ title: RLANG.align_left
184
+ },
185
+ justifycenter:
186
+ {
187
+ exec: 'JustifyCenter',
188
+ name: 'JustifyCenter',
189
+ title: RLANG.align_center
190
+ },
191
+ justifyright:
192
+ {
193
+ exec: 'JustifyRight',
194
+ name: 'JustifyRight',
195
+ title: RLANG.align_right
196
+ },
197
+ justify:
198
+ {
199
+ exec: 'justifyfull',
200
+ name: 'justifyfull',
201
+ title: RLANG.align_justify, separator: true
202
+ },
203
+ horizontalrule:
204
+ {
205
+ exec: 'inserthorizontalrule',
206
+ name: 'horizontalrule',
207
+ title: RLANG.horizontalrule
208
+ },
209
+ fullscreen:
210
+ {
211
+ title: RLANG.fullscreen,
212
+ func: 'fullscreen'
213
+ }
214
+ };
@@ -0,0 +1,103 @@
1
+ if (typeof RTOOLBAR == 'undefined') var RTOOLBAR = {};
2
+
3
+ RTOOLBAR['mini'] = {
4
+ styles:
5
+ {
6
+ title: RLANG.styles,
7
+ func: 'show',
8
+ dropdown:
9
+ {
10
+ p:
11
+ {
12
+ title: RLANG.paragraph,
13
+ exec: 'formatblock',
14
+ param: '<p>'
15
+ },
16
+ blockquote:
17
+ {
18
+ title: RLANG.quote,
19
+ exec: 'formatblock',
20
+ param: '<blockquote>',
21
+ style: 'font-style: italic; color: #666; padding-left: 10px;'
22
+ },
23
+ pre:
24
+ {
25
+ title: RLANG.code,
26
+ exec: 'formatblock',
27
+ param: '<pre>',
28
+ style: 'font-family: monospace, sans-serif;'
29
+ },
30
+ h1:
31
+ {
32
+ title: RLANG.header1,
33
+ exec: 'formatblock',
34
+ param: '<h1>',
35
+ style: 'font-size: 30px; line-height: 36px; font-weight: bold;'
36
+ },
37
+ h2:
38
+ {
39
+ title: RLANG.header2,
40
+ exec: 'formatblock',
41
+ param: '<h2>',
42
+ style: 'font-size: 24px; line-height: 36px; font-weight: bold;'
43
+ },
44
+ h3:
45
+ {
46
+ title: RLANG.header3,
47
+ exec: 'formatblock',
48
+ param: '<h3>',
49
+ style: 'font-size: 20px; line-height: 30px; font-weight: bold;'
50
+ },
51
+ h4:
52
+ {
53
+ title: RLANG.header4,
54
+ exec: 'formatblock',
55
+ param: '<h3>',
56
+ style: 'font-size: 16px; line-height: 26px; font-weight: bold;'
57
+ }
58
+ },
59
+ separator: true
60
+ },
61
+ bold:
62
+ {
63
+ title: RLANG.bold,
64
+ exec: 'bold'
65
+ },
66
+ italic:
67
+ {
68
+ title: RLANG.italic,
69
+ exec: 'italic',
70
+ separator: true
71
+ },
72
+ insertunorderedlist:
73
+ {
74
+ title: '&bull; ' + RLANG.unorderedlist,
75
+ exec: 'insertunorderedlist'
76
+ },
77
+ insertorderedlist:
78
+ {
79
+ title: '1. ' + RLANG.orderedlist,
80
+ exec: 'insertorderedlist'
81
+ },
82
+ outdent:
83
+ {
84
+ title: '< ' + RLANG.outdent,
85
+ exec: 'outdent'
86
+ },
87
+ indent:
88
+ {
89
+ title: '> ' + RLANG.indent,
90
+ exec: 'indent',
91
+ separator: true
92
+ },
93
+ link:
94
+ {
95
+ title: RLANG.link,
96
+ func: 'show',
97
+ dropdown:
98
+ {
99
+ link: {name: 'link', title: RLANG.link_insert, func: 'showLink'},
100
+ unlink: {exec: 'unlink', name: 'unlink', title: RLANG.unlink}
101
+ }
102
+ }
103
+ };
@@ -0,0 +1,368 @@
1
+ .redactor_box {
2
+ position: relative;
3
+ border: 1px solid #ddd;
4
+ line-height: 0;
5
+ }
6
+ .redactor_box, .redactor_box textarea {
7
+ background-color: #fff;
8
+ }
9
+ .redactor_box iframe {
10
+ outline: none;
11
+ width: 100%;
12
+ background: #fff;
13
+ display: block;
14
+ overflow: auto;
15
+ }
16
+ .redactor_box textarea {
17
+ font-family: Menlo, Monaco, monospace, sans-serif;
18
+ font-size: 13px;
19
+ overflow: auto;
20
+ resize: none;
21
+ margin: 0;
22
+ padding: 0;
23
+ display: block;
24
+ position: relative;
25
+ z-index: 1004;
26
+ outline: none;
27
+ border: none;
28
+ width: 100%;
29
+ }
30
+ .redactor_box textarea:focus {
31
+ outline: none !important;
32
+ border: none !important;
33
+ box-shadow: none;
34
+ }
35
+
36
+ /*
37
+ Fuulscreen
38
+ */
39
+ body .redactor_box_fullscreen {
40
+ border: medium none !important;
41
+ height: 100%;
42
+ left: 0;
43
+ position: absolute;
44
+ top: 0;
45
+ width: 100%;
46
+ z-index: 2000;
47
+ }
48
+
49
+ /*
50
+ TOOLBAR
51
+ */
52
+ .redactor_toolbar {
53
+ position: relative;
54
+ z-index: 2002;
55
+ height: 33px;
56
+ left: 0;
57
+ top: 0;
58
+ margin: 0 !important;
59
+ padding: 0 !important;
60
+ line-height: 0 !important;
61
+ list-style: none;
62
+ font-size: 0;
63
+ background: #f2f2f2;
64
+ background: -moz-linear-gradient(top, #f5f5f5 0%, #ddd 100%);
65
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#ddd));
66
+ background: -webkit-linear-gradient(top, #f5f5f5 0%,#ddd 100%);
67
+ background: -o-linear-gradient(top, #f5f5f5 0%,#ddd 100%);
68
+ background: -ms-linear-gradient(top, #f5f5f5 0%,#ddd 100%);
69
+ background: linear-gradient(top, #f5f5f5 0%,#ddd 100%);
70
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dddddd',GradientType=0 );
71
+ overflow: hidden;
72
+ border-bottom: 1px solid #c2c2c2;
73
+ }
74
+ .redactor_toolbar li {
75
+ float: left !important;
76
+ padding: 3px 1px;
77
+ padding-right: 0;
78
+ list-style-type: none;
79
+ }
80
+ .redactor_toolbar li.redactor_separator {
81
+ float: left;
82
+ height: 34px;
83
+ border-left: 1px solid #d7d7d7;
84
+ border-right: 1px solid #eee;
85
+ padding: 0;
86
+ margin: 0 2px 0 3px;
87
+ }
88
+ li.redactor_toolbar_right {
89
+ float: none;
90
+ float: right !important;
91
+ padding: 2px 0;
92
+ padding-right: 1px !important;
93
+ }
94
+ .redactor_toolbar li a, .redactor_toolbar li a span {
95
+ width: 25px;
96
+ height: 26px;
97
+ }
98
+ .redactor_toolbar li a {
99
+ border: 1px solid transparent;
100
+ * border: 1px solid #eee;
101
+ display: block;
102
+ line-height: 0;
103
+ font-size: 0;
104
+ cursor: pointer;
105
+ zoom: 1;
106
+ text-decoration: none;
107
+ }
108
+ .redactor_toolbar li a span {
109
+ display: block;
110
+ text-indent: -9999px;
111
+ background: url(../img/icons.png) no-repeat top left;
112
+ }
113
+
114
+ .redactor_toolbar li a:hover {
115
+ border-color: #98a6ba;
116
+ background-color: #dde4ef;
117
+ }
118
+ .redactor_toolbar li a:active, .redactor_toolbar li a.act {
119
+ border-color: #b5b5b5;
120
+ background-color: #e8e8e8;
121
+ }
122
+
123
+
124
+ /*
125
+ BUTTONS
126
+ step 25px
127
+ */
128
+ body .redactor_toolbar li a.redactor_btn_html span { background-position: 0; }
129
+ body .redactor_toolbar li a.redactor_btn_styles span { background-position: -25px; }
130
+ body .redactor_toolbar li a.redactor_btn_bold span { background-position: -50px; }
131
+ body .redactor_toolbar li a.redactor_btn_italic span { background-position: -75px; }
132
+ body .redactor_toolbar li a.redactor_btn_deleted span { background-position: -550px; }
133
+ body .redactor_toolbar li a.redactor_btn_insertunorderedlist span { background-position: -100px; }
134
+ body .redactor_toolbar li a.redactor_btn_insertorderedlist span { background-position: -125px; }
135
+ body .redactor_toolbar li a.redactor_btn_outdent span { background-position: -150px; }
136
+ body .redactor_toolbar li a.redactor_btn_indent span { background-position: -175px; }
137
+ body .redactor_toolbar li a.redactor_btn_image span { background-position: -200px; }
138
+ body .redactor_toolbar li a.redactor_btn_video span { background-position: -225px; }
139
+ body .redactor_toolbar li a.redactor_btn_file span { background-position: -250px; }
140
+ body .redactor_toolbar li a.redactor_btn_table span { background-position: -275px; }
141
+ body .redactor_toolbar li a.redactor_btn_link span { background-position: -300px; }
142
+ body .redactor_toolbar li a.redactor_btn_fontcolor span { background-position: -325px; }
143
+ body .redactor_toolbar li a.redactor_btn_backcolor span { background-position: -350px; }
144
+ body .redactor_toolbar li a.redactor_btn_justifyleft span { background-position: -375px; }
145
+ body .redactor_toolbar li a.redactor_btn_justifycenter span { background-position: -400px; }
146
+ body .redactor_toolbar li a.redactor_btn_justifyright span { background-position: -425px; }
147
+ body .redactor_toolbar li a.redactor_btn_justify span { background-position: -450px; }
148
+ body .redactor_toolbar li a.redactor_btn_horizontalrule span { background-position: -475px; }
149
+ body .redactor_toolbar li a.redactor_btn_fullscreen span { background-position: -500px; }
150
+ body .redactor_toolbar li a.redactor_btn_normalscreen span { background-position: -525px !important; }
151
+
152
+
153
+ /*
154
+ RESIZER
155
+ */
156
+ .redactor_resizer {
157
+ font-family: Arial, Tahoma, Verdana, Helvetica, sans-serif;
158
+ background-color: #f5f5f5;
159
+ padding-top: 2px;
160
+ line-height: 4px;
161
+ font-size: 12px;
162
+ color: #ddd;
163
+ text-align: center;
164
+ text-shadow: 0 -1px 0 #aaa;
165
+ cursor: s-resize;
166
+ }
167
+
168
+
169
+
170
+ /*
171
+ DROPDOWN
172
+ */
173
+ .redactor_dropdown {
174
+ top: 28px;
175
+ left: 0;
176
+ z-index: 2004;
177
+ position: absolute;
178
+ width: 200px;
179
+ background-color: #fff;
180
+ border: 1px solid #ccc;
181
+ font-size: 13px;
182
+ -webkit-box-shadow: 0 2px 4px #ccc;
183
+ -moz-box-shadow: 0 2px 4px #ccc;
184
+ box-shadow: 0 2px 4px #ccc;
185
+ line-height: 21px;
186
+ padding: 10px;
187
+ }
188
+ .redactor_separator_drop {
189
+ border-top: 1px solid #ddd;;
190
+ padding: 0 !important;
191
+ line-height: 0;
192
+ font-size: 0;
193
+ }
194
+ .redactor_dropdown a {
195
+ display: block;
196
+ color: #000;
197
+ padding: 3px 5px;
198
+ text-decoration: none;
199
+ }
200
+ .redactor_dropdown a:hover {
201
+ color: #444 !important;
202
+ text-decoration: none;
203
+ background-color: #dde4ef;
204
+ }
205
+
206
+ /* ColorPicker */
207
+ .redactor_color_link {
208
+ padding: 0 !important;
209
+ width: 15px !important;
210
+ height: 15px !important;
211
+ float: left !important;
212
+ border: 2px solid #fff !important;
213
+ font-size: 0;
214
+ }
215
+ .redactor_color_none {
216
+ font-size: 11px;
217
+ }
218
+
219
+
220
+
221
+ /* MODAL */
222
+ #redactor_modal_overlay {
223
+ position: fixed;
224
+ margin: auto;
225
+ top: 0;
226
+ left: 0;
227
+ width: 100%;
228
+ height: 100%;
229
+ z-index: 50000;
230
+
231
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
232
+ filter:alpha(opacity=70);
233
+ opacity: 0.70;
234
+
235
+ background-color: #fff !important;
236
+ }
237
+
238
+ #redactor_modal {
239
+ background-color: #fff;
240
+ padding: 0;
241
+ position: fixed;
242
+ top: 50%;
243
+ left: 50%;
244
+
245
+ box-shadow: 0px 5px 20px #999;
246
+ -webkit-box-shadow: 0 5px 20px #999;
247
+ -moz-box-shadow: 0 5px 20px #999;
248
+
249
+ -webkit-border-radius: 8px;
250
+ -moz-border-radius: 8px;
251
+ border-radius: 8px;
252
+
253
+ z-index: 50001;
254
+ font-family: "Trebuchet MS", "Helvetica Neue", "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
255
+ color: #000;
256
+ }
257
+ #redactor_modal_header {
258
+ padding: 15px;
259
+ font-size: 18px;
260
+
261
+ border-radius: 8px 8px 0 0;
262
+
263
+ font-weight: bold;
264
+ background-color: #f6f6f6;
265
+ border-bottom: 1px solid #ddd;
266
+ }
267
+ #redactor_modal_inner {
268
+ padding: 30px;
269
+ }
270
+ #redactor_modal_close {
271
+ position: absolute;
272
+ right: 0px;
273
+ top: 11px;
274
+ font-size: 24px;
275
+ width: 30px;
276
+ height: 30px;
277
+ color: #999;
278
+ cursor: pointer;
279
+ }
280
+ #redactor_modal_close:hover {
281
+ color: #000;
282
+ }
283
+ #redactor_modal label {
284
+ display: inline !important;
285
+ }
286
+ .redactor_ruler {
287
+ margin-bottom: 10px;
288
+ width: 99% !important;
289
+ }
290
+ .redactor_ruler td {
291
+ font-size: 12px !important;
292
+ padding: 5px !important;
293
+ border: none !important;
294
+ vertical-align: middle !important;
295
+ }
296
+ #redactor_image_box {
297
+ height: 270px;
298
+ overflow: auto;
299
+ margin-bottom: 10px;
300
+ }
301
+ #redactor_image_box img {
302
+ margin-right: 10px;
303
+ margin-bottom: 10px;
304
+ cursor: pointer;
305
+ }
306
+ #redactor_tabs {
307
+ margin-bottom: 18px;
308
+ }
309
+ #redactor_tabs a {
310
+ display: inline-block;
311
+ border: 1px solid #ddd;
312
+ padding: 4px 14px;
313
+ font-size: 12px;
314
+ text-decoration: none;
315
+ color: #000;
316
+ line-height: 1;
317
+ -webkit-border-radius: 10px;
318
+ -moz-border-radius: 10px;
319
+ border-radius: 10px;
320
+ }
321
+ #redactor_tabs a:hover, #redactor_tabs a.redactor_tabs_act {
322
+ background-color: #eee;
323
+ color: #777 !important;
324
+ text-decoration: none !important;
325
+ }
326
+ .redactor_btns_box {
327
+ float: right;
328
+ padding: 6px 16px;
329
+ background-color: #eee;
330
+ -webkit-border-radius: 5px;
331
+ -moz-border-radius: 5px;
332
+ border-radius: 5px;
333
+ }
334
+
335
+ /* Drag and Drop Area */
336
+ .redactor_droparea {
337
+ position: relative;
338
+ width: 100%;
339
+ margin: auto;
340
+ margin-bottom: 5px;
341
+ }
342
+ .redactor_droparea .redactor_dropareabox {
343
+ z-index: 1;
344
+ position: relative;
345
+ text-align: center;
346
+ width: 99%;
347
+ padding: 60px 0;
348
+ border: 2px dashed #bbb;
349
+ }
350
+ .redactor_droparea .redactor_dropareabox, .redactor_dropalternative {
351
+ color: #777;
352
+ font-size: 12px;
353
+ }
354
+ .redactor_dropalternative {
355
+ margin: 4px 0 2px 0;
356
+ }
357
+ .redactor_dropareabox.hover {
358
+ background: #efe3b8;
359
+ border-color: #aaa;
360
+ }
361
+ .redactor_dropareabox.error {
362
+ background: #f7e5e5;
363
+ border-color: #dcc3c3;
364
+ }
365
+ .redactor_dropareabox.drop {
366
+ background: #f4f4ee;
367
+ border-color: #e0e5d6;
368
+ }