(function(e,t,n){var r=1;var i=3;var s=["p","div","pre","form"];var o=27;var u=9;e.emojiarea={path:"",icons:{},defaults:{button:null,buttonLabel:"Emojis",buttonPosition:"after"}};e.fn.emojiarea=function(t){t=e.extend({},e.emojiarea.defaults,t);return this.each(function(){var r=e(this);if("contentEditable"in n.body&&t.wysiwyg!==false){new c(r,t)}else{new l(r,t)}})};var a={};a.restoreSelection=function(){if(t.getSelection){return function(e){var n=t.getSelection();n.removeAllRanges();for(var r=0,i=e.length;r/g,">").replace(/"/g,""")};var f=function(){};f.prototype.setup=function(){var e=this;this.$editor.on("focus",function(){e.hasFocus=true});this.$editor.on("blur",function(){e.hasFocus=false});this.setupButton()};f.prototype.setupButton=function(){var t=this;var n;if(this.options.button){n=e(this.options.button)}else if(this.options.button!==false){n=e('');n.html(this.options.buttonLabel);n.addClass("emoji-button");n.attr({title:this.options.buttonLabel});this.$editor[this.options.buttonPosition](n)}else{n=e("")}n.on("click",function(e){h.show(t);e.stopPropagation()});this.$button=n};f.createIcon=function(t,n){var r=e.emojiarea.icons[t]["icons"][n];var i=e.emojiarea.path||"";if(i.length&&i.charAt(i.length-1)!=="/"){i+="/"}return''+a.htmlEntities(n)+''};var l=function(e,t){this.options=t;this.$textarea=e;this.$editor=e;this.setup()};l.prototype.insert=function(t,n){if(!e.emojiarea.icons[t]["icons"].hasOwnProperty(n))return;a.insertAtCursor(n,this.$textarea[0]);this.$textarea.trigger("change")};l.prototype.val=function(){return this.$textarea.val()};a.extend(l.prototype,f.prototype);var c=function(t,r){var i=this;this.options=r;this.$textarea=t;this.$editor=e("
").addClass("emoji-wysiwyg-editor");this.$editor.text(t.val());this.$editor.attr({contenteditable:"true"});this.$editor.on("blur keyup paste",function(){return i.onChange.apply(i,arguments)});this.$editor.on("mousedown focus",function(){n.execCommand("enableObjectResizing",false,false)});this.$editor.on("blur",function(){n.execCommand("enableObjectResizing",true,true)});var s=this.$editor.text();var o=e.emojiarea.icons;for(var u in o){for(var l in o[u]["icons"]){if(o[u]["icons"].hasOwnProperty(l)){s=s.replace(new RegExp(a.escapeRegex(l),"g"),f.createIcon(u,l))}}}this.$editor.html(s);t.hide().after(this.$editor);this.setup();this.$button.on("mousedown",function(){if(i.hasFocus){i.selection=a.saveSelection()}})};c.prototype.onChange=function(){this.$textarea.val(this.val()).trigger("change")};c.prototype.insert=function(t,n){var r;var i=e(f.createIcon(t,n));if(i[0].attachEvent){i[0].attachEvent("onresizestart",function(e){e.returnValue=false},false)}this.$editor.trigger("focus");if(this.selection){a.restoreSelection(this.selection)}try{a.replaceSelection(i[0])}catch(s){}this.onChange()};c.prototype.val=function(){var e=[];var t=[];var n=function(){e.push(t.join(""));t=[]};var o=function(e){if(e.nodeType===i){t.push(e.nodeValue)}else if(e.nodeType===r){var u=e.tagName.toLowerCase();var a=s.indexOf(u)!==-1;if(a&&t.length)n();if(u==="img"){var f=e.getAttribute("alt")||"";if(f)t.push(f);return}else if(u==="br"){n()}var l=e.childNodes;for(var c=0;c");this.$menu.addClass("emoji-menu");this.$menu.hide();this.$items=e("
").appendTo(this.$menu);i.append(this.$menu);i.on("keydown",function(e){if(e.keyCode===o||e.keyCode===u){r.hide()}});i.on("mouseup",function(){r.hide()});s.on("resize",function(){if(r.visible)r.reposition()});this.$menu.on("mouseup","a",function(e){e.stopPropagation();return false});this.$menu.on("click","a",function(n){var i=e(".label",e(this)).text();var s=e(".label",e(this)).parent().parent().attr("group");if(s&&i!==""){t.setTimeout(function(){r.onItemSelected.apply(r,[s,i])},0);n.stopPropagation();return false}});this.load()};h.prototype.onItemSelected=function(e,t){this.emojiarea.insert(e,t);this.hide()};h.prototype.load=function(){var t=[];var n=[];var r=e.emojiarea.icons;var i=e.emojiarea.path;if(i.length&&i.charAt(i.length-1)!=="/"){i+="/"}n.push('");this.$items.html(t.join(""));this.$menu.prepend(n.join(""));this.$menu.find(".tab_switch").each(function(t){if(t!=0){var n=e(this).attr("href");e(n).hide()}else{e(this).addClass("active")}e(this).click(function(){e(this).addClass("active");e(this).siblings().removeClass("active");e(".select_group").hide();var t=e(this).attr("href");e(t).show()})})};h.prototype.reposition=function(){var e=this.emojiarea.$button;var t=e.offset();t.top+=e.outerHeight();t.left+=Math.round(e.outerWidth()/2);this.$menu.css({top:t.top,left:t.left})};h.prototype.hide=function(e){if(this.emojiarea){this.emojiarea.menu=null;this.emojiarea.$button.removeClass("on");this.emojiarea=null}this.visible=false;this.$menu.hide()};h.prototype.show=function(e){if(this.emojiarea&&this.emojiarea===e)return;this.emojiarea=e;this.emojiarea.menu=this;this.reposition();this.$menu.show();this.visible=true};h.show=function(){var e=null;return function(t){e=e||new h;e.show(t)}}()})(jQuery,window,document);