!function(t){"use strict";var e=function(e){var i=t.Deferred(),n=new FileReader;return n.onload=function(t){i.resolve(t.target.result)},n.onerror=i.reject,n.onprogress=i.notify,n.readAsDataURL(e),i.promise()};t.fn.cleanHtml=function(){var e=t(this).html();return e&&e.replace(/(<br>|\s|<div><br><\/div>| )*$/,"")},t.fn.wysiwyg=function(i){var n,a,r,s=this,o=function(){a.activeToolbarClass&&t(a.toolbarSelector).find(r).each(function(){var e=t(this).data(a.commandRole);document.queryCommandEnabled(e)&&document.queryCommandState(e)?t(this).addClass(a.activeToolbarClass):t(this).removeClass(a.activeToolbarClass)})},l=function(t,e){var i=t.split(" "),n=i.shift(),a=i.join(" ")+(e||"");document.execCommand(n,0,a),o()},h=function(e){t.each(e,function(t,e){s.keydown(t,function(t){s.attr("contenteditable")&&s.is(":visible")&&(t.preventDefault(),t.stopPropagation(),l(e))}).keyup(t,function(t){s.attr("contenteditable")&&s.is(":visible")&&(t.preventDefault(),t.stopPropagation())})})},c=function(){var t=window.getSelection();return t.getRangeAt&&t.rangeCount?t.getRangeAt(0):void 0},u=function(){n=c()},d=function(){var t=window.getSelection();if(n){try{t.removeAllRanges()}catch(e){document.body.createTextRange().select(),document.selection.empty()}t.addRange(n)}},p=function(i){s.focus(),t.each(i,function(i,n){/^image\//.test(n.type)?t.when(e(n)).done(function(t){l("insertimage",t)}).fail(function(t){a.fileUploadError("file-reader",t)}):a.fileUploadError("unsupported-file-type",n.type)})},f=function(t,e){d(),document.queryCommandSupported("hiliteColor")&&document.execCommand("hiliteColor",0,e||"transparent"),u(),t.data(a.selectionMarker,e)},g=function(e,i){e.find(r).click(function(){d(),s.focus(),l(t(this).data(i.commandRole)),u()}),e.find("[data-toggle=dropdown]").click(d),e.find("input[type=text][data-"+i.commandRole+"]").on("webkitspeechchange change",function(){var e=this.value;this.value="",d(),e&&(s.focus(),l(t(this).data(i.commandRole),e)),u()}).on("focus",function(){var e=t(this);e.data(i.selectionMarker)||(f(e,i.selectionColor),e.focus())}).on("blur",function(){var e=t(this);e.data(i.selectionMarker)&&f(e,!1)}),e.find("input[type=file][data-"+i.commandRole+"]").change(function(){d(),"file"===this.type&&this.files&&this.files.length>0&&p(this.files),u(),this.value=""})},m=function(){s.on("dragenter dragover",!1).on("drop",function(t){var e=t.originalEvent.dataTransfer;t.stopPropagation(),t.preventDefault(),e&&e.files&&e.files.length>0&&p(e.files)})};return a=t.extend({},t.fn.wysiwyg.defaults,i),r="a[data-"+a.commandRole+"],button[data-"+a.commandRole+"],input[type=button][data-"+a.commandRole+"]",h(a.hotKeys),a.dragAndDropImages&&m(),g(t(a.toolbarSelector),a),s.attr("contenteditable",!0).on("mouseup keyup mouseout",function(){u(),o()}),t(window).bind("touchend",function(t){var e=s.is(t.target)||s.has(t.target).length>0,i=c(),n=i&&i.startContainer===i.endContainer&&i.startOffset===i.endOffset;(!n||e)&&(u(),o())}),this},t.fn.wysiwyg.defaults={hotKeys:{"ctrl+b meta+b":"bold","ctrl+i meta+i":"italic","ctrl+u meta+u":"underline","ctrl+z meta+z":"undo","ctrl+y meta+y meta+shift+z":"redo","ctrl+l meta+l":"justifyleft","ctrl+r meta+r":"justifyright","ctrl+e meta+e":"justifycenter","ctrl+j meta+j":"justifyfull","shift+tab":"outdent",tab:"indent"},toolbarSelector:"[data-role=editor-toolbar]",commandRole:"edit",activeToolbarClass:"btn-info",selectionMarker:"edit-focus-marker",selectionColor:"darkgrey",dragAndDropImages:!0,fileUploadError:function(t,e){console.log("File upload error",t,e)}}}(window.jQuery);