Parchment.Plugins.Spoiler={type:"button",attributes_whitelist:{span:{"class":/spoiler/},div:{"class":/js-item-cage|js-spoiler-btn|js-spoiler-div/,rel:/spoiler/}},init:function(){this.parchment.editor.addEvent("beforeclean",function(){this.parchment.editor.getElements(".spoiler .spoiler").each(function(a){a.getChildren().inject(a,"before");a.destroy()})}.bind(this))},callback:function(f){var b=document.createElement("span"),d=this.parchment.getSelectionObject(),a=this.parchment.getRangeObject(d),e=a.commonAncestorContainer;while(e!=this.parchment.editor){if(e.nodeName.test(/span/i)&&e.hasClass("spoiler")){b.innerHTML=e.innerHTML;a.selectNode(e);d.removeAllRanges();d.addRange(a);document.execCommand("delete",null,null);this.parchment.insertHTML(b.innerHTML);return}e=e.parentNode}if(d.isCollapsed){this.parchment.selectBlock();a=this.parchment.getRangeObject();e=a.commonAncestorContainer}b.appendChild(a.cloneContents());for(var h=0;h<b.childNodes.length;h++){if(b.childNodes[h].nodeName.test(/span/i)&&b.childNodes[h].hasClass("spoiler")){for(var g=0;g<b.childNodes[h].childNodes.length;g++){b.insertBefore(b.childNodes[h].childNodes[g],b.childNodes[h])}}}b.getElements(".spoiler:empty").destroy();this.parchment.insertHTML('<span class="spoiler">'+b.innerHTML+"</span>")}};Parchment.Plugins["Spoiler Block"]={type:"button",init:function(){this.buildToolbar()},callback:function(d){var c=this.parchment.getSelectionObject(),b=this.parchment.getRangeObject(c),a=document.createElement("div");a.appendChild(b.cloneContents());newStr="<p>&nbsp;</p><div class='js-item-cage' rel='spoiler'>";newStr+="<div class='js-spoiler-btn'><a href='#'><span>SPOILER WARNING: Click here to reveal hidden content.</span></a></div>";newStr+="<div class='js-spoiler-div'>"+a.innerHTML+"</div>";newStr+="</div><p>&nbsp;</p>";this.parchment.insertHTML(newStr)},buildToolbar:function(){this.toolbar=new Parchment.Utils.Toolbar(this.parchment.editor,{"class":"spoiler",relay:'.js-item-cage[rel="spoiler"]',display:{position:[{text:"U",command:"up"},{text:"D",command:"down"}],change:[{text:"remove",command:"remove"}]}});this.toolbar.addEvents({command:this.spoilerCommand.bind(this)})},spoilerCommand:function(b){var a=this.toolbar.toolbar.retrieve("cage");switch(b){case"up":if(a.getPrevious()){a.inject(a.getPrevious(),"before")}break;case"down":if(a.getNext()){a.inject(a.getNext(),"after")}break;case"remove":a.destroy();this.toolbar.toolbar.removeClass("on");break;default:break}}};window.addEvent("domready",function(){$(document.body).addEvent("click:relay(.js-spoiler-btn a)",function(d){d.stop();var c=false,f=false,a=false;c=this.getParent("div.js-item-cage");if(!c){return}f=c.getElement(".js-spoiler-div");if(!f){return}var b=new Fx.Morph(f,{duration:600});if(f.getStyle("visibility")=="hidden"){f.setStyle("height","auto");a=f.getHeight();f.setStyle("height",0);b.addEvent("complete",function(){f.setStyle("height","auto")});b.start({opacity:[0,1],height:[0,a],visibility:"visible"})}else{b.addEvent("complete",function(){f.setStyle("visibility","hidden")});b.start({opacity:[1,0],height:[f.getHeight(),0]})}})});
