diff --git a/js/app.js b/js/app.js
index 32c6b5d2..56627ddb 100644
--- a/js/app.js
+++ b/js/app.js
@@ -37,6 +37,6 @@ e.put("partials/mobile/channel_modal.html",'
\n\n <
e.put("partials/mobile/im.html",'
\n\n
\n\n
\n\n
\n\n
\n\n
\n \n
\n\n
\n
\n\n
\n\n
\n
\n
\n \n \n \n \n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
'),e.put("partials/mobile/import_contact_modal.html",'
'),e.put("partials/mobile/login.html",'
\n\n\n
\n\n'),e.put("partials/mobile/message.html",'
\n\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n
\n\n
\n\n \n\n
\n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n'),e.put("partials/mobile/message_actions_modal.html",'
\n\n
\n \n \n \n \n \n
\n\n
\n'),e.put("partials/mobile/message_attach_contact.html",'
'),e.put("partials/mobile/message_attach_document.html",'
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n'),
e.put("partials/mobile/message_attach_geo.html",'
\n
\n'),e.put("partials/mobile/message_attach_pending.html",'
\n'),e.put("partials/mobile/message_attach_photo.html",'
\n
\n\n
'),e.put("partials/mobile/message_attach_venue.html",'
\n'),e.put("partials/mobile/message_attach_webpage.html",'
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),e.put("partials/mobile/message_service.html",'
\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n'),e.put("partials/mobile/password_recovery_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n\n
'),e.put("partials/mobile/password_update_modal.html",'
'),e.put("partials/mobile/peer_select.html",'
\n'),e.put("partials/mobile/phonebook_modal.html",'
\n'),e.put("partials/mobile/photo_modal.html",'
\n\n
\n\n
\n\n'),e.put("partials/mobile/profile_edit_modal.html",'
'),e.put("partials/mobile/sessions_list_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n \n \n \n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
\n'),e.put("partials/mobile/settings_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n \n \n \n \n \n \n \n \n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n'),
e.put("partials/mobile/stickerset_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n \n \n \n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
'),e.put("partials/mobile/user_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n\n
\n\n
\n\n
\n\n
\n'),e.put("partials/mobile/username_edit_modal.html",'
\n\n
\n\n
\n\n
\n\n
\n\n
'),e.put("partials/mobile/video_modal.html",'
\n\n
\n\n
\n\n')}]),function(e,t,n,a){function i(e){ConfigStorage.get("emojis_popular",function(t){var n=[];if(t&&t.length){for(var a=0,i=t.length;a
41&&(i=i.slice(0,41)),i.push([e,1])),ConfigStorage.set({emojis_popular:i})})}function s(){if(v===!1){v=SearchIndexManager.createIndex();var e;for(e in f)f.hasOwnProperty(e)&&SearchIndexManager.indexObject(f[e],e,v)}}function r(e){s();var t,n=SearchIndexManager.search(e,v),a=[];for(t in n)n.hasOwnProperty(t)&&a.push(t);return a}var l,c,d,u,p,m,g,h,t={},f={},_={},v=!1,y="joy,kissing_heart,heart,heart_eyes,blush,grin,+1,relaxed,pensive,smile,sob,kiss,unamused,flushed,stuck_out_tongue_winking_eye,see_no_evil,wink,smiley,cry,stuck_out_tongue_closed_eyes,scream,rage,smirk,disappointed,sweat_smile,kissing_closed_eyes,speak_no_evil,relieved,grinning,yum,laughing,ok_hand,neutral_face,confused".split(",");for(l=0,g=n.length;l '+this.langpack.im_stickers_tab+'
';e=e.replace(/>\s+<");var t=this;this.tooltipEl=$(e).appendTo(document.body),this.tabsEl=$(".composer_emoji_tooltip_tabs",this.tooltipEl),this.categoriesEl=$(".composer_emoji_tooltip_categories",this.tooltipEl),this.stickersCategoriesEl=$(".composer_emoji_tooltip_tab_stickers_content .composer_emoji_tooltip_categories",this.tooltipEl),this.contentEl=$(".composer_emoji_tooltip_content",this.tooltipEl),this.emojiContentEl=$(".composer_emoji_tooltip_content_emoji",this.tooltipEl),this.stickersContentEl=$(".composer_emoji_tooltip_content_stickers",this.tooltipEl),angular.forEach(["emoji","stickers"],function(e,n){var a=$(".composer_emoji_tooltip_tab_"+e,t.tabsEl).on("mousedown",function(e){return t.selectTab(n),cancelEvent(e)});Config.Navigator.touch||a.on("mouseenter mouseleave",function(e){clearTimeout(t.selectTabTimeout),"mouseenter"==e.type&&(t.selectTabTimeout=setTimeout(function(){t.selectTab(n)},300))})});var n="mousedown";return Config.Navigator.touch||(n+=" mouseover mouseout"),this.categoriesEl.on(n,function(e){e=e.originalEvent||e;var n=e.target;if("A"!=n.tagName&&(n=n.parentNode),"A"==n.tagName){var a=parseInt(n.getAttribute("data-category"));if("mousedown"==e.type)return t.selectCategory(a),cancelEvent(e);if(!t.tab){var i="mouseover"==e.type;i&&t.selectCategoryIndex==a||(clearTimeout(t.selectCategoryTimeout),delete t.selectCategoryTimeout,i?(t.selectCategoryIndex=a,t.selectCategoryTimeout=setTimeout(function(){delete t.selectCategoryIndex,delete t.selectCategoryTimeout,t.selectCategory(a)},300)):delete t.selectCategoryIndex)}}}),this.emojiScroller=new Scroller(this.emojiContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller=new Scroller(this.stickersContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller.onScroll(function(e,n){t.onStickersScroll(e,n)}),this.contentEl.on("mousedown",function(e){e=e.originalEvent||e;var n,a,i,o=$(e.target);return"A"!=o[0].tagName&&(o=$(o[0].parentNode)),(n=o.attr("data-code"))&&(t.onEmojiSelected&&t.onEmojiSelected(n),EmojiHelper.pushPopularEmoji(n)),(a=o.attr("data-sticker"))&&(t.onStickerSelected&&t.onStickerSelected(a),Config.Mobile&&t.hide()),(i=o.attr("data-stickerset"))&&(t.onStickersetSelected&&t.onStickersetSelected(i),t.hide()),cancelEvent(e)}),Config.Navigator.touch||this.tooltipEl.on("mouseenter mouseleave",function(e){"mouseenter"==e.type?t.onMouseEnter():t.onMouseLeave()}),this.selectTab(0),$(window).on("resize",this.updatePosition.bind(this)),!0},EmojiTooltip.prototype.selectCategory=function(e,t){return!(!this.tab&&this.cat===e&&!t)&&($(".active",this.categoriesEl).removeClass("active"),this.cat=e,void(this.tab?(this.activateStickerCategory(),this.updateStickersContents(t)):($(this.categoriesEl[this.tab].childNodes[e]).addClass("active"),this.updateEmojiContents())))},EmojiTooltip.prototype.selectTab=function(e,t){if(this.tab===e&&!t)return!1;this.tab=e,this.selectCategory(0,!0);var n=this;setTimeout(function(){$(n.tooltipEl).toggleClass("composer_emoji_tooltip_tabs_stickers_active",1==e)},0)},EmojiTooltip.prototype.updateEmojiContents=function(){var e=[],t=this,n=26,a=function(){t.emojiContentEl.html(e.join("")),t.emojiScroller.reinit()};if(this.cat>0){var i,o,s,r,l,c=this.cat-1,d=Config.EmojiCategories[c],u=Config.EmojiCategorySpritesheetDimens[c][1],p=d.length;for(s=0;s');a()}else EmojiHelper.getPopularEmoji(function(t){var i,o,s,r,l,c,d,u,p=t.length;for(c=0;c
'));a()})},EmojiTooltip.prototype.updateStickersContents=function(e){var t=[],n=[],a=this,i=function(){var t=a.cat?a.stickersetPositions[a.cat][0]:0;a.stickersScroller.scrollTo(t,e?0:200)};if(!e&&a.stickersetPositions.length)return void i();var o=function(e){var o,s,r,l,c,d;for(r=0,c=e.length;r'),o.title&&t.push('',encodeEntities(o.title),""),o.id?n.push(''):n.push(''),l=0,d=o.docIDs.length;l');t.push("")}a.stickersContentEl.html(t.join("")),a.stickersCategoriesEl.html(n.join("")),a.stickersScroller.reinit();var u=[];$(".composer_stickerset_wrap",a.stickersContentEl).each(function(e,t){var n=t.offsetHeight,a=t.offsetTop;u.push([a,n])}),a.stickersetPositions=u,i();var p=[];a.contentEl.find(".composer_sticker_btn").each(function(e,t){e<12?a.replaceStickerImage(t):p.push([t.offsetTop,t])}),a.stickersPreload=p,a.stickersCategoriesEl.find(".composer_sticker_btn").each(function(e,t){a.replaceStickerImage(t)})};this.getStickers(o)},EmojiTooltip.prototype.replaceStickerImage=function(e){e=$(e),this.getStickerImage(e,e.attr("data-sticker"))},EmojiTooltip.prototype.onStickersScroll=function(e,t){var n,a,i=e.clientHeight,o=e.scrollHeight,s=this.stickersetPositions.length,r=!1;if(t<20)r=0;else if(t>o-i-20)r=s-1;else for(a=0;a=n[0]&&t=t&&n[0]<=t+i&&(this.replaceStickerImage(n[1]),this.stickersPreload.splice(a,1),a--,s--);this.cat!==r&&r!==!1&&($(".active",this.categoriesEl).removeClass("active"),this.cat=r,this.activateStickerCategory())},EmojiTooltip.prototype.onStickersChanged=function(){this.tab&&this.updateStickersContents(!0)},EmojiTooltip.prototype.activateStickerCategory=function(){var e=this.categoriesEl[1],t=e.childNodes[this.cat];if(t){$(t).addClass("active");var n=t.offsetLeft,a=t.offsetWidth,i=e.clientWidth;$(e).stop(!0).animate({scrollLeft:n-(i-a)/2},200)}},EmojiTooltip.prototype.updatePosition=function(){var e=this.btnEl.offset();this.tooltipEl.css({top:e.top,left:e.left})},EmojiTooltip.prototype.show=function(){this.updatePosition(),this.tab?this.updateStickersContents(!0):this.updateEmojiContents(),this.tooltipEl.addClass("composer_emoji_tooltip_shown"),this.btnEl.addClass("composer_emoji_insert_btn_on"),delete this.showTimeout,this.shown=!0},EmojiTooltip.prototype.hide=function(){this.tooltipEl&&(this.tooltipEl.removeClass("composer_emoji_tooltip_shown"),this.btnEl.removeClass("composer_emoji_insert_btn_on")),delete this.hideTimeout,delete this.shown},EmojiPanel.prototype.update=function(){var e=[],t=this,n=Config.Mobile?26:20;EmojiHelper.getPopularEmoji(function(a){var i,o,s,r,l,c,d,u,p=a.length;for(c=0;c'));t.containerEl.html(e.join(""))})},MessageComposer.autoCompleteRegEx=/(\s|^)(:|@|\/)([\S]*)$/,MessageComposer.prototype.setUpInput=function(){if(this.inlinePlaceholderWrap=$('
').prependTo(this.textareaEl[0].parentNode),this.inlinePlaceholderPrefixEl=$('').appendTo(this.inlinePlaceholderWrap),this.inlinePlaceholderEl=$('').appendTo(this.inlinePlaceholderWrap),"contentEditable"in document.body?this.setUpRich():this.setUpPlaintext(),!Config.Mobile){var e=getScrollWidth();e&&(this.richTextareaEl||this.textareaEl).css({marginRight:-e})}},MessageComposer.prototype.setInlinePlaceholder=function(e,t){this.inlinePlaceholderPrefix=e,this.inlinePlaceholderPrefixEl.html(encodeEntities(e)),this.inlinePlaceholderEl.html(encodeEntities(t)),this.onChange()},MessageComposer.prototype.updateInlinePlaceholder=function(){var e=this.inlinePlaceholderPrefix;if(e){var t=this.textareaEl.val();this.inlinePlaceholderWrap.toggleClass("active",t==e)}},MessageComposer.prototype.setUpAutoComplete=function(){this.scroller=new Scroller(this.autoCompleteEl,{maxHeight:180});var e=this;this.autoCompleteEl.on("mousedown",function(t){t=t.originalEvent||t;for(var n,a,i,o,s=t.target;s&&"A"!=s.tagName;)s=s.parentNode;return s?(s=$(s),(a=s.attr("data-code"))&&(e.onEmojiSelected&&e.onEmojiSelected(a,!0),EmojiHelper.pushPopularEmoji(a)),(n=s.attr("data-mention"))&&e.onMentionSelected(n,s.attr("data-name")),(i=s.attr("data-command"))&&(e.onCommandSelected&&e.onCommandSelected(i),e.hideSuggestions()),(o=s.attr("data-inlineid"))&&(e.onInlineResultSend&&e.onInlineResultSend(o),e.hideSuggestions()),cancelEvent(t)):cancelEvent(t)})},MessageComposer.prototype.setUpRich=function(){this.textareaEl.hide(),this.richTextareaEl=$(''),this.textareaEl[0].parentNode.insertBefore(this.richTextareaEl[0],this.textareaEl[0]),this.richTextareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.richTextareaEl.on("focus blur",this.onFocusBlur.bind(this)),this.richTextareaEl.on("paste",this.onRichPaste.bind(this)),this.richTextareaEl.on("DOMNodeInserted",this.onRichPasteNode.bind(this)),$(document.body).on("keydown",this.backupSelection.bind(this))},MessageComposer.prototype.setUpPlaintext=function(){this.textareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.textareaEl.on("focus blur",this.onFocusBlur.bind(this))},MessageComposer.prototype.onKeyEvent=function(e){var t=this;if("keyup"==e.type){this.checkAutocomplete();var n=!1;if(this.richTextareaEl){clearTimeout(this.updateValueTO);var a=tsNow();void 0===this.keyupStarted&&(this.keyupStarted=a),a-this.keyupStarted>3e3,this.onChange()}if(this.onTyping){var a=tsNow();a-this.lastTyping>5e3&&(n===!1&&(n=(this.richTextareaEl?this.richTextareaEl[0].textContent:this.textareaEl[0].value).length),n!=this.lastLength&&(this.lastTyping=a,this.lastLength=n,this.onTyping()))}}if("keydown"==e.type){var i=!this.autocompleteShown;if(this.autocompleteShown){if(38==e.keyCode||40==e.keyCode){var o,s=40==e.keyCode,r=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active"),l=Array.prototype.slice.call($(this.autoCompleteEl).find("li"));if(r.length){var c=l.indexOf(r[0]),d=c+(s?1:-1);if(o=l[d],r.removeClass("composer_autocomplete_option_active"),o)return $(o).addClass("composer_autocomplete_option_active"),this.scroller.scrollToNode(o),cancelEvent(e)}return o=l[s?0:l.length-1],this.scroller.scrollToNode(o),$(o).addClass("composer_autocomplete_option_active"),cancelEvent(e)}if(13==e.keyCode||9==e.keyCode){var r=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active");r.length||9!=e.keyCode||(r=$(this.autoCompleteEl).find("li:first")),r=r.find("a:first");var u,p,m,g;if(u=r.attr("data-code"))return this.onEmojiSelected(u,!0),EmojiHelper.pushPopularEmoji(u),cancelEvent(e);if(p=r.attr("data-mention"))return this.onMentionSelected(p,r.attr("data-name")),cancelEvent(e);if(m=r.attr("data-command"))return this.onCommandSelected&&this.onCommandSelected(m,9==e.keyCode),cancelEvent(e);if(g=r.attr("data-inlineid"))return t.onInlineResultSend&&t.onInlineResultSend(g),t.hideSuggestions(),cancelEvent(e);i=!0}}if(i&&13==e.keyCode){var h=!1,f=!0;if(this.getSendOnEnter&&!this.getSendOnEnter()&&(f=!1),f&&!e.shiftKey?h=!0:f||!e.ctrlKey&&!e.metaKey||(h=!0),h)return this.onMessageSubmit(e),cancelEvent(e)}}},MessageComposer.prototype.backupSelection=function(){if(delete this.selection,this.isActive)if(window.getSelection){var e=window.getSelection();e.getRangeAt&&e.rangeCount&&(this.selection=e.getRangeAt(0))}else document.selection&&document.selection.createRange&&(this.selection=document.selection.createRange())},MessageComposer.prototype.restoreSelection=function(){if(!this.selection)return!1;var e=!1;if(window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(this.selection),e=!0}else document.selection&&this.selection.select&&(this.selection.select(),e=!0);return delete this.selection,e},MessageComposer.prototype.checkAutocomplete=function(e){var t,n;if(this.richTextareaEl){var a=this.richTextareaEl[0],i=getRichValueWithCaret(a),n=i[0],t=i[1]>=0?i[1]:n.length;t||this.cleanRichTextarea(n,!0)}else var a=this.textareaEl[0],t=getFieldSelection(a),n=a.value;if(n&&this.curInlineResults&&this.curInlineResults.text==n)return void this.showInlineSuggestions(this.curInlineResults);e||(n=n.substr(0,t));var o=n.match(MessageComposer.autoCompleteRegEx);if(o){if(this.previousQuery==o[0])return;this.previousQuery=o[0];var s=SearchIndexManager.cleanSearchText(o[3]);if("@"==o[2])if(this.mentions&&this.mentions.index){if(s.length)for(var r,l=SearchIndexManager.search(s,this.mentions.index),c=[],d=0,u=this.mentions.users.length;d=0)||(i.push(n),t.splice(a,1),t.length));o++);this.showEmojiSuggestions(i.concat(t))}else this.hideSuggestions()}else this.showEmojiSuggestions(e)}.bind(this));else if(this.commands&&this.commands.index){if(s.length)for(var p,l=SearchIndexManager.search(s,this.commands.index),m=[],d=0,u=this.commands.list.length;d0&&(this.richTextareaEl.html(""),this.lastLength=0,this.wasEmpty=!0,t))){var n=this;setZeroTimeout(function(){n.focus()})}},MessageComposer.prototype.onRichPasteNode=function(e){var t=(e.originalEvent||e).target,n=(t||{}).src||"",a=!1;if("data:"==n.substr(0,5)){a=!0;var i=dataUrlToBlob(n);this.onFilePaste(i),setZeroTimeout(function(){t.parentNode.replaceChild(document.createTextNode(" Â "),t)})}else if(n&&!n.match(/img\/blank\.gif/)){var o=document.createTextNode(" "+n+" ");setTimeout(function(){t.parentNode.replaceChild(o,t)},100)}},MessageComposer.prototype.onEmojiSelected=function(e,t){if(this.richTextareaEl){var n=this.richTextareaEl[0];if(this.isActive||this.restoreSelection()||setRichFocus(n),t){var a,i=getRichValueWithCaret(n),o=i[0],s=i[1]>=0?i[1]:o.length,r=o.substr(s),l=o.substr(0,s),c=l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];a=c&&c[0]?l.substr(0,c.index)+":"+d[1]+":":l+":"+d[1]+":",n.value=f;var u;r.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+' '+this.getRichHtml(r),this.richTextareaEl.html(u),setRichFocus(n,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(a)+" ",this.richTextareaEl.html(u),setRichFocus(n))}else{var u=this.getEmojiHtml(e);if(window.getSelection){var p=window.getSelection();if(p.getRangeAt&&p.rangeCount){var m=document.createElement("div");m.innerHTML=u;var g=m.firstChild,h=p.getRangeAt(0);h.deleteContents(),h.insertNode(document.createTextNode(" ")),h.insertNode(g),h.setStart(g,0),setTimeout(function(){h=document.createRange(),
-h.setStartAfter(g),h.collapse(!0),p.removeAllRanges(),p.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(u)}}else{var n=this.textareaEl[0],o=n.value,s=this.isActive?getFieldSelection(n):o.length,r=o.substr(s),l=o.substr(0,s),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var f=l.substr(0,c.index)+":"+d[1]+": "+r,_=c.index+d[1].length+3;else var f=l+":"+d[1]+": "+r,_=l.length+d[1].length+3;n.value=f,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var a=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(a);var i,o=getRichValueWithCaret(a),s=o[0],r=o[1]>=0?o[1]:s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var u;n?l.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' '+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(i)+" ",this.richTextareaEl.html(u),setRichFocus(a)):(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' ('+encodeEntities(t)+") "+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0],!0))}else{var i,p,m,g,a=this.textareaEl[0],s=a.value,r=this.isActive?getFieldSelection(a):s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(p=i+"@"+e+" "+l,m=d.index+e.length+2):(p=i+"@"+e+" ("+t+") "+l,m=d.index+e.length+2,g=m+t.length),a.value=p,setFieldSelection(a,m,g)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+" "),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,a=EmojiHelper.spritesheetPositions[e],i=a[0],o=(a[1],n*a[3]),s=n*a[2];return'
'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],a=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var i=this.getRichHtml(t)+''+this.getRichHtml(n)+""+this.getRichHtml(a);this.richTextareaEl.html(i),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+a),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("").text(e).html();return t=t.replace(/\n/g,"
"),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g," Â ").replace(/^ | $/g,"Â ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="emoji",t.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="mentions",t.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="commands",t.autoCompleteScope.commands=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=this;"inline"==t.autoCompleteScope.type&&t.autoCompleteScope.botResults==e&&t.autocompleteShown||setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="inline",t.autoCompleteScope.botResults=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('
'),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('
'),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(a){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e
0){var a=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete a.isAnimatedScroll,a.useNano&&$(a.scroller).nanoScroller({flash:!0}),a.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,a=this.scrollable[0].scrollTop,i=this.scrollable[0].clientHeight;a>t?this.scrollTo(t):a
--- ---
',o=''+t("unread_messages_split")+"
",s="im_message_selected",r="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,a,i,o,s){function r(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var a=i.wrapMessageText(n.mid);$(".im_message_text",t).html(a.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var a=e.$new(!0);a.media=n.media,a.messageId=n.mid,m(a,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){if(!n.signID)return void $(".im_message_sign",t).hide();var a=e.$new(!0);a.signID=n.signID,h(a,function(e){$(".im_message_sign",t).replaceWith(e)})}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var a=e.$new(!0);a.markup=i.wrapReplyMarkup(n.reply_markup),a.messageId=n.mid,g(a,function(e){$(".im_message_keyboard",t).replaceWith(e)}),a.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":o.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":o.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":o.gameButtonClick(n.mid)}})}function u(e,t,n){r(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function p(e,t,n){var a=e.message;a.dir=!0;var i=a.mid;if(u(e,t,a),a.pending)var o=e.$on("messages_pending",function(){a.mid!=i&&(u(e,t,a),o())});e.$on("message_edit",function(n,i){i.mid==a.mid&&(i.justMedia?l(e,t,a):u(e,t,a))})}var m=e(''),g=e(''),h=e('
');return{link:p,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(i(e))}function a(e,a,i){var o=e.$eval(i.myMessageViews),s=t.getMessage(o).views||0;n(s,a),e.$on("message_views",function(e,t){t.mid==o&&n(t.views,a)})}var i=e("formatShortNumber");return{link:a}}]).directive("myReplyMarkup",function(){function e(e,t,n){var a=$(".reply_markup",t),i=new Scroller(a,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){i.updateHeight(),i.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){i.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,a){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,a){e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"),link:function(n,a){function i(e){var i=t.getMessage(n.messageId);if(i.message){var o=t.wrapMessageText(n.messageId);$(".im_message_game_message",a).html(o.valueOf()).show(),$(".im_message_game_description",a).hide()}else $(".im_message_game_message",a).html("").hide(),$(".im_message_game_description",a).show()}n.openGame=function(){e.gameButtonClick(n.messageId)},n.$on("message_edit",function(e,t){t.mid==n.messageId&&i()}),i()}}}]).directive("myMessagePending",function(){return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending")}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",function(){return{templateUrl:templateUrl("message_service")}}).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(n){i(e,t,n)});else{var a=e.$parent.$eval(n.myReplyMessage);i(e,t,a)}}function i(t,n,a){var i=t.replyMessage=e.wrapSingleMessage(a);if(i.loading)var s=t.$on("messages_downloaded",function(i,r){r.indexOf(a)!=-1&&(t.replyMessage=e.wrapForDialog(a),o(t,n),s())});else o(t,n)}function o(a,i){var o=a.replyMessage;return o&&!o.deleted&&o.to_id?(a.thumb=e.getMessageThumb(o,42,42),"A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:a}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(t,n,a){var o=t.$parent.$eval(a.myPinnedMessage),s=t.pinnedMessage=e.wrapSingleMessage(o);if(s.loading)var r=t.$on("messages_downloaded",function(a,s){s.indexOf(o)!=-1&&(t.pinnedMessage=e.wrapForDialog(o),i(t,n),r())});else i(t,n)}function i(a,i){var o=a.pinnedMessage;return o&&!o.deleted&&o.to_id?("A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,a){function i(e,t,n){n.watch?e.$watch("forwardMessages",function(){o(e,t)}):o(e,t)}function o(e,n){var a=e.forwardMessages,i=a.length,o=!1,s=1==i;e.thumb=!1,e.singleMessage=!1,angular.forEach(a,function(n){var a=t.getMessage(n);o===!1?o=a.fromID:o!==a.fromID&&(o=t.getMessagePeer(a)),s&&(e.thumb=t.getMessageThumb(a,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=o,e.count=i,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:i}}]).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,a){function i(t,i,o){function s(n){if(!p&&e.getTop())return!0;if(36==n.keyCode&&!n.shiftKey&&!n.ctrlKey&&n.altKey){var a=$(l).find(".im_dialog_wrap a");return a.length&&($(a[0]).trigger("mousedown"),l.scrollTop=0,$(r).nanoScroller({flash:!0})),cancelEvent(n)}if(27==n.keyCode||9==n.keyCode&&n.shiftKey&&!n.ctrlKey&&!n.metaKey)return p?c.value?$(u).trigger("click"):(t.$emit("esc_no_more"),setTimeout(function(){c.blur(),c.focus()},100)):(setFieldSelection(c),c.value&&c.select()),cancelEvent(n);if(p&&13==n.keyCode&&!Config.Navigator.mobile){var a=$(l).find(".im_dialog_selected")[0]||$(l).find(".im_dialog_wrap a")[0];return a&&$(a).trigger("mousedown"),cancelEvent(n)}if(!Config.Navigator.osX&&n.altKey&&n.shiftKey&&!n.ctrlKey&&!n.metaKey&&n.keyCode>=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var i=n.keyCode-49,o=$(l).find(".im_dialog_wrap"),s=o[i];return s&&($(s).find("a").trigger("mousedown"),scrollToNode(l,s,r)),cancelEvent(n)}var d,m,g,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,m=!d,g=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,m=!d,g=!0),d||m){if(!g&&(!p||n.metaKey))return!0;var s,a=!g&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0],f=a&&a.parentNode;if(f){var s=a[d?"nextSibling":"previousSibling"];if(!s||!s.className||s.className.indexOf("im_dialog_wrap")==-1){var o=$(l).find(".im_dialog_wrap"),_=o.index(a.parentNode),v=_+(d?1:-1);s=o[v]}}else{var o=$(l).find(".im_dialog_wrap");s=d?o[0]:o[o.length-1]}return g?s&&$(s).find("a").trigger("mousedown"):(f&&s&&$(f).find("a").removeClass("im_dialog_selected"),s&&$(s).find("a").addClass("im_dialog_selected")),s&&scrollToNode(l,s,r),cancelEvent(n)}}var r=$(".im_dialogs_wrap",i)[0],l=$(".im_dialogs_scrollable_wrap",i)[0],c=$(".im_dialogs_search_field",i)[0],d=$(".im_dialogs_panel",i)[0],u=$(".im_dialogs_search_clear",i)[0],p=!1;$(c).on("focus blur",function(e){p="focus"==e.type,p||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),a(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",s),t.$on("$destroy",function(){$(document).off("keydown",s)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,r)})})}return{link:i}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,a,i){function o(){if(u&&u.offsetHeight||(u=$(d)[0]),i.modal){var t=$(e).height()-(u?u.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(a).css({height:t}),void g()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".footer_wrap")[0]),r&&r.offsetHeight||(r=$(".im_dialogs_col_wrap")[0]);var n=p?p.offsetHeight:0;n&&n++,$(a).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(u?u.offsetHeight:58)-parseInt($(r).css("paddingBottom")||0)}),g()}var s=$(".im_dialogs_wrap",a)[0],r=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&i.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",u=$(d)[0],p=$(".footer_wrap")[0],m=!1;onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var g=function(){onContentLoaded(function(){$(s).nanoScroller()})};n.$on("ui_dialogs_prepend",g),n.$on("ui_dialogs_search",o),n.$on("ui_dialogs_update",o),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){a.is(":visible")&&!m&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),m=!0)}),$(e).on("resize",o),o(),setTimeout(o,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".contacts_modal_search")[0],s=$(".contacts_modal_panel")[0],r=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".countries_modal_search")[0],s=$(".countries_modal_panel")[0],r=$(".countries_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,a){function i(i,o,s){function r(e,n){var a,i,o,s=!1;if(!e&&(i=$(".im_message_focus:visible",p)[0])){var r=p.clientHeight,l=p.scrollTop,c=i.offsetTop,d=i.clientHeight;(!l||l+rc+d||n)&&(s=Math.max(0,c-Math.floor(r/2)+26)),A=!1,o=function(){var e=$(i).data("unfocus_promise");e&&(t.cancel(e),$(i).removeClass("im_message_focus_active")),t(function(){$(i).addClass("im_message_focus_active"),e=t(function(){$(i).removeClass("im_message_focus_active"),$(i).data("unfocus_promise",!1)},2800),$(i).data("unfocus_promise",e)})}}else(a=$(".im_message_unread_split:visible",p)[0])?(s=Math.max(0,a.offsetTop-52),A=!1):(s=p.scrollHeight,A=!0);if(s!==!1){var u=function(){S(),t(function(){$(p).trigger("scroll"),E=p.scrollTop}),o&&o()};n?$(p).animate({scrollTop:s},200,u):(p.scrollTop=s,u())}}function l(t){if(o.is(":visible")||$(o[0].parentNode.parentNode).is(":visible")){$(f).is(":visible")&&$(f).css({height:$(y).height()}),_&&_.offsetHeight||(_=$(".tg_page_head")[0]),v&&v.offsetHeight||(v=$(".footer_wrap")[0]);var n=v?v.offsetHeight:0;n&&n++;var a=$(e).height()-h.offsetHeight-(_?_.offsetHeight:48)-n;$(d).css({height:a}),c(),t!==!0&&(A&&onContentLoaded(function(){p.scrollTop=p.scrollHeight,S()}),S(100))}}function c(){$(u).css({marginTop:0});var e=p.offsetHeight-u.offsetHeight-g.offsetHeight-(Config.Mobile?0:39);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",o)[0],u=$(".im_history_messages",o)[0],p=($(".im_history",o)[0],$(".im_history_scrollable_wrap",o)[0]),m=$(".im_history_scrollable",o)[0],g=$(".im_history_empty_wrap",o)[0],h=$(".im_bottom_panel_wrap",o)[0],f=$(".im_send_form_wrap",o)[0],_=$(".tg_page_head")[0],v=$(".footer_wrap")[0],y=$(".im_send_form",o)[0],b=!1,w=!1;onContentLoaded(function(){p.scrollTop=p.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var k,S=function(e){t(function(){$(p).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},C=!1,M=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(k=0;k0;if(o)i=p.scrollHeight;else{var s=parseInt($(p).css("paddingRight"));$(m).css({bottom:0,paddingRight:s}),$(p).addClass("im_history_to_bottom")}onContentLoaded(function(){if(o){I=!0,$(u).removeClass("im_history_appending"),p.scrollTop=p.scrollHeight,$(u).css(C,"translate(0px, "+(p.scrollHeight-i)+"px)"),$(d).nanoScroller();var e={};e[C]="translate(0px, 0px)",$(u).addClass("im_history_appending"),a($(u),e).then(function(){I=!1,$(u).removeClass("im_history_appending"),c()})}else $(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:0}),p.scrollTop=p.scrollHeight,c()})}),i.$on("ui_history_change",function(){var e=parseInt($(p).css("paddingRight"));$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),l(!0),b=!1,w=!1,r()})}),i.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){r(!1,t)})}),i.$on("ui_history_focus",function(){A||(p.scrollTop=p.scrollHeight,S(),A=!0)}),i.$on("ui_history_prepend",function(){var e=p.scrollHeight,n=p.scrollTop,a=parseInt($(p).css("paddingRight")),o=p.clientHeight;$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:-(e-n-o),paddingRight:a});var s=function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),E>=0?r():p.scrollTop=n+p.scrollHeight-e,c(),b=!1,t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(s,0),d=i.$on("$viewContentLoaded",s)}),i.$on("ui_history_append",function(){var e=p.scrollHeight;onContentLoaded(function(){A=!1,c(),w=!1,E>=0&&r(),t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")})})}),i.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?i.$broadcast("ui_message_blur"):getSelectedText()||i.$broadcast("ui_message_send"),t(function(){$(p).trigger("scroll")})})}),i.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),i.$on("ui_editor_resize",l),i.$on("ui_height",function(){onContentLoaded(l)});var A=!0,E=-1;$(p).on("scroll",function(e){if(o.is(":visible")&&!$(p).hasClass("im_history_to_bottom")&&!I){var t=p.scrollTop;A=t>=p.scrollHeight-p.clientHeight,E>=0&&E!=t&&(E=-1),!b&&t<=300?(b=!0,i.$emit("history_need_more")):!w&&t>=p.scrollHeight-p.clientHeight-300&&(w=!0,i.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:i}}]).directive("mySendForm",["_","$q","$timeout","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m){function g(o,s,g){function h(){r.get("send_ctrlenter").then(function(e){j=!e})}function f(e){var t=this;return n(function(){v(),o.draftMessage.send(),L.resetTyping(),O&&O.update(),t.hideSuggestions()},m?0:100),cancelEvent(e)}function _(e){o.$apply(function(){o.draftMessage.inlineResultID=e})}function v(){B&&(L.onChange(),y())}function y(){var e=B.offsetHeight;H!=e&&(H=e,o.$emit("ui_editor_resize"))}function b(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||i.getTop()))return L.focus(),cancelEvent(e)}function w(){onContentLoaded(function(){L.focus()})}function k(e){var n=e.type||"",a=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(a=p.getFileCorrectUrl(e,n)),a.then(function(t){t=t||!1,d.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){o.draftMessage.files=[e],o.draftMessage.isMedia=!0})})}function S(e){var t,n,a=(e.originalEvent||e).clipboardData,i=a&&a.items||[],s=[];for(n=0;n0){if(1==s.length)return k(s[0]);d.confirm({type:"FILES_CLIPBOARD_PASTE",files:s}).then(function(){o.draftMessage.files=s,o.draftMessage.isMedia=!0})}}function C(e){var t=!1;return M&&1!=M||(M=checkDragEvent(e)?2:1,t=!0),2==M&&(x&&setTimeout(function(){clearTimeout(x),x=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&(Config.Mobile||$(A).hide(),$(D).css({height:P.offsetHeight+2,width:P.offsetWidth}).show()):("drop"==e.type&&o.$apply(function(){o.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),o.draftMessage.isMedia=!0}),x=setTimeout(function(){$(D).hide(),Config.Mobile||$(A).show(),M=!1,x=!1},300))),cancelEvent(e)}var M,x,I=$("textarea",s)[0],A=$(".composer_emoji_insert_btn",s)[0],E=$(".composer_emoji_panel",s)[0],T=$("input",s),D=$(".im_send_dropbox_wrap",s)[0],P=$(".im_send_field_wrap",s)[0],F=$(".im_submit",s)[0],N=a(''),R={},U=new EmojiTooltip(A,{getStickers:function(e){l.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),a=R[t];
+h.setStartAfter(g),h.collapse(!0),p.removeAllRanges(),p.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(u)}}else{var n=this.textareaEl[0],o=n.value,s=this.isActive?getFieldSelection(n):o.length,r=o.substr(s),l=o.substr(0,s),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var f=l.substr(0,c.index)+":"+d[1]+": "+r,_=c.index+d[1].length+3;else var f=l+":"+d[1]+": "+r,_=l.length+d[1].length+3;n.value=f,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var a=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(a);var i,o=getRichValueWithCaret(a),s=o[0],r=o[1]>=0?o[1]:s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var u;n?l.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' '+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(i)+" ",this.richTextareaEl.html(u),setRichFocus(a)):(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' ('+encodeEntities(t)+") "+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0],!0))}else{var i,p,m,g,a=this.textareaEl[0],s=a.value,r=this.isActive?getFieldSelection(a):s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(p=i+"@"+e+" "+l,m=d.index+e.length+2):(p=i+"@"+e+" ("+t+") "+l,m=d.index+e.length+2,g=m+t.length),a.value=p,setFieldSelection(a,m,g)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+" "),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,a=EmojiHelper.spritesheetPositions[e],i=a[0],o=(a[1],n*a[3]),s=n*a[2];return'
'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],a=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var i=this.getRichHtml(t)+''+this.getRichHtml(n)+""+this.getRichHtml(a);this.richTextareaEl.html(i),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+a),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("").text(e).html();return t=t.replace(/\n/g,"
"),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g," Â ").replace(/^ | $/g,"Â ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="emoji",t.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="mentions",t.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="commands",t.autoCompleteScope.commands=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=this;"inline"==t.autoCompleteScope.type&&t.autoCompleteScope.botResults==e&&t.autocompleteShown||setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="inline",t.autoCompleteScope.botResults=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('
'),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('
'),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(a){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e
0){var a=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete a.isAnimatedScroll,a.useNano&&$(a.scroller).nanoScroller({flash:!0}),a.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,a=this.scrollable[0].scrollTop,i=this.scrollable[0].clientHeight;a>t?this.scrollTo(t):a
--- ---
',o=''+t("unread_messages_split")+"
",s="im_message_selected",r="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,a,i,o,s){function r(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var a=i.wrapMessageText(n.mid);$(".im_message_text",t).html(a.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var a=e.$new(!0);a.media=n.media,a.messageId=n.mid,m(a,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){if(!n.signID)return void $(".im_message_sign",t).hide();var a=e.$new(!0);a.signID=n.signID,h(a,function(e){$(".im_message_sign",t).replaceWith(e)})}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var a=e.$new(!0);a.markup=i.wrapReplyMarkup(n.reply_markup),a.messageId=n.mid,g(a,function(e){$(".im_message_keyboard",t).replaceWith(e)}),a.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":o.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":o.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":o.gameButtonClick(n.mid)}})}function u(e,t,n){r(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function p(e,t,n){var a=e.message;a.dir=!0;var i=a.mid;if(u(e,t,a),a.pending)var o=e.$on("messages_pending",function(){a.mid!=i&&(u(e,t,a),o())});e.$on("message_edit",function(n,i){i.mid==a.mid&&(i.justMedia?l(e,t,a):u(e,t,a))})}var m=e(''),g=e(''),h=e('
');return{link:p,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(i(e))}function a(e,a,i){var o=e.$eval(i.myMessageViews),s=t.getMessage(o).views||0;n(s,a),e.$on("message_views",function(e,t){t.mid==o&&n(t.views,a)})}var i=e("formatShortNumber");return{link:a}}]).directive("myReplyMarkup",function(){function e(e,t,n){var a=$(".reply_markup",t),i=new Scroller(a,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){i.updateHeight(),i.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){i.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,a){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,a){e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"),link:function(n,a){function i(e){var i=t.getMessage(n.messageId);if(i.message){var o=t.wrapMessageText(n.messageId);$(".im_message_game_message",a).html(o.valueOf()).show(),$(".im_message_game_description",a).hide()}else $(".im_message_game_message",a).html("").hide(),$(".im_message_game_description",a).show()}n.openGame=function(){e.gameButtonClick(n.messageId)},n.$on("message_edit",function(e,t){t.mid==n.messageId&&i()}),i()}}}]).directive("myMessagePending",function(){return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending")}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",function(){return{templateUrl:templateUrl("message_service")}}).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(n){i(e,t,n)});else{var a=e.$parent.$eval(n.myReplyMessage);i(e,t,a)}}function i(t,n,a){var i=t.replyMessage=e.wrapSingleMessage(a);if(i.loading)var s=t.$on("messages_downloaded",function(i,r){r.indexOf(a)!=-1&&(t.replyMessage=e.wrapForDialog(a),o(t,n),s())});else o(t,n)}function o(a,i){var o=a.replyMessage;return o&&!o.deleted&&o.to_id?(a.thumb=e.getMessageThumb(o,42,42),"A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:a}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(t,n,a){var o=t.$parent.$eval(a.myPinnedMessage),s=t.pinnedMessage=e.wrapSingleMessage(o);if(s.loading)var r=t.$on("messages_downloaded",function(a,s){s.indexOf(o)!=-1&&(t.pinnedMessage=e.wrapForDialog(o),i(t,n),r())});else i(t,n)}function i(a,i){var o=a.pinnedMessage;return o&&!o.deleted&&o.to_id?("A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,a){function i(e,t,n){n.watch?e.$watch("forwardMessages",function(){o(e,t)}):o(e,t)}function o(e,n){var a=e.forwardMessages,i=a.length,o=!1,s=1==i;e.thumb=!1,e.singleMessage=!1,angular.forEach(a,function(n){var a=t.getMessage(n);o===!1?o=a.fromID:o!==a.fromID&&(o=t.getMessagePeer(a)),s&&(e.thumb=t.getMessageThumb(a,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=o,e.count=i,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:i}}]).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,a){function i(t,i,o){function s(n){if(!p&&e.getTop())return!0;if(36==n.keyCode&&!n.shiftKey&&!n.ctrlKey&&n.altKey){var a=$(l).find(".im_dialog_wrap a");return a.length&&($(a[0]).trigger("mousedown"),l.scrollTop=0,$(r).nanoScroller({flash:!0})),cancelEvent(n)}if(27==n.keyCode||9==n.keyCode&&n.shiftKey&&!n.ctrlKey&&!n.metaKey)return p?c.value?$(u).trigger("click"):(t.$emit("esc_no_more"),setTimeout(function(){c.blur(),c.focus()},100)):(setFieldSelection(c),c.value&&c.select()),cancelEvent(n);if(p&&13==n.keyCode&&!Config.Navigator.mobile){var a=$(l).find(".im_dialog_selected")[0]||$(l).find(".im_dialog_wrap a")[0];return a&&$(a).trigger("mousedown"),cancelEvent(n)}if(!Config.Navigator.osX&&n.altKey&&n.shiftKey&&!n.ctrlKey&&!n.metaKey&&n.keyCode>=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var i=n.keyCode-49,o=$(l).find(".im_dialog_wrap"),s=o[i];return s&&($(s).find("a").trigger("mousedown"),scrollToNode(l,s,r)),cancelEvent(n)}var d,m,g,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,m=!d,g=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,m=!d,g=!0),d||m){if(!g&&(!p||n.metaKey))return!0;var s,a=!g&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0],f=a&&a.parentNode;if(f){var s=a[d?"nextSibling":"previousSibling"];if(!s||!s.className||s.className.indexOf("im_dialog_wrap")==-1){var o=$(l).find(".im_dialog_wrap"),_=o.index(a.parentNode),v=_+(d?1:-1);s=o[v]}}else{var o=$(l).find(".im_dialog_wrap");s=d?o[0]:o[o.length-1]}return g?s&&$(s).find("a").trigger("mousedown"):(f&&s&&$(f).find("a").removeClass("im_dialog_selected"),s&&$(s).find("a").addClass("im_dialog_selected")),s&&scrollToNode(l,s,r),cancelEvent(n)}}var r=$(".im_dialogs_wrap",i)[0],l=$(".im_dialogs_scrollable_wrap",i)[0],c=$(".im_dialogs_search_field",i)[0],d=$(".im_dialogs_panel",i)[0],u=$(".im_dialogs_search_clear",i)[0],p=!1;$(c).on("focus blur",function(e){p="focus"==e.type,p||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),a(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",s),t.$on("$destroy",function(){$(document).off("keydown",s)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,r)})})}return{link:i}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,a,i){function o(){if(u&&u.offsetHeight||(u=$(d)[0]),i.modal){var t=$(e).height()-(u?u.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(a).css({height:t}),void g()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".footer_wrap")[0]),r&&r.offsetHeight||(r=$(".im_dialogs_col_wrap")[0]);var n=p?p.offsetHeight:0;n&&n++,$(a).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(u?u.offsetHeight:58)-parseInt($(r).css("paddingBottom")||0)}),g()}var s=$(".im_dialogs_wrap",a)[0],r=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&i.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",u=$(d)[0],p=$(".footer_wrap")[0],m=!1;onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var g=function(){onContentLoaded(function(){$(s).nanoScroller()})};n.$on("ui_dialogs_prepend",g),n.$on("ui_dialogs_search",o),n.$on("ui_dialogs_update",o),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){a.is(":visible")&&!m&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),m=!0)}),$(e).on("resize",o),o(),setTimeout(o,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".contacts_modal_search")[0],s=$(".contacts_modal_panel")[0],r=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".countries_modal_search")[0],s=$(".countries_modal_panel")[0],r=$(".countries_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,a){function i(i,o,s){function r(e,n){var a,i,o,s=!1;if(!e&&(i=$(".im_message_focus:visible",p)[0])){var r=p.clientHeight,l=p.scrollTop,c=i.offsetTop,d=i.clientHeight;(!l||l+rc+d||n)&&(s=Math.max(0,c-Math.floor(r/2)+26)),A=!1,o=function(){var e=$(i).data("unfocus_promise");e&&(t.cancel(e),$(i).removeClass("im_message_focus_active")),t(function(){$(i).addClass("im_message_focus_active"),e=t(function(){$(i).removeClass("im_message_focus_active"),$(i).data("unfocus_promise",!1)},2800),$(i).data("unfocus_promise",e)})}}else(a=$(".im_message_unread_split:visible",p)[0])?(s=Math.max(0,a.offsetTop-52),A=!1):(s=p.scrollHeight,A=!0);if(s!==!1){var u=function(){S(),t(function(){$(p).trigger("scroll"),E=p.scrollTop}),o&&o()};n?$(p).animate({scrollTop:s},200,u):(p.scrollTop=s,u())}}function l(t){if(o.is(":visible")||$(o[0].parentNode.parentNode).is(":visible")){$(f).is(":visible")&&$(f).css({height:$(y).height()}),_&&_.offsetHeight||(_=$(".tg_page_head")[0]),v&&v.offsetHeight||(v=$(".footer_wrap")[0]);var n=v?v.offsetHeight:0;n&&n++;var a=$(e).height()-h.offsetHeight-(_?_.offsetHeight:48)-n;$(d).css({height:a}),c(),t!==!0&&(A&&onContentLoaded(function(){p.scrollTop=p.scrollHeight,S()}),S(100))}}function c(){$(u).css({marginTop:0});var e=p.offsetHeight-u.offsetHeight-g.offsetHeight-(Config.Mobile?0:39);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",o)[0],u=$(".im_history_messages",o)[0],p=($(".im_history",o)[0],$(".im_history_scrollable_wrap",o)[0]),m=$(".im_history_scrollable",o)[0],g=$(".im_history_empty_wrap",o)[0],h=$(".im_bottom_panel_wrap",o)[0],f=$(".im_send_form_wrap",o)[0],_=$(".tg_page_head")[0],v=$(".footer_wrap")[0],y=$(".im_send_form",o)[0],b=!1,w=!1;onContentLoaded(function(){p.scrollTop=p.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var k,S=function(e){t(function(){$(p).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},C=!1,M=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(k=0;k0;if(o)i=p.scrollHeight;else{var s=parseInt($(p).css("paddingRight"));$(m).css({bottom:0,paddingRight:s}),$(p).addClass("im_history_to_bottom")}onContentLoaded(function(){if(o){I=!0,$(u).removeClass("im_history_appending"),p.scrollTop=p.scrollHeight,$(u).css(C,"translate(0px, "+(p.scrollHeight-i)+"px)"),$(d).nanoScroller();var e={};e[C]="translate(0px, 0px)",$(u).addClass("im_history_appending"),a($(u),e).then(function(){I=!1,$(u).removeClass("im_history_appending"),c()})}else $(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:0}),p.scrollTop=p.scrollHeight,c()})}),i.$on("ui_history_change",function(){var e=parseInt($(p).css("paddingRight"));$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),l(!0),b=!1,w=!1,r()})}),i.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){r(!1,t)})}),i.$on("ui_history_focus",function(){A||(p.scrollTop=p.scrollHeight,S(),A=!0)}),i.$on("ui_history_prepend",function(){var e=p.scrollHeight,n=p.scrollTop,a=parseInt($(p).css("paddingRight")),o=p.clientHeight;$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:-(e-n-o),paddingRight:a});var s=function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),E>=0?r():p.scrollTop=n+p.scrollHeight-e,c(),b=!1,t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(s,0),d=i.$on("$viewContentLoaded",s)}),i.$on("ui_history_append",function(){var e=p.scrollHeight;onContentLoaded(function(){A=!1,c(),w=!1,E>=0&&r(),t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")})})}),i.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?i.$broadcast("ui_message_blur"):getSelectedText()||i.$broadcast("ui_message_send"),t(function(){$(p).trigger("scroll")})})}),i.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),i.$on("ui_editor_resize",l),i.$on("ui_height",function(){onContentLoaded(l)});var A=!0,E=-1;$(p).on("scroll",function(e){if(o.is(":visible")&&!$(p).hasClass("im_history_to_bottom")&&!I){var t=p.scrollTop;A=t>=p.scrollHeight-p.clientHeight,E>=0&&E!=t&&(E=-1),!b&&t<=300?(b=!0,i.$emit("history_need_more")):!w&&t>=p.scrollHeight-p.clientHeight-300&&(w=!0,i.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:i}}]).directive("mySendForm",["_","$q","$timeout","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m){function g(o,s,g){function h(){r.get("send_ctrlenter").then(function(e){j=!e})}function f(e){return n(function(){v(),o.draftMessage.send(),L.resetTyping(),O&&O.update(),L.hideSuggestions()},m?0:100),cancelEvent(e)}function _(e){o.$apply(function(){o.draftMessage.inlineResultID=e})}function v(){B&&(L.onChange(),y())}function y(){var e=B.offsetHeight;H!=e&&(H=e,o.$emit("ui_editor_resize"))}function b(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||i.getTop()))return L.focus(),cancelEvent(e)}function w(){onContentLoaded(function(){L.focus()})}function k(e){var n=e.type||"",a=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(a=p.getFileCorrectUrl(e,n)),a.then(function(t){t=t||!1,d.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){o.draftMessage.files=[e],o.draftMessage.isMedia=!0})})}function S(e){var t,n,a=(e.originalEvent||e).clipboardData,i=a&&a.items||[],s=[];for(n=0;n0){if(1==s.length)return k(s[0]);d.confirm({type:"FILES_CLIPBOARD_PASTE",files:s}).then(function(){o.draftMessage.files=s,o.draftMessage.isMedia=!0})}}function C(e){var t=!1;return M&&1!=M||(M=checkDragEvent(e)?2:1,t=!0),2==M&&(x&&setTimeout(function(){clearTimeout(x),x=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&(Config.Mobile||$(A).hide(),$(D).css({height:P.offsetHeight+2,width:P.offsetWidth}).show()):("drop"==e.type&&o.$apply(function(){o.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),o.draftMessage.isMedia=!0}),x=setTimeout(function(){$(D).hide(),Config.Mobile||$(A).show(),M=!1,x=!1},300))),cancelEvent(e)}var M,x,I=$("textarea",s)[0],A=$(".composer_emoji_insert_btn",s)[0],E=$(".composer_emoji_panel",s)[0],T=$("input",s),D=$(".im_send_dropbox_wrap",s)[0],P=$(".im_send_field_wrap",s)[0],F=$(".im_submit",s)[0],N=a(''),R={},U=new EmojiTooltip(A,{getStickers:function(e){l.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),a=R[t];
if(a&&!isInDOM(a[0]))return a.attr("data-category",n),void e.replaceWith(a);var i=o.$new(!0);i.document=c.getDoc(t),N(i,function(a){R[t]=a,a.attr("data-category",n),e.replaceWith(a)})},onStickersetSelected:function(e){l.openStickersetLink(e)},onEmojiSelected:function(e){o.$apply(function(){L.onEmojiSelected(e)})},onStickerSelected:function(e){o.$apply(function(){o.draftMessage.sticker=e})},langpack:{im_emoji_tab:e("im_emoji_tab"),im_stickers_tab:e("im_stickers_tab")}});o.$on("stickers_changed",function(){U.onStickersChanged()});var O;E&&(O=new EmojiPanel(E,{onEmojiSelected:function(e){L.onEmojiSelected(e)}}));var L=new MessageComposer(I,{onTyping:function(){o.$emit("ui_typing")},getSendOnEnter:function(){return j},dropdownDirective:function(e,t){var n=o.$new(!0);a("")(n,function(n,a){e.replaceWith(n),t(a,n)})},mentions:o.mentions,commands:o.commands,onMessageSubmit:f,onInlineResultSend:_,onFilePaste:k,onCommandSend:function(e){o.$apply(function(){o.draftMessage.command=e})}}),B=L.richTextareaEl&&L.richTextareaEl[0];B&&$(B).on("keydown keyup",y),o.$on("inline_results",function(e,t){var n=Config.Mobile?$(window).width():(P.offsetWidth||382)-2,a=80;t&&u.regroupWrappedResults(t.results,n,a),setZeroTimeout(function(){L.setInlineSuggestions(t)})}),o.$on("inline_placeholder",function(e,t){L.setInlinePlaceholder(t.prefix,t.placeholder)}),T.on("change",function(){var e=this;o.$apply(function(){o.draftMessage.files=Array.prototype.slice.call(e.files),o.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})});var j=!0;o.$on("settings_changed",h),h(),$(F).on("mousedown touchstart",f);var H=B&&B.offsetHeight;$(document).on("keydown",b),$("body").on("dragenter dragleave dragover drop",C),$(document).on("paste",S),m&&(o.$on("ui_peer_change",w),o.$on("ui_history_focus",w),o.$on("ui_history_change",w)),o.$on("ui_peer_change",L.resetTyping.bind(L)),o.$on("ui_peer_draft",function(t,n){n=n||{};var a=o.draftMessage.isBroadcast;L.setPlaceholder(e(a?"im_broadcast_field_placeholder_raw":"im_message_field_placeholder_raw")),n.customSelection?(L.setFocusedValue(n.customSelection),y()):(B&&(L.setValue(o.draftMessage.text||""),y()),(m||n&&n.focus)&&L.focus()),onContentLoaded(function(){L.checkAutocomplete(!0)}),U&&Config.Mobile&&U.hide()}),o.$on("ui_peer_reply",function(){onContentLoaded(function(){o.$emit("ui_editor_resize"),m&&L.focus()})}),o.$on("mentions_update",function(){L.onMentionsUpdated()}),o.$on("ui_message_before_send",function(){v()}),o.$on("ui_message_send",function(){m&&w()}),o.$on("ui_message_blur",function(){L.blur()}),o.$on("$destroy",function(){$(document).off("paste",S),$(document).off("keydown",b),$("body").off("dragenter dragleave dragover drop",C),$(F).off("mousedown touchstart"),T.off("change")}),m&&w()}return{link:g,scope:{draftMessage:"=",mentions:"=",commands:"="}}}]).directive("myLoadThumb",["MtpApiFileManager","FileManager",function(e,t){function n(n,a,i){var o=0,s=e.getCachedFile(n.thumb&&n.thumb.location&&!n.thumb.location.empty&&n.thumb.location);s&&a.attr("src",t.getUrl(s,"image/jpeg")),n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height));var r=n.$watchCollection("thumb.location",function(i){n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height),n.$emit("ui_height"));var s=++o;if(!i||i.empty)return a.attr("src",n.thumb&&n.thumb.placeholder||"img/blank.gif"),void l();var r=e.getCachedFile(i);return r?(a.attr("src",t.getUrl(r,"image/jpeg")),void l()):(a.attr("src")||a.attr("src",n.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(n.thumb.location).then(function(e){s==o&&(a.attr("src",t.getUrl(e,"image/jpeg")),l())},function(e){console.log("Download image failed",e,n.thumb.location,a[0]),s==o&&(a.attr("src",n.thumb.placeholder||"img/blank.gif"),l())}))}),l=i.watch?angular.noop:function(){setTimeout(function(){n.$destroy(),r()},0)}}return{link:n,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager","FileManager","_",function(e,t,n){function a(a,i,o){var s=$("img",i)[0],r=$(".img_fullsize_with_progress_wrap",i).add(".img_fullsize_progress_wrap",i).add($(s)),l=function(){r.css({width:a.fullPhoto.width,height:a.fullPhoto.height}),a.$emit("ui_height",!0)},c=0;a.$watchCollection("fullPhoto.location",function(){var i=e.getCachedFile(a.thumbLocation),o=++c;if(i?(s.src=t.getUrl(i,"image/jpeg"),l()):s.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",a.fullPhoto.location){var r;if(a.fullPhoto.size){var d={_:"inputFileLocation",volume_id:a.fullPhoto.location.volume_id,local_id:a.fullPhoto.location.local_id,secret:a.fullPhoto.location.secret};r=e.downloadFile(a.fullPhoto.location.dc_id,d,a.fullPhoto.size)}else r=e.downloadSmallFile(a.fullPhoto.location);a.progress={enabled:!0,percent:0},r.then(function(e){o==c&&(a.progress.enabled=!1,s.src=t.getUrl(e,"image/jpeg"),l())},function(e){console.log("Download image failed",e,a.fullPhoto.location),a.progress.enabled=!1,e&&"FS_BROWSER_UNSUPPORTED"==e.type?a.error={html:n("error_browser_no_local_file_system_image_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:a.error={text:n("error_image_download_failed"),error:e}},function(e){a.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),l()}return{link:a,transclude:!0,templateUrl:templateUrl("full_photo"),scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","AppDocsManager","ErrorService","_",function(e,t,n,a){function i(e,i,o){var s=t.downloadDoc(e.video.id);s.then(function(){e.$emit("ui_height"),onContentLoaded(function(){var e=$("video",i)[0];if(e){var t=!1,a=function(e){t||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(t=!0,n.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};e.addEventListener("error",a,!0),$(e).on("$destroy",function(){t=!0,e.removeEventListener("error",a)})}})},function(t){console.log("Download video failed",t,e.video),t&&"FS_BROWSER_UNSUPPORTED"==t.type?e.error={html:a("error_browser_no_local_file_system_video_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:e.error={text:a("error_video_download_failed"),error:t}}),e.$emit("ui_height"),e.$on("$destroy",function(){s.cancel()})}return{link:i,transclude:!0,templateUrl:templateUrl("full_video"),scope:{video:"="}}}]).directive("myLoadGif",["AppDocsManager","$timeout",function(e,t){function n(n,a,i){var o=$(".img_gif_image_wrap",a);o.css({width:n.document.thumb.width,height:n.document.thumb.height});var s=!1;n.isActive=!1,n.toggle=function(i){return i&&checkClick(i,!0)?(e.saveDocFile(n.document.id),!1):n.document.url?void onContentLoaded(function(){n.isActive=!n.isActive,n.$emit("ui_height");var e=$("video",a)[0];e&&(n.isActive?e.play():(e.pause(),e.currentTime=0))}):s?(s.cancel(),void(s=!1)):(s=e.downloadDoc(n.document.id),void s.then(function(){t(function(){n.isActive=!0},200)}))}}return{link:n,templateUrl:templateUrl("full_gif"),scope:{document:"="}}}]).directive("myLoadSticker",["_","MtpApiFileManager","FileManager","AppStickersManager",function(e,t,n,a){function i(i,s,r){var l=$("
").addClass(r.imgClass),c=!1;l.attr("alt","["+(i.document.stickerEmojiRaw||"")+" "+e("conversation_media_sticker")+"]");var d=r.dim&&i.$parent.$eval(r.dim)||i.document.thumb;r.open&&i.document.stickerSetInput&&s.addClass("clickable").on("click",function(){a.openStickerset(i.document.stickerSetInput)});var u=function(e){l.attr("src",n.getUrl(e)),c||(c=!0,l.appendTo(s))};l.css({width:d.width,height:d.height}),s.css({width:d.width,height:d.height});var p=!1;i.document.thumb.location&&(p=angular.copy(i.document.thumb.location),p.sticker=!0);var m={_:"inputDocumentFileLocation",id:i.document.id,access_hash:i.document.access_hash,dc_id:i.document.dc_id,file_name:i.document.file_name,version:i.document.version,sticker:!0},g=t.getCachedFile(m),h=!1;if(g?h=!0:g=t.getCachedFile(p),g){if(u(g),h)return}else c=!0,l.attr("src",o).appendTo(s);r.thumb&&p?t.downloadSmallFile(p).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,m)}):t.downloadFile(i.document.dc_id,m,i.document.size).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,m)})}var o="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";return{link:i,scope:{document:"="}}}]).directive("myLoadDocument",["MtpApiFileManager","AppDocsManager","FileManager",function(e,t,n){function a(e,t){for(;e&&!$(e).hasClass("modal-dialog");)e=e.parentNode;e&&$(e).width(t+(Config.Mobile?0:32))}function i(i,o,s){var r=$(".document_fullsize_with_progress_wrap",o),l=$(".document_fullsize_wrap",o),c=$(".document_fullsize_img",o),d=$(window).width()-(Config.Mobile?20:32),u=$(window).height()-150;d>800&&(d-=208),i.imageWidth=d,i.imageHeight=u;var p=i.document.thumb;if(p&&"photoSizeEmpty"!=p._){var m=calcImageInBox(p.width,p.height,d,u);i.imageWidth=m.w,i.imageHeight=m.h;var g=e.getCachedFile(p.location);g&&(i.thumbSrc=n.getUrl(g,"image/jpeg"))}i.frameWidth=Math.max(i.imageWidth,Math.min(600,d)),i.frameHeight=i.imageHeight,onContentLoaded(function(){i.$emit("ui_height")}),a(o[0],i.frameWidth);var h,f,_;t.downloadDoc(i.document.id).then(function(e){var t=n.getUrl(e,i.document.mime_type),a=new Image,o=100,s=function(e){if(a.height&&a.width||!--o){f=a.width,_=a.height,clearInterval(h);var n=calcImageInBox(a.width,a.height,d,u,!0),s={w:f,h:_};n.w>=s.w&&n.h>=s.h&&(s.w*=4,s.h*=4);var p=!0;i.toggleZoom=function(){p=!p;var e=(p?s:n).w,t=(p?s:n).h;c.css({width:e,height:t,marginTop:i.frameHeight>t?Math.floor((i.frameHeight-t)/2):0}),l.toggleClass("document_fullsize_zoomed",p)},i.toggleZoom(!1),c.attr("src",t),r.hide(),l.css({width:i.frameWidth,height:i.frameHeight}).show()}};h=setInterval(s,20),a.onload=s,a.src=t,setZeroTimeout(s)})}return{link:i,templateUrl:templateUrl("full_document"),scope:{document:"=myLoadDocument"}}}]).directive("myGeoPointMap",["ExternalResourcesManager",function(e){function t(t,n,a){var i=n.attr("width")||200,o=n.attr("height")||200,s=Config.ExtCredentials.gmaps.api_key,r=i>200?15:13;n.attr("src","img/blank.gif");var l="https://maps.googleapis.com/maps/api/staticmap?sensor=false¢er="+t.point.lat+","+t.point["long"]+"&zoom="+r+"&size="+i+"x"+o+"&scale=2&markers=color:red|size:big|"+t.point.lat+","+t.point["long"],c=!1;c&&(l+="&key="+s),e.downloadByURL(l).then(function(e){n.attr("src",e.valueOf())})}return{link:t,scope:{point:"=myGeoPointMap"}}}]).directive("myLoadingDots",["$interval",function(e){function t(e,t,a){t.html(n(t[0])?'
':"...")}function n(e){if(void 0===a&&(a=void 0!==e.style.animationName,a===!1)){var t,n="Webkit Moz O ms Khtml".split(" ");for(t=0;t=a.scrollHeight-a.clientHeight-300&&(i=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){i=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,a,i){var o=function(){if(!Config.Mobile||!$(a[0].parentNode.parentNode.parentNode).hasClass("mobile_modal")){var e=a[0].parentNode.offsetHeight,n=a[0].parentNode.parentNode.parentNode,o=$(".media_modal_bottom_panel_wrap",n)[0],s=n.offsetHeight-(o&&o.offsetHeight||0);e1||1==n&&!o)&&(e=t("group_modal_participants",{total:e,online:u(n)}))}n||f||(e=""),s.html(e)};n.$watch(r.myChatStatus,function(e){m=e,v()}),e.$on("chat_full_update",function(e,t){m==t&&v()}),e.$on("user_update",function(e,t){_[t]&&y()}),c[g]=y,n.$on("$destroy",function(){delete c[g]})}var l=0,c={},d=t.pluralize("group_modal_pluralize_participants"),u=t.pluralize("group_modal_pluralize_online_participants"),p=0;return n.getUserID().then(function(e){p=e}),setInterval(s,9e4),{link:r}}]).directive("myPeerMuted",["$rootScope","NotificationsManager",function(e,t){function n(t,n,i){var o=t.$eval(i.myPeerMuted),s=i.mutedClass||"muted",r=e.$on("notify_settings",function(e,t){t.peerID==o&&a(o,n,s)});a(o,n,s),t.$on("$destroy",r)}function a(e,n,a){t.getPeerMuted(e).then(function(e){n.toggleClass(a,e)})}return{link:n}}]).directive("myPeerLink",["AppChatsManager","AppUsersManager",function(e,t){function n(n,a,i){var o,s=i.userOverride&&n.$eval(i.userOverride)||{},r=i["short"]&&n.$eval(i["short"]),l=i.username&&n.$eval(i.username),c=function(){if(a[0].className.indexOf("user_color_")!=-1&&(a[0].className=a[0].className.replace(/user_color_\d+/g,"")),o>0){var c=t.getUser(o),d=l?"@":"",u=l?"username":r?"rFirstName":"rFullName";a.html(d+(s[u]||c[u]||"").valueOf()+(i.verified&&c.pFlags&&c.pFlags.verified?' ':"")),i.color&&n.$eval(i.color)&&a.addClass("user_color_"+c.num)}else{var p=e.getChat(-o);a.html((p.rTitle||"").valueOf()+(i.verified&&p.pFlags&&p.pFlags.verified?' ':""))}};"A"!=a[0].tagName||hasOnlick(a[0])||a.on("click",function(){o>0?t.openUser(o,s):e.openChat(-o)}),i.peerWatch?n.$watch(i.myPeerLink,function(e){o=e,c()}):(o=n.$eval(i.myPeerLink),c()),i.noWatch||(n.$on("user_update",function(e,t){o==t&&c()}),n.$on("chat_update",function(e,t){o==-t&&c()}))}return{link:n}}]).directive("myPeerPhotolink",["AppPeersManager","AppUsersManager","AppChatsManager","MtpApiFileManager","FileManager",function(e,t,n,a,i){function o(o,s,r){s.addClass("peer_photo_init");var l,c,d,u=$('
'),p=$(''),m=0,g=!1,h=function(t){if(l==t)return!1;l=t,c=e.getPeer(l);var n="user_bgcolor_"+(c.num||1);return n!=g&&(g&&p.removeClass(g),p.addClass(n),g=n),f(),!0},f=function(){var e=++m;d=c.photo&&angular.copy(c.photo.photo_small);var t=void 0!==d;if(t){var n=a.getCachedFile(c.photo.photo_small);if(n)return p.remove(),void u.prependTo(s).attr("src",i.getUrl(n,"image/jpeg"))}p.attr("data-content",c.initials||"").prependTo(s),u.remove(),t&&a.downloadSmallFile(c.photo.photo_small).then(function(t){e==m&&(p.remove(),u.prependTo(s).attr("src",i.getUrl(t,"image/jpeg")))},function(e){console.log("Download image failed",e,c.photo.photo_small,s[0])})};"A"!=s[0].tagName||r.noOpen||s.on("click",function(e){l>0?t.openUser(l,r.userOverride&&o.$eval(r.userOverride)):n.openChat(-l)}),o.$watch(r.myPeerPhotolink,h),h(o.$eval(r.myPeerPhotolink)),r.watch&&(o.$on("user_update",function(e,t){l==t&&(angular.equals(c.photo&&c.photo.photo_small,d)||f())}),o.$on("chat_update",function(e,t){l==-t&&(angular.equals(c.photo&&c.photo.photo_small,d)||f())}))}return{link:o}}]).directive("myAudioPlayer",["$timeout","$q","Storage","AppDocsManager","AppMessagesManager","ErrorService",function(e,t,n,a,i,o){function s(e){return e!==l&&(l&&l.pause(),void(l=e))}function r(e,t,r){a.updateDocDownloaded(e.audio.id),e.volume=c,e.mediaPlayer={},e.download=function(){a.saveDocFile(e.audio.id)},e.togglePlay=function(){if(e.audio.url)s(e.mediaPlayer.player),e.mediaPlayer.player.playPause();else{if(e.audio.progress&&e.audio.progress.enabled)return;a.downloadDoc(e.audio.id).then(function(){onContentLoaded(function(){var n=$("audio",t)[0]||t[0];if(n){var a=!1,r=function(e){a||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(a=!0,o.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};n.addEventListener("error",r,!0),e.$on("$destroy",function(){a=!0,n.removeEventListener("error",r)})}setTimeout(function(){s(e.mediaPlayer.player),e.mediaPlayer.player.setVolume(c),e.mediaPlayer.player.play(),e.message&&!e.message.pFlags.out&&e.message.pFlags.media_unread&&i.readMessages([e.message.mid])},300)})})}},e.seek=function(t){e.mediaPlayer&&e.mediaPlayer.player?e.mediaPlayer.player.seek(t):e.togglePlay()},e.setVolume=function(t){c=t,n.set({audio_volume:t}),e.mediaPlayer&&e.mediaPlayer.player&&e.mediaPlayer.player.setVolume(t)}}var l=!1,c=.5;n.get("audio_volume").then(function(e){e>0&&e<=1&&(c=e)});return{link:r,scope:{audio:"=",message:"="},templateUrl:templateUrl("audio_player")}}]).directive("mySlider",["$window",function(e){function t(t,n,a){var i=$(".tg_slider_wrap",n),o=$(".tg_slider_track_fill",n),s=$(".tg_slider_thumb",n),r=i.width(),l=Math.ceil(s.width()),c=a.sliderModel,d=a.sliderOnchange,u=0,p=1,m=!1,g=!1;a.sliderMin&&t.$watch(a.sliderMin,function(e){u=e||0}),a.sliderMax&&t.$watch(a.sliderMax,function(e){p=e||1});var h=function(e){e=e.originalEvent||e;var n=(e.touches&&e.touches[0]?e.touches[0].pageX:e.pageX)-g;return n=Math.min(r,Math.max(0,n)),m=u+n/r*(p-u),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,n-l)),o.css("width",n),cancelEvent(e)},f=function(){$(e).off("mousemove touchmove",h),$(e).off("mouseup touchend touchcancel touchleave",f)};t.$watch(c,function(e){if(e!=m&&void 0!==e){var t=Math.max(0,(e-u)/(p-u));if(r){var n=Math.ceil(r*t);n=Math.min(r,Math.max(0,n)),s.css("left",Math.max(0,n-l)),o.css("width",n)}else s.css("left",100*t+"%"),o.css("width",100*t+"%");m=!1}}),n.on("dragstart selectstart",cancelEvent),n.on("mousedown touchstart",function(a){if(!r&&(r=i.width(),!r))return console.error("empty width"),cancelEvent(a);f(),a=a.originalEvent||a;var _;if(a.touches&&a.touches[0])g=n.position().left,_=a.touches[0].pageX-g;else if(void 0!==a.offsetX)_=a.offsetX,g=a.pageX-_;else{if(void 0===a.layerX)return cancelEvent(a);_=a.layerX,g=a.pageX-_}return m=u+_/r*(p-u),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,_-l)),o.css("width",_),$(e).on("mousemove touchmove",h),$(e).on("mouseup touchend touchcancel touchleave",f),cancelEvent(a)})}return{link:t,templateUrl:templateUrl("slider")}}]).directive("myLabeledInput",function(){function e(e,t,n){var a=$(".md-input:first",t),i=($(".md-input-label:first",t),a[0]&&"SPAN"==a[0].tagName),o=!1,s=function(){i?t.toggleClass("md-input-has-value",a.html().length>0):t.toggleClass("md-input-has-value",o||a.val().length>0)};s(),onContentLoaded(function(){s(),setZeroTimeout(function(){t.addClass("md-input-animated")})}),i||a.on("blur focus change",function(e){o="focus"==e.type,t.toggleClass("md-input-focused",o),s()}),e.$on("value_updated",function(){setZeroTimeout(function(){s()})})}return{link:e}}).directive("myCopyField",["toaster","_",function(e,t){function n(e,t,n){t.attr("readonly","true"),t[0].readonly=!0,t.on("click",function(){this.select()}),e.selectEvent&&e.$on(e.selectEvent,function(){setTimeout(function(){t[0].focus(),t[0].select()},100)})}return{scope:{selectEvent:"=myCopyField"},link:n}}]).directive("myCopyLink",["$compile","$timeout","_",function(e,t,n){function a(a,i,o){i.attr("tooltip","{{ttLabel}}"),i.removeAttr("my-copy-link"),i.removeAttr("data-my-copy-link");var s=!1,r=function(){t.cancel(s),s=!1,a.ttLabel=n("conversations_modal_share_url_copy_raw")};r(),e(i)(a);var l=new Clipboard(i[0]);l.on("success",function(e){t.cancel(s),a.$apply(function(){a.ttLabel=n("clipboard_copied_raw")}),s=t(r,2e3)}),l.on("error",function(e){t.cancel(s);var i=Config.Navigator.osX?"clipboard_press_cmd_c":"clipboard_press_ctrl_c";a.$apply(function(){a.ttLabel=n(i+"_raw")}),s=t(r,5e3)}),a.$on("$destroy",function(){l.destroy()})}return{restrict:"A",replace:!1,terminal:!0,priority:1e3,link:a}}]).directive("mySubmitOnEnter",function(){function e(e,t,n){t.on("keydown",function(e){if(13==e.keyCode)return t.trigger("submit"),cancelEvent(e)})}return{link:e}}).directive("myArcProgress",function(){function e(e,t,n){t=Math.max(0,Math.min(t,1));var a=.2;t=a+(1-a)*t,e.css({strokeDasharray:t*n+", "+(1-t)*n})}var t='',n=0;return{scope:{progress:"=myArcProgress"},link:function(a,i,o){var s=!o.myArcProgress,r=o.width||i.width()||40,l=o.stroke||r/2*.14,c=r/2,d=c-l/2,u=++n;i.html(t.replace("%id%",u)).addClass("progress-arc-wrap").addClass(s?"progress-arc-intermediate":"progress-arc-percent").css({width:r,height:r}),$(i[0].firstChild).attr("width",r).attr("height",r);var p=$(".progress-arc-bar",i);p.attr("cx",c).attr("cy",c).attr("r",d).css({strokeWidth:l});var m=2*Math.PI*d;s?(e(p,.3,m),p.css({stroke:"url(#grad_intermediate"+u+")"})):a.$watch("progress",function(t){e(p,t/100,m)})}}}).directive("myScrollToOn",function(){return{link:function(e,t,n){var a=n.myScrollToOn,i=function(){onContentLoaded(function(){$("html, body").animate({scrollTop:t.offset().top},200)})};"$init"==a?i():e.$on(a,i)}}}).directive("myComposerDropdown",function(){return{templateUrl:templateUrl("composer_dropdown")}}).directive("myEmojiSuggestions",function(){return{link:function(e,t,n){e.$watchCollection("emojiCodes",function(e){var n,a,i,o,s,r,l,c,d=[],u=Config.Mobile?26:20,p=Math.min(5,e.length);for(r=0;r:'+encodeEntities(a[1][0])+":"));t.html(d.join("")),console.log(dT(),"emoji done")})}}}).directive("myInlineResults",["AppPhotosManager","ExternalResourcesManager","AppDocsManager",function(e,t,n){return{templateUrl:templateUrl("inline_results"),scope:{botResults:"=myInlineResults"},link:function(a,i,o){a.$watch("botResults.results",function(a){angular.forEach(a,function(a){if(a.thumb_url&&!a.thumbUrl&&t.downloadByURL(a.thumb_url).then(function(e){a.thumbUrl=e}),"gif"==a.type&&a.content_url&&!a.contentUrl&&t.downloadByURL(a.content_url).then(function(e){a.contentUrl=e}),"gif"!=a.type&&"sticker"!=a.type||!a.document||n.downloadDoc(a.document.id),"photo"==a.type&&a.photo){var i=e.choosePhotoSize(a.photo,a.thumbW,a.thumbH),o=calcImageInBox(i.w,i.h,a.thumbW,a.thumbH);a.thumb={width:o.w,height:o.h,location:i.location,size:i.size}}if("game"==a.type&&a.photo){var i=e.choosePhotoSize(a.photo,100,100);a.thumb={location:i.location,size:i.size}}})})}}}]).directive("myGameCommunication",["$window",function(e){function t(t,n,a){onContentLoaded(function(){var a=$("iframe, webview",n)[0],i=a.contentWindow,o=function(e){if(e=e.originalEvent||e,!e.source||e.source==i){var n=e.data;try{var a=JSON.parse(n)}catch(o){return}a&&a.eventType&&t.$emit("game_frame_event",a)}};$(e).on("message",o),t.$on("$destroy",function(){$(e).off("message",o)})})}return{link:t}}]).directive("myEmojiImage",["RichTextProcessor",function(e){function t(t,n,a){var i=a.myEmojiImage,o=e.wrapRichText(i,{noLinks:!0,noLinebreaks:!0});n.html(o.valueOf())}return{link:t}}]).directive("myExternalEmbed",function(){function e(e,r,l){var c=e.$eval(l.myExternalEmbed);if(c){var d="",u=!1;switch(c[0]){case"youtube":var p=c[1];d='
<'+s+' type="text/html" frameborder="0" src="https://www.youtube.com/embed/'+p+'?autoplay=0&controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen>'+s+">
";break;case"vimeo":var p=c[1];d='<'+s+' type="text/html" frameborder="0" src="https://player.vimeo.com/video/'+p+'?title=0&byline=0&portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen>'+s+">
";break;case"instagram":var m=c[1];d='<'+s+' type="text/html" frameborder="0" src="https://instagram.com/p/'+m+'/embed/">'+s+">
";break;case"vine":var g=c[1];d='<'+s+' type="text/html" frameborder="0" src="https://vine.co/v/'+g+'/embed/simple">'+s+">
";break;case"soundcloud":var h=c[1];d='<'+s+' type="text/html" frameborder="0" src="https://w.soundcloud.com/player/?url='+encodeEntities(encodeURIComponent(h))+'&auto_play=false&hide_related=true&show_comments=false&show_user=true&show_reposts=false&visual=true">'+s+">
";break;case"spotify":var f=c[1];d='<'+s+' type="text/html" frameborder="0" allowtransparency="true" src="https://embed.spotify.com/?uri=spotify:'+encodeEntities(encodeURIComponent(f))+'">'+s+">
";break;case"twitter":d='',u=function(){t?window.twttr&&twttr.widgets.load(r[0]):(t=!0,$("