redde 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.travis.yml +10 -0
  4. data/Gemfile +3 -3
  5. data/LICIENSE.md +21 -0
  6. data/README.md +53 -14
  7. data/lib/generators/redde/layout/layout_generator.rb +7 -4
  8. data/lib/generators/redde/layout/templates/assets/images/admin/error-label-triangle.png +0 -0
  9. data/lib/generators/redde/layout/templates/assets/images/admin/favicon.png +0 -0
  10. data/lib/generators/redde/layout/templates/assets/javascripts/admin.js +9 -76
  11. data/lib/generators/redde/layout/templates/assets/redactor/images/.keep +0 -0
  12. data/lib/generators/redde/layout/templates/assets/redactor/images/redactor/icons.png +0 -0
  13. data/lib/generators/redde/layout/templates/assets/redactor/javascripts/jquery-migrate-1.2.1.js +521 -0
  14. data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/javascripts}/redactor/redactor.js.erb +9 -21
  15. data/lib/generators/redde/layout/templates/assets/{images/admin/redactor/css/redactor.css → redactor/stylesheets/redactor/redactor.css.scss} +1 -1
  16. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/error-msg.sass +47 -0
  17. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/paginate.sass +28 -0
  18. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/pagination.scss +28 -0
  19. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/phead-tabs.sass +27 -0
  20. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/default.scss +0 -0
  21. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/defaults/input.sass +35 -0
  22. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/header.sass +50 -0
  23. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/launchbar.sass +23 -0
  24. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/main.sass +39 -0
  25. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/page-header.sass +19 -0
  26. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/page-sidebar.sass +22 -0
  27. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/sidebar.sass +30 -0
  28. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/reset.sass +33 -0
  29. data/lib/generators/redde/layout/templates/assets/stylesheets/admin.scss +9 -9
  30. data/lib/generators/redde/layout/templates/base/_header.html.haml +12 -0
  31. data/lib/generators/redde/layout/templates/base/_launchbar.html.haml +11 -0
  32. data/lib/generators/redde/layout/templates/base/_sidebar.html.haml +15 -0
  33. data/lib/generators/redde/layout/templates/base/_validate.haml +8 -0
  34. data/lib/generators/redde/layout/templates/base/welcome.haml +2 -0
  35. data/lib/generators/redde/layout/templates/controllers/base_controller.rb +5 -0
  36. data/lib/generators/redde/layout/templates/layouts/admin.html.haml +14 -15
  37. data/lib/generators/redde/scaffold/scaffold_generator.rb +8 -0
  38. data/lib/generators/redde/scaffold/templates/edit.html.haml +2 -6
  39. data/lib/generators/redde/scaffold/templates/index.html.haml +1 -1
  40. data/lib/redde/version.rb +1 -1
  41. data/lib/redde.rb +3 -0
  42. data/redde.gemspec +11 -10
  43. data/spec/dummy/.rspec +1 -0
  44. data/spec/dummy/README.rdoc +28 -0
  45. data/spec/dummy/Rakefile +6 -0
  46. data/spec/dummy/app/assets/images/.keep +0 -0
  47. data/spec/dummy/app/assets/javascripts/application.js +14 -0
  48. data/spec/dummy/app/assets/stylesheets/application.css.scss +0 -0
  49. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  50. data/spec/dummy/app/controllers/articles_controller.rb +12 -0
  51. data/spec/dummy/app/models/.keep +0 -0
  52. data/spec/dummy/app/models/article.rb +3 -0
  53. data/spec/dummy/app/models/article_category.rb +2 -0
  54. data/spec/dummy/app/views/articles/show.html.haml +2 -0
  55. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  56. data/spec/dummy/bin/bundle +3 -0
  57. data/spec/dummy/bin/rails +4 -0
  58. data/spec/dummy/bin/rake +4 -0
  59. data/spec/dummy/config/application.rb +33 -0
  60. data/spec/dummy/config/boot.rb +5 -0
  61. data/spec/dummy/config/database.yml +25 -0
  62. data/spec/dummy/config/environment.rb +5 -0
  63. data/spec/dummy/config/environments/development.rb +29 -0
  64. data/spec/dummy/config/environments/production.rb +80 -0
  65. data/spec/dummy/config/environments/test.rb +36 -0
  66. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  67. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  68. data/spec/dummy/config/initializers/inflections.rb +16 -0
  69. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  70. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  71. data/spec/dummy/config/initializers/session_store.rb +3 -0
  72. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  73. data/spec/dummy/config/locales/en.yml +36 -0
  74. data/spec/dummy/config/routes.rb +3 -0
  75. data/spec/dummy/config.ru +4 -0
  76. data/spec/dummy/db/development.sqlite3 +0 -0
  77. data/spec/dummy/db/migrate/20130908123351_create_articles.rb +9 -0
  78. data/spec/dummy/db/migrate/20140128152208_create_article_categories.rb +11 -0
  79. data/spec/dummy/db/schema.rb +29 -0
  80. data/spec/dummy/db/test.sqlite3 +0 -0
  81. data/spec/dummy/lib/assets/.keep +0 -0
  82. data/spec/dummy/log/.keep +0 -0
  83. data/spec/dummy/log/development.log +26606 -0
  84. data/spec/dummy/log/test.log +53411 -0
  85. data/spec/dummy/public/404.html +58 -0
  86. data/spec/dummy/public/422.html +58 -0
  87. data/spec/dummy/public/500.html +57 -0
  88. data/spec/dummy/public/favicon.ico +0 -0
  89. data/spec/{deploy_generator_spec.rb → generators/deploy_generator_spec.rb} +1 -1
  90. data/spec/{layout_generator_spec.rb → generators/layout_generator_spec.rb} +5 -5
  91. data/spec/generators/scaffold_generator_spec.rb +59 -0
  92. data/spec/spec_helper.rb +53 -4
  93. metadata +187 -155
  94. data/LICENSE +0 -22
  95. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/docstyle.css +0 -123
  96. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/css/style.css +0 -119
  97. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/img/icons.png +0 -0
  98. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/by.js +0 -72
  99. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/de.js +0 -75
  100. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/es.js +0 -76
  101. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/fr.js +0 -74
  102. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/hu.js +0 -76
  103. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/it.js +0 -76
  104. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/ja.js +0 -76
  105. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/lv.js +0 -74
  106. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/nl.js +0 -76
  107. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/pl.js +0 -75
  108. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/pt_br.js +0 -81
  109. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/sq.js +0 -76
  110. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/tr.js +0 -76
  111. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/ua.js +0 -75
  112. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/langs/zh_cn.js +0 -77
  113. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/redactor.min.js +0 -1
  114. data/lib/generators/redde/layout/templates/assets/images/admin/redactor/toolbars/mini.js +0 -103
  115. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/_jquery.reddebox.js.erb +0 -214
  116. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/close.png +0 -0
  117. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/jquery.reddebox.js.erb +0 -246
  118. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/jquery.reddebox.scss +0 -31
  119. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/next.png +0 -0
  120. data/lib/generators/redde/layout/templates/assets/images/admin/reddebox/prev.png +0 -0
  121. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/change-log.txt +0 -19
  122. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/check-exists.php +0 -15
  123. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/index.php +0 -50
  124. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/jquery.uploadifive.js +0 -888
  125. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/jquery.uploadifive.min.js +0 -6
  126. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/license-standard.txt +0 -71
  127. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive-cancel.png +0 -0
  128. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive-image-only.php +0 -66
  129. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive.css +0 -100
  130. data/lib/generators/redde/layout/templates/assets/images/admin/uploadifive/uploadifive.php +0 -33
  131. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/#swfobject.js +0 -4
  132. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/cancel.png +0 -0
  133. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/jquery.uploadify.min.js +0 -315
  134. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify-cancel.png +0 -0
  135. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify.css +0 -66
  136. data/lib/generators/redde/layout/templates/assets/images/admin/uploadify/uploadify.swf +0 -0
  137. data/lib/generators/redde/layout/templates/assets/javascripts/admin/swfobject.js +0 -4
  138. data/lib/generators/redde/layout/templates/assets/javascripts/admin/zen_textarea.min.js +0 -17
  139. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/_reset.scss +0 -32
  140. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/defaults/_input.scss +0 -43
  141. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_header.scss +0 -57
  142. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_launchbar.scss +0 -35
  143. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_main.scss +0 -59
  144. data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/_sidebar.scss +0 -35
  145. data/lib/generators/redde/layout/templates/shared/_header.html.haml +0 -13
  146. data/lib/generators/redde/layout/templates/shared/_launchbar.html.haml +0 -9
  147. data/lib/generators/redde/layout/templates/shared/_sidebar.html.haml +0 -9
  148. data/spec/scaffold_generator_spec.rb +0 -25
  149. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/file.html +0 -0
  150. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/image.html +0 -0
  151. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/image_edit.html +0 -0
  152. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/link.html +0 -0
  153. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/table.html +0 -0
  154. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/images}/redactor/plugins/video.html +0 -0
  155. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/javascripts}/redactor/langs/en.js +0 -0
  156. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/javascripts}/redactor/langs/ru.js +0 -0
  157. /data/lib/generators/redde/layout/templates/assets/{images/admin → redactor/javascripts}/redactor/toolbars/default.js +0 -0
  158. /data/lib/generators/redde/layout/templates/assets/{images/admin/redactor/css → redactor/stylesheets/redactor}/wym.css +0 -0
  159. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_list.scss → list.scss} +0 -0
  160. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_notice.scss → notice.scss} +0 -0
  161. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_orders.scss → orders.scss} +0 -0
  162. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_partners.scss → partners.scss} +0 -0
  163. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_photos.scss → photos.scss} +0 -0
  164. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/blocks/{_sortable.scss → sortable.scss} +0 -0
  165. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/defaults/{_table.scss → table.scss} +0 -0
  166. /data/lib/generators/redde/layout/templates/assets/stylesheets/admin/layouts/{_login.scss → login.scss} +0 -0
@@ -1 +0,0 @@
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);
@@ -1,103 +0,0 @@
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
- };
@@ -1,214 +0,0 @@
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