');if($formatted.closest('td',this.$editor[0]).length===0&&$formatted.closest('th').length===0)
{$formatted.wrap('');}},removeData:function(name,value)
{var blocks=this.selection.getBlocks();$(blocks).removeAttr('data-'+name);this.code.sync();},setData:function(name,value)
{var blocks=this.selection.getBlocks();$(blocks).attr('data-'+name,value);this.code.sync();},toggleData:function(name,value)
{var blocks=this.selection.getBlocks();$.each(blocks,function()
{if($(this).attr('data-'+name))
{$(this).removeAttr('data-'+name);}
else
{$(this).attr('data-'+name,value);}});},removeAttr:function(attr,value)
{var blocks=this.selection.getBlocks();$(blocks).removeAttr(attr);this.code.sync();},setAttr:function(attr,value)
{var blocks=this.selection.getBlocks();$(blocks).attr(attr,value);this.code.sync();},toggleAttr:function(attr,value)
{var blocks=this.selection.getBlocks();$.each(blocks,function()
{if($(this).attr(name))
{$(this).removeAttr(name);}
else
{$(this).attr(name,value);}});},removeClass:function(className)
{var blocks=this.selection.getBlocks();$(blocks).removeClass(className);this.utils.removeEmptyAttr(blocks,'class');this.code.sync();},setClass:function(className)
{var blocks=this.selection.getBlocks();$(blocks).addClass(className);this.code.sync();},toggleClass:function(className)
{var blocks=this.selection.getBlocks();$(blocks).toggleClass(className);this.code.sync();}};},buffer:function()
{return{set:function(type)
{if(typeof type=='undefined'||type=='undo')
{this.buffer.setUndo();}
else
{this.buffer.setRedo();}},setUndo:function()
{this.selection.save();this.opts.buffer.push(this.$editor.html());this.selection.restore();},setRedo:function()
{this.selection.save();this.opts.rebuffer.push(this.$editor.html());this.selection.restore();},getUndo:function()
{this.$editor.html(this.opts.buffer.pop());},getRedo:function()
{this.$editor.html(this.opts.rebuffer.pop());},add:function()
{this.opts.buffer.push(this.$editor.html());},undo:function()
{if(this.opts.buffer.length===0)return;this.buffer.set('redo');this.buffer.getUndo();this.selection.restore();setTimeout($.proxy(this.observe.load,this),50);},redo:function()
{if(this.opts.rebuffer.length===0)return;this.buffer.set('undo');this.buffer.getRedo();this.selection.restore();setTimeout($.proxy(this.observe.load,this),50);}};},build:function()
{return{run:function()
{this.build.createContainerBox();this.build.loadContent();this.build.loadEditor();this.build.enableEditor();this.build.setCodeAndCall();},isTextarea:function()
{return(this.$element[0].tagName==='TEXTAREA');},createContainerBox:function()
{this.$box=$('');},createTextarea:function()
{this.$textarea=$('').attr('name',this.build.getTextareaName());},getTextareaName:function()
{return((typeof(name)=='undefined'))?'content-'+this.uuid:this.$element.attr('id');},loadContent:function()
{var func=(this.build.isTextarea())?'val':'html';this.content=$.trim(this.$element[func]());},enableEditor:function()
{this.$editor.attr({'contenteditable':true,'dir':this.opts.direction});},loadEditor:function()
{var func=(this.build.isTextarea())?'fromTextarea':'fromElement';this.build[func]();},fromTextarea:function()
{this.$editor=$('');this.$textarea=this.$element;this.$box.insertAfter(this.$element).append(this.$editor).append(this.$element);this.$editor.addClass('redactor-editor');this.$element.hide();},fromElement:function()
{this.$editor=this.$element;this.build.createTextarea();this.$box.insertAfter(this.$editor).append(this.$editor).append(this.$textarea);this.$editor.addClass('redactor-editor');this.$textarea.hide();},setCodeAndCall:function()
{this.code.set(this.content);this.build.setOptions();this.build.callEditor();if(this.opts.visual)return;setTimeout($.proxy(this.code.showCode,this),200);},callEditor:function()
{this.build.disableMozillaEditing();this.build.setEvents();this.build.setHelpers();if(this.opts.toolbar)
{this.opts.toolbar=this.toolbar.init();this.toolbar.build();}
this.modal.loadTemplates();this.build.plugins();setTimeout($.proxy(this.observe.load,this),4);this.core.setCallback('init');},setOptions:function()
{$(this.$textarea).attr('dir',this.opts.direction);if(this.opts.linebreaks)this.$editor.addClass('redactor-linebreaks');if(this.opts.tabindex)this.$editor.attr('tabindex',this.opts.tabindex);if(this.opts.minHeight)this.$editor.css('minHeight',this.opts.minHeight);if(this.opts.maxHeight)this.$editor.css('maxHeight',this.opts.maxHeight);},setEventDropUpload:function(e)
{e.preventDefault();if(!this.opts.dragImageUpload||!this.opts.dragFileUpload)return;var files=e.dataTransfer.files;this.upload.directUpload(files[0],e);},setEventDrop:function(e)
{this.code.sync();setTimeout(this.clean.clearUnverified,1);this.core.setCallback('drop',e);},setEvents:function()
{this.$editor.on('drop.redactor',$.proxy(function(e)
{e=e.originalEvent||e;if(window.FormData===undefined||!e.dataTransfer)return true;if(e.dataTransfer.files.length===0)
{return this.build.setEventDrop(e);}
else
{this.build.setEventDropUpload(e);}
setTimeout(this.clean.clearUnverified,1);this.core.setCallback('drop',e);},this));this.$editor.on('click.redactor',$.proxy(function(e)
{var event=this.core.getEvent();var type=(event=='click'||event=='arrow')?false:'click';this.core.addEvent(type);this.utils.disableSelectAll();this.core.setCallback('click',e);},this));this.$editor.on('paste.redactor',$.proxy(this.paste.init,this));this.$editor.on('keydown.redactor',$.proxy(this.keydown.init,this));this.$editor.on('keyup.redactor',$.proxy(this.keyup.init,this));if($.isFunction(this.opts.codeKeydownCallback))
{this.$textarea.on('keydown.redactor-textarea',$.proxy(this.opts.codeKeydownCallback,this));}
if($.isFunction(this.opts.codeKeyupCallback))
{this.$textarea.on('keyup.redactor-textarea',$.proxy(this.opts.codeKeyupCallback,this));}
if($.isFunction(this.opts.focusCallback))
{this.$editor.on('focus.redactor',$.proxy(this.opts.focusCallback,this));}
var clickedElement;$(document).on('mousedown',function(e){clickedElement=e.target;});this.$editor.on('blur.redactor',$.proxy(function(e)
{if(this.rtePaste)return;if(!this.build.isBlured(clickedElement))return;this.utils.disableSelectAll();if($.isFunction(this.opts.blurCallback))this.core.setCallback('blur',e);},this));},isBlured:function(clickedElement)
{var $el=$(clickedElement);return(!$el.hasClass('redactor-toolbar, redactor-dropdown')&&!$el.is('#redactor-modal')&&$el.parents('.redactor-toolbar, .redactor-dropdown, #redactor-modal').length===0);},setHelpers:function()
{if(this.linkify.isEnabled())
{this.linkify.format();}
this.placeholder.enable();if(this.opts.focus)setTimeout(this.focus.setStart,100);if(this.opts.focusEnd)setTimeout(this.focus.setEnd,100);},plugins:function()
{if(!this.opts.plugins)return;if(!RedactorPlugins)return;$.each(this.opts.plugins,$.proxy(function(i,s)
{if(typeof RedactorPlugins[s]==='undefined')return;if($.inArray(s,$.Redactor.modules)!==-1)
{$.error('Plugin name "'+s+'" matches the name of the Redactor\'s module.');return;}
if(!$.isFunction(RedactorPlugins[s]))return;this[s]=RedactorPlugins[s]();var methods=this.getModuleMethods(this[s]);var len=methods.length;for(var z=0;z').attr('tabindex','-1');if(btnObject.func||btnObject.command||btnObject.dropdown)
{this.button.setEvent($button,btnName,btnObject);}
if(btnObject.dropdown)
{var $dropdown=$('');$button.data('dropdown',$dropdown);this.dropdown.build(btnName,$dropdown,btnObject.dropdown);}
if(this.utils.isDesktop())
{this.button.createTooltip($button,btnName,btnObject.title);}
return $button;},setEvent:function($button,btnName,btnObject)
{$button.on('touchstart click',$.proxy(function(e)
{if($button.hasClass('redactor-button-disabled'))return false;var type='func';var callback=btnObject.func;if(btnObject.command)
{type='command';callback=btnObject.command;}
else if(btnObject.dropdown)
{type='dropdown';callback=false;}
this.button.onClick(e,btnName,type,callback);},this));},createTooltip:function($button,name,title)
{var $tooltip=$(' ').addClass('redactor-toolbar-tooltip redactor-toolbar-tooltip-'+name).hide().html(title);$tooltip.appendTo('body');$button.on('mouseover',function()
{if($(this).hasClass('redactor-button-disabled'))return;var pos=$button.offset();$tooltip.show();$tooltip.css({top:(pos.top+$button.innerHeight())+'px',left:(pos.left+$button.innerWidth()/2-$tooltip.innerWidth()/2)+'px'});});$button.on('mouseout',function()
{$tooltip.hide();});},onClick:function(e,btnName,type,callback)
{this.button.caretOffset=this.caret.getOffset();e.preventDefault();if(this.utils.browser('msie'))e.returnValue=false;if(type=='command')this.inline.format(callback);else if(type=='dropdown')this.dropdown.show(e,btnName);else this.button.onClickCallback(e,callback,btnName);},onClickCallback:function(e,callback,btnName)
{var func;if($.isFunction(callback))callback.call(this,btnName);else if(callback.search(/\./)!='-1')
{func=callback.split('.');if(typeof this[func[0]]=='undefined')return;this[func[0]][func[1]](btnName);}
else this[callback](btnName);this.observe.buttons(e,btnName);},get:function(key)
{return this.$toolbar.find('a.re-'+key);},setActive:function(key)
{this.button.get(key).addClass('redactor-act');},setInactive:function(key)
{this.button.get(key).removeClass('redactor-act');},setInactiveAll:function(key)
{if(typeof key==='undefined')
{this.$toolbar.find('a.re-icon').removeClass('redactor-act');}
else
{this.$toolbar.find('a.re-icon').not('.re-'+key).removeClass('redactor-act');}},setActiveInVisual:function()
{this.$toolbar.find('a.re-icon').not('a.re-html').removeClass('redactor-button-disabled');},setInactiveInCode:function()
{this.$toolbar.find('a.re-icon').not('a.re-html').addClass('redactor-button-disabled');},changeIcon:function(key,classname)
{this.button.get(key).addClass('re-'+classname);},removeIcon:function(key,classname)
{this.button.get(key).removeClass('re-'+classname);},setAwesome:function(key,name)
{var $button=this.button.get(key);$button.removeClass('redactor-btn-image').addClass('fa-redactor-btn');$button.html('');},addCallback:function($btn,callback)
{var type=(callback=='dropdown')?'dropdown':'func';var key=$btn.attr('rel');$btn.on('touchstart click',$.proxy(function(e)
{if($btn.hasClass('redactor-button-disabled'))return false;this.button.onClick(e,key,type,callback);},this));},addDropdown:function($btn,dropdown)
{var key=$btn.attr('rel');this.button.addCallback($btn,'dropdown');var $dropdown=$('');$btn.data('dropdown',$dropdown);if(dropdown)this.dropdown.build(key,$dropdown,dropdown);return $dropdown;},add:function(key,title)
{if(!this.opts.toolbar)return;var btn=this.button.build(key,{title:title});btn.addClass('redactor-btn-image');this.$toolbar.append($(' ').append(btn));return btn;},addFirst:function(key,title)
{if(!this.opts.toolbar)return;var btn=this.button.build(key,{title:title});btn.addClass('redactor-btn-image');this.$toolbar.prepend($('').append(btn));return btn;},addAfter:function(afterkey,key,title)
{if(!this.opts.toolbar)return;var btn=this.button.build(key,{title:title});btn.addClass('redactor-btn-image');var $btn=this.button.get(afterkey);if($btn.length!==0)$btn.parent().after($('').append(btn));else this.$toolbar.append($('').append(btn));return btn;},addBefore:function(beforekey,key,title)
{if(!this.opts.toolbar)return;var btn=this.button.build(key,{title:title});btn.addClass('redactor-btn-image');var $btn=this.button.get(beforekey);if($btn.length!==0)$btn.parent().before($('').append(btn));else this.$toolbar.append($('').append(btn));return btn;},remove:function(key)
{this.button.get(key).remove();}};},caret:function()
{return{setStart:function(node)
{if(!this.utils.isBlock(node))
{var space=this.utils.createSpaceElement();$(node).prepend(space);this.caret.setEnd(space);}
else
{this.caret.set(node,0,node,0);}},setEnd:function(node)
{this.caret.set(node,1,node,1);},set:function(orgn,orgo,focn,foco)
{orgn=orgn[0]||orgn;focn=focn[0]||focn;if(this.utils.isBlockTag(orgn.tagName)&&orgn.innerHTML==='')
{orgn.innerHTML=this.opts.invisibleSpace;}
if(orgn.tagName=='BR'&&this.opts.linebreaks===false)
{var parent=$(this.opts.emptyHtml)[0];$(orgn).replaceWith(parent);orgn=parent;focn=orgn;}
this.selection.get();try
{this.range.setStart(orgn,orgo);this.range.setEnd(focn,foco);}
catch(e){}
this.selection.addRange();},setAfter:function(node)
{try
{var tag=$(node)[0].tagName;if(tag!='BR'&&!this.utils.isBlock(node))
{var space=this.utils.createSpaceElement();$(node).after(space);this.caret.setEnd(space);}
else
{if(tag!='BR'&&this.utils.browser('msie'))
{this.caret.setStart($(node).next());}
else
{this.caret.setAfterOrBefore(node,'after');}}}
catch(e)
{var space=this.utils.createSpaceElement();$(node).after(space);this.caret.setEnd(space);}},setBefore:function(node)
{if(this.utils.isBlock(node))
{this.caret.setEnd($(node).prev());}
else
{this.caret.setAfterOrBefore(node,'before');}},setAfterOrBefore:function(node,type)
{if(!this.utils.browser('msie'))this.$editor.focus();node=node[0]||node;this.selection.get();if(type=='after')
{try{this.range.setStartAfter(node);this.range.setEndAfter(node);}
catch(e){}}
else
{try{this.range.setStartBefore(node);this.range.setEndBefore(node);}
catch(e){}}
this.range.collapse(false);this.selection.addRange();},getOffsetOfElement:function(node)
{node=node[0]||node;this.selection.get();var cloned=this.range.cloneRange();cloned.selectNodeContents(node);cloned.setEnd(this.range.endContainer,this.range.endOffset);return $.trim(cloned.toString()).length;},getOffset:function()
{var offset=0;var sel=window.getSelection();if(sel.rangeCount>0)
{var range=window.getSelection().getRangeAt(0);var caretRange=range.cloneRange();caretRange.selectNodeContents(this.$editor[0]);caretRange.setEnd(range.endContainer,range.endOffset);offset=caretRange.toString().length;}
return offset;},setOffset:function(start,end)
{if(typeof end=='undefined')end=start;if(!this.focus.isFocused())this.focus.setStart();var sel=this.selection.get();var node,offset=0;var walker=document.createTreeWalker(this.$editor[0],NodeFilter.SHOW_TEXT,null,null);while(node=walker.nextNode())
{offset+=node.nodeValue.length;if(offset>start)
{this.range.setStart(node,node.nodeValue.length+start-offset);start=Infinity;}
if(offset>=end)
{this.range.setEnd(node,node.nodeValue.length+end-offset);break;}}
this.range.collapse(false);this.selection.addRange();},setToPoint:function(start,end)
{this.caret.setOffset(start,end);},getCoords:function()
{return this.caret.getOffset();}};},clean:function()
{return{onSet:function(html)
{html=this.clean.savePreCode(html);html=html.replace(/');html=this.clean.restoreFormTags(html);var chars={'\u2122':'™','\u00a9':'©','\u2026':'…','\u2014':'—','\u2010':'‐'};$.each(chars,function(i,s)
{html=html.replace(new RegExp(i,'g'),s);});html=html.replace(new RegExp('
','gi'),'');html=html.replace(new RegExp(' ','gi'),'');html=html.replace(/ ]) data-tagblock="redactor"(.*?[^>])>/gi,' ');html=html.replace(/<(.*?) data-verified="redactor"(.*?[^>])>/gi,'<$1$2>');html=html.replace(/ ])\srel="(.*?[^>])"(.*?[^>])>/gi,'');html=html.replace(/ ])\srel="(.*?[^>])"(.*?[^>])>/gi,' ');html=html.replace(/ ])\sstyle="" (.*?[^>])>'/gi,' ');html=html.replace(/ ])\sstyle (.*?[^>])>'/gi,' ');html=html.replace(/(.*?)<\/span>/gi,'$1');html=html.replace(/ data-save-url="(.*?[^>])"/gi,'');html=html.replace(/])>([\w\W]*?) <\/span>/gi,'$3 ');html=html.replace(/])>(.*?)<\/span>/gi,'');html=html.replace(/])>(.*?)<\/span>/gi,'');html=html.replace(//gi,'');html=html.replace(/<\/font>/gi,'');html=this.tidy.load(html);if(this.opts.linkNofollow)
{html=html.replace(/])>/gi,'');html=html.replace(/])>/gi,'');}
html=html.replace(/\sdata-redactor-(tag|class|style)="(.*?[^>])"/gi,'');html=html.replace(new RegExp('<(.*?) data-verified="redactor"(.*?[^>])>','gi'),'<$1$2>');html=html.replace(new RegExp('<(.*?) data-verified="redactor">','gi'),'<$1>');return html;},onPaste:function(html,setMode)
{html=$.trim(html);html=html.replace(/\$/g,'$');html=html.replace(//gi,'');html=html.replace(/ <\/span>/gi,' ');html=html.replace(/]*>\t<\/span>/gi,'\t');html=html.replace(/]*>(\s| )<\/span>/gi,' ');if(this.opts.pastePlainText)
{return this.clean.getPlainText(html);}
if(!this.utils.isSelectAll()&&typeof setMode=='undefined')
{if(this.utils.isCurrentOrParent(['FIGCAPTION','A']))
{return this.clean.getPlainText(html,false);}
if(this.utils.isCurrentOrParent('PRE'))
{html=html.replace(/”/g,'"');html=html.replace(/“/g,'"');html=html.replace(/‘/g,'\'');html=html.replace(/’/g,'\'');return this.clean.getPreCode(html);}
if(this.utils.isCurrentOrParent(['BLOCKQUOTE','H1','H2','H3','H4','H5','H6']))
{html=this.clean.getOnlyImages(html);if(!this.utils.browser('msie'))
{var block=this.selection.getBlock();if(block&&block.tagName=='P')
{html=html.replace(/ /gi,'![]() ');}}
return html;}
if(this.utils.isCurrentOrParent(['TD']))
{html=this.clean.onPasteTidy(html,'td');if(this.opts.linebreaks)html=this.clean.replaceParagraphsToBr(html);html=this.clean.replaceDivsToBr(html);return html;}
if(this.utils.isCurrentOrParent(['LI']))
{return this.clean.onPasteTidy(html,'li');}}
html=this.clean.isSingleLine(html,setMode);if(!this.clean.singleLine)
{if(this.opts.linebreaks)html=this.clean.replaceParagraphsToBr(html);if(this.opts.replaceDivs)html=this.clean.replaceDivs(html);html=this.clean.saveFormTags(html);}
html=this.clean.onPasteWord(html);html=this.clean.onPasteExtra(html);html=this.clean.onPasteTidy(html,'all');if(!this.clean.singleLine&&this.opts.paragraphize)
{html=this.paragraphize.load(html);}
html=this.clean.removeDirtyStyles(html);html=this.clean.onPasteRemoveSpans(html);html=this.clean.onPasteRemoveEmpty(html);html=this.clean.convertInline(html);return html;},onPasteWord:function(html)
{html=html.replace(//gi,'');html=html.replace(/ |