spohlenz / tinymce-rails

Integration of TinyMCE with the Rails asset pipeline
Other
812 stars 256 forks source link

Easy migration from tiny_mce gem? #34

Closed arufanov closed 12 years ago

arufanov commented 12 years ago

Hello!

-1.This is not bug, this is just a question. -2.It would be great have a easy way to migrate from tiny_mce gem on your gem. Are you planning to add config.yml file to configure editor features that exists at tiny_mce gem & helpers that exists at tiny_mce gem? These are 2 feature that prevent me from migration.

Sincerely yours, Artem Rufanov.

P.S. Have a good day!

spohlenz commented 12 years ago

I'm looking into adding some helpers that bridge the functionality gap between the tiny_mce gem. The API will likely be slightly different though.

At this stage, I imagine there'll be a tinymce_assets method to add the javascript to the document (not needed if the javascripts are required in application.js) and a tinymce(options={}) method for calling the javascript to init the editor. It will take its defaults from a config/tinymce.yml configuration file, as with the tiny_mce gem.

Hopefully I'll have time within the next week to take a look at this.

arufanov commented 12 years ago

Hello!

Ok, this is looks exactly what I need to migrate on new gem: -1.Configuration by tiny_mce.yml -2.Language support with ability change at runtime and support assets pipeline (implementation def uses_tiny_mce(options = {})) -3.Helper support to create a text area like this: <%= f.text_area :body, :class => "mceEditor" %>

Let me know what time I can start to test.

Artem.

graffzon commented 12 years ago

Hi! Arufanov, 3d you can make yourself by $('.mceEditor').tinymce theme: 'advanced' in js.

But about 1st and 2nd. Spohlez, really it will be great stuff

arufanov commented 12 years ago

Hello!

What time can I test 1st & 2nd? About 3d: this feature (helper) was at tiny_mce and it would be great to have the same feature at tinymce_rails. I suppose that helper usage accrording to rails way rather than put js code directly into erb. I can create this helper by myself and put into application_helper, but I guess that other prefer to use this helper to as they use it at tiny_mce.

Artem.

P.S. Have a good day!

spohlenz commented 12 years ago

Please give the helpers branch a try: https://github.com/spohlenz/tinymce-rails/tree/helpers

Basic usage steps are:

  1. Place your configuration options into config/tinymce.yml.
  2. Add the TinyMCE assets the usual asset pipeline way or use the new tinymce_assets helper.
  3. Add the tinymce class to your textareas (no helper for this, and to be honest, adding those helpers would be more trouble than I think it's worth).
  4. Call the tinymce helper (can pass additional options to override the global configuration) to initialize TinyMCE.

Check out the sandbox folder within the repository for an example app.

arufanov commented 12 years ago

Thank you very much, I will try and give feedback during week.

Artem.

arufanov commented 12 years ago

Hello!

-1. -a.I have added gem "tinymce-rails", ">= 3.4.8" -b.I have added a line //= require tinymce at my application js -c.Also I have added text area like this: <%= text_area_tag :editor, "", :rows => 40, :cols => 120 %> <%= tinymce %> and create config/tinymce.yml. But I am not able to see tinymce editor. See P.S. for output HTML source code. What I do wrong?

-2. Also I had a questions related assets:precompile: I have found message "# Replacement for assets:precompile task in Rails 3.1.0". I am going to create a new gem with asset installation too. Does there gems will work together? Could you outline this issue?

P.S.

    <script type="text/javascript">

//<![CDATA[ tinyMCE.init({"mode":"textareas","theme":"advanced","editor_selector":"tinymce","content_css":"/stylesheets/mytinymce.css","theme_advanced_buttons1":"save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect","theme_advanced_buttons2":"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor","theme_advanced_buttons3":"tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen","theme_advanced_buttons4":"insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,restoredraft,|,insertfile,insertimage","theme_advanced_toolbar_location":"top","theme_advanced_toolbar_align":"left","theme_advanced_statusbar_location":"bottom","theme_advanced_resizing":true,"language":"ru","plugins":"safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template"}); //]]>

Artem.

spohlenz commented 12 years ago

@arufanov make sure you add the tinymce class to your textareas:

<%= text_area_tag :editor, "", :class => "tinymce", :rows => 40, :cols => 120 %>

Regarding the asset precompilation rake task, Rails 3.1.0 did not create assets without digests added to the filenames. This was fixed in Rails 3.1.1. I've actually just dropped support for Rails 3.1.0 in tinymce-rails.

arufanov commented 12 years ago

Hello!

-1.Thank you for answer. This is working at development, I am going to check at production during a next week. Let me know if you would like to know the result. -2.I would like to share my migration expirience, may be it will be useful for someother. P.S. has it. -3.Could you contact me by arufanov@gmail.com, I have a few questions not related to this issue. Thank you very much.

Sincerely yours, Artem Rufanov.

P.S. Upgrate from tiny_mce to tinymce_rails. My rails version is: "gem 'rails', '3.1.3'" -1.Replace line "gem "tiny_mce", ">= 0.1.4"" on "gem "tinymce-rails", ">= 3.4.8"" at Gemfile file -2.Rename config file from tiny_mce to tinymce and be sure that language is "en". My previous language "ru" is not supported for example. -3.Erase "uses_tiny_mce" line from controller -4.Replace old text_area on " <%= f.text_area :body, :class => "tinymce" %> <%= tinymce({:language => "en"}) %> " be sure add :class => "tinymce". String :language => "en" can be omit if tinymce.yml contains en -5.Run "bundle exec rake assets:precompile" command to precompile assets.

arufanov commented 12 years ago

Hello!

I have a working solution at development mode, but have a problem at production mode at Win32. I have updated from rails 3.1.3 to rails 3.2.1 but the result is the same.

I have application.js " //= require jquery //= require jquery_ujs //= require auxiliary //= require_tree . " and this is precompiled successfully at production. Then I have added: gem "tinymce-rails", ">= 3.4.8" at Gemfile (helper branch) and modify application.js " //= require jquery //= require jquery_ujs //= require auxiliary //= require tinymce-jquery //= require_tree . " And command "bundle exec rake assets:precompile --trace " fail with exception: see P.S.

At production mode (rals 3.1.3) at Unix OS I have a little different result, command "bundle exec rake assets:precompile" is executed successfully, but Firefox show jscript error while show page: " a.ajaxPrefilter is not a function tinyMCE is not defined a.dispatchEvent is not a function " See PP.S. with my applicaton.js at Unix.

Could you give me advise: a) how to fix precompile problem on Win32 b) how to fix jscript error at Unix (may this issue is related to previous one)

Artem.

P.S. Exception to precompile at production mode at Win32: * Invoke assets:precompile (first_time) * Execute assets:precompile D:/Binutils/Ruby192/bin/ruby.exe D:/Binutils/Ruby192/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace * Invoke assets:precompile:all (first_time) * Execute assets:precompile:all * Invoke assets:precompile:primary (first_time) * Invoke assets:environment (first_time) * Execute assets:environment * Invoke environment (first_time) * Execute environment * Invoke tmp:cache:clear (first_time) * Execute tmp:cache:clear * Execute assets:precompile:primary rake aborted! 387: unexpected token at '\",133:\":\",134:\"Е\",135:\"Ш\",136:\"?\",137:\"%\",138:\"S\",139:\"<\",140:\"?\",142:\"Z\",145:\"'\",146:\"'\",147:\""\",148:\""\",149:\"\",150:\"-\",151:\"-\",152:\"?\",153:\"T\",154:\"s\",155:\">\",156:\"?\",158:\"z\",159:\"Y\"};c={'\"':\""\",\"'\":\"'\",\"<\":\"<\",\">\":\">\",\"&\":\"&\"},d={\"<\":\"<\",\">\":\">\",\"&\":\"&\",\""\":'\"',\"'\":\"'\"},b=k(\"50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro\",32),a.html=a.html||{},a.html.Entities={encodeRaw:function(a,b){return a.replace(b?e:f,function(a){return c[a]||a})},encodeAllRaw:function(a){return(\"\"+a).replace(g,function(a){return c[a]||a})},encodeNumeric:function(a,b){return a.replace(b?e:f,function(a){return a.length>1?\"&#\"+((a.charCodeAt(0)-55296)1024+(a.charCodeAt(1)-56320)+65536)+\";\":c[a]||\"&#\"+a.charCodeAt(0)+\";\"})},encodeNamed:function(a,d,g){return g=g||b,a.replace(d?e:f,function(a){return c[a]||g[a]||a})},getEncodeFunc:function(d,g){function i(a,b){return a.replace(b?e:f,function(a){return c[a]||g[a]||\"&#\"+a.charCodeAt(0)+\";\"||a})}function j(a,b){return h.encodeNamed(a,b,g)}var h=a.html.Entities;return g=k(g)||b,d=a.makeMap(d.replace(/+/g,\",\")),d.named&&d.numeric?i:d.named?g?j:h.encodeNamed:d.numeric?h.encodeNumeric:h.encodeRaw},decode:function(a){return a.replace(h,function(a,c,e){return c?(e=parseInt(e,c.length===2?16:10),e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(e&1023))):i[e]||String.fromCharCode(e)):d[a]||b[a]||j(a)})}}}(tinymce),tinymce.html.Styles=function(a,b){function l(a,b,c,d){function e(a){return a=parseInt(a).toString(16),a.length>1?a:\"0\"+a}return\"#\"+e(b)+e(c)+e(d)}var c=/rgb\s(\s([0-9]+)\s,\s([0-9]+)\s,\s([0-9]+)\s)/gi,d=/(?:url(?:(?:(\s\"([^\"]+)\"\s))|(?:(\s\'([^\']+)\'\s))|(?:(\s([^)\s]+)\s))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,e=/\s([^:]+):\s([^;]+);?/g,f=/\s+$/,g=/rgb/,h,i,j={},k;a=a||{},k=\"\\" \' \; \: ; : \ufeff\".split(\" \");for(i=0;i<k.length;i++)j[k[i]]=\"\ufeff\"+i,j[\"\ufeff\"+i]=k[i];return{toHex:function(a){return a.replace(c,l)},parse:function(b){function p(a,b){var c,d,e,f;c=g[a+\"-top\"+b];if(!c)return;d=g[a+\"-right\"+b];if(c!=d)return;e=g[a+\"-bottom\"+b];if(d!=e)return;f=g[a+\"-left\"+b];if(e!=f)return;g[a+b]=f,delete g[a+\"-top\"+b],delete g[a+\"-right\"+b],delete g[a+\"-bottom\"+b],delete g[a+\"-left\"+b]}function q(a){var b=g[a],c;if(!b||b.indexOf(\" \")<0)return;b=b.split(\" \"),c=b.length;while(c--)if(b[c]!==b[0])return!1;return g[a]=b[0],!0}function r(a,b,c,d){if(!q(b))return;if(!q(c))return;if(!q(d))return;g[a]=g[b]+\" \"+g[c]+\" \"+g[d],delete g[b],delete g[c],delete g[d]}function s(a){return m=!0,j[a]}function t(a,b){return m&&(a=a.replace(/\uFEFF[0-9]/g,function(a){return j[a]})),b||(a=a.replace(/\\([\'\\";:])/g,\"$1\")),a}var g={},h,i,k,m,n=a.url_converter,o=a.url_converterscope||this;if(b){b=b.replace(/\\[\\"\';:\uFEFF]/g,s).replace(/\\"[^\\"]+\\"|\'[^\']+\'/g,function(a){return a.replace(/[;:]/g,s)});while(h=e.exec(b)){i=h[1].replace(f,\"\").toLowerCase(),k=h[2].replace(f,\"\");if(i&&k.length>0){if(i===\"font-weight\"&&k===\"700\")k=\"bold\";else if(i===\"color\"||i===\"background-color\")k=k.toLowerCase();k=k.replace(c,l),k=k.replace(d,function(a,b,c,d,e,f){return e=e||f,e?(e=t(e),\"'\"+e.replace(/\'/g,\"\'\")+\"'\"):(b=t(b||c||d),n&&(b=n.call(o,b,\"style\")),\"url('\"+b.replace(/\'/g,\"\'\")+\"')\")}),g[i]=m?t(k,!0):k}e.lastIndex=h.index+h[0].length}p(\"border\",\"\"),p(\"border\",\"-width\"),p(\"border\",\"-color\"),p(\"border\",\"-style\"),p(\"padding\",\"\"),p(\"margin\",\"\"),r(\"border\",\"border-width\",\"border-style\",\"border-color\"),g.border===\"medium none\"&&delete g.border}return g},serialize:function(a,c){function g(c){var e,f,g,i;e=b.styles[c];if(e)for(f=0,g=e.length;f<g;f++)c=e[f],i=a[c],i!==h&&i.length>0&&(d+=(d.length>0?\" \":\"\")+c+\": \"+i+\";\")}var d=\"\",e,f;if(c&&b&&b.styles)g(\"\"),g(c);else for(e in a)f=a[e],f!==h&&f.length>0&&(d+=(d.length>0?\" \":\"\")+e+\": \"+f+\";\");return d}}},function(a){function l(a,b){return a.split(b||\",\")}function m(a,b){function e(b){return b.replace(/[A-Z]+/g,function(b){return e(a[b])})}var c,d={};for(c in a)a.hasOwnProperty(c)&&(a[c]=e(a[c]));return e(b).replace(/#/g,\"#text\").replace(/(\w+)[([^]]+)][([^]])]/g,function(a,b,c,e){c=l(c,\"|\"),d[b]={attributes:j(c),attributesOrder:c,children:j(e,\"|\",{\"#comment\":{}})}}),d}var b={},c,d,e,f,g={},h,i,j=a.makeMap,k=a.each;d=\"h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup\",d=j(d,\",\",j(d.toUpperCase())),b=m({Z:\"H|K|N|O|P\",Y:\"X|form|R|Q\",ZG:\"E|span|width|align|char|charoff|valign\",X:\"p|T|div|U|W|isindex|fieldset|table\",ZF:\"E|align|char|charoff|valign\",W:\"pre|hr|blockquote|address|center|noframes\",ZE:\"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height\",ZD:\"[E][S]\",U:\"ul|ol|dl|menu|dir\",ZC:\"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q\",T:\"h1|h2|h3|h4|h5|h6\",ZB:\"X|S|Q\",S:\"R|P\",ZA:\"a|G|J|M|O|P\",R:\"a|H|K|N|O\",Q:\"noscript|P\",P:\"ins|del|script\",O:\"input|select|textarea|label|button\",N:\"M|L\",M:\"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym\",L:\"sub|sup\",K:\"J|I\",J:\"tt|i|b|u|s|strike\",I:\"big|small|font|basefont\",H:\"G|F\",G:\"br|span|bdo\",F:\"object|applet|img|map|iframe\",E:\"A|B|C\",D:\"accesskey|tabindex|onfocus|onblur\",C:\"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup\",B:\"lang|xml:lang|dir\",A:\"id|class|style|title\"},\"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]\"),c=j(\"checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,autoplay,loop,controls\"),e=j(\"area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source\"),f=a.extend(j(\"td,th,iframe,video,audio,object\"),e),h=j(\"pre,script,style,textarea\"),i=j(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr\"),a.html.Schema=function(m){function t(a){return new RegExp(\"^\"+a.replace(/([?+])/g,\".$1\")+\"$\")}function u(b){var c,d,e,f,g,h,i,k,m,n,p,r,s,u,v,w,x,y,A,B,C,D,E=/^([#+-])?([^[\/]+)(?:\/([^[]+))?(?:[([^]]+)])?$/,F=/^([!-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.))?$/,G=/[?+]/;if(b){b=l(b),o[\"@\"]&&(x=o[\"@\"].attributes,y=o[\"@\"].attributesOrder);for(c=0,d=b.length;c<d;c++){h=E.exec(b[c]);if(h){v=h[1],n=h[2],w=h[3],m=h[4],s={},u=[],i={attributes:s,attributesOrder:u},v===\"#\"&&(i.paddEmpty=!0),v===\"-\"&&(i.removeEmpty=!0);if(x){for(B in x)s[B]=x[B];u.push.apply(u,y)}if(m){m=l(m,\"|\");for(e=0,f=m.length;e<f;e++){h=F.exec(m[e]);if(h){k={},r=h[1],p=h[2].replace(/::/g,\":\"),v=h[3],D=h[4],r===\"!\"&&(i.attributesRequired=i.attributesRequired||[],i.attributesRequired.push(p),k.required=!0);if(r===\"-\"){delete s[p],u.splice(a.inArray(u,p),1);continue}v&&(v===\"=\"&&(i.attributesDefault=i.attributesDefault||[],i.attributesDefault.push({name:p,value:D}),k.defaultValue=D),v===\":\"&&(i.attributesForced=i.attributesForced||[],i.attributesForced.push({name:p,value:D}),k.forcedValue=D),v===\"<\"&&(k.validValues=j(D,\"?\"))),G.test(p)?(i.attributePatterns=i.attributePatterns||[],k.pattern=t(p),i.attributePatterns.push(k)):(s[p]||u.push(p),s[p]=k)}}}!x&&n==\"@\"&&(x=s,y=u),w&&(i.outputName=n,o[w]=i),G.test(n)?(i.pattern=t(n),q.push(i)):o[n]=i}}}}function v(a){o={},q=[],u(a),k(b,function(a,b){p[b]=a.children})}function w(a){var b=/^(~)?(.+)$/;a&&k(l(a),function(a){var c=b.exec(a),e=c[1]===\"~\",f=e?\"span\":\"div\",h=c[2];p[h]=p[f],g[h]=f,e||(d[h]={}),k(p,function(a,b){a[f]&&(a[h]=a[f])})})}function x(a){var b=/^([+-]?)(\w+)[([^]]+)]$/;a&&k(l(a),function(a){var c=b.exec(a),d,e;c&&(e=c[1],e?d=p[c[2]]:d=p[c[2]]={\"#comment\":{}},d=p[c[2]],k(l(c[3],\"|\"),function(a){e===\"-\"?delete d[a]:d[a]={}}))})}function y(a){var b=o[a],c;if(b)return b;c=q.length;while(c--){b=q[c];if(b.pattern.test(a))return b}}var n=this,o={},p={},q=[],r,s;m=m||{},m.verify_html===!1&&(m.validelements=\"[_]\"),m.valid_styles&&(r={},k(m.valid_styles,function(b,c){r[c]=a.explode(b)})),s=m.whitespace_elements?j(m.whitespace_elements):h,m.valid_elements?v(m.valid_elements):(k(b,function(a,b){o[b]={attributes:a.attributes,attributesOrder:a.attributesOrder},p[b]=a.children}),k(l(\"strong/b,em/i\"),function(a){a=l(a,\"/\"),o[a[1]].outputName=a[0]}),o.img.attributesDefault=[{name:\"alt\",value:\"\"}],k(l(\"ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr\"),function(a){o[a].removeEmpty=!0}),k(l(\"p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption\"),function(a){o[a].paddEmpty=!0})),w(m.custom_elements),x(m.valid_children),u(m.extended_validelements),x(\"+ol[ul|ol],+ul[ul|ol]\"),y(\"span\")||u(\"span[!data-mce-type|]\"),m.invalid_elements&&a.each(a.explode(m.invalid_elements),function(a){o[a]&&delete o[a]}),n.children=p,n.styles=r,n.getBoolAttrs=function(){return c},n.getBlockElements=function(){return d},n.getShortEndedElements=function(){return e},n.getSelfClosingElements=function(){return i},n.getNonEmptyElements=function(){return f},n.getWhiteSpaceElements=function(){return s},n.isValidChild=function(a,b){var c=p[a];return!!c&&!!c[b]},n.getElementRule=y,n.getCustomElements=function(){return g},n.addValidElements=u,n.setValidElements=v,n.addCustomElements=w,n.addValidChildren=x},a.html.Schema.boolAttrMap=c,a.html.Schema.blockElementsMap=d}(tinymce),function(a){a.html.SaxParser=function(b,c){var d=this,e=function(){};b=b||{},d.schema=c=c||new a.html.Schema,b.fix_self_closing!==!1&&(b.fix_selfclosing=!0),a.each(\"comment cdata text start end pi doctype\".split(\" \"),function(a){a&&(d[a]=b[a]||e)}),d.parse=function(d){function N(a){var b,c;b=j.length;while(b--)if(j[b].name===a)break;if(b>=0){for(c=j.length-1;c>=b;c--)a=j[c],a.valid&&e.end(a.name);j.length=b}}var e=this,f,g=0,h,i,j=[],k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J=0,K=a.html.Entities.decode,L,M;F=new RegExp(\"<(?:(?:!--([\w\W]?)-->)|(?:!\[CDATA\[([\w\W]?)\]\]>)|(?:!DOCTYPE([\w\W]?)>)|(?:\?([^\s\/<>]+) ?([\w\W]?)[?/]>)|(?:\/([^>]+)>)|(?:([^\s\/<>]+)((?:\s+[^\"'>]+(?:(?:\"[^\"]\")|(?:'[^']')|[^>]))|\/)>))\",\"g\"),G=/([\w:-]+)(?:\s=\s(?:(?:\"((?:\.|[^\"]))\")|(?:\'((?:\.|[^\']))\')|([^>\s]+)))?/g,H={script:/<\/script[^>]>/gi,style:/<\/style[^>]>/gi,noscript:/<\/noscript[^>]>/gi},q=c.getShortEndedElements(),E=c.getSelfClosingElements(),r=c.getBoolAttrs(),t=b.validate,p=b.remove_internals,L=b.fix_selfclosing,M=a.isIE,y=/^:/;while(f=F.exec(d)){g<f.index&&e.text(K(d.substr(g,f.index-g)));if(h=f[6])h=h.toLowerCase(),M&&y.test(h)&&(h=h.substr(1)),N(h);else if(h=f[7]){h=h.toLowerCase(),M&&y.test(h)&&(h=h.substr(1)),s=h in q,L&&E[h]&&j.length>0&&j[j.length-1].name===h&&N(h);if(!t||(u=c.getElementRule(h))){v=!0,t&&(z=u.attributes,A=u.attributePatterns),(x=f[8])?(o=x.indexOf(\"data-mce-type\")!==-1,o&&p&&(v=!1),k=[],k.map={},x.replace(G,function(a,b,c,d,e){var f,g;b=b.toLowerCase(),c=b in r?b:K(c||d||e||\"\");if(t&&!o&&b.indexOf(\"data-\")!==0){f=z[b];if(!f&&A){g=A.length;while(g--){f=A[g];if(f.pattern.test(b))break}g===-1&&(f=null)}if(!f)return;if(f.validValues&&!(c in f.validValues))return}k.map[b]=c,k.push({name:b,value:c})})):(k=[],k.map={});if(t&&!o){B=u.attributesRequired,C=u.attributesDefault,D=u.attributesForced;if(D){l=D.length;while(l--)w=D[l],n=w.name,I=w.value,I===\"{$uid}\"&&(I=\"mce\"+J++),k.map[n]=I,k.push({name:n,value:I})}if(C){l=C.length;while(l--)w=C[l],n=w.name,n in k.map||(I=w.value,I===\"{$uid}\"&&(I=\"mce\"+J++),k.map[n]=I,k.push({name:n,value:I}))}if(B){l=B.length;while(l--)if(B[l]in k.map)break;l===-1&&(v=!1)}k.map[\"data-mce-bogus\"]&&(v=!1)}v&&e.start\n(h,k,s)}else v=!1;if(i=H[h]){i.lastIndex=g=f.index+f[0].length,(f=i.exec(d))?(v&&(m=d.substr(g,f.index-g)),g=f.index+f[0].length):(m=d.substr(g),g=d.length),v&&m.length>0&&e.text(m,!0),v&&e.end(h),F.lastIndex=g;continue}s||(!x||x.indexOf(\"/\")!=x.length-1?j.push({name:h,valid:v}):v&&e.end(h))}else(h=f[1])?e.comment(h):(h=f[2])?e.cdata(h):(h=f[3])?e.doctype(h):(h=f[4])&&e.pi(h,f[5]);g=f.index+f[0].length}g<d.length&&e.text(K(d.substr(g)));for(l=j.length-1;l>=0;l--)h=j[l],h.valid&&e.end(h.name)}}}(tinymce),function(a){function d(a,b,c){var d,e,f=c?\"lastChild\":\"firstChild\",g=c?\"prev\":\"next\";if(a[f])return a[f];if(a!==b){d=a[g];if(d)return d;for(e=a.parent;e&&e!==b;e=e.parent){d=e[g];if(d)return d}}}function e(a,b){this.name=a,this.type=b,b===1&&(this.attributes=[],this.attributes.map={})}var b=/^[ \t\r\n]$/,c={\"#text\":3,\"#comment\":8,\"#cdata\":4,\"#pi\":7,\"#doctype\":10,\"#document-fragment\":11};a.extend(e.prototype,{replace:function(a){var b=this;return a.parent&&a.remove(),b.insert(a,b),b.remove(),b},attr:function(a,b){var c=this,d,e,f;if(typeof a!=\"string\"){for(e in a)c.attr(e,a[e]);return c}if(d=c.attributes){if(b!==f){if(b===null){if(a in d.map){delete d.map[a],e=d.length;while(e--)if(d[e].name===a)return d=d.splice(e,1),c}return c}if(a in d.map){e=d.length;while(e--)if(d[e].name===a){d[e].value=b;break}}else d.push({name:a,value:b});return d.map[a]=b,c}return d.map[a]}},clone:function(){var a=this,b=new e(a.name,a.type),c,d,f,g,h;if(f=a.attributes){h=[],h.map={};for(c=0,d=f.length;c<d;c++)g=f[c],g.name!==\"id\"&&(h[h.length]={name:g.name,value:g.value},h.map[g.name]=g.value);b.attributes=h}return b.value=a.value,b.shortEnded=a.shortEnded,b},wrap:function(a){var b=this;return b.parent.insert(a,b),a.append(b),b},unwrap:function(){var a=this,b,c;for(b=a.firstChild;b;)c=b.next,a.insert(b,a,!0),b=c;a.remove()},remove:function(){var a=this,b=a.parent,c=a.next,d=a.prev;return b&&(b.firstChild===a?(b.firstChild=c,c&&(c.prev=null)):d.next=c,b.lastChild===a?(b.lastChild=d,d&&(d.next=null)):c.prev=d,a.parent=a.next=a.prev=null),a},append:function(a){var b=this,c;return a.parent&&a.remove(),c=b.lastChild,c?(c.next=a,a.prev=c,b.lastChild=a):b.lastChild=b.firstChild=a,a.parent=b,a},insert:function(a,b,c){var d;return a.parent&&a.remove(),d=b.parent||this,c?(b===d.firstChild?d.firstChild=a:b.prev.next=a,a.prev=b.prev,a.next=b,b.prev=a):(b===d.lastChild?d.lastChild=a:b.next.prev=a,a.next=b.next,a.prev=b,b.next=a),a.parent=d,a},getAll:function(a){var b=this,c,e=[];for(c=b.firstChild;c;c=d(c,b))c.name===a&&e.push(c);return e},empty:function(){var a=this,b,c,e;if(a.firstChild){b=[];for(e=a.firstChild;e;e=d(e,a))b.push(e);c=b.length;while(c--)e=b[c],e.parent=e.firstChild=e.lastChild=e.next=e.prev=null}return a.firstChild=a.lastChild=null,a},isEmpty:function(a){var c=this,e=c.firstChild,f,g;if(e)do{if(e.type===1){if(e.attributes.map[\"data-mce-bogus\"])continue;if(a[e.name])return!1;f=e.attributes.length;while(f--){g=e.attributes[f].name;if(g===\"name\"||g.indexOf(\"data-\")===0)return!1}}if(e.type===3&&!b.test(e.value))return!1}while(e=d(e,c));return!0},walk:function(a){return d(this,null,a)}}),a.extend(e,{create:function(a,b){var d,f;d=new e(a,c[a]||1);if(b)for(f in b)d.attr(f,b[f]);return d}}),a.html.Node=e}(tinymce),function(a){var b=a.html.Node;a.html.DomParser=function(c,d){function j(c){var f,g,h,i,j,k,l,m,n,o,p,q,r,s;q=a.makeMap(\"tr,td,th,tbody,thead,tfoot,table\"),p=d.getNonEmptyElements();for(f=0;f<c.length;f++){g=c[f];if(!g.parent)continue;i=[g];for(h=g.parent;h&&!d.isValidChild(h.name,g.name)&&!q[h.name];h=h.parent)i.push(h);if(h&&i.length>1){i.reverse(),j=k=e.filterNode(i[0].clone());for(n=0;n<i.length-1;n++){d.isValidChild(k.name,i[n].name)?(l=e.filterNode(i[n].clone()),k.append(l)):l=k;for(m=i[n].firstChild;m&&m!=i[n+1];)s=m.next,l.append(m),m=s;k=l}j.isEmpty(p)?h.insert(g,i[0],!0):(h.insert(j,i[0],!0),h.insert(g,j)),h=i[0],(h.isEmpty(p)||h.firstChild===h.lastChild&&h.firstChild.name===\"br\")&&h.empty().remove()}else if(g.parent){if(g.name===\"li\"){r=g.prev;if(!r||r.name!==\"ul\"&&r.name!==\"ul\"){r=g.next;if(!r||r.name!==\"ul\"&&r.name!==\"ul\"){g.wrap(e.filterNode(new b(\"ul\",1)));continue}r.insert(g,r.firstChild,!0);continue}r.append(g);continue}d.isValidChild(g.parent.name,\"div\")&&d.isValidChild(\"div\",g.name)?g.wrap(e.filterNode(new b(\"div\",1))):g.name===\"style\"||g.name===\"script\"?g.empty().remove():g.unwrap()}}}var e=this,f={},g=[],h={},i={};c=c||{},c.validate=\"validate\"in c?c.validate:!0,c.root_name=c.root_name||\"body\",e.schema=d=d||new a.html.Schema,e.filterNode=function(a){var b,c,d;c in f&&(d=h[c],d?d.push(a):h[c]=[a]),b=g.length;while(b--)c=g[b].name,c in a.attributes.map&&(d=i[c],d?d.push(a):i[c]=[a]);return a},e.addNodeFilter=function(b,c){a.each(a.explode(b),function(a){var b=f[a];b||(f[a]=b=[]),b.push(c)})},e.addAttributeFilter=function(b,c){a.each(a.explode(b),function(a){var b;for(b=0;b<g.length;b++)if(g[b].name===a){g[b].callbacks.push(c);return}g.push({name:a,callbacks:[c]})})},e.parse=function(e,k){function F(){var a=m.firstChild,b,c;while(a)b=a.next,a.type==3||a.type==1&&a.name!==\"p\"&&!w[a.name]&&!a.attr(\"data-mce-type\")?c?c.append(a):(c=G(E,1),m.insert(c,a),c.append(a)):c=null,a=b}function G(a,c){var d=new b(a,c),e;return a in f&&(e=h[a],e?e.push(d):h[a]=[d]),d}function H(a){var b,c,d;for(b=a.prev;b&&b.type===3;)c=b.value.replace(z,\"\"),c.length>0?(b.value=c,b=b.prev):(d=b.prev,b.remove(),b=d)}var l,m,n,o,p,q,r,s,t,u,v,w,x,y=[],z,A,B,C,D,E;k=k||{},h={},i={},w=a.extend(a.makeMap(\"script,style,head,html,body,title,meta,param\"),d.getBlockElements()),D=d.getNonEmptyElements(),C=d.children,v=c.validate,E=\"forced_root_block\"in k?k.forced_root_block:c.forced_root_block,B=d.getWhiteSpaceElements(),x=/^[ \t\r\n]+/,z=/[ \t\r\n]+$/,A=/[ \t\r\n]+/g,l=new a.html.SaxParser({validate:v,fix_self_closing:!v,cdata:function(a){n.append(G(\"#cdata\",4)).value=a},text:function(a,b){var c;B[n.name]||(a=a.replace(A,\" \"),n.lastChild&&w[n.lastChild.name]&&(a=a.replace(x,\"\"))),a.length!==0&&(c=G(\"#text\",3),c.raw=!!b,n.append(c).value=a)},comment:function(a){n.append(G(\"#comment\",8)).value=a},pi:function(a,b){n.append(G(a,7)).value=b,H(n)},doctype:function(a){var b;b=n.append(G(\"#doctype\",10)),b.value=a,H(n)},start:function(a,b,c){var e,f,h,j,k,l,m,o;h=v?d.getElementRule(a):{};if(h){e=G(h.outputName||a,1),e.attributes=b,e.shortEnded=c,n.append(e),o=C[n.name],o&&C[e.name]&&!o[e.name]&&y.push(e),f=g.length;while(f--)k=g[f].name,k in b.map&&(t=i[k],t?t.push(e):i[k]=[e]);w[a]&&H(e),c||(n=e)}},end:function(a){var c,e,f,g,h;e=v?d.getElementRule(a):{};if(e){if(w[a]){if(!B[n.name]){for(c=n.firstChild;c&&c.type===3;)f=c.value.replace(x,\"\"),f.length>0?(c.value=f,c=c.next):(g=c.next,c.remove(),c=g);for(c=n.lastChild;c&&c.type===3;)f=c.value.replace(z,\"\"),f.length>0?(c.value=f,c=c.prev):(g=c.prev,c.remove(),c=g)}c=n.prev,c&&c.type===3&&(f=c.value.replace(x,\"\"),f.length>0?c.value=f:c.remove())}if(e.removeEmpty||e.paddEmpty)if(n.isEmpty(D))if(e.paddEmpty)n.empty().append(new b(\"#text\",\"3\")).value=\"я\";else if(!n.attributes.map.name){h=n.parent,n.empty().remove(),n=h;return}n=n.parent}}},d),m=n=new b(k.context||c.root_name,11),l.parse(e),v&&y.length&&(k.context?k.invalid=!0:j(y)),E&&m.name==\"body\"&&F();if(!k.invalid){for(u in h){t=f[u],o=h[u],r=o.length;while(r--)o[r].parent||o.splice(r,1);for(p=0,q=t.length;p<q;p++)tp}for(p=0,q=g.length;p<q;p++){t=g[p];if(t.name in i){o=i[t.name],r=o.length;while(r--)o[r].parent||o.splice(r,1);for(r=0,s=t.callbacks.length;r<s;r++)t.callbacksr}}}return m},c.remove_trailing_brs&&e.addNodeFilter(\"br\",function(b,c){var e,f=b.length,g,h=d.getBlockElements(),i=d.getNonEmptyElements(),j,k,l;h.body=1;for(e=0;e<f;e++){g=b[e],j=g.parent;if(h[g.parent.name]&&g===j.lastChild){k=g.prev;while(k){l=k.name;if(l!==\"span\"||k.attr(\"data-mce-type\")!==\"bookmark\"){if(l!==\"br\")break;if(l===\"br\"){g=null;break}}k=k.prev}g&&(g.remove(),j.isEmpty(i)&&(elementRule=d.getElementRule(j.name),elementRule&&(elementRule.removeEmpty?j.remove():elementRule.paddEmpty&&(j.empty().append(new a.html.Node(\"#text\",3)).value=\"я\"))))}}})}}(tinymce),tinymce.html.Writer=function(a){var b=[],c,d,e,f,g;return a=a||{},c=a.indent,d=tinymce.makeMap(a.indent_before||\"\"),e=tinymce.makeMap(a.indent_after||\"\"),f=tinymce.html.Entities.getEncodeFunc(a.entity_encoding||\"raw\",a.entities),g=a.element_format==\"html\",{start:function(a,h,i){var j,k,l,m;c&&d[a]&&b.length>0&&(m=b[b.length-1],m.length>0&&m!==\"\n\"&&b.push(\"\n\")),b.push(\"<\",a);if(h)for(j=0,k=h.length;j<k;j++)l=h[j],b.push(\" \",l.name,'=\"',f(l.value,!0),'\"');!i||g?b[b.length]=\">\":b[b.length]=\" />\",i&&c&&e[a]&&b.length>0&&(m=b[b.length-1],m.length>0&&m!==\"\n\"&&b.push(\"\n\"))},end:function(a){var d;b.push(\"</\",a,\">\"),c&&e[a]&&b.length>0&&(d=b[b.length-1],d.length>0&&d!==\"\n\"&&b.push(\"\n\"))},text:function(a,c){a.length>0&&(b[b.length]=c?a:f(a))},cdata:function(a){b.push(\"<![CDATA[\",a,\"]]>\")},comment:function(a){b.push(\"\")},pi:function(a,d){d?b.push(\"<?\",a,\" \",d,\"?>\"):b.push(\"<?\",a,\"?>\"),c&&b.push(\"\n\")},doctype:function(a){b.push(\"<!DOCTYPE\",a,\">\",c?\"\n\":\"\")},reset:function(){b.length=0},getContent:function(){return b.join(\"\").replace(/\n$/,\"\")}}},function(a){a.html.Serializer=function(b,c){var d=this,e=new a.html.Writer(b);b=b||{},b.validate=\"validate\"in b?b.validate:!0,d.schema=c=c||new a.html.Schema,d.writer=e,d.serialize=function(a){function g(a){var b=d[a.type],h,j,k,l,m,n,o,p,q;if(!b){h=a.name,j=a.shortEnded,k=a.attributes;if(f&&k&&k.length>1){n=[],n.map={},q=c.getElementRule(a.name);for(o=0,p=q.attributesOrder.length;o<p;o++)l=q.attributesOrder[o],l in k.map&&(m=k.map[l],n.map[l]=m,n.push({name:l,value:m}));for(o=0,p=k.length;o<p;o++)l=k[o].name,l in n.map||(m=k.map[l],n.map[l]=m,n.push({name:l,value:m}));k=n}e.start(a.name,k,j);if(!j){if(a=a.firstChild)do g(a);while(a=a.next);e.end(h)}}else b(a)}var d,f;return f=b.validate,d={3:function(a,b){e.text(a.value,a.raw)},8:function(a){e.comment(a.value)},7:function(a){e.pi(a.name,a.value)},10:function(a){e.doctype(a.value)},4:function(a){e.cdata(a.value)},11:function(a){if(a=a.firstChild)do g(a);while(a=a.next)}},e.reset(),a.type==1&&!b.inner?g(a):d11,e.getContent()}}}(tinymce),function(a){var b=a.each,c=a.is,d=a.isWebKit,e=a.isIE,f=a.html.Entities,g=/^([a-z0-9],?)+$/i,h=a.html.Schema.blockElementsMap,i=/^[ \t\r\n]$/;a.create(\"tinymce.dom.DOMUtils\",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{\"for\":\"htmlFor\",\"class\":\"className\",className:\"className\",checked:\"checked\",disabled:\"disabled\",maxlength:\"maxLength\",readonly:\"readOnly\",selected:\"selected\",value:\"value\",id:\"id\",name:\"name\",type:\"type\"},DOMUtils:function(b,c){var d=this,f,g;d.doc=b,d.win=window,d.files={},d.cssFlicker=!1,d.counter=0,d.stdMode=!a.isIE||b.documentMode>=8,d.boxModel=!a.isIE||b.compatMode==\"CSS1Compat\"||d.stdMode,d.hasOuterHTML=\"outerHTML\"in b.createElement(\"a\"),d.settings=c=a.extend({keep_values:!1,hex_colors:1},c),d.schema=c.schema,d.styles=new a.html.Styles({url_converter:c.url_converter,url_converter_scope:c.url_converter_scope},c.schema);if(a.isIE6)try{b.execCommand(\"BackgroundImageCache\",!1,!0)}catch(h){d.cssFlicker=!0}if(e&&c.schema){\"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video\".replace(/\w+/g,function(a){b.createElement(a)});for(g in c.schema.getCustomElements())b.createElement(g)}a.addUnload(d.destroy,d)},getRoot:function(){var a=this,b=a.settings;return b&&a.get(b.root_element)||a.doc.body},getViewPort:function(a){var b,c;return a=a?a:this.win,b=a.document,c=this.boxModel?b.documentElement:b.body,{x:a.pageXOffset||c.scrollLeft,y:a.pageYOffset||c.scrollTop,w:a.innerWidth||c.clientWidth,h:a.innerHeight||c.clientHeight}},getRect:function(a){var b,c=this,d;return a=c.get(a),b=c.getPos(a),d=c.getSize(a),{x:b.x,y:b.y,w:d.w,h:d.h}},getSize:function(a){var b=this,c,d;return a=b.get(a),c=b.getStyle(a,\"width\"),d=b.getStyle(a,\"height\"),c.indexOf(\"px\")===-1&&(c=0),d.indexOf(\"px\")===-1&&(d=0),{w:parseInt(c)||a.offsetWidth||a.clientWidth,h:parseInt(d)||a.offsetHeight||a.clientHeight}},getParent:function(a,b,c){return this.getParents(a,b,c,!1)},getParents:function(a,b,d,e){var f=this,g,h=f.settings,i=[];a=f.get(a),e=e===undefined,h.strictroot&&(d=d||f.getRoot()),c(b,\"string\")&&(g=b,b===\"\"?b=function(a){return a.nodeType==1}:b=function(a){return f.is(a,g)});while(a){if(a==d||!a.nodeType||a.nodeType===9)break;if(!b||b(a)){if(!e)return a;i.push(a)}a=a.parentNode}return e?i:null},get:function(a){var b;if(a&&this.doc&&typeof a==\"string\"){b=a,a=this.doc.getElementById(a);if(a&&a.id!==b)return this.doc.getElementsByName(b)[1]}return a},getNext:function(a,b){return this._findSib(a,b,\"nextSibling\")},getPrev:function(a,b){return this._findSib(a,b,\"previousSibling\")},add:function(a,b,d,e,f){var g=this;return this.run(a,function(a){var h,i;return h=c(b,\"string\")?g.doc.createElement(b):b,g.setAttribs(h,d),e&&(e.nodeType?h.appendChild(e):g.setHTML(h,e)),f?h:a.appendChild(h)})},create:function(a,b,c){return this.add(this.doc.createElement(a),a,b,c,1)},createHTML:function(a,b,c){var d=\"\",e=this,f;d+=\"<\"+a;for(f in b)b.hasOwnProperty(f)&&(d+=\" \"+f+'=\"'+e.encode(b[f])+'\"');return typeof c!=\"undefined\"?d+\">\"+c+\"</\"+a+\">\":d+\" />\"},remove:function(b,c){return this.run(b,function(b){var d,e=b.parentNode;if(!e)return null;if(c)while(d=b.firstChild)!a.isIE||d.nodeType!==3||d.nodeValue?e.insertBefore(d,b):b.removeChild(d);return e.removeChild(b)})},setStyle:function(b,c,d){var f=this;return f.run(b,function(g){var h,i;h=g.style,c=c.replace(/-(\D)/g,function(a,b){return b.toUpperCase()}),f.pixelStyles.test(c)&&(a.is(d,\"number\")||/^[-0-9.]+$/.test(d))&&(d+=\"px\");switch(c){case\"opacity\":if(e){h.filter=d===\"\"?\"\":\"alpha(opacity=\"+d_100+\")\";if(!b.currentStyle||!b.currentStyle.hasLayout)h.display=\"inline-block\"}h[c]=h[\"-moz-opacity\"]=h[\"-khtml-opacity\"]=d||\"\";break;case\"float\":e?h.styleFloat=d:h.cssFloat=d;break;default:h[c]=d||\"\"}f.settings.update_styles&&f.setAttrib(g,\"data-mce-style\")})},getStyle:function(a,b,c){a=this.get(a);if(!a)return;if(this.doc.defaultView&&c){b=b.replace(/[A-Z]/g,function(a){return\"-\"+a});try{return this.doc.defaultView.getComputedStyle(a,null).getPropertyValue(b)}catch(d){return null}}return b=b.replace(/-(\D)/g,function(a,b){return b.toUpperCase()}),b==\"float\"&&(b=e?\"styleFloat\":\"cssFloat\"),a.currentStyle&&c?a.currentStyle[b]:a.style?a.style[b]:undefined},setStyles:function(a,c){var d=this,e=d.settings,f;f=e.update_styles,e.update_styles=0,b(c,function(b,c){d.setStyle(a,c,b)}),e.update_styles=f,e.update_styles&&d.setAttrib(a,e.cssText)},removeAllAttribs:function(a){return this.run(a,function(a){var b,c=a.attributes;for(b=c.length-1;b>=0;b--)a.removeAttributeNode(c.item(b))})},setAttrib:function(a,d,e){var f=this;if(!a||!d)return;return f.settings.strict&&(d=d.toLowerCase()),this.run(a,function(a){var g=f.settings,h=a.getAttribute(d);if(e!==null)switch(d){case\"style\":if(!c(e,\"string\")){b(e,function(b,c){f.setStyle(a,c,b)});return}g.keep_values&&(e&&!f._isRes(e)?a.setAttribute(\"data-mce-style\",e,2):a.removeAttribute(\"data-mce-style\",2)),a.style.cssText=e;break;case\"class\":a.className=e||\"\";break;case\"src\":case\"href\":g.keep_values&&(g.url_converter&&(e=g.url_converter.call(g.url_converter_scope||f,e,d,a)),f.setAttrib(a,\"data-mce-\"+d,e,2));break;case\"shape\":a.setAttribute(\"data-mce-style\",e)}c(e)&&e!==null&&e.length!==0?a.setAttribute(d,\"\"+e,2):a.removeAttribute(d,2);if(tinyMCE.activeEditor&&h!=e){var i=tinyMCE.activeEditor;i.onSetAttrib.dispatch(i,a,d,e)}})},setAttribs:function(a,c){var d=this;return this.run(a,function(a){b(c,function(b,c){d.setAttrib(a,c,b)})})},getAttrib:function(b,f,g){var h,i=this,j;b=i.get(b);if(!b||b.nodeType!==1)return g===j?!1:g;c(g)||(g=\"\");if(/^(src|href|style|coords|shape)$/.test(f)){h=b.getAttribute(\"data-mce-\"+f);if(h)return h}e&&i.props[f]&&(h=b[i.props[f]],h=h&&h.nodeValue?h.nodeValue:h),h||(h=b.getAttribute(f,2));if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(f))return b[i.props[f]]===!0&&h===\"\"?f:h?f:\"\";if(b.nodeName===\"FORM\"&&b.getAttributeNode(f))return b.getAttributeNode(f).nodeValue;f===\"style\"&&(h=h||b.style.cssText,h&&(h=i.serializeStyle(i.parseStyle(h),b.nodeName),i.settings.keep_values&&!i._isRes(h)&&b.setAttribute(\"data-mce-style\",h))),d&&f===\"class\"&&h&&(h=h.replace(/(apple|webkit)-[a-z-]+/gi,\"\"));if(e)switch(f){case\"rowspan\":case\"colspan\":h===1&&(h=\"\");break;case\"size\":if(h===\"+0\"||h===20||h===0)h=\"\";break;case\"width\":case\"height\":case\"vspace\":case\"checked\":case\"disabled\":case\"readonly\":h===0&&(h=\"\");break;case\"hspace\":h===-1&&(h=\"\");break;case\"maxlength\":case\"tabindex\":if(h===32768||h===2147483647||h===\"32768\")h=\"\";break;case\"multiple\":case\"compact\":case\"noshade\":case\"nowrap\":if(h===65535)return f;return g;case\"shape\":h=h.toLowerCase();break;default:f.indexOf(\"on\")===0&&h&&(h=a._replace(/^function\s+\w+()\s+{\s+(.)\s+}$/,\"$1\",\"\"+h))}return h!==j&&h!==null&&h!==\"\"?\"\"+h:g},getPos:function(a,b){var c=this,d=0,e=0,f,g=c.doc,h;a=c.get(a),b=b||g.body;if(a){if(a.getBoundingClientRect)return a=a.getBoundingClientRect(),f=c.boxModel?g.documentElement:g.body,d=a.left+(g.documentElement.scrollLeft||g.body.scrollLeft)-f.clientTop,e=a.top+(g.documentElement.scrollTop||g.body.scrollTop)-f.clientLeft,{x:d,y:e};h=a;while(h&&h!=b&&h.nodeType)d+=h.offsetLeft||0,e+=h.offsetTop||0,h=h.offsetParent;h=a.parentNode;while(h&&h!=b&&h.nodeType)d-=h.scrollLeft||0,e-=h.scrollTop||0,h=h.parentNode}return{x:d,y:e}},parseStyle:function(a){return this.styles.parse(a)},serializeStyle:function(a,b){return this.styles.serialize(a,b)},loadCSS:function(c){var d=this,f=d.doc,g;c||(c=\"\"),g=d.select(\"head\")[0],b(c.split(\",\"),function(b){var c;if(d.files[b])return;d.files[b]=!0,c=d.create(\"link\",{rel:\"stylesheet\",href:a.addVer(b)}),e&&f.documentMode&&f.recalc&&(c.onload=function(){f.recalc&&f.recalc(),c.onload=null}),g.appendChild(c)})},addClass:function(a,b){return this.run(a,function(a){var c;return b?this.hasClass(a,b)?a.className:(c=this.removeClass(a,b),a.className=(c!=\"\"?c+\" \":\"\")+b):0})},removeClass:function(b,c){var d=this,e;return d.run(b,function(b){var f;return d.hasClass(b,c)?(e||(e=new RegExp(\"(^|\s+)\"+c+\"(\s+|$)\",\"g\")),f=b.className.replace(e,\" \"),f=a.trim(f!=\" \"?f:\"\"),b.className=f,f||(b.removeAttribute(\"class\"),b.removeAttribute(\"className\")),f):b.className})},hasClass:function(a,b){return a=this.get(a),!a||!b?!1:(\" \"+a.className+\" \").indexOf(\" \"+b+\" \")!==-1},show:function(a){return this.setStyle(a,\"display\",\"block\")},hide:function(a){return this.setStyle(a,\"display\",\"none\")},isHidden:function(a){return a=this.get(a),!a||a.style.display==\"none\"||this.getStyle(a,\"display\")==\"none\"},uniqueId:function(a){return(a?a:\"mce\")+this.counter++},setHTML:function(a,c){var d=this;return d.run(a,function(a){if(e){while(a.firstChild)a.removeChild(a.firstChild);try{a.innerHTML=\"
\"+c,a.removeChild(a.firstChild)}catch(f){a=d.create(\"div\"),a.innerHTML=\"
\"+c,b(a.childNodes,function(b,c){c&&a.appendChild(b)})}}else a.innerHTML=c;return c})},getOuterHTML:function(a){var b,c=this;return a=c.get(a),a?a.nodeType===1&&c.hasOuterHTML?a.outerHTML:(b=(a.ownerDocument||c.doc).createElement(\"body\"),b.appendChild(a.cloneNode(!0)),b.innerHTML):null},setOuterHTML:function(a,b,c){function f(a,b,c){var e,f;f=c.createElement(\"body\"),f.innerHTML=b,e=f.lastChild;while(e)d.insertAfter(e.cloneNode(!0),a),e=e.previousSibling;d.remove(a)}var d=this;return this.run(a,function(a){a=d.get(a);if(a.nodeType==1){c=c||a.ownerDocument||d.doc;if(e)try{e&&a.nodeType==1?a.outerHTML=b:f(a,b,c)}catch(g){f(a,b,c)}else f(a,b,c)}})},decode:f.decode,encode:f.encodeAllRaw,insertAfter:function(a,b){return b=this.get(b),this.run(a,function(a){var c,d;return c=b.parentNode,d=b.nextSibling,d?c.insertBefore(a,d):c.appendChild(a),a})},isBlock:function(a){var b=a.nodeType;return b?b===1&&!!h[a.nodeName]:!!h[a]},replace:function(d,e,f){var g=this;return c(e,\"array\")&&(d=d.cloneNode(!0)),g.run(e,function(c){return f&&b(a.grep(c.childNodes),function(a){d.appendChild(a)}),c.parentNode.replaceChild(d,c)})},rename:function(a,c){var d=this,e;return a.nodeName!=c.toUpperCase()&&(e=d.create(c),b(d.getAttribs(a),function(b){d.setAttrib(e,b.nodeName,d.getAttrib(a,b.nodeName))}),d.replace(e,a,1)),e||a},findCommonAncestor:function(a,b){var c=a,d;while(c){d=b;while(d&&c!=d)d=d.parentNode;if(c==d)break;c=c.parentNode}return!c&&a.ownerDocument?a.ownerDocument.documentElement:c},toHex:function(a){function c(a){return a=parseInt(a).toString(16),a.length>1?a:\"0\"+a}var b=/^\srgb\s?(\s?([0-9]+)\s?,\s?([0-9]+)\s?,\s?([0-9]+)\s?)\s$/i.exec(a);return b?(a=\"#\"+c(b[1])+c(b[2])+c(b[3]),a):a},getClasses:function(){function i(c){b(c.imports,function(a){i(a)}),b(c.cssRules||c.rules,function(c){switch(c.type||1){case 1:c.selectorText&&b(c.selectorText.split(\",\"),function(b){b=b.replace(/^\s|\s_$|^\s./g,\"\");if(/.mce/.test(b)||!/.[\w-]+$/.test(b))return;h=b,b=a.replace(/..([a-z0-9-]+)./i,\"$1\",b);if(g&&!(b=g(b,h)))return;f[b]||(d.push({\"class\":b}),f[b]=1)});break;case 3:i(c.styleSheet)}})}var c=this,d=[],e,f={},g=c.settings.class_filter,h;if(c.classes)return c.classes;try{b(c.doc.styleSheets,i)}catch(j){}return d.length>0&&(c.classes=d),d},run:function(a,c,d){var e=this,f;return e.doc&&typeof a==\"string\"&&(a=e.get(a)),a?(d=d||this,!a.nodeType&&(a.length||a.length===0)?(f=[],b(a,function(a,b){a&&(typeof a==\"string\"&&(a=e.doc.getElementById(a)),f.push(c.call(d,a,b)))}),f):c.call(d,a)):!1},getAttribs:function(a){var b;return a=this.get(a),a?e?(b=[],a.nodeName==\"OBJECT\"?a.attributes:(a.nodeName===\"OPTION\"&&this.getAttrib(a,\"selected\")&&b.push({specified:1,nodeName:\"selected\"}),a.cloneNode(!1).outerHTML.replace(/<\/?[\w:-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w-]+|>/gi,\"\").replace(/[\w:-]+/gi,function(a){b.push({specified:1,nodeName:a})}),b)):a.attributes:[]},isEmpty:function(b,c){var d=this,e,f,g,h,j,k;b=b.firstChild;if(b){h=new a.dom.TreeWalker(b),c=c||d.schema?d.schema.getNonEmptyElements():null;do{g=b.nodeType;if(g===1){if(b.getAttribute(\"data-mce-bogus\"))continue;j=b.nodeName.toLowerCase();if(c&&c[j]){k=b.parentNode;if(j===\"br\"&&d.isBlock(k)&&k.firstChild===b&&k.lastChild===b)continue;return!1}f=d.getAttribs(b),e=b.attributes.length;while(e--){j=b.attributes[e].nodeName;if(j===\"name\"||j===\"data-mce-bookmark\")return!1}}if(g===3&&!i.test(b.nodeValue))return!1}while(b=h.next())}return!0},destroy:function(b){var c=this;c.events&&c.events.destroy(),c.win=c.doc=c.root=c.events=null,b||a.removeUnload(c.destroy)},createRng:function(){var b=this.doc;return b.createRange?b.createRange():new a.dom.Range(this)},nodeIndex:function(a,b){var c=0,d,e,f;if(a)for(d=a.nodeType,a=a.previousSibling,e=a;a;a=a.previousSibling){f=a.nodeType;if(b&&f==3)if(f==d||!a.nodeValue.length)continue;c++,d=f}return c},split:function(b,c,d){function j(b){function g(a){var b=a.previousSibling&&a.previousSibling.nodeName==\"SPAN\",c=a.nextSibling&&a.nextSibling.nodeName==\"SPAN\";return b&&c}var c,d=b.childNodes,f=b.nodeType;if(f==1&&b.getAttribute(\"data-mce-type\")==\"bookmark\")return;for(c=d.length-1;c>=0;c--)j(d[c]);if(f!=9){if(f==3&&b.nodeValue.length>0){var h=a.trim(b.nodeValue).length;if(!e.isBlock(b.parentNode)||h>0||h==0&&g(b))return}else if(f==1){d=b.childNodes,d.length==1&&d[0]&&d[0].nodeType==1&&d[0].getAttribute(\"data-mce-type\")==\"bookmark\"&&b.parentNode.insertBefore(d[0],b);if(d.length||/^(br|hr|input|img)$/i.test(b.nodeName))return}e.remove(b)}return b}var e=this,f=e.createRng(),g,h,i;if(b&&c)return f.setStart(b.parentNode,e.nodeIndex(b)),f.setEnd(c.parentNode,e.nodeIndex(c)),g=f.extractContents(),f=e.createRng(),f.setStart(c.parentNode,e.nodeIndex(c)+1),f.setEnd(b.parentNode,e.nodeIndex(b)+1),h=f.extractContents(),i=b.parentNode,i.insertBefore(j(g),b),d?i.replaceChild(d,c):i.insertBefore(c,b),i.insertBefore(j(h),b),e.remove(b),d||c},bind:function(b,c,d,e){var f=this;return f.events||(f.events=new a.dom.EventUtils),f.events.add(b,c,d,e||this)},unbind:function(b,c,d){var e=this;return e.events||(e.events=new a.dom.EventUtils),e.events.remove(b,c,d)},_findSib:function(a,b,d){var e=this,f=b;if(a){c(f,\"string\")&&(f=function(a){return e.is(a,b)});for(a=a[d];a;a=a[d])if(f(a))return a}return null},isRes:function(a){return/^(top|left|bottom|right|width|height)/i.test(a)||/;\s(top|left|bottom|right|width|height)/i.test(a)}}),a.DOM=new a.dom.DOMUtils(document,{process_html:0})}(tinymce),function(a){function b(a){function p(a,b){I(h,a,b)}function q(a,b){I(i,a,b)}function r(a){p(a.parentNode,o(a))}function s(a){p(a.parentNode,o(a)+1)}function t(a){q(a.parentNode,o(a))}function u(a){q(a.parentNode,o(a)+1)}function v(a){a?(c[l]=c[k],c[m]=c[j]):(c[k]=c[l],c[j]=c[m]),c.collapsed=h}function w(a){r(a),u(a)}function x(a){p(a,0),q(a,a.nodeType===1?a.childNodes.length:a.nodeValue.length)}function y(a,b){var d=c[k],e=c[j],f=c[l],g=c[m],h=b.startContainer,i=b.startOffset,n=b.endContainer,o=b.endOffset;if(a===0)return H(d,e,h,i);if(a===1)return H(f,g,h,i);if(a===2)return H(f,g,n,o);if(a===3)return H(d,e,n,o)}function z(){J(g)}function A(){return J(e)}function B(){return J(f)}function C(b){var c=this[k],d=this[j],e,f;c.nodeType!==3&&c.nodeType!==4||!c.nodeValue?(c.childNodes.length>0&&(f=c.childNodes[d]),f?c.insertBefore(b,f):c.appendChild(b)):d?d>=c.nodeValue.length?a.insertAfter(b,c):(e=c.splitText(d),c.parentNode.insertBefore(b,e)):c.parentNode.insertBefore(b,c)}function D(a){var b=c.extractContents();c.insertNode(a),a.appendChild(b),c.selectNode(a)}function E(){return n(new b(a),{startContainer:c[k],startOffset:c[j],endContainer:c[l],endOffset:c[m],collapsed:c.collapsed,commonAncestorContainer:c.commonAncestorContainer})}function F(a,b){var c;if(a.nodeType==3)return a;if(b<0)return a;c=a.firstChild;while(c&&b>0)--b,c=c.nextSibling;return c?c:a}function G(){return c[k]==c[l]&&c[j]==c[m]}function H(b,c,d,e){var f,g,h,i,j,k;if(b==d)return c==e?0:c<e?-1:1;f=d;while(f&&f.parentNode!=b)f=f.parentNode;if(f){g=0,h=b.firstChild;while(h!=f&&g<c)g++,h=h.nextSibling;return c<=g?-1:1}f=b;while(f&&f.parentNode!=d)f=f.parentNode;if(f){g=0,h=d.firstChild;while(h!=f&&g<e)g++,h=h.nextSibling;return g<e?-1:1}i=a.findCommonAncestor(b,d),j=b;while(j&&j.parentNode!=i)j=j.parentNode;j||(j=i),k=d;while(k&&k.parentNode!=i)k=k.parentNode;k||(k=i);if(j==k)return 0;h=i.firstChild;while(h){if(h==j)return-1;if(h==k)return 1;h=h.nextSibling}}function I(b,d,e){var f,g;b?(c[k]=d,c[j]=e):(c[l]=d,c[m]=e),f=c[l];while(f.parentNode)f=f.parentNode;g=c[k];while(g.parentNode)g=g.parentNode;g==f?H(c[k],c[j],c[l],c[m])>0&&c.collapse(b):c.collapse(b),c.collapsed=G(),c.commonAncestorContainer=a.findCommonAncestor(c[k],c[l])}function J(a){var b,d=0,e=0,f,g,h,i,j,m;if(c[k]==c[l])return K(a);for(b=c[l],f=b.parentNode;f;b=f,f=f.parentNode){if(f==c[k])return L(b,a);++d}for(b=c[k],f=b.parentNode;f;b=f,f=f.parentNode){if(f==c[l])return M(b,a);++e}g=e-d,h=c[k];while(g>0)h=h.parentNode,g--;i=c[l];while(g<0)i=i.parentNode,g++;for(j=h.parentNode,m=i.parentNode;j!=m;j=j.parentNode,m=m.parentNode)h=j,i=m;return N(h,i,a)}function K(a){var b,e,i,l,n,o,p;a!=g&&(b=d.createDocumentFragment());if(c[j]==c[m])return b;if(c[k].nodeType==3){e=c[k].nodeValue,i=e.substring(c[j],c[m]),a!=f&&(c[k].deleteData(c[j],c[m]-c[j]),c.collapse(h));if(a==g)return;return b.appendChild(d.createTextNode(i)),b}l=F(c[k],c[j]),n=c[m]-c[j];while(n>0)o=l.nextSibling,p=R(l,a),b&&b.appendChild(p),--n,l=o;return a!=f&&c.collapse(h),b}function L(a,b){var e,h,k,l,m,n;b!=g&&(e=d.createDocumentFragment()),h=O(a,b),e&&e.appendChild(h),k=o(a),l=k-c[j];if(l<=0)return b!=f&&(c.setEndBefore(a),c.collapse(i)),e;h=a.previousSibling;while(l>0)m=h.previousSibling,n=R(h,b),e&&e.insertBefore(n,e.firstChild),--l,h=m;return b!=f&&(c.setEndBefore(a),c.collapse(i)),e}function M(a,b){var e,i,j,k,l,n;b!=g&&(e=d.createDocumentFragment()),j=P(a,b),e&&e.appendChild(j),i=o(a),++i,k=c[m]-i,j=a.nextSibling;while(k>0)l=j.nextSibling,n=R(j,b),e&&e.appendChild(n),--k,j=l;return b!=f&&(c.setStartAfter(a),c.collapse(h)),e}function N(a,b,e){var i,j,k,l,m,n,p,q;e!=g&&(j=d.createDocumentFragment()),i=P(a,e),j&&j.appendChild(i),k=a.parentNode,l=o(a),m=o(b),++l,n=m-l,p=a.nextSibling;while(n>0)q=p.nextSibling,i=R(p,e),j&&j.appendChild(i),p=q,--n;return i=O(b,e),j&&j.appendChild(i),e!=f&&(c.setStartAfter(a),c.collapse(h)),j}function O(a,b){var d=F(c[l],c[m]-1),e,f,j,k,n,o=d!=c[l];if(d==a)return Q(d,o,i,b);e=d.parentNode,f=Q(e,i,i,b);while(e){while(d)j=d.previousSibling,k=Q(d,o,i,b),b!=g&&f.insertBefore(k,f.firstChild),o=h,d=j;if(e==a)return f;d=e.previousSibling,e=e.parentNode,n=Q(e,i,i,b),b!=g&&n.appendChild(f),f=n}}function P(a,b){var d=F(c[k],c[j]),e=d!=c[k],f,l,m,n,o;if(d==a)return Q(d,e,h,b);f=d.parentNode,l=Q(f,i,h,b);while(f){while(d)m=d.nextSibling,n=Q(d,e,h,b),b!=g&&l.appendChild(n),e=h,d=m;if(f==a)return l;d=f.nextSibling,f=f.parentNode,o=Q(f,i,h,b),b!=g&&o.appendChild(l),l=o}}function Q(a,b,d,e){var h,k,l,n,o;if(b)return R(a,e);if(a.nodeType==3){h=a.nodeValue,d?(n=c[j],k=h.substring(n),l=h.substring(0,n)):(n=c[m],k=h.substring(0,n),l=h.substring(n)),e!=f&&(a.nodeValue=l);if(e==g)return;return o=a.cloneNode(i),o.nodeValue=k,o}if(e==g)return;return a.cloneNode(i)}function R(a,b){if(b!=g)return b==f?a.cloneNode(h):a;a.parentNode.removeChild(a)}var c=this,d=a.doc,e=0,f=1,g=2,h=!0,i=!1,j=\"startOffset\",k=\"startContainer\",l=\"endContainer\",m=\"endOffset\",n=tinymce.extend,o=a.nodeIndex;n(c,{startContainer:d,startOffset:0,endContainer:d,endOffset:0,collapsed:h,commonAncestorContainer:d,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:p,setEnd:q,setStartBefore:r,setStartAfter:s,setEndBefore:t,setEndAfter:u,collapse:v,selectNode:w,selectNodeContents:x,compareBoundaryPoints:y,deleteContents:z,extractContents:A,cloneContents:B,insertNode:C,surroundContents:D,cloneRange:E})}a.Range=b}(tinymce.dom),function(){function a(a){function f(b,c){var d,e=0,f,g,h,i,j,k,l=-1,m;d=b.duplicate(),d.collapse(c),m=d.parentElement();if(m.ownerDocument!==a.dom.doc)return;while(m.contentEditable===\"false\")m=m.parentNode;if(!m.hasChildNodes())return{node:m,inside:1};h=m.children,f=h.length-1;while(e<=f){k=Math.floor((e+f)/2),i=h[k],d.moveToElementText(i),l=d.compareEndPoints(c?\"StartToStart\":\"EndToEnd\",b);if(l>0)f=k-1;else{if(!(l<0))return{node:i};e=k+1}}if(l<0){i?d.collapse(!1):(d.moveToElementText(m),d.collapse(!0),i=m,g=!0),d.setEndPoint(c?\"EndToStart\":\"EndToEnd\",b);if(d.compareEndPoints(c?\"StartToStart\":\"StartToEnd\",b)>0){d=b.duplicate(),d.collapse(c),j=-1;while(m==d.parentElement()){if(d.move(\"character\",-1)==0)break;j++}}j=j||d.text.replace(\"\r\n\",\" \").length}else d.collapse(!0),d.setEndPoint(c?\"StartToStart\":\"StartToEnd\",b),j=d.text.replace(\"\r\n\",\" \").length;return{node:i,position:l,offset:j,inside:g}}function g(){function n(a){var b=f(d,a),c,g,h=0,i,j,k;c=b.node,g=b.offset;if(b.inside&&!c.hasChildNodes()){ea?\"setStart\":\"setEnd\";return}if(g===j){ea?\"setStartBefore\":\"setEndAfter\";return}if(b.position<0){i=b.inside?c.firstChild:c.nextSibling;if(!i){ea?\"setStartAfter\":\"setEndAfter\";return}if(!g){i.nodeType==3?ea?\"setStart\":\"setEnd\":ea?\"setStartBefore\":\"setEndBefore\";return}while(i){k=i.nodeValue,h+=k.length;if(h>=g){c=i,h-=g,h=k.length-h;break}i=i.nextSibling}}else{i=c.previousSibling;if(!i)return ea?\"setStartBefore\":\"setEndBefore\";if(!g){c.nodeType==3?ea?\"setStart\":\"setEnd\":ea?\"setStartAfter\":\"setEndAfter\";return}while(i){h+=i.nodeValue.length;if(h>=g){c=i,h-=g;break}i=i.previousSibling}}ea?\"setStart\":\"setEnd\"}var d=a.getRng(),e=c.createRng(),g,i,j,k,l,m;g=d.item?d.item(0):d.parentElement();if(g.ownerDocument!=c.doc)return e;i=a.isCollapsed();if(d.item)return e.setStart(g.parentNode,c.nodeIndex(g)),e.setEnd(e.startContainer,e.startOffset+1),e;try{n(!0),i||n()}catch(o){if(o.number!=-2147024809)throw o;l=b.getBookmark(2),j=d.duplicate(),j.collapse(!0),g=j.parentElement(),i||(j=d.duplicate(),j.collapse(!1),k=j.parentElement(),k.innerHTML=k.innerHTML),g.innerHTML=g.innerHTML,b.moveToBookmark(l),d=a.getRng(),n(!0),i||n()}return e}var b=this,c=a.dom,d=!0,e=!1;this.getBookmark=function(b){function j(a){var a,b,d,e,f,g=[];b=a.parentNode,d=c.getRoot().parentNode;while(b!=d&&b.nodeType!==9){e=b.children,f=e.length;while(f--)if(a===e[f]){g.push(f);break}a=b,b=b.parentNode}return g}function k(a){var b;b=f(d,a);if(b)return{position:b.position,offset:b.offset,indexes:j(b.node),inside:b.inside}}var d=a.getRng(),e,g,i={};return b===2&&(d.item?i.start={ctrl:!0,indexes:j(d.item(0))}:(i.start=k(!0),a.isCollapsed()||(i.end=k()))),i},this.moveToBookmark=function(a){function e(a){var b,d,e,f;b=c.getRoot();for(d=a.length-1;d>=0;d--)f=b.children,e=a[d],e<=f.length-1&&(b=f[e]);return b}function f(c){var f=a[c?\"start\":\"end\"],g,h,l;f&&(g=f.position>0,h=d.createTextRange\n(),h.moveToElementText(e(f.indexes)),offset=f.offset,offset!==l?(h.collapse(f.inside||g),h.moveStart(\"character\",g?-offset:offset)):h.collapse(c),b.setEndPoint(c?\"StartToStart\":\"EndToStart\",h),c&&b.collapse(!0))}var b,d=c.doc.body;a.start&&(a.start.ctrl?(b=d.createControlRange(),b.addElement(e(a.start.indexes)),b.select()):(b=d.createTextRange(),f(!0),f(),b.select()))},this.addRange=function(b){function n(a){var b,f,n,o,t;n=c.create(\"a\"),b=a?g:j,f=a?i:k,o=e.duplicate();if(b==l||b==l.documentElement)b=m,f=0;b.nodeType==3?(b.parentNode.insertBefore(n,b),o.moveToElementText(n),o.moveStart(\"character\",f),c.remove(n),e.setEndPoint(a?\"StartToStart\":\"EndToEnd\",o)):(t=b.childNodes,t.length?(f>=t.length?c.insertAfter(n,t[t.length-1]):b.insertBefore(n,t[f]),o.moveToElementText(n)):(n=l.createTextNode(\"\ufeff\"),b.appendChild(n),o.moveToElementText(n.parentNode),o.collapse(d)),e.setEndPoint(a?\"StartToStart\":\"EndToEnd\",o),c.remove(n))}var e,f,g,i,j,k,l=a.dom.doc,m=l.body;g=b.startContainer,i=b.startOffset,j=b.endContainer,k=b.endOffset,e=m.createTextRange();if(g==j&&g.nodeType==1&&i==k-1&&i==k-1)try{f=m.createControlRange(),f.addElement(g.childNodes[i]),f.select();return}catch(o){}n(!0),n(),e.select()},this.getRangeAt=g}tinymce.dom.TridentSelection=a}(),function(a){var b=a.each,c=a.DOM,d=a.isIE,e=a.isWebKit,f;a.create(\"tinymce.dom.EventUtils\",{EventUtils:function(){this.inits=[],this.events=[]},add:function(e,f,g,h){var i,j=this,k=j.events,l;if(f instanceof Array)return l=[],b(f,function(a){l.push(j.add(e,a,g,h))}),l;if(e&&e.hasOwnProperty&&e instanceof Array)return l=[],b(e,function(a){a=c.get(a),l.push(j.add(a,f,g,h))}),l;e=c.get(e);if(!e)return;return i=function(b){if(j.disabled)return;return b=b||window.event,b&&d&&(b.target||(b.target=b.srcElement),a.extend(b,j._stoppers)),h?g.call(h,b):g(b)},f==\"unload\"?(a.unloads.unshift({func:i}),i):f==\"init\"?(j.domLoaded?i():j.inits.push(i),i):(k.push({obj:e,name:f,func:g,cfunc:i,scope:h}),j._add(e,f,i),g)},remove:function(a,d,e){var f=this,g=f.events,h=!1,i;return a&&a.hasOwnProperty&&a instanceof Array?(i=[],b(a,function(a){a=c.get(a),i.push(f.remove(a,d,e))}),i):(a=c.get(a),b(g,function(b,c){if(b.obj==a&&b.name==d&&(!e||b.func==e||b.cfunc==e))return g.splice(c,1),f._remove(a,d,b.cfunc),h=!0,!1}),h)},clear:function(a){var b=this,d=b.events,e,f;if(a){a=c.get(a);for(e=d.length-1;e>=0;e--)f=d[e],f.obj===a&&(b._remove(f.obj,f.name,f.cfunc),f.obj=f.cfunc=null,d.splice(e,1))}},cancel:function(a){return a?(this.stop(a),this.prevent(a)):!1},stop:function(a){return a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,!1},prevent:function(a){return a.preventDefault?a.preventDefault():a.returnValue=!1,!1},destroy:function(){var a=this;b(a.events,function(b,c){a._remove(b.obj,b.name,b.cfunc),b.obj=b.cfunc=null}),a.events=[],a=null},_add:function(a,b,c){a.attachEvent?a.attachEvent(\"on\"+b,c):a.addEventListener?a.addEventListener(b,c,!1):a[\"on\"+b]=c},_remove:function(a,b,c){if(a)try{a.detachEvent?a.detachEvent(\"on\"+b,c):a.removeEventListener?a.removeEventListener(b,c,!1):a[\"on\"+b]=null}catch(d){}},_pageInit:function(a){var c=this;if(c.domLoaded)return;c.domLoaded=!0,b(c.inits,function(a){a()}),c.inits=[]},_wait:function(a){var b=this,c=a.document;if(a.tinyMCE_GZ&&tinyMCE_GZ.loaded){b.domLoaded=1;return}c.attachEvent?(c.attachEvent(\"onreadystatechange\",function(){c.readyState===\"complete\"&&(c.detachEvent(\"onreadystatechange\",arguments.callee),b._pageInit(a))}),c.documentElement.doScroll&&a==a.top&&function(){if(b.domLoaded)return;try{c.documentElement.doScroll(\"left\")}catch(d){setTimeout(arguments.callee,0);return}b._pageInit(a)}()):c.addEventListener&&b._add(a,\"DOMContentLoaded\",function(){b._pageInit(a)}),b._add(a,\"load\",function(){b._pageInit(a)})},_stoppers:{preventDefault:function(){this.returnValue=!1},stopPropagation:function(){this.cancelBubble=!0}}}),f=a.dom.Event=new a.dom.EventUtils,f._wait(window),a.addUnload(function(){f.destroy()})}(tinymce),function(a){a.dom.Element=function(b,c){var d=this,e,f;d.settings=c=c||{},d.id=b,d.dom=e=c.dom||a.DOM,a.isIE||(f=e.get(d.id)),a.each(\"getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get\".split(/,/),function(a){d[a]=function(){var c=[b],f;for(f=0;f<arguments.length;f++)c.push(arguments[f]);return c=e[a].apply(e,c),d.update(a),c}}),a.extend(d,{on:function(b,c,e){return a.dom.Event.add(d.id,b,c,e)},getXY:function(){return{x:parseInt(d.getStyle(\"left\")),y:parseInt(d.getStyle(\"top\"))}},getSize:function(){var a=e.get(d.id);return{w:parseInt(d.getStyle(\"width\")||a.clientWidth),h:parseInt(d.getStyle(\"height\")||a.clientHeight)}},moveTo:function(a,b){d.setStyles({left:a,top:b})},moveBy:function(a,b){var c=d.getXY();d.moveTo(c.x+a,c.y+b)},resizeTo:function(a,b){d.setStyles({width:a,height:b})},resizeBy:function(a,b){var c=d.getSize();d.resizeTo(c.w+a,c.h+b)},update:function(b){var f;if(a.isIE6&&c.blocker){b=b||\"\";if(b.indexOf(\"get\")===0||b.indexOf(\"has\")===0||b.indexOf(\"is\")===0)return;if(b==\"remove\"){e.remove(d.blocker);return}d.blocker?f=e.get(d.blocker):(d.blocker=e.uniqueId(),f=e.add(c.container||e.getRoot(),\"iframe\",{id:d.blocker,style:\"position:absolute;\",frameBorder:0,src:'javascript:\"\"'}),e.setStyle(f,\"opacity\",0)),e.setStyles(f,{left:d.getStyle(\"left\",1),top:d.getStyle(\"top\",1),width:d.getStyle(\"width\",1),height:d.getStyle(\"height\",1),display:d.getStyle(\"display\",1),zIndex:parseInt(d.getStyle(\"zIndex\",1)||0)-1})}}})}}(tinymce),function(a){function b(a){return a.replace(/[\n\r]+/g,\"\")}var c=a.is,d=a.isIE,e=a.each;a.create(\"tinymce.dom.Selection\",{Selection:function(b,c,d){var f=this;f.dom=b,f.win=c,f.serializer=d,e([\"onBeforeSetContent\",\"onBeforeGetContent\",\"onSetContent\",\"onGetContent\"],function(b){f[b]=new a.util.Dispatcher(f)}),f.win.getSelection||(f.tridentSel=new a.dom.TridentSelection(f)),a.isIE&&b.boxModel&&this._fixIESelection(),a.addUnload(f.destroy,f)},setCursorLocation:function(a,b){var c=this,d=c.dom.createRng();d.setStart(a,b),d.setEnd(a,b),c.setRng(d),c.collapse(!1)},getContent:function(a){var b=this,d=b.getRng(),e=b.dom.create(\"body\"),f=b.getSel(),g,h,i;return a=a||{},g=h=\"\",a.get=!0,a.format=a.format||\"html\",a.forced_root_block=\"\",b.onBeforeGetContent.dispatch(b,a),a.format==\"text\"?b.isCollapsed()?\"\":d.text||(f.toString?f.toString():\"\"):(d.cloneContents?(i=d.cloneContents(),i&&e.appendChild(i)):c(d.item)||c(d.htmlText)?(e.innerHTML=\"
\"+(d.item?d.item(0).outerHTML:d.htmlText),e.removeChild(e.firstChild)):e.innerHTML=d.toString(),/^\s/.test(e.innerHTML)&&(g=\" \"),/\s+$/.test(e.innerHTML)&&(h=\" \"),a.getInner=!0,a.content=b.isCollapsed()?\"\":g+b.serializer.serialize(e,a)+h,b.onGetContent.dispatch(b,a),a.content)},setContent:function(a,b){var c=this,d=c.getRng(),e,f=c.win.document,g,h;b=b||{format:\"html\"},b.set=!0,a=b.content=a,b.no_events||c.onBeforeSetContent.dispatch(c,b),a=b.content;if(d.insertNode){a+='<span id=\"_caret\">',d.startContainer==f&&d.endContainer==f?f.body.innerHTML=a:(d.deleteContents(),f.body.childNodes.length==0?f.body.innerHTML=a:d.createContextualFragment?d.insertNode(d.createContextualFragment(a)):(g=f.createDocumentFragment(),h=f.createElement(\"div\"),g.appendChild(h),h.outerHTML=a,d.insertNode(g))),e=c.dom.get(\"caret\"),d=f.createRange(),d.setStartBefore(e),d.setEndBefore(e),c.setRng(d),c.dom.remove(\"caret\");try{c.setRng(d)}catch(i){}}else d.item&&(f.execCommand(\"Delete\",!1,null),d=c.getRng()),/^\s+/.test(a)?(d.pasteHTML('<span id=\"mcetmp\">'+a),c.dom.remove(\"mce_tmp\")):d.pasteHTML(a);b.no_events||c.onSetContent.dispatch(c,b)},getStart:function(){var a=this.getRng(),b,c,d,e;if(a.duplicate||a.item){if(a.item)return a.item(0);d=a.duplicate(),d.collapse(1),b=d.parentElement(),c=e=a.parentElement();while(e=e.parentNode)if(e==b){b=c;break}return b}return b=a.startContainer,b.nodeType==1&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,a.startOffset)]),b&&b.nodeType==3?b.parentNode:b},getEnd:function(){var a=this,b=a.getRng(),c,d;return b.duplicate||b.item?b.item?b.item(0):(b=b.duplicate(),b.collapse(0),c=b.parentElement(),c&&c.nodeName==\"BODY\"?c.lastChild||c:c):(c=b.endContainer,d=b.endOffset,c.nodeType==1&&c.hasChildNodes()&&(c=c.childNodes[d>0?d-1:d]),c&&c.nodeType==3?c.parentNode:c)},getBookmark:function(a,b){function o(a,b){var c=0;return e(d.select(a),function(a,d){a==b&&(c=d)}),c}var c=this,d=c.dom,f,g,h,i,j,k,l,m=\"\ufeff\",n;if(a==2){function p(){function g(a,d){var f=a[d?\"startContainer\":\"endContainer\"],g=a[d?\"startOffset\":\"endOffset\"],h=[],i,j,k=0;if(f.nodeType==3){if(b)for(i=f.previousSibling;i&&i.nodeType==3;i=i.previousSibling)g+=i.nodeValue.length;h.push(g)}else j=f.childNodes,g>=j.length&&j.length&&(k=1,g=Math.max(0,j.length-1)),h.push(c.dom.nodeIndex(j[g],b)+k);for(;f&&f!=e;f=f.parentNode)h.push(c.dom.nodeIndex(f,b));return h}var a=c.getRng(!0),e=d.getRoot(),f={};return f.start=g(a,!0),c.isCollapsed()||(f.end=g(a)),f}return c.tridentSel?c.tridentSel.getBookmark(a):p()}if(a)return{rng:c.getRng()};f=c.getRng(),h=d.uniqueId(),i=tinyMCE.activeEditor.selection.isCollapsed(),n=\"overflow:hidden;line-height:0px\";if(f.duplicate||f.item){if(!!f.item)return k=f.item(0),j=k.nodeName,{name:j,index:o(j,k)};g=f.duplicate();try{f.collapse(),f.pasteHTML('<span data-mce-type=\"bookmark\" id=\"'+h+'_start\" style=\"'+n+'\">'+m+\"\"),i||(g.collapse(!1),f.moveToElementText(g.parentElement()),f.compareEndPoints(\"StartToEnd\",g)==0&&g.move(\"character\",-1),g.pasteHTML('<span data-mce-type=\"bookmark\" id=\"'+h+'_end\" style=\"'+n+'\">'+m+\"\"))}catch(q){return null}}else{k=c.getNode(),j=k.nodeName;if(j==\"IMG\")return{name:j,index:o(j,k)};g=f.cloneRange(),i||(g.collapse(!1),g.insertNode(d.create(\"span\",{\"data-mce-type\":\"bookmark\",id:h+\"_end\",style:n},m))),f.collapse(!0),f.insertNode(d.create(\"span\",{\"data-mce-type\":\"bookmark\",id:h+\"start\",style:n},m))}return c.moveToBookmark({id:h,keep:1}),{id:h}},moveToBookmark:function(b){var c=this,f=c.dom,g,h,i,j,k,l,m,n;if(b)if(b.start){i=f.createRng(),j=f.getRoot();function o(a){var c=b[a?\"start\":\"end\"],d,e,f,g;if(c){f=c[0];for(e=j,d=c.length-1;d>=1;d--){g=e.childNodes;if(c[d]>g.length-1)return;e=g[c[d]]}e.nodeType===3&&(f=Math.min(c[0],e.nodeValue.length)),e.nodeType===1&&(f=Math.min(c[0],e.childNodes.length)),a?i.setStart(e,f):i.setEnd(e,f)}return!0}if(c.tridentSel)return c.tridentSel.moveToBookmark(b);o(!0)&&o()&&c.setRng(i)}else if(b.id){function p(c){var d=f.get(b.id+\"\"+c),g,h,i,j,o=b.keep;if(d){g=d.parentNode,c==\"start\"?(o?(g=d.firstChild,h=1):h=f.nodeIndex(d),k=l=g,m=n=h):(o?(g=d.firstChild,h=1):h=f.nodeIndex(d),l=g,n=h);if(!o){j=d.previousSibling,i=d.nextSibling,e(a.grep(d.childNodes),function(a){a.nodeType==3&&(a.nodeValue=a.nodeValue.replace(/\uFEFF/g,\"\"))});while(d=f.get(b.id+\"_\"+c))f.remove(d,1);j&&i&&j.nodeType==i.nodeType&&j.nodeType==3&&!a.isOpera&&(h=j.nodeValue.length,j.appendData(i.nodeValue),f.remove(i),c==\"start\"?(k=l=j,m=n=h):(l=j,n=h))}}}function q(a){return f.isBlock(a)&&!a.innerHTML&&(a.innerHTML=d?\" \":'<br data-mce-bogus=\"1\" />'),a}p(\"start\"),p(\"end\"),k&&(i=f.createRng(),i.setStart(q(k),m),i.setEnd(q(l),n),c.setRng(i))}else b.name?c.select(f.select(b.name)[b.index]):b.rng&&c.setRng(b.rng)},select:function(b,c){var d=this,e=d.dom,f=e.createRng(),g;if(b){g=e.nodeIndex(b),f.setStart(b.parentNode,g),f.setEnd(b.parentNode,g+1);if(c){function h(b,c){var d=new a.dom.TreeWalker(b,b);do{if(b.nodeType==3&&a.trim(b.nodeValue).length!=0){c?f.setStart(b,0):f.setEnd(b,b.nodeValue.length);return}if(b.nodeName==\"BR\"){c?f.setStartBefore(b):f.setEndBefore(b);return}}while(b=c?d.next():d.prev())}h(b,1),h(b)}d.setRng(f)}return b},isCollapsed:function(){var a=this,b=a.getRng(),c=a.getSel();return!b||b.item?!1:b.compareEndPoints?b.compareEndPoints(\"StartToEnd\",b)===0:!c||b.collapsed},collapse:function(a){var b=this,c=b.getRng(),d;c.item&&(d=c.item(0),c=b.win.document.body.createTextRange(),c.moveToElementText(d)),c.collapse(!!a),b.setRng(c)},getSel:function(){var a=this,b=this.win;return b.getSelection?b.getSelection():b.document.selection},getRng:function(b){var c=this,d,e,f,g=c.win.document;if(b&&c.tridentSel)return c.tridentSel.getRangeAt(0);try{if(d=c.getSel())e=d.rangeCount>0?d.getRangeAt(0):d.createRange?d.createRange():g.createRange()}catch(h){}return a.isIE&&e&&e.setStart&&g.selection.createRange().item&&(f=g.selection.createRange().item(0),e=g.createRange(),e.setStartBefore(f),e.setEndAfter(f)),e||(e=g.createRange?g.createRange():g.body.createTextRange()),c.selectedRange&&c.explicitRange&&(e.compareBoundaryPoints(e.START_TO_START,c.selectedRange)===0&&e.compareBoundaryPoints(e.END_TO_END,c.selectedRange)===0?e=c.explicitRange:(c.selectedRange=null,c.explicitRange=null)),e},setRng:function(a){var b,c=this;if(!c.tridentSel){b=c.getSel();if(b){c.explicitRange=a;try{b.removeAllRanges()}catch(d){}b.addRange(a),c.selectedRange=b.rangeCount>0?b.getRangeAt(0):null}}else{if(a.cloneRange){c.tridentSel.addRange(a);return}try{a.select()}catch(d){}}},setNode:function(a){var b=this;return b.setContent(b.dom.getOuterHTML(a)),a},getNode:function(){var a=this,b=a.getRng(),c=a.getSel(),d,e=b.startContainer,f=b.endContainer;if(!b)return a.dom.getRoot();if(b.setStart){d=b.commonAncestorContainer;if(!b.collapsed){b.startContainer==b.endContainer&&b.endOffset-b.startOffset<2&&b.startContainer.hasChildNodes()&&(d=b.startContainer.childNodes[b.startOffset]);if(e.nodeType===3&&f.nodeType===3){function

arufanov commented 12 years ago

Here is the same without a) full error on win32 (available by e-mail) b) precompied application.js on unix(available by e-mail)

I have a working solution at development mode, but have a problem at production mode at Win32. I have updated from rails 3.1.3 to rails 3.2.1 but the result is the same.

I have application.js " //= require jquery //= require jquery_ujs //= require auxiliary //= require_tree . " and this is precompiled successfully at production. Then I have added: gem "tinymce-rails", ">= 3.4.8" at Gemfile (helper branch) and modify application.js " //= require jquery //= require jquery_ujs //= require auxiliary //= require tinymce-jquery //= require_tree . " And command "bundle exec rake assets:precompile --trace " fail with exception: see P.S.

At production mode (rals 3.1.3) at Unix OS I have a little different result, command "bundle exec rake assets:precompile" is executed successfully, but Firefox show jscript error while show page: " a.ajaxPrefilter is not a function tinyMCE is not defined a.dispatchEvent is not a function " See PP.S. with my applicaton.js at Unix.

Could you give me advise: a) how to fix precompile problem on Win32 b) how to fix jscript error at Unix (may this issue is related to previous one)

P.S. Exception to precompile at production mode at Win32: * Invoke assets:precompile (first_time) * Execute assets:precompile D:/Binutils/Ruby192/bin/ruby.exe D:/Binutils/Ruby192/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace * Invoke assets:precompile:all (first_time) * Execute assets:precompile:all * Invoke assets:precompile:primary (first_time) * Invoke assets:environment (first_time) * Execute assets:environment * Invoke environment (first_time) * Execute environment * Invoke tmp:cache:clear (first_time) * Execute tmp:cache:clear * Execute assets:precompile:primary rake aborted! 387: unexpected token at '\",133:\":\",134:\"Р\",135:\"РЁ\",136:\"?\",137:\"%\",138:\"S\",139:\"<\",140:\"?\",142:\"Z\",145:\"'\",146:\"'\",147:\""\",148:\""\",149:\"\",150:\"-\",151:\"-\",152:\"?\",153:\"T\",154:\"s\",155:\">\",156:\"?\",158:\"z\",159:\"Y\"};c={'\"':\""\",\"'\":\"'\",\"<\":\"<\",\">\":\">\",\"&\":\"&\"},d={\"<\":\"<\",\">\":\">\",\"&\":\"&\",\""\":'\"',\"'\":\"'\"},b=k(\"50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,,...] ' (in L:/Workspaces/Majoron/Products/EasyShop/trunk/Website/easyshop/app/assets/javascripts/application.js) D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.5.4/lib/json/common.rb:148:in parse' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.5.4/lib/json/common.rb:148:inparse' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/multi_json-1.0.3/lib/multi_json/engines/json_gem.rb:13:in decode' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/multi_json-1.0.3/lib/multi_json.rb:65:indecode' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.4/lib/execjs/external_runtime.rb:59:in extract_result' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.4/lib/execjs/external_runtime.rb:25:inblock in exec' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.4/lib/execjs/external_runtime.rb:38:in compile_to_tempfile' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.4/lib/execjs/external_runtime.rb:24:inexec' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/uglifier-1.2.3/lib/uglifier.rb:101:in compile' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/compressors.rb:74:incompress' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/processing.rb:265:in block in js_compressor=' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/processor.rb:29:incall' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/processor.rb:29:in evaluate' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/tilt-1.3.2/lib/tilt/template.rb:76:inrender' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/context.rb:193:in block in evaluate' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/context.rb:190:ineach' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/context.rb:190:in evaluate' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/bundled_asset.rb:26:ininitialize' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:252:in new' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:252:inbuild_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/index.rb:93:in block in build_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/caching.rb:58:incache_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/index.rb:92:in build_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:169:infind_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/index.rb:60:in find_asset' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/static_compiler.rb:20:inblock in compile' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:219:in block in each_logical_path' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:206:inblock (2 levels) in each_file' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:196:in each' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:196:ineach_entry' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:204:in block in each_file' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:203:ineach' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:203:in each_file' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/sprockets-2.3.1/lib/sprockets/base.rb:217:ineach_logical_path' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/static_compiler.rb:18:in compile' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/assets.rake:52:ininternal_precompile' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/assets.rake:66:in block (3 levels) in <top (required)>' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:incall' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in block in execute' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:ineach' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in execute' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:158:inblock in invoke_with_call_chain' D:/Binutils/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in mon_synchronize' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:151:ininvoke_with_call_chain' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:144:in invoke' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/sprockets/assets.rake:56:inblock (3 levels) in <top (required)>' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in call' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:inblock in execute' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in each' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:inexecute' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:158:in block in invoke_with_call_chain' D:/Binutils/Ruby192/lib/ruby/1.9.1/monitor.rb:201:inmon_synchronize' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:151:in invoke_with_call_chain' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:144:ininvoke' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:112:in invoke_task' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:inblock (2 levels) in top_level' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in each' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:inblock in top_level' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in standard_exception_handling' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:84:intop_level' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:62:in block in run' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:instandard_exception_handling' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:59:in run' D:/Binutils/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/bin/rake:32:in<top (required)>' D:/Binutils/Ruby192/bin/rake:19:in load' D:/Binutils/Ruby192/bin/rake:19:in

' Tasks: TOP => assets:precompile:primary rake aborted!

PPP.S. My Gemfile file on Win32:

source 'http://rubygems.org'

gem 'rails', '3.2.1' gem "railties", "3.2.1" gem "rack", ">= 1.3.5" gem "rake", ">= 0.9.2" gem "rack-cache", ">= 1.1" gem "execjs", ">= 1.2.4" gem "journey", ">= 1.0.3" gem "sprockets", ">= 2.3.1" gem "multi_json", ">= 1.0.3" gem "coffee-script", ">= 2.2.0" gem "jquery-rails", ">= 2.0.0"

Bundle the extra gems:

gem "mysql2", "0.2.16"

gem "mysql2", "0.3.11" gem "sass", ">= 3.1.12" gem "haml", ">= 3.1.4" gem "clockworkd", "0.2.5"

gem "sqlite3", ">= 1.3.3"

gem "rmagick", ">= 2.13.1"

gem "tiny_mce", ">= 0.1.4"

gem "authlogic", ">= 3.0.3" gem "rack-bug", ">= 0.3.0" gem "capistrano", ">= 2.9.0" gem "capistrano-ext", ">= 1.2.1" gem "authlogic-oid", ">= 1.0.4" gem "tinymce-rails", ">= 3.4.8" gem "foreigner", ">= 0.9.2" gem "delayed_job", ">= 2.1.4" gem "dynamic_form", ">= 1.1.4" gem "will_paginate", ">= 3.0.pre2" gem "calendar_date_select", "1.16.1" gem "exception_notification", ">= 2.5.2"

gem "vidibus-routing_error", ">= 0.2.1"

Bundle not win-related gems

gem "therubyracer", ">= 0.9.4", :platform => :ruby

Bundle the own gems:

gem "auxiliary_addons", ">= 0.5.5" gem "rails_breadcrumbs", ">= 0.5.3" gem "rmagick_captcha", ">= 0.6.2" gem "role_based_security", ">= 0.5.1"

Gems for unix production

group :production do gem "daemons", "1.1.3" gem "dispatcher", "0.0.1" gem "eventmachine", "1.0.0.beta.3" gem "thin", "1.2.11"

gem "kgio", "2.6.0"

gem "raindrops", "0.7.0"

gem "unicorn", "4.1.0"

gem "mongrel", "1.2.0.pre2"

gem "cgi_multipart_eof_fix", "2.5.0"

gem "fastthread"

gem "mongrel_cluster", "1.0.6"

end

Gems for test

group :test do

Pretty printed test output

gem 'turn', :require => false gem "simplecov", ">= 0.5.4" gem "webrat", ">= 0.7.3" gem "configuration", "~> 1.3.1" gem "launchy", ">= 0.4.0" gem "capybara", ">= 1.1.0" gem "nokogiri", ">= 1.4.5" gem "database_cleaner", ">= 0.6.7" gem "cucumber-rails", ">= 1.0.2" gem "cucumber", ">= 0.10.2" gem "factory_girl_rails", ">= 1.0.1" gem "factory_girl", "= 1.3.3" gem "shoulda", ">= 2.11.3" gem "faker", ">= 0.3.1" gem "rspec-rails", "~> 2.4" gem "gherkin", ">= 2.3.5" end

Gems used only for assets and not required

in production environments by default.

group :assets do gem "sass-rails", ">= 3.2.4" gem "coffee-rails", ">= 3.2.2" gem "uglifier", ">= 1.2.3" end

arufanov commented 12 years ago

Hello,

This is require " //= require jquery //= require jquery_ujs //= require auxiliary //= require tinymce-jquery //= require_tree . " correct is " //= require jquery //= require jquery-ui //= require jquery_ujs //= require tinymce-jquery //= require date_time_picker_ru //= require date_time_picker //= require auxiliary //= require_tree . " It was root of the my problem. Also I need a russian localization, could you answer yes on: https://github.com/spohlenz/tinymce-rails/issues/47. Then ximik pull a changed to you gem. Artem.

arufanov commented 12 years ago

Hello,

What time are planning to merge helpers branch to master and release gem at rubygems?

Artem.

spohlenz commented 12 years ago

As long as everything in the latest version is working fine for you, I will merge and release a new gem today.

spohlenz commented 12 years ago

The latest tinymce-rails gem with the helper/global configuration support has now been released.

arufanov commented 12 years ago

Thanks!