Parchment.Plugins.Blockquote={attributes_whitelist:{blockquote:{"class":/news|left|right|large|medium/}},type:"button",init:function(){document.addEvent("parchmentready",function(){if(this.parchment.options.toolbar=="news"){this.parchment.editor.getElements("blockquote").addClass("news")}}.bind(this));this.parchment.editor.addEvents({nodetreechange:function(a,b){if(a.contains("BLOCKQUOTE")){this.parchment.toolbar.getElement(".blockquote").addClass("on")}else{this.parchment.toolbar.getElement(".blockquote").removeClass("on")}}.bind(this)});this.buildToolbar()},callback:function(g){var e=this.parchment.getSelectionObject(),a=this.parchment.getRangeObject(e),f=a.commonAncestorContainer,d=f.innerHTML,b=this.parchment.tag_tree.indexOf("BLOCKQUOTE");if(b>=0){e.removeAllRanges();var h=this.parchment.node_tree[b].getElementsByTagName("cite");for(var c=h.length-1;c>=0;c--){a.selectNode(h[c]);e.addRange(a)}document.execCommand("delete",false,false);a.selectNode(this.parchment.node_tree[b]);e.addRange(a);document.execCommand("formatBlock",null,"<P>")}else{document.execCommand("formatBlock",null,"<BLOCKQUOTE>");if(this.parchment.options.toolbar=="news"){this.parchment.editor.getElements("blockquote").addClass("news")}}this.parchment.buildNodeTree()},buildToolbar:function(){var a;if(this.parchment.options.toolbar=="news"){a={size:[{text:"S",command:"small"},{text:"M",command:"medium"},{text:"L",command:"large"}],position:[{text:"L",command:"left"},{text:"C",command:"center"},{text:"R",command:"right"},{text:"U",command:"up"},{text:"D",command:"down"}],change:[{text:"credit",command:"credit"},{text:"remove",command:"remove"}]}}else{a={position:[{text:"U",command:"up"},{text:"D",command:"down"}]}}this.toolbar=new Parchment.Utils.Toolbar(this.parchment.editor,{"class":"blockquote",relay:"blockquote",display:a});this.toolbar.addEvents({showtoolbar:function(b){this.setPosition(b);this.setButtons(b)}.bind(this),command:this.quoteCommand.bind(this)})},setPosition:function(b){var c=this.parchment.editor.getCoordinates(),a=b.hasClass("left")?"left":b.hasClass("right")?"right":"center",d=false;switch(a){case"left":d=c.left;break;case"right":d=c.left+c.width-this.toolbar.toolbar.getCoordinates().width;break;default:break}if(d){this.toolbar.toolbar.setStyle("left",d)}},setButtons:function(b){var a=b.hasClass("left")?"left":b.hasClass("right")?"right":"center",c=b.hasClass("large")?"large":b.hasClass("medium")?"medium":"small";this.toolbar.toolbar.getElements("button").removeClass("on");this.toolbar.toolbar.getElements("button."+c+", button."+a).addClass("on")},quoteCommand:function(d){var c=this.toolbar.toolbar.retrieve("cage");switch(d){case"left":c.removeClass("right").addClass("left");break;case"right":c.removeClass("left").addClass("right");break;case"center":c.removeClass("left").removeClass("right");break;case"large":c.removeClass("medium").addClass("large");break;case"medium":c.removeClass("large").addClass("medium");break;case"small":c.removeClass("large").removeClass("medium");break;case"up":if(c.getPrevious()){c.inject(c.getPrevious(),"before")}break;case"down":if(c.getNext()){c.inject(c.getNext(),"after")}break;case"credit":var e=c.getElement("cite")||new Element("cite",{text:"Credit"}),a=this.parchment.getSelectionObject(),b=this.parchment.getRangeObject(a);e.inject(c);b.setStart(e,0);b.setEnd(e,0);a.removeAllRanges();a.addRange(b);break;case"remove":c.destroy();break;default:break}this.setButtons(c);this.toolbar.setPosition(c);this.setPosition(c)}};
