(function(){var a=/(-moz-|-webkit-|start|auto)/i;function b(e,f){var g=f.block||f.blockLimit;if(!g||g.getName()=='body')return CKEDITOR.TRISTATE_OFF;var h=g.getComputedStyle('text-align').replace(a,'');if(!h&&this.isDefaultAlign||h==this.value)return CKEDITOR.TRISTATE_ON;return CKEDITOR.TRISTATE_OFF;};function c(e){var f=e.editor.getCommand(this.name);f.state=b.call(this,e.editor,e.data.path);f.fire('state');};function d(e,f,g){var j=this;j.name=f;j.value=g;var h=e.config.contentsLangDirection;j.isDefaultAlign=g=='left'&&h=='ltr'||g=='right'&&h=='rtl';var i=e.config.justifyClasses;if(i){switch(g){case 'left':j.cssClassName=i[0];break;case 'center':j.cssClassName=i[1];break;case 'right':j.cssClassName=i[2];break;case 'justify':j.cssClassName=i[3];break;}j.cssClassRegex=new RegExp('(?:^|\\s+)(?:'+i.join('|')+')(?=$|\\s)');}};d.prototype={exec:function(e){var o=this;var f=e.getSelection(),g=e.config.enterMode;if(!f)return;var h=f.createBookmarks(),i=f.getRanges(),j=o.cssClassName,k,l;for(var m=i.length-1;m>=0;m--){k=i[m].createIterator();k.enlargeBr=g!=CKEDITOR.ENTER_BR;while(l=k.getNextParagraph()){l.removeAttribute('align');if(j){var n=l.$.className=CKEDITOR.tools.ltrim(l.$.className.replace(o.cssClassRegex,''));if(o.state==CKEDITOR.TRISTATE_OFF&&!o.isDefaultAlign)l.addClass(j);else if(!n)l.removeAttribute('class');}else if(o.state==CKEDITOR.TRISTATE_OFF&&!o.isDefaultAlign)l.setStyle('text-align',o.value);else l.removeStyle('text-align');}}e.focus();e.forceNextSelectionCheck();f.selectBookmarks(h);}};CKEDITOR.plugins.add('justify',{init:function(e){var f=new d(e,'justifyleft','left'),g=new d(e,'justifycenter','center'),h=new d(e,'justifyright','right'),i=new d(e,'justifyblock','justify');e.addCommand('justifyleft',f);e.addCommand('justifycenter',g);e.addCommand('justifyright',h);e.addCommand('justifyblock',i);e.ui.addButton('JustifyLeft',{label:e.lang.justify.left,command:'justifyleft'});e.ui.addButton('JustifyCenter',{label:e.lang.justify.center,command:'justifycenter'});e.ui.addButton('JustifyRight',{label:e.lang.justify.right,command:'justifyright'});e.ui.addButton('JustifyBlock',{label:e.lang.justify.block,command:'justifyblock'});e.on('selectionChange',CKEDITOR.tools.bind(c,f));e.on('selectionChange',CKEDITOR.tools.bind(c,h));e.on('selectionChange',CKEDITOR.tools.bind(c,g));e.on('selectionChange',CKEDITOR.tools.bind(c,i));},requires:['domiterator']});})();CKEDITOR.tools.extend(CKEDITOR.config,{justifyClasses:null});
