redde 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +20 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +57 -0
- data/Rakefile +2 -0
- data/lib/generators/redde/deploy/deploy_generator.rb +34 -0
- data/lib/generators/redde/deploy/templates/Capfile +4 -0
- data/lib/generators/redde/deploy/templates/deploy.rb +33 -0
- data/lib/generators/redde/deploy/templates/recipes/base.rb +16 -0
- data/lib/generators/redde/deploy/templates/recipes/check.rb +13 -0
- data/lib/generators/redde/deploy/templates/recipes/database.rb +66 -0
- data/lib/generators/redde/deploy/templates/recipes/imagemagick.rb +8 -0
- data/lib/generators/redde/deploy/templates/recipes/memcached.rb +10 -0
- data/lib/generators/redde/deploy/templates/recipes/monit.rb +35 -0
- data/lib/generators/redde/deploy/templates/recipes/nginx.rb +26 -0
- data/lib/generators/redde/deploy/templates/recipes/nodejs.rb +10 -0
- data/lib/generators/redde/deploy/templates/recipes/postfix.rb +37 -0
- data/lib/generators/redde/deploy/templates/recipes/rbenv.rb +17 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/database.yml.erb +8 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/dkim-filter.conf.erb +57 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/dkim-filter.defaults.erb +11 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/dkim-keys.conf.erb +2 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/gemrc.erb +1 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/main.cf.erb +43 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/memcached.erb +47 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/monit_monitrc.erb +21 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/monit_nginx.erb +5 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/monit_unicorn.erb +14 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/nginx_unicorn.erb +28 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/unicorn.rb.erb +36 -0
- data/lib/generators/redde/deploy/templates/recipes/templates/unicorn_init.erb +84 -0
- data/lib/generators/redde/deploy/templates/recipes/unicorn.rb +27 -0
- data/lib/generators/redde/layout/layout_generator.rb +57 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/addphoto.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/ajaxloader2.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/arrow_down.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/arrow_enter.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/arrow_right.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/coins.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/confirm.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/del.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/delete.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/email.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/error.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/fio.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/folder.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/folder_.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/icon_eye.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/css/jquery.lightbox-0.5.css +101 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/images/lightbox-blank.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/images/lightbox-btn-close.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/images/lightbox-btn-next.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/images/lightbox-btn-prev.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/images/lightbox-ico-loading.gif +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/js/jquery.js +32 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/js/jquery.lightbox-0.5.js +477 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/js/jquery.lightbox-0.5.min.js +42 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/lightbox/js/jquery.lightbox-0.5.pack.js +14 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/logo.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/logo_reddeshop.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/move_handler.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/phone.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/photo_ico.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/print.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/docstyle.css +123 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/redactor.css +369 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/style.css +119 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/wym.css +136 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/img/icons.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/by.js +72 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/de.js +75 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/en.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/es.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/fr.js +74 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/hu.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/it.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/ja.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/lv.js +74 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/nl.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/pl.js +75 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/pt_br.js +81 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/ru.js +75 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/sq.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/tr.js +76 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/ua.js +75 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/zh_cn.js +77 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/file.html +3 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/image.html +39 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/image_edit.html +35 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/link.html +74 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/table.html +25 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/plugins/video.html +15 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/redactor.js.erb +2260 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/redactor.min.js +1 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/toolbars/default.js +219 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/redactor/toolbars/mini.js +103 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/_jquery.reddebox.js.erb +214 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/close.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/jquery.reddebox.js.erb +246 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/jquery.reddebox.scss +31 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/next.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/prev.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/refresh.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/submit.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/submit_hover.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/change-log.txt +19 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/check-exists.php +15 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/index.php +50 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/jquery.uploadifive.js +888 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/jquery.uploadifive.min.js +6 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/license-standard.txt +71 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive-cancel.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive-image-only.php +66 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive.css +100 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive.php +33 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/#swfobject.js +4 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/cancel.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/jquery.uploadify.min.js +315 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify-cancel.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify.css +66 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify.swf +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/view.png +0 -0
- data/lib/generators/redde/layout/templates/assets/images/admin/view_mk.png +0 -0
- data/lib/generators/redde/layout/templates/assets/javascripts/admin/jquery.ui.nestedSortable.js +390 -0
- data/lib/generators/redde/layout/templates/assets/javascripts/admin/swfobject.js +4 -0
- data/lib/generators/redde/layout/templates/assets/javascripts/admin/zen_textarea.min.js +17 -0
- data/lib/generators/redde/layout/templates/assets/javascripts/admin.js +88 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/_reset.scss +32 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_list.scss +22 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_notice.scss +39 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_orders.scss +22 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_partners.scss +15 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_photos.scss +31 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/_sortable.scss +17 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/default.scss +127 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/defaults/_input.scss +43 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/defaults/_table.scss +24 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_header.scss +57 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_launchbar.scss +35 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_login.scss +10 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_main.scss +59 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_sidebar.scss +35 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/shop/_filter.scss +16 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/shop/_order-sh.scss +59 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin/shop/_pe.scss +43 -0
- data/lib/generators/redde/layout/templates/assets/stylesheets/admin.scss +12 -0
- data/lib/generators/redde/layout/templates/controllers/base_controller.rb +6 -0
- data/lib/generators/redde/layout/templates/helpers/admin_helper.rb +37 -0
- data/lib/generators/redde/layout/templates/layouts/admin.html.haml +30 -0
- data/lib/generators/redde/layout/templates/layouts/login.html.haml +32 -0
- data/lib/generators/redde/layout/templates/shared/_header.html.haml +13 -0
- data/lib/generators/redde/layout/templates/shared/_launchbar.html.haml +9 -0
- data/lib/generators/redde/layout/templates/shared/_sidebar.html.haml +23 -0
- data/lib/generators/redde/scaffold/scaffold_generator.rb +114 -0
- data/lib/generators/redde/scaffold/templates/controllers/controller.rb +55 -0
- data/lib/generators/redde/scaffold/templates/edit.html.haml +36 -0
- data/lib/generators/redde/scaffold/templates/index.html.haml +37 -0
- data/lib/redde/version.rb +3 -0
- data/lib/redde.rb +4 -0
- data/redde.gemspec +26 -0
- data/spec/deploy_generator_spec.rb +29 -0
- data/spec/layout_generator_spec.rb +41 -0
- data/spec/scaffold_generator_spec.rb +25 -0
- data/spec/spec_helper.rb +10 -0
- metadata +327 -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> </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"> </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"">\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(/\ \ \ /gi," ");c=c.replace(/\ \ /gi," ");c=c.replace(/<o:p>(.*?)<\/o:p>/gi,"");c=c.replace(/\s*style="\s*"/gi,"");c=c.replace(/<span> <\/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"> <\/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"> </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> /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(.*?)> <\/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> <span>","<p>\\s*</p>","<p> </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> </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">—</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> </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> </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(" ");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(" ");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(" ");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+" "}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">×</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=/(^|<|\s)(www\..+?\..+?)(\s|>|$)/g,a=/(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/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,"&").replace(/</g,"<").replace(/>/g,">").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,219 @@
|
|
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
|
+
format: {
|
69
|
+
exec: 'removeformat',
|
70
|
+
name: 'removeformat',
|
71
|
+
title: RLANG.removeformat
|
72
|
+
},
|
73
|
+
bold:
|
74
|
+
{
|
75
|
+
title: RLANG.bold,
|
76
|
+
exec: 'Bold',
|
77
|
+
param: false
|
78
|
+
},
|
79
|
+
italic:
|
80
|
+
{
|
81
|
+
title: RLANG.italic,
|
82
|
+
exec: 'italic',
|
83
|
+
param: null
|
84
|
+
},
|
85
|
+
deleted:
|
86
|
+
{
|
87
|
+
title: RLANG.deleted,
|
88
|
+
exec: 'strikethrough',
|
89
|
+
param: null,
|
90
|
+
separator: true
|
91
|
+
},
|
92
|
+
insertunorderedlist:
|
93
|
+
{
|
94
|
+
title: '• ' + RLANG.unorderedlist,
|
95
|
+
exec: 'insertunorderedlist',
|
96
|
+
param: null
|
97
|
+
},
|
98
|
+
insertorderedlist:
|
99
|
+
{
|
100
|
+
title: '1. ' + RLANG.orderedlist,
|
101
|
+
exec: 'insertorderedlist',
|
102
|
+
param: null
|
103
|
+
},
|
104
|
+
outdent:
|
105
|
+
{
|
106
|
+
title: '< ' + RLANG.outdent,
|
107
|
+
exec: 'outdent',
|
108
|
+
param: null
|
109
|
+
},
|
110
|
+
indent:
|
111
|
+
{
|
112
|
+
title: '> ' + RLANG.indent,
|
113
|
+
exec: 'indent',
|
114
|
+
param: null,
|
115
|
+
separator: true
|
116
|
+
},/*
|
117
|
+
image:
|
118
|
+
{
|
119
|
+
title: RLANG.image,
|
120
|
+
func: 'showImage'
|
121
|
+
},
|
122
|
+
video:
|
123
|
+
{
|
124
|
+
title: RLANG.video,
|
125
|
+
func: 'showVideo'
|
126
|
+
},
|
127
|
+
file:
|
128
|
+
{
|
129
|
+
title: RLANG.file,
|
130
|
+
func: 'showFile'
|
131
|
+
}, */
|
132
|
+
table:
|
133
|
+
{
|
134
|
+
title: RLANG.table,
|
135
|
+
func: 'show',
|
136
|
+
dropdown:
|
137
|
+
{
|
138
|
+
insert_table: { name: 'insert_table', title: RLANG.insert_table, func: 'showTable' },
|
139
|
+
separator_drop1: { name: 'separator' },
|
140
|
+
insert_row_above: { name: 'insert_row_above', title: RLANG.insert_row_above, func: 'insertRowAbove' },
|
141
|
+
insert_row_below: { name: 'insert_row_below', title: RLANG.insert_row_below, func: 'insertRowBelow' },
|
142
|
+
insert_column_left: { name: 'insert_column_left', title: RLANG.insert_column_left, func: 'insertColumnLeft' },
|
143
|
+
insert_column_right: { name: 'insert_column_right', title: RLANG.insert_column_right, func: 'insertColumnRight' },
|
144
|
+
separator_drop2: { name: 'separator' },
|
145
|
+
add_head: { name: 'add_head', title: RLANG.add_head, func: 'addHead' },
|
146
|
+
delete_head: { name: 'delete_head', title: RLANG.delete_head, func: 'deleteHead' },
|
147
|
+
separator_drop3: { name: 'separator' },
|
148
|
+
delete_column: { name: 'insert_table', title: RLANG.delete_column, func: 'deleteColumn' },
|
149
|
+
delete_row: { name: 'delete_row', title: RLANG.delete_row, func: 'deleteRow' },
|
150
|
+
delete_table: { name: 'delete_table', title: RLANG.delete_table, func: 'deleteTable' }
|
151
|
+
}
|
152
|
+
},
|
153
|
+
link:
|
154
|
+
{
|
155
|
+
title: RLANG.link,
|
156
|
+
func: 'show',
|
157
|
+
dropdown:
|
158
|
+
{
|
159
|
+
link:
|
160
|
+
{
|
161
|
+
title: RLANG.link_insert,
|
162
|
+
func: 'showLink'
|
163
|
+
},
|
164
|
+
unlink:
|
165
|
+
{
|
166
|
+
title: RLANG.unlink,
|
167
|
+
exec: 'unlink',
|
168
|
+
param: null
|
169
|
+
}
|
170
|
+
},
|
171
|
+
separator: true
|
172
|
+
},
|
173
|
+
fontcolor:
|
174
|
+
{
|
175
|
+
title: RLANG.fontcolor,
|
176
|
+
func: 'show'
|
177
|
+
},
|
178
|
+
backcolor:
|
179
|
+
{
|
180
|
+
title: RLANG.backcolor,
|
181
|
+
func: 'show',
|
182
|
+
separator: true
|
183
|
+
},
|
184
|
+
justifyleft:
|
185
|
+
{
|
186
|
+
exec: 'JustifyLeft',
|
187
|
+
name: 'JustifyLeft',
|
188
|
+
title: RLANG.align_left
|
189
|
+
},
|
190
|
+
justifycenter:
|
191
|
+
{
|
192
|
+
exec: 'JustifyCenter',
|
193
|
+
name: 'JustifyCenter',
|
194
|
+
title: RLANG.align_center
|
195
|
+
},
|
196
|
+
justifyright:
|
197
|
+
{
|
198
|
+
exec: 'JustifyRight',
|
199
|
+
name: 'JustifyRight',
|
200
|
+
title: RLANG.align_right
|
201
|
+
},
|
202
|
+
justify:
|
203
|
+
{
|
204
|
+
exec: 'justifyfull',
|
205
|
+
name: 'justifyfull',
|
206
|
+
title: RLANG.align_justify, separator: true
|
207
|
+
},
|
208
|
+
horizontalrule:
|
209
|
+
{
|
210
|
+
exec: 'inserthorizontalrule',
|
211
|
+
name: 'horizontalrule',
|
212
|
+
title: RLANG.horizontalrule
|
213
|
+
},
|
214
|
+
fullscreen:
|
215
|
+
{
|
216
|
+
title: RLANG.fullscreen,
|
217
|
+
func: 'fullscreen'
|
218
|
+
}
|
219
|
+
};
|
@@ -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: '• ' + 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
|
+
};
|
data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/_jquery.reddebox.js.erb
ADDED
@@ -0,0 +1,214 @@
|
|
1
|
+
/**
|
2
|
+
* jQuery lightBox plugin
|
3
|
+
* This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
|
4
|
+
* and adapted to me for use like a plugin from jQuery.
|
5
|
+
* @name jquery-lightbox-0.5.js
|
6
|
+
* @author Leandro Vieira Pinho - http://leandrovieira.com
|
7
|
+
* @version 0.5
|
8
|
+
* @date April 11, 2008
|
9
|
+
* @category jQuery plugin
|
10
|
+
* @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
|
11
|
+
* @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
|
12
|
+
* @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
|
13
|
+
*/
|
14
|
+
|
15
|
+
// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias
|
16
|
+
(function($) {
|
17
|
+
/**
|
18
|
+
* $ is an alias to jQuery object
|
19
|
+
*
|
20
|
+
*/
|
21
|
+
$.fn.reddeBox = function(settings) {
|
22
|
+
// Settings to configure the jQuery lightBox plugin how you like
|
23
|
+
settings = jQuery.extend({
|
24
|
+
// Configuration related to overlay
|
25
|
+
overlayOpacity: 0.9, // (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
|
26
|
+
// Configuration related to navigation
|
27
|
+
fixedNavigation: true, // (boolean) Boolean that informs if the navigation (next and prev button) will be fixed or not in the interface.
|
28
|
+
// Configuration related to images
|
29
|
+
classWrapper: "",
|
30
|
+
imageLoading: '<%= asset_path("reddebox/103.gif") %>', // (string) Path and the name of the loading icon
|
31
|
+
imageBtnPrev: '<%= asset_path("reddebox/previous.png") %>', // (string) Path and the name of the prev button image
|
32
|
+
imageBtnNext: '<%= asset_path("reddebox/next.png") %>', // (string) Path and the name of the next button image
|
33
|
+
imageBtnClose: '<%= asset_path("reddebox/close.png") %>', // (string) Path and the name of the close btn
|
34
|
+
// Configuration related to container image box
|
35
|
+
containerBorderSize: 0, // (integer) If you adjust the padding in the CSS for the container, #lightbox-container-image-box, you will need to update this value
|
36
|
+
containerResizeSpeed: 0, // (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
|
37
|
+
// Configuration related to texts in caption. For example: Image 2 of 8. You can alter either "Image" and "of" texts.
|
38
|
+
txtImage: 'Изображение', // (string) Specify text "Image"
|
39
|
+
txtOf: 'из', // (string) Specify text "of"
|
40
|
+
// Configuration related to keyboard navigation
|
41
|
+
keyToClose: 'c', // (string) (c = close) Letter to close the jQuery lightBox interface. Beyond this letter, the letter X and the SCAPE key is used to.
|
42
|
+
keyToPrev: 'p', // (string) (p = previous) Letter to show the previous image
|
43
|
+
keyToNext: 'n', // (string) (n = next) Letter to show the next image.
|
44
|
+
// Don�t alter these variables in any way
|
45
|
+
imageArray: [],
|
46
|
+
activeImage: function(){ return -1;}
|
47
|
+
},settings);
|
48
|
+
|
49
|
+
|
50
|
+
var jQueryMatchedObj = $.merge(this,settings.imageArray),
|
51
|
+
activeIndex = 0,
|
52
|
+
container;
|
53
|
+
function setInterface(linkActive) {
|
54
|
+
if (settings.classWrapper) {
|
55
|
+
settings.classWrapper = ' class="' + settings.classWrapper + '"';
|
56
|
+
};
|
57
|
+
var navigation =
|
58
|
+
'<a href="#" class="redde-prev"></a>' +
|
59
|
+
'<a href="#" class="redde-close"></a>' +
|
60
|
+
'<a href="#" class="redde-next"></a>' +
|
61
|
+
'<div class="redde-desc"></div>';
|
62
|
+
var cont =
|
63
|
+
'<div id="redde-overlay"></div>' +
|
64
|
+
'<div id="redde-box"' + settings.classWrapper + '>' +
|
65
|
+
'<div id="redde-container"><div id="wrap-redde-container"></div>' + navigation + '</div>' +
|
66
|
+
'</div>';
|
67
|
+
$("body").append(cont);
|
68
|
+
container = $("#redde-container"); // обертка
|
69
|
+
$("#redde-overlay").fadeTo(400,settings.overlayOpacity);
|
70
|
+
$("#redde-box").fadeTo(400,1.0,function(){
|
71
|
+
container.css("background-image","url("+settings.imageLoading+")");
|
72
|
+
$(this).bind("click",function(e){
|
73
|
+
if (e.target == this) {
|
74
|
+
removeReddeBox();
|
75
|
+
};
|
76
|
+
});
|
77
|
+
});
|
78
|
+
|
79
|
+
if (!settings.imageArray.length) {
|
80
|
+
showImage(linkActive);
|
81
|
+
} else {
|
82
|
+
if (settings.activeImage() != -1) {
|
83
|
+
activeIndex = settings.activeImage();
|
84
|
+
};
|
85
|
+
showImage($(jQueryMatchedObj[activeIndex]));
|
86
|
+
}
|
87
|
+
|
88
|
+
container.find("a").click(function(e){
|
89
|
+
switch (this.className) {
|
90
|
+
case "redde-next":
|
91
|
+
case "redde-prev":
|
92
|
+
{
|
93
|
+
container.stop(true,true);
|
94
|
+
var delta = this.className == "redde-prev" ? -1 : 1;
|
95
|
+
if (jQueryMatchedObj[activeIndex+delta] != undefined) {
|
96
|
+
activeIndex = activeIndex+delta;
|
97
|
+
showImage($(jQueryMatchedObj[activeIndex]));
|
98
|
+
};
|
99
|
+
break;
|
100
|
+
};
|
101
|
+
case "redde-close": {
|
102
|
+
removeReddeBox();
|
103
|
+
break;
|
104
|
+
};
|
105
|
+
}
|
106
|
+
e.preventDefault();
|
107
|
+
});
|
108
|
+
|
109
|
+
};
|
110
|
+
|
111
|
+
function updateNavi(linkActive) {
|
112
|
+
var maxLength = jQueryMatchedObj.length;
|
113
|
+
_setActiveIndex(linkActive.href);
|
114
|
+
container.find("a.redde-next, a.redde-prev").css("visibility","visible");
|
115
|
+
if (activeIndex == 0) {
|
116
|
+
$("a.redde-prev").css("visibility","hidden");
|
117
|
+
};
|
118
|
+
if (activeIndex == maxLength-1) {
|
119
|
+
$("a.redde-next").css("visibility","hidden");
|
120
|
+
};
|
121
|
+
if (linkActive.title && linkActive.title.length) {
|
122
|
+
container.find("div.redde-desc").html(linkActive.title).css("visibility","visible");
|
123
|
+
} else {
|
124
|
+
container.find("div.redde-desc").empty().css("visibility","hidden");
|
125
|
+
};
|
126
|
+
};
|
127
|
+
|
128
|
+
function _setActiveIndex(linkActiveHref) {
|
129
|
+
for(var i = jQueryMatchedObj.length; i--;) {
|
130
|
+
if (jQueryMatchedObj[i].href == linkActiveHref) {
|
131
|
+
activeIndex = i;
|
132
|
+
break;
|
133
|
+
}
|
134
|
+
};
|
135
|
+
};
|
136
|
+
|
137
|
+
function showImage(me) {
|
138
|
+
updateNavi(me);
|
139
|
+
$("<img />").attr("src",me.href).fadeTo(0,0).load(function(){
|
140
|
+
$("#redde-container #wrap-redde-container").html(this);
|
141
|
+
_setCenter($(this));
|
142
|
+
});
|
143
|
+
|
144
|
+
function _setCenter(el) {
|
145
|
+
var w = el.width(),
|
146
|
+
h = el.height();
|
147
|
+
container.addClass("resize-show-photo").stop(false,false).animate({
|
148
|
+
width: w,
|
149
|
+
height: h,
|
150
|
+
"margin-left": -w/2-1, // -1 - поправка на border
|
151
|
+
"margin-top": -h/2-1,
|
152
|
+
top: "50%",
|
153
|
+
left: "50%"
|
154
|
+
},400,function(){
|
155
|
+
$(this).removeClass("resize-show-photo");
|
156
|
+
if ($.isFunction($.fn.draggable)) {
|
157
|
+
$(this).draggable({
|
158
|
+
stop: function(){
|
159
|
+
var obj = {},
|
160
|
+
x1 = parseInt($(this).css("left")),
|
161
|
+
y1 = parseInt($(this).css("top")),
|
162
|
+
xy2 = $(this).offsetParent(),
|
163
|
+
x2 = parseInt(xy2.width()),
|
164
|
+
y2 = parseInt(xy2.height());
|
165
|
+
|
166
|
+
if (x2 > w) {
|
167
|
+
if (x1 < 0) {
|
168
|
+
obj.left = 0;
|
169
|
+
} else if (x1 > x2) {
|
170
|
+
obj.left = x2;
|
171
|
+
};
|
172
|
+
} else {
|
173
|
+
if (x2/2-x1 > w/2) {
|
174
|
+
obj.left = (x2-w)/2;
|
175
|
+
} else if (x1-x2/2 > w/2) {
|
176
|
+
obj.left = (x2+w)/2;
|
177
|
+
};
|
178
|
+
};
|
179
|
+
|
180
|
+
if (y2 > h) {
|
181
|
+
if (y1 < 0) {
|
182
|
+
obj.top = 0
|
183
|
+
} else if (y1 > y2) {
|
184
|
+
obj.top = y2
|
185
|
+
};
|
186
|
+
} else {
|
187
|
+
if (y2/2-y1 > h/2) {
|
188
|
+
obj.top = (y2-h)/2;
|
189
|
+
} else if (y1-y2/2 > h/2) {
|
190
|
+
obj.top = (y2+h)/2;
|
191
|
+
};
|
192
|
+
}
|
193
|
+
|
194
|
+
$(this).animate(obj);
|
195
|
+
}
|
196
|
+
});
|
197
|
+
};
|
198
|
+
}).find("img").fadeTo(0,1.0);
|
199
|
+
};
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
};
|
204
|
+
|
205
|
+
function removeReddeBox() {
|
206
|
+
$("#redde-overlay, #redde-box").remove();
|
207
|
+
}
|
208
|
+
|
209
|
+
return this.unbind('click.reddebox').bind("click.reddebox",function(e){
|
210
|
+
setInterface(this);
|
211
|
+
e.preventDefault();
|
212
|
+
});
|
213
|
+
};
|
214
|
+
})(jQuery); // Call and execute the function immediately passing the jQuery object
|