tinymce.PluginManager.add("toc",function(e){functiont(t){returne.schema.isValidChild("div",t)}functionn(t){returnt&&e.dom.is(t,"."+d.className)&&e.getBody().contains(t)}functionr(){vart=this;t.disabled(e.readonly||!o()),e.on("LoadContent SetContent change",function(){t.disabled(e.readonly||!o())})}functioni(e){vart,n=[];for(t=1;t<=e;t++)n.push("h"+t);returnn.join(",")}functiono(){return!(!d||!a(d).length)}functiona(t){varn=i(t.depth),r=f(n);returnr.length&&/^h[1-9]$/i.test(t.headerTag)&&(r=r.filter(function(n,r){return!e.dom.hasClass(r.parentNode,t.className)})),tinymce.map(r,function(e){returne.id||(e.id=m()),{id:e.id,level:parseInt(e.nodeName.replace(/^H/i,""),10),title:f.text(e)}})}functions(e){vart,n=9;for(t=0;t<e.length;t++)if(e[t].level<n&&(n=e[t].level),1==n)returnn;returnn}functionl(t,n){varr="<"+t+' contenteditable="true">',i="</"+t+">";returnr+e.dom.encode(n)+i}functionu(e){vart=c(e);return'<div class="'+e.className+'" contenteditable="false">'+t+"</div>"}functionc(e){vart,n,r,i,o="",u=a(e),c=s(u)-1;if(!u.length)return"";for(o+=l(e.headerTag,tinymce.translate("Table of Contents")),t=0;t<u.length;t++){if(r=u[t],i=u[t+1]&&u[t+1].level,c===r.level)o+="<li>";elsefor(n=c;n<r.level;n++)o+="<ul><li>";if(o+='<a href="#'+r.id+'">'+r.title+"</a>",i!==r.level&&i)for(n=r.level;n>i;n--)o+="</li></ul><li>";elseo+="</li>",i||(o+="</ul>");c=r.level}returno}vard,f=e.$,p={depth:3,headerTag:"h2",className:"mce-toc"},h=function(e){vart=0;returnfunction(){varn=(newDate).getTime().toString(32);returne+n+(t++).toString(32)}},m=h("mcetoc_");e.on("PreInit",function(){varn=e.settings,r=parseInt(n.toc_depth,10)||0;d={depth:r>=1&&r<=9?r:p.depth,headerTag:t(n.toc_header)?n.toc_header:p.headerTag,className:n.toc_class?e.dom.encode(n.toc_class):p.className}}),e.on("PreProcess",function(e){vart=f("."+d.className,e.node);t.length&&(t.removeAttr("contentEditable"),t.find("[contenteditable]").removeAttr("contentEditable"))}),e.on("SetContent",function(){vare=f("."+d.className);e.length&&(e.attr("contentEditable",!1),e.children(":first-child").attr("contentEditable",!0))});varg=function(t){return!t.length||e.dom.getParents(t[0],".mce-offscreen-selection").length>0};e.addCommand("mceInsertToc",function(){vart=f("."+d.className);g(t)?e.insertContent(u(d)):e.execCommand("mceUpdateToc")}),e.addCommand("mceUpdateToc",function(){vart=f("."+d.className);t.length&&e.undoManager.transact(function(){t.html(c(d))})}),e.addButton("toc",{tooltip:"Table of Contents",cmd:"mceInsertToc",icon:"toc",onPostRender:r}),e.addButton("tocupdate",{tooltip:"Update",cmd:"mceUpdateToc",icon:"reload"}),e.addContextToolbar(n,"tocupdate"),e.addMenuItem("toc",{text:"Table of Contents",context:"insert",cmd:"mceInsertToc",onPostRender:r})});