").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/data/themes.telegram.org/css/jquery-ui.min.css b/data/themes.telegram.org/css/jquery-ui.min.css
deleted file mode 100644
index 4e14d72f69..0000000000
--- a/data/themes.telegram.org/css/jquery-ui.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*! jQuery UI - v1.12.0 - 2016-09-10
-* http://jqueryui.com
-* Includes: draggable.css, core.css, resizable.css
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}
\ No newline at end of file
diff --git a/data/themes.telegram.org/css/themes.css b/data/themes.telegram.org/css/themes.css
deleted file mode 100644
index b0afb81f13..0000000000
--- a/data/themes.telegram.org/css/themes.css
+++ /dev/null
@@ -1,2001 +0,0 @@
-body {
- font-family: 'Roboto', sans-serif;
- font-size: 15px;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-.btn,
-a.btn,
-button.btn {
- font-size: 13px;
- font-weight: 500;
- line-height: 18px;
- text-transform: uppercase;
- border-radius: 5px;
- padding: 8px 16px 6px;
- border: none;
-}
-.btn:active {
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.125);
-}
-.btn-xs,
-a.btn-xs,
-button.btn-xs {
- font-size: 11px;
- line-height: 14px;
- padding: 4px 7px 2px;
-}
-.btn-sm,
-a.btn-sm,
-button.btn-sm {
- padding: 5px 14px 4px;
-}
-.btn-lg,
-a.btn-lg,
-button.btn-lg {
- padding: 9px 16px 8px;
-}
-.btn-primary {
- background-color: #238fe1;
-}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active {
- background-color: #068cd4;
-}
-.btn-default {
- background-color: transparent;
- color: #0086d3;
-}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default:active,
-.open > .dropdown-toggle.btn-default {
- color: #0086d3;
- background-color: #e8f3fa;
- box-shadow: none;
-}
-.btn-default.btn-danger {
- color: #d14e4e;
- background-color: transparent;
-}
-.btn-default.btn-danger:hover,
-.btn-default.btn-danger:focus,
-.btn-default.btn-danger:active {
- color: #d14e4e;
- background-color: #fcdfde;
-}
-.btn-link:active {
- box-shadow: none;
-}
-.btn-muted {
- color: #1a1a1a;
- background-color: #f2f2f2;
-}
-
-.click {
- cursor: pointer;
-}
-.click:hover {
- text-decoration: underline;
-}
-
-.btn:focus,
-.btn:active:focus,
-button:focus,
-button:active:focus,
-input.form-control:focus,
-textarea.form-control:focus,
-input.form-control,
-textarea.form-control {
- outline: none;
- box-shadow: none;
-}
-input.form-control[disabled],
-textarea.form-control[disabled] {
- cursor: auto;
- background-color: #fff;
-}
-
-i.emoji {
- font-style: normal;
- box-sizing: content-box;
-}
-i.emoji > b {
- font-weight: normal;
-}
-.emoji_default i.emoji {
- background: none !important;
-}
-.emoji_image i.emoji {
- width: 1.25em;
- vertical-align: top;
- display: inline-block;
- white-space: nowrap;
- overflow: hidden;
- background: no-repeat 2px 50%;
- background-position-y: calc(50% - 1px);
- background-size: 1.25em 1.25em;
- text-indent: -10em;
- padding: 3px 3px 3px 2px;
- margin: -3px -2px;
-}
-.emoji_image .rtl i.emoji {
- padding-left: 3px;
- padding-right: 2px;
-}
-.emoji_image i.emoji > b {
- letter-spacing: 12em;
- pointer-events: none;
-}
-
-img.emoji {
- width: 1.25em;
- height: 1.25em;
- padding: 0 1px;
- vertical-align: top;
- vertical-align: text-top;
- box-sizing: content-box;
- cursor: inherit;
-}
-a:hover img.emoji {
- border-bottom: 1px solid;
- padding: 0 2px;
- margin: 0 -1px;
-}
-
-.form-control {
- font-size: 14px;
- padding: 12px 0;
-}
-
-.container,
-.container-fluid {
- position: relative;
- margin-right: auto;
- margin-left: auto;
- padding-left: 0;
- padding-right: 0;
- width: auto;
- max-width: 920px;
- box-sizing: content-box;
-}
-
-.bg-image {
- background: #f7f7f7 no-repeat center;
- background-size: cover;
-}
-.strong {
- font-weight: 500;
-}
-
-.th-aside {
- margin: -5px 15px 0;
-}
-.th-content {
- position: relative;
- margin: 0 0 75px;
-}
-
-.th-header,
-.th-markdown h3,
-.th-markdown h4 {
- font-size: 13px;
- line-height: 17px;
- font-weight: bold;
- padding: 2px 0;
- margin: 25px 0 7px;
- text-transform: uppercase;
-}
-.th-markdown h5,
-.th-markdown h6 {
- font-size: 14px;
- line-height: 21px;
- font-weight: 500;
- padding: 0;
- margin: 15px 0 4px;
-}
-li.th-logo:last-child .th-logo-title {
- display: inline;
-}
-.th-content .th-header {
- margin-left: 15px;
-}
-
-.th-article {
- margin: 15px 0 0;
-}
-.th-article-date {
- display: block;
- font-size: 14px;
- font-weight: 500;
- line-height: 23px;
- margin-bottom: 2px;
-}
-.th-article-text,
-.th-markdown p {
- font-size: 14px;
- line-height: 21px;
- margin: 0;
-}
-
-.th-list-empty-wrap {
- transition: opacity .2s ease, visibility .2s ease;
-}
-.th-list-empty-wrap.ohide {
- height: 0;
-}
-.th-list-empty {
- font-size: 14px;
- line-height: 22px;
- color: #70767b;
- padding: 32px 0;
- text-align: center;
-}
-
-.th-contest {
- display: block;
- font-size: 14px;
- line-height: 22px;
- padding: 15px 0;
-}
-a.th-contest:hover {
- text-decoration: none;
-}
-.th-contest + .th-contest {
- border-top: 1px solid #f0f0f0;
-}
-.th-contest-title {
- font-weight: 500;
- color: #000;
-}
-.th-contest-period {
- color: #70767b;
-}
-.th-badge {
- font-size: 11px;
- line-height: 13px;
- padding: 3px 5px 2px;
- text-transform: uppercase;
- display: inline-block;
- vertical-align: 1px;
- margin-left: 10px;
- border-radius: 3px;
- background-color: #70767b;
- color: #fff;
-}
-.th-badge-new {
- background-color: #238fe1;
-}
-.th-header .th-badge {
- margin-top: -1px;
-}
-
-
-a.th-dl-button {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- display: block;
- font-size: 15px;
- color: #FFF;
- background: #3092e6;
- padding: 1px 15px;
- height: 42px;
- line-height: 41px;
- text-align: center;
- white-space: nowrap;
- z-index: 10;
-}
-a.th-dl-button:hover,
-a.th-dl-button:active {
- color: #FFF;
- background: #2789DE;
- text-decoration: none;
-}
-.th-dl-button-try {
- padding: 4px 11px;
- border: 1px solid #fff;
- border-radius: 3px;
- margin-left: 12px;
-}
-.th-main {
- display: flex;
- min-width: 320px;
- min-height: 100vh;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- padding: 40px 0 0;
-}
-.th-main-content {
- text-align: center;
- padding: 40px 10px 50px;
- max-width: 360px;
-}
-.th-main-content h1 {
- font-size: 19px;
- margin: 30px 0 12px;
-}
-.th-main-content p {
- font-size: 15px;
- line-height: 21px;
-}
-.th-dl-button b,
-.th-main-content b {
- font-weight: 500;
-}
-.th-main-icon {
- display: inline-block;
- width: 100px;
- height: 100px;
- background: url('data:image/svg+xml,%3Csvg height="100" viewBox="0 0 99 100" width="99" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="%230f9ae4" fill-rule="evenodd" transform="translate(1 10)"%3E%3Cpath d="m27.3299021 54.5971404h-18.10461067c-1.43756152 0-2.60293538-1.1653738-2.60293538-2.6029353v-4.6001193c0-1.4375615 1.16537386-2.6029354 2.60293538-2.6029354h44.33143827c1.4375615 0 2.6029354 1.1653739 2.6029354 2.6029354v4.6001193c0 1.4375615-1.1653739 2.6029353-2.6029354 2.6029353h-18.7064012c1.6846715 5.5624133 2.909254 13.7612262 3.8405519 18.6182864 1.5083556 7.8666285-3.3765692 10.8252812-7.5417783 10.8252812-4.1652092 0-9.050134-4.0981559-7.5417784-11.9647845.9094191-4.7429541 2.0985044-12.2582658 3.7225784-17.4787831zm6.318501 23.0116168c1.1715729-1.1715728 1.1715729-3.0710678 0-4.2426407-1.1715728-1.1715728-3.0710678-1.1715728-4.2426406 0-1.1715729 1.1715729-1.1715729 3.0710679 0 4.2426407 1.1715728 1.1715729 3.0710678 1.1715729 4.2426406 0z" transform="matrix(.70710678 .70710678 -.70710678 .70710678 54.743154 -3.329808)"/%3E%3Cpath d="m77.1933507 24.2305175c-.7172516 2.1075474-1.3658738 3.7094858-1.9458666 4.8058152-1.0903132 2.0609607-2.8787787 4.7364008-5.3653967 8.0263201l-.0000567-.0000428c-.1665298.2203272-.1229184.5339368.0974089.7004666.1359339.1027429.3148283.1291989.4746818.0701988 2.214469-.8173353 3.8392008-1.5394142 4.8741954-2.1662369 2.7545174-1.6682153 5.2193283-4.9280761 6.789222-5.748253.0547696-.0286138.1094841-.0570595.1641434-.0853368l3.4642799 3.8146338c1.4658869 1.6141369 1.3689762 4.1049302-.2178938 5.6002917l-19.6429269 18.5101969c-1.5505328 1.4611198-3.9741965 1.4505083-5.5118758-.0241324l-22.7127168-21.7815899c-1.5599561-1.4960042-1.6493731-3.9606385-.2019256-5.5657514 3.4953029-3.876034 6.5445731-8.1539982 9.1478107-12.8338925 2.7821293-5.0014916 4.9920761-10.32968627 6.6298403-15.98458416l-.0000102-.00000297c.251986-.87006109 1.1615848-1.37110997 2.0316459-1.119124.2915046.08442519.5538686.24807467.7578989.47273924z"/%3E%3C/g%3E%3C/svg%3E') no-repeat center;
-}
-a.th-login-editor-btn {
- margin-top: 25px;
- display: inline-block;
- font-size: 14px;
- line-height: 20px;
- padding: 11px 25px;
- font-weight: 500;
- text-transform: uppercase;
- border-radius: 4px;
- background-color: #3092e6;
- color: #fff;
- cursor: pointer;
-}
-a.th-login-editor-btn:hover {
- background-color: #2789DE;
- text-decoration: none;
- color: #fff;
-}
-.th-login-editor-btn:before {
- display: inline-block;
- content: '';
- width: 20px;
- height: 17px;
- margin-right: 15px;
- vertical-align: top;
- position: relative;
- top: 2px;
- background: url('data:image/svg+xml,%3Csvg height="17" viewBox="0 0 20 17" width="20" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="m1.375 7.318c5.369-2.399 8.949-3.98 10.74-4.744 5.114-2.182 6.177-2.561 6.87-2.574.152-.003.493.036.713.22.187.155.238.364.262.511.025.147.055.482.031.744-.277 2.987-1.476 10.235-2.086 13.58-.259 1.416-.767 1.89-1.259 1.937-1.069.101-1.882-.725-2.917-1.422-1.621-1.09-1.636-.811-3.174-1.911-1.376-.983-1.084-2.256-.048-3.36.271-.289 3.799-4.174 3.89-4.573.011-.05.138-.698.03-.796-.107-.098-.606-.101-.72-.075-.163.038-2.447 1.6-6.852 4.686-.735.518-1.401.77-1.997.757-.658-.015-1.923-.382-2.863-.695-1.153-.385-2.07-.588-1.99-1.241.041-.34.498-.688 1.37-1.044z" fill="%23fff" fill-rule="evenodd"/%3E%3C/svg%3E') no-repeat;
-}
-
-.th-theme {
- display: block;
- font-size: 14px;
- line-height: 22px;
- padding: 16px 15px 16px 30px;
- margin: 0 -15px;
- position: relative;
- min-height: 68px;
- transition: all .2s ease;
-}
-a.th-theme:hover {
- text-decoration: none;
-}
-a.th-theme:focus {
- box-shadow: none;
- outline: none;
-}
-.th-theme + .th-theme {
- margin-top: 1px;
-}
-.th-theme + .th-theme:before {
- position: absolute;
- display: block;
- content: '';
- border-top: 1px solid #f0f0f0;
- margin: 0 15px;
- top: -1px;
- left: 90px;
- right: 0;
-}
-.th-theme-photo {
- display: inline-block;
- vertical-align: top;
- width: 44px;
- height: 44px;
- border-radius: 22px;
- background: #efefef;
- text-align: center;
- overflow: hidden;
- margin-right: 12px;
- float: left;
-}
-.th-theme-photo img {
- width: 100%;
-}
-.th-theme-photo .photo-char {
- font-size: 20px;
- vertical-align: middle;
- line-height: 44px;
- color: #999;
-}
-.th-theme-title {
- font-size: 15px;
- font-weight: 500;
- color: #000;
-}
-.th-theme-label {
- color: #808080;
-}
-.th-theme-thumb {
- display: inline-block;
- width: 74px;
- height: 46px;
- float: left;
- margin: -1px 16px -1px 0;
- border-radius: 5px;
- background: #efefef no-repeat center;
- background-size: cover;
- overflow: hidden;
-}
-.th-theme-edit-btn {
- float: right;
- margin: 6px 0 6px 12px;
-}
-
-.th-theme-header {
- margin: 30px 0 20px 15px;
- transition: all .2s ease;
-}
-.th-theme-header-body {
- max-width: 100%;
- padding: 5px 15px 5px 0;
- float: left;
-}
-.th-theme-header .th-theme-thumb {
- margin-top: 1px;
- margin-bottom: 1px;
-}
-.th-theme-header .th-theme-title {
- font-size: 19px;
- line-height: 25px;
-}
-.th-theme-header .th-theme-label {
- margin-top: 5px;
-}
-.th-theme-header .th-theme-title,
-.th-theme-header .th-theme-label {
- margin-left: 90px;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
-}
-.th-theme-header .th-theme-buttons {
- float: right;
- padding: 5px 0;
- margin: 4px 15px 4px 18px;
- transition: all .2s ease;
-}
-.th-theme-buttons .btn {
- float: right;
- padding: 12px 20px 10px;
-}
-.th-theme-buttons .btn ~ .btn {
- margin-right: 10px;
-}
-.header-btn-wrap .th-theme-buttons {
- margin: 2px 15px;
-}
-.header-btn-wrap .th-theme-buttons .btn {
- padding: 9px 18px 7px;
-}
-
-.th-theme-placeholder {
- padding: 83px 20px;
- text-align: center;
- color: #6b6e70;
-}
-
-.th-theme-source-placeholder {
- position: absolute;
- border: 1px solid #e0e0e0;
- background: #fff;
- width: 100%;
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
-}
-.th-theme-ph-icon {
- display: inline-block;
- width: 100px;
- height: 75px;
- background: url('data:image/svg+xml,%3Csvg height="100" viewBox="0 0 100 100" width="100" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg transform="translate(3 28)"%3E%3Cellipse cx="15.144928" cy="44.604" fill="%23b0b5b9" rx="2.391304" ry="2.3895"/%3E%3Cg stroke="%23b0b5b9" stroke-width="3"%3E%3Cpath d="m15.3715001 35.7495h-9.00184687c-1.70492762 0-3.08704453-1.3821169-3.08704453-3.0870445v-3.197911c0-1.7049276 1.38211691-3.0870445 3.08704453-3.0870445h27.11576597c1.7049277 0 3.0870446 1.3821169 3.0870446 3.0870445v3.197911c0 1.7049276-1.3821169 3.0870445-3.0870446 3.0870445h-9.3852697c.206947.8758938.4121073 1.8418942.6220916 2.9141213.2731117 1.39457 1.0405032 5.708952 1.1417756 6.2348279.9880491 5.1306323-1.9487771 8.3740508-6.0843967 8.3740508-4.0352661 0-7.0768151-3.9144561-6.0843968-9.0677766.0166922-.0866775.8030719-4.3734735 1.0846051-5.7639316.1991151-.9834052.3944975-1.876227.5916718-2.6912918z" transform="matrix(.70710678 .70710678 -.70710678 .70710678 33.997168 -2.426423)"/%3E%3Cpath d="m20.9827863 20.3419695c2.6373452-2.7862367 4.8531008-5.9254117 6.6491303-9.4213645 1.5944154-3.10351318 2.8204251-6.40139185 3.6782858-9.89607714.3020098-1.23011078 1.5440173-1.98252205 2.7741489-1.68055451.4152612.10193658.7937574.31792949 1.0927589.62359449l19.1544605 19.58133886c1.4837739 1.5168414 1.4741029 3.9441897-.0217103 5.44916l-14.2812632 14.36869-20.1089697-17.9016076z" transform="matrix(.99939083 .0348995 -.0348995 .99939083 .687639 -1.314761)"/%3E%3C/g%3E%3C/g%3E%3Cg fill="%23b0b5b9"%3E%3Ccircle cx="30.75" cy="10.444444" r="3.077904" transform="matrix(.70710678 .70710678 -.70710678 .70710678 64.391804 -5.684427)"/%3E%3Cpath d="m49.5 71c.8284271 0 1.5.6715729 1.5 1.5v6c0 3.5898509 2.9101491 6.5 6.5 6.5h21c4.1421356 0 7.5-3.3578644 7.5-7.5v-54c0-4.1421356-3.3578644-7.5-7.5-7.5h-21.5c-3.3137085 0-6 2.6862915-6 6v4.5c0 .8284271-.6715729 1.5-1.5 1.5-.8284271 0-1.5-.6715729-1.5-1.5v-6c0-4.1421356 3.3578644-7.5 7.5-7.5h23.5c5.5228475 0 10 4.4771525 10 10v55c0 5.5228475-4.4771525 10-10 10h-22.5c-4.6944204 0-8.5-3.8055796-8.5-8.5v-7c0-.8284271.6715729-1.5 1.5-1.5z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E') no-repeat -9px -13px;
-}
-.th-theme-ph-title {
- font-size: 18px;
- line-height: 24px;
- font-weight: 500;
- margin: 10px 0 15px;
-}
-.th-theme-ph-buttons {
- margin: 30px 0 0;
-}
-.th-no-content .th-theme-buttons,
-.th-no-content .th-theme-source-code-wrap,
-.th-no-content .th-theme-thumb svg {
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
-}
-.th-no-content .th-theme-source-code-wrap .CodeMirror {
- height: 376px;
-}
-.th-no-content .th-theme-source-placeholder {
- opacity: 1;
- visibility: visible;
- pointer-events: auto;
-}
-.th-theme-import-btn {
- margin: 4px 0;
-}
-
-.th-theme-content-buttons {
- text-align: center;
- margin: 30px 0;
-}
-
-.th-theme-thumb svg,
-.th-theme-source-placeholder,
-.th-theme-source-code-wrap {
- transition: all .2s ease;
-}
-.th-theme-source-code-wrap .CodeMirror {
- border: 1px solid #e0e0e0;
- min-height: 376px;
- height: auto;
- border-width: 1px 0;
-}
-.th-theme-source-code-wrap .CodeMirror pre {
- font-size: 14px;
- line-height: 18px;
- padding: 0 14px;
-}
-.th-theme-source-code-wrap .CodeMirror-lines {
- padding: 7px 0;
-}
-.th-theme-source-code-wrap .CodeMirror-widget {
- display: inline-block;
- position: relative;
- vertical-align: top;
-}
-.th-theme-source-code-wrap .codemirror-colorview {
- position: absolute;
- top: 0;
- vertical-align: top;
- margin: 2px 7px 2px 0;
- border: 1px solid #ededed;
- width: 14px;
- height: 14px;
- border-radius: 7px;
-}
-.th-theme-source-code-wrap .codemirror-colorview .codemirror-colorview-background {
- border-radius: 7px;
-}
-body .codemirror-colorpicker .colorpicker-body > .colorsets > .menu {
- display: none;
-}
-body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list {
- margin-right: 6px;
-}
-body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .add-color-item {
- line-height: 13px;
-}
-.th-theme-source-code-wrap .codemirror-colorview,
-body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .color-item .empty,
-body .codemirror-colorpicker .colorpicker-body > .control > .opacity > .opacity-container,
-body .codemirror-colorpicker .colorpicker-body > .control > .empty,
-body .codemirror-colorpicker .colorpicker-body > .colorsets > .color-list .color-item .empty,
-body .codemirror-colorpicker .colorpicker-body > .color-chooser .color-chooser-container .colorsets-list .colorsets-item .items .color-item {
- vertical-align: top;
- background-image: url('data:image/gif;base64,R0lGODlhGAAYAIABAKysrP///yH5BAEAAAEALAAAAAAYABgAAAIyhI8Wy70JgZshJuoswk0fzngKWIlk6Z2iRK6q2cIn6Maprb03LXM1v/P1MD9hkDikrAoAOw==');
- background-size: 12px;
- background-position: center;
-}
-body .codemirror-colorpicker .colorpicker-body > .information > .information-item > .input-field .postfix {
- line-height: 19px;
- padding-right: 4px;
-}
-body .codemirror-colorpicker .colorpicker-body > .control > .opacity > .opacity-container > .color-bar {
- border-radius: 3px;
-}
-.th-theme-source-code {
- font-family: monospace, 'Courier New';
- font-size: 14px;
- line-height: 18px;
- padding: 7px 14px;
- border: 1px solid #e0e0e0;
- color: #000;
-}
-.cm-keycol,
-.cm-valcol {
- display: inline-block;
- box-sizing: content-box;
-}
-.cm-valcol,
-.cm-val {
- padding-left: 21px;
-}
-
-.nav-tabs {
- border-bottom: 1px solid #e0e0e0;
- margin-bottom: -1px;
- position: relative;
- z-index: 1;
-}
-.nav-tabs>li>a {
- text-transform: uppercase;
- font-weight: 500;
- position: relative;
- border-radius: 0;
- border: none;
- color: #999;
-}
-.nav-tabs>li>a:hover,
-.nav-tabs>li>a:focus {
- background-color: transparent;
-}
-.nav-tabs>li.active>a,
-.nav-tabs>li.active>a:hover,
-.nav-tabs>li.active>a:focus {
- color: #0088cc;
- border: none;
-}
-.nav-tabs>li.active>a:after {
- content: '';
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
- height: 4px;
- border-radius: 2px 2px 0 0;
- background-color: #238fe1;
-}
-
-
-
-
-.th-back {
- padding: 18px 19px;
- vertical-align: top;
- margin: 0 0 0 -15px;
- cursor: pointer;
-}
-.th-back:before {
- position: relative;
- top: 2px;
- content: '';
- display: inline-block;
- width: 18px;
- height: 16px;
- background: url('/img/translations/icons.png?8') no-repeat -5px -105px;
-}
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- .th-back:before {
- background-image: url('/img/translations/icons_2x.png?8');
- background-size: 26px 752px;
- }
-}
-
-.th-subheader {
- font-size: 16px;
- font-weight: 500;
- padding: 15px 0;
- margin: 0;
-}
-.th-subheader .th-badge {
- font-size: 12px;
- line-height: 18px;
- padding: 3px 7px 2px;
- min-width: 19px;
- margin-left: 7px;
-}
-
-.th-section-block {
- padding: 20px 15px 0 56px;
-}
-.th-actions {
- display: inline-block;
- margin-left: -13px;
-}
-.th-action-item {
- display: block;
- position: relative;
- padding: 11px 40px 11px 58px;
- font-weight: 500;
-}
-/*.th-action-item:hover {
- text-decoration: none;
-}
-.th-action-item .th-action-label:hover {
- text-decoration: underline;
-}*/
-.th-action-item:before {
- position: absolute;
- top: 4px;
- left: 6px;
- display: inline-block;
- width: 32px;
- height: 32px;
- content: '';
- background: url('/img/translations/icons.png?8') no-repeat -10px -548px;
-}
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- .th-action-item:before {
- background-image: url('/img/translations/icons_2x.png?8');
- background-size: 26px 752px;
- }
-}
-.action-share:before {
- background-position: 6px -453px;
-}
-.action-edit:before {
- background-position: 4px -485px;
-}
-.action-team:before {
- background-position: 1px -514px;
-}
-
-.arrow-link {
- font-size: 15px;
- font-weight: 500;
- cursor: pointer;
-}
-.arrow-link:after {
- display: inline-block;
- width: 8px;
- height: 12px;
- content: '';
- background: url('/img/translations/icons.png?8') no-repeat -10px -548px;
- margin-left: 7px;
- vertical-align: -1px;
-}
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- .arrow-link:after {
- background-image: url('/img/translations/icons_2x.png?8');
- background-size: 26px 752px;
- }
-}
-
-.form-group .input {
- direction: ltr;
- unicode-bidi: isolate;
-}
-.form-group.rtl {
- text-align: right;
-}
-.form-group.rtl .input {
- direction: rtl;
-}
-
-.fill {
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
-}
-
-.fullname {
- font-weight: 500;
- border-bottom: 1px solid #de8833;
-}
-.my.fullname {
- border-bottom: 3px double #de8833;
-}
-a.fullname:hover {
- text-decoration: none;
- border-bottom-color: inherit;
-}
-
-.close {
- position: relative;
- width: 22px;
- height: 22px;
- opacity: 1;
-}
-.close:hover {
- opacity: 1;
-}
-.close:before,
-.close:after {
- display: inline-block;
- position: absolute;
- background: #c0c0c0;
- left: 50%;
- top: 50%;
- content: '';
- width: 16px;
- height: 2px;
- margin: -1px 0 0 -8px;
- border-radius: 1px;
- transform: rotateZ(45deg) scaleY(.95);
- transition: background-color .2s ease;
-}
-.close:after {
- transform: rotateZ(-45deg) scaleY(.95);
-}
-.close:hover:before,
-.close:hover:after {
- background: #a8a8a8;
-}
-
-.arrow-left,
-.arrow-right {
- display: inline-block;
- width: 16px;
- height: 14px;
- position: relative;
- opacity: 0.4;
- transition: opacity .2s ease;
-}
-.arrow-left:before,
-.arrow-left:after,
-.arrow-right:before,
-.arrow-right:after {
- display: inline-block;
- position: absolute;
- content: '';
- left: 0;
- top: 50%;
-}
-.arrow-left:before,
-.arrow-right:before {
- transform: rotateZ(45deg);
- width: 10px;
- height: 10px;
- border: 2px solid #222;
- margin: -5px 0 0 2px;
- border-width: 0 0 2px 2px;
-}
-.arrow-left:after,
-.arrow-right:after {
- background: #222;
- width: 14px;
- height: 2px;
- margin: -1px 0 0 2px;
-}
-.arrow-right:before {
- margin-left: 4px;
- border-width: 2px 2px 0 0;
-}
-.arrow-right:after {
- margin-left: 0;
-}
-
-.binding {
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: 400;
- font-size: 92%;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-.binding:before {
- content: "\e144";
-}
-
-.ohide {
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
-}
-
-.shide {
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
- padding-top: 0 !important;
- padding-bottom: 0 !important;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
- height: 0 !important;
-}
-
-.sxhide {
- opacity: 0;
- visibility: hidden;
- pointer-events: none;
- padding-left: 0 !important;
- padding-right: 0 !important;
- margin-left: 0 !important;
- margin-right: 0 !important;
- width: 0 !important;
-}
-
-.no-transition,
-.no-transition * {
- transition: none !important;
-}
-
-.nav-pills > li > a {
- padding: 10px 15px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- font-size: 15px;
- font-weight: 500;
- line-height: 22px;
-}
-.nav-pills > li.divider {
- border-bottom: 1px solid #ededed;
- padding-bottom: 7px;
- margin-bottom: 7px;
-}
-.nav-pills > li > a .th-badge {
- font-size: 11px;
- padding: 2px 5px 0;
- margin-top: 2px;
- background: #0f9ae4;
- float: right;
-}
-.nav-pills > li.active > a .th-badge {
- background: #fff;
- color: #0f9ae4;
-}
-.nav-stacked > li + li {
- margin-top: 0;
-}
-
-.popup-buttons .btn-link {
- padding: 10px 15px 8px;
- border-radius: 2px;
-}
-.popup-buttons .btn-link + .btn-link {
- margin-left: 2px;
-}
-.popup-buttons .btn-link:hover {
- background: #e6f1f7;
- text-decoration: none;
-}
-.popup-buttons .btn-link:active {
- background: #d4e6f1;
-}
-.popup-buttons .btn-link:focus {
- text-decoration: none;
-}
-.btn.disabled,
-.btn[disabled],
-.popup-buttons .btn-link.disabled,
-.popup-buttons .btn-link[disabled] {
- color: #b5d1e6;
- opacity: 1;
-}
-
-.input {
- white-space: pre-wrap;
- position: relative;
- z-index: 0;
-}
-.input.empty[data-placeholder] {
- position: relative;
-}
-.input.empty[data-placeholder]:before {
- position: absolute;
- left: 0;
- right: 0;
- content: attr(data-placeholder);
- transition: color .2s ease;
- color: #919699;
- font-weight: normal;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- pointer-events: none;
- z-index: -1;
-}
-.input.empty[data-placeholder]:focus:before {
- color: #ccc;
-}
-input.th-form-control,
-textarea.th-form-control,
-.input.th-form-control {
- padding-left: 0;
- padding-right: 0;
- border: none;
- height: auto;
- resize: none;
- box-shadow: inset 0 -1px 0 #f0f0f0;
- transition: box-shadow .2s ease, color .2s ease;
-}
-input.th-form-control + .th-form-control-underline {
- box-shadow: 0 -1px 0 #f0f0f0;
- transition: box-shadow .2s ease;
- margin-bottom: -2px;
- height: 2px;
-}
-input.th-form-control[readonly],
-textarea.th-form-control[readonly],
-.input.th-form-control[readonly],
-input.th-form-control[disabled],
-textarea.th-form-control[disabled],
-.input.th-form-control[disabled] {
- cursor: auto;
- background: #fff;
-}
-input.th-form-control:focus,
-textarea.th-form-control:focus,
-.input.th-form-control:focus {
- box-shadow: inset 0 -2px 0 #39ade7;
-}
-input.th-form-control:focus + .th-form-control-underline {
- box-shadow: 0 -2px 0 #39ade7;
-}
-input.th-form-control[readonly]:focus,
-textarea.th-form-control[readonly]:focus,
-.input.th-form-control[readonly]:focus,
-input.th-form-control[disabled]:focus,
-textarea.th-form-control[disabled]:focus,
-.input.th-form-control[disabled]:focus {
- box-shadow: inset 0 -1px 0 #f0f0f0;
-}
-.input.th-form-control {
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-.input.th-form-control::-webkit-scrollbar {
- display: none;
-}
-
-.login-popup-container section {
- line-height: 23px;
- max-width: 600px;
-}
-.login-popup-container h2 {
- font-size: 24px;
- margin-top: 15px;
- margin-bottom: 15px;
-}
-.login-popup-container p {
- margin-bottom: 18px;
-}
-.login-popup-container p.help-block {
- margin-top: 18px;
- margin-bottom: -7px;
-}
-.login-popup-container .form-control {
- max-width: 280px;
-}
-
-.dots-animated:after {
- position: absolute;
- display: inline-block;
- animation: dotty steps(1, end) 1s infinite;
- content: '...';
-}
-
-@-webkit-keyframes dotty {
- 0%, 100% { content: ''; }
- 25% { content: '.'; }
- 50% { content: '..'; }
- 75% { content: '...'; }
-}
-@keyframes dotty {
- 0%, 100% { content: ''; }
- 25% { content: '.'; }
- 50% { content: '..'; }
- 75% { content: '...'; }
-}
-
-@-webkit-keyframes upload-circle {
- from { transform: rotateZ(-90deg); }
- to { transform: rotateZ(270deg); }
-}
-@keyframes upload-circle {
- from { transform: rotateZ(-90deg); }
- to { transform: rotateZ(270deg); }
-}
-
-header {
- width: 100%;
- margin: 0;
- position: fixed;
- z-index: 100;
- background: #fff;
-}
-header .header-wrap {
- padding: 9px 0 8px;
- position: relative;
- background: #fff;
- box-shadow: 0 1px rgba(0, 0, 0, .12);
- z-index: 2;
-}
-header + main {
- padding-top: 59px;
-}
-
-header.has-search + main section.th-content {
- padding-top: 49px;
-}
-header.has-message + main {
- margin-top: 112px;
-}
-header .btn-lg {
- padding: 11px 12px 10px;
-}
-.header-panel {
- position: relative;
- padding: 0 15px;
- z-index: 7;
-}
-.header-panel .header-breadcrumb {
- height: 41px;
- overflow: hidden;
-}
-.header-auth {
- float: right;
- margin-left: 15px;
-}
-.header-btn-wrap {
- float: right;
- transition: all .2s ease;
- width: 0;
-}
-.header-btn-oshow .header-btn-wrap {
- opacity: 1;
- visibility: visible;
- pointer-events: auto;
- width: auto;
-}
-.header-btn-wrap,
-.header-btn-oshow .th-theme-header {
- opacity: 0;
- visibility: visible;
- pointer-events: auto;
-}
-.header-auth-item {
- display: inline-block;
- vertical-align: top;
- padding: 11px 0;
- font-weight: 500;
- white-space: nowrap;
-}
-.header-auth-item + .header-auth-item {
- margin-left: 15px;
-}
-.header-auth-link {
- display: inline-block;
- vertical-align: top;
-}
-.header-auth-photo {
- display: inline-block;
- vertical-align: top;
- width: 32px;
- height: 32px;
- border-radius: 16px;
- background: #efefef;
- text-align: center;
- overflow: hidden;
- margin: -7px 0 -7px 0;
-}
-.header-auth-photo img {
- width: 100%;
-}
-.header-auth-photo .photo-char {
- font-size: 14px;
- vertical-align: middle;
- line-height: 32px;
- color: #999;
-}
-.header-search-item {
- padding-bottom: 18px;
- margin-bottom: -18px;
- overflow: hidden;
-}
-.header-auth-name {
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- max-width: 190px;
- color: #0086d3;
-}
-.header-auth-name:after {
- content: '';
- display: inline-block;
- width: 12px;
- height: 7px;
- background: url('/img/translations/icons.png?8') no-repeat -7px -324px;
- margin: 0 0 2px 7px;
-}
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- .header-auth-name:after {
- background-image: url('/img/translations/icons_2x.png?8');
- background-size: 26px 752px;
- }
-}
-.header-auth-name.dropdown-toggle {
- cursor: pointer;
-}
-.header-auth-name + .dropdown-menu {
- top: -21px;
- left: auto;
- right: -4px;
-}
-@media (min-width: 1420px) {
- .header-auth-name + .dropdown-menu {
- left: -4px;
- right: auto;
- }
-}
-
-.header-message {
- background: #1e98d4;
- text-align: center;
- color: #fff;
- padding: 13px 15px;
-}
-.header-message a {
- color: #fff;
- text-decoration: underline;
-}
-.header-message .hide-button {
- color: #fff;
- margin: -11px -12px -10px 12px;
- font-weight: normal;
- float: right;
-}
-
-header .breadcrumb > .active,
-header .breadcrumb > .active a {
- color: #222;
-}
-header .breadcrumb > .placeholder {
- color: #999;
-}
-header .breadcrumb > li {
- padding: 11px 0;
- font-size: 15px;
- line-height: 1.3333333;
- font-weight: 500;
- position: relative;
-}
-header .breadcrumb > li > a,
-header .breadcrumb > li.active > strong {
- display: inline-block;
- text-overflow: ellipsis;
- vertical-align: top;
- overflow: hidden;
- max-width: 190px;
-}
-header .container-fluid .breadcrumb > li > a,
-header .container-fluid .breadcrumb > li.active > strong {
- max-width: 240px;
-}
-header .breadcrumb > li.active > a {
- overflow: visible;
- max-width: none;
-}
-header .breadcrumb > li:before {
- content: '';
-}
-header .breadcrumb > li:after {
- content: "\00a0/\00a0";
- padding: 0 8px;
- color: #d4d4d4;
-}
-header .breadcrumb > li:last-child:after {
- content: '';
-}
-header .input-group-addon.breadcrumb > li:last-child:after {
- content: "\00a0/\00a0";
-}
-header .header-breadcrumb .dropdown {
- position: static;
-}
-header .header-breadcrumb .dropdown-menu {
- left: auto;
- top: 48px;
- margin: 0 0 0 -15px;
- min-width: 0;
- font-size: 15px;
- border: none;
- box-shadow: 0 0 2px rgba(0, 0, 0, .15);
-}
-header .header-breadcrumb .dropdown.open > .dropdown-menu {
- display: inline;
-}
-header .header-breadcrumb .dropdown.open > .dropdown-menu > li {
- display: block;
-}
-header .header-breadcrumb .dropdown.open > .dropdown-menu > li > a {
- padding: 10px 35px 10px 15px;
- margin: 0;
- color: #2e87ca;
-}
-header .header-breadcrumb .dropdown.open > .dropdown-menu > li > a:hover {
- background-color: #f0f6fa;
- color: #2e87ca;
-}
-header .header-breadcrumb .dropdown.open > .dropdown-menu > li.active > a:hover,
-header .header-breadcrumb .dropdown.open > .dropdown-menu > li.active > a {
- background-color: #1e98d4;
- color: #fff;
- font-weight: 500;
- position: relative;
-}
-.buttons-wrap {
- padding: 15px 0;
-}
-.buttons-wrap .btn {
- margin-left: -15px;
-}
-
-.header-breadcrumb .breadcrumb {
- background: none;
- border: transparent;
- padding: 0;
- margin: 0;
- overflow: visible;
-}
-.header-breadcrumb-simple .breadcrumb {
- overflow: hidden;
-}
-.header-breadcrumb-simple .breadcrumb > .active {
- display: inline;
-}
-.header-breadcrumb .input-label {
- font-weight: normal;
-}
-.input-group .input-dropdown {
- display: table-cell;
- position: relative;
-}
-.input-dropdown .form-control {
- height: auto;
- border: transparent;
- background: transparent;
- color: #222;
- overflow: hidden;
- text-overflow: ellipsis;
- padding: 11px 16px 11px 1px;
- margin-left: -1px;
- border-radius: 0 !important;
- transition: color .2s ease;
-}
-.form-control::-webkit-input-placeholder {
- transition: color .2s ease;
- color: #999;
-}
-.form-control::-moz-placeholder {
- transition: color .2s ease;
- color: #999;
-}
-.form-control:-ms-input-placeholder {
- transition: color .2s ease;
- color: #999;
-}
-.form-control:focus::-webkit-input-placeholder {
- color: #ccc;
-}
-.form-control:focus::-moz-placeholder {
- color: #ccc;
-}
-.form-control:focus:-ms-input-placeholder {
- color: #ccc;
-}
-.has-section-status .input-dropdown .form-control {
- padding-right: 50px;
-}
-
-
-.progress-bar {
- width: 0;
- transition: width .4s linear, box-shadow .3s ease;
-}
-.progress-bar.no-transition {
- transition: none;
-}
-.progress-bar.no-shown {
- box-shadow: inset 0 0 0 #39ade7;
-}
-
-header .progress-bar {
- position: absolute;
- z-index: 1;
- bottom: 0;
- height: 3px;
- box-shadow: inset 0 -2px 0 #39ade7;
-}
-
-.btn-inactive {
- cursor: auto;
- pointer-events: none;
-}
-
-.nav-menu {
- padding: 10px 0 30px;
-}
-@media (min-width: 768px) {
- .nav-menu.nav-menu-can-fix {
- position: fixed;
- top: 68px;
- bottom: 0;
- overflow-y: scroll;
- }
- header.has-message + main .nav-menu.nav-menu-can-fix {
- top: 112px;
- }
- .nav-menu.nav-menu-can-fix::-webkit-scrollbar {
- display: none;
- }
-}
-
-.section-header {
- position: relative;
- overflow: hidden;
-}
-
-.header-labels {
- position: absolute;
- font-size: 13px;
- line-height: 16px;
- height: 0;
- bottom: 0;
- right: 0;
-}
-.header-labels .help-labels {
- position: relative;
- white-space: nowrap;
-}
-.header-labels .help-label {
- position: absolute;
- padding: 4px 10px;
- right: 0;
- color: #aaa;
-}
-.header-labels .help-label a {
- color: #555;
- cursor: pointer;
-}
-
-section h3 .header-count {
- margin-left: 10px;
- color: #999;
-}
-
-.popup-form {
- margin: 25px 0 0;
- overflow: visible !important;
-}
-
-.radio-row {
- display: block;
- margin: 5px -5px;
- padding: 5px;
- font-weight: normal;
- overflow: hidden;
- cursor: pointer;
-}
-.radio-row .radio {
- position: absolute;
- left: -5000px;
-}
-.radio-row .radio + .radio-label {
- position: relative;
- line-height: 18px;
- padding: 0;
-}
-.radio-row .radio + .radio-label:before {
- display: inline-block;
- content: '';
- width: 18px;
- height: 18px;
- border-radius: 9px;
- border: 2px solid #999;
- vertical-align: top;
- margin: 0 12px 0 0;
- padding: 0;
-}
-.radio-row .radio:checked + .radio-label:before {
- border-color: #319bd8;
-}
-.radio-row .radio:checked + .radio-label:after {
- display: inline-block;
- content: '';
- width: 8px;
- height: 8px;
- border-radius: 4px;
- background: #319bd8;
- vertical-align: top;
- margin: 5px;
- padding: 0;
- position: absolute;
- left: 0;
-}
-.radio-row .radio.disabled + .radio-label,
-.radio-row .radio[disabled] + .radio-label {
- opacity: 0.65;
-}
-
-.radio-item .radio-input + .radio-label,
-.checkbox-item .checkbox-input + .checkbox-label {
- vertical-align: top;
- line-height: 19px;
- padding-top: 1px;
-}
-
-
-.section-label {
- font-size: 15px;
- font-weight: normal;
- margin: 0 5px 0 12px;
- float: right;
-}
-.section-label-success {
- color: #449d44;
-}
-.section-label-danger {
- color: #c9302c;
-}
-.section-label-info {
- color: #31b0d5;
-}
-.section-btn .glyphicon,
-.section-label .glyphicon {
- font-size: 17px;
- position: static;
- vertical-align: middle;
-}
-.section-btn .label {
- padding: 0 4px;
-}
-.section-label .label {
- padding: 0 2px;
- vertical-align: middle;
-}
-
-.list-group-item-heading .section-label {
- font-size: 13px;
-}
-.list-group-item-heading .section-label .glyphicon {
- font-size: 14px;
-}
-
-#dev_page_content_wrap {
- padding: 0 25px 10px;
- max-width: none;
-}
-#dev_page_content,
-#dev_page_content p {
- font-size: 15px;
- line-height: 1.6;
-}
-#dev_page_content_wrap h1,
-#dev_page_content_wrap h2,
-#dev_page_content_wrap h3,
-#dev_page_content_wrap h4,
-.page-content-wrap h3 {
- font-weight: 500;
- position: relative;
-}
-#dev_page_content_wrap h1 {
- font-size: 21px;
- margin: 27px 0 12px;
-}
-#dev_page_content_wrap h2,
-#dev_page_content_wrap h3 {
- font-size: 19px;
- margin: 27px 0 12px;
-}
-#dev_page_content_wrap h4,
-#dev_page_content_wrap h5 {
- font-size: 17px;
- margin: 27px 0 10px;
-}
-#dev_page_content_wrap pre,
-#dev_page_content_wrap code {
- font-family: monospace, 'Courier New';
- font-size: 87%;
-}
-#dev_page_content_wrap pre {
- line-height: 18px;
- word-wrap: break-word;
- white-space: pre-wrap;
- word-break: normal;
- padding: 6px 12px;
- border: none;
- background: #f4f8fb;
-}
-#dev_page_content_wrap code {
- color: inherit;
- background: #ecf3f8;
-}
-#dev_page_content_wrap blockquote {
- border-color: #179cde;
- padding: 5px 17px;
-}
-#dev_page_content_wrap b,
-#dev_page_content_wrap strong {
- font-weight: 500;
-}
-#dev_page_content_wrap .dev_page_image {
- display: block;
- max-width: 100% !important;
- margin: 0 auto;
- padding: 10px 0px 5px;
-}
-
-#dev_page_content_wrap a.anchor,
-.page-content-wrap a.anchor {
- position: absolute;
- height: 1px;
- top: -70px;
-}
-header.has-message + main #dev_page_content_wrap a.anchor,
-header.has-message + main .page-content-wrap a.anchor {
- top: -114px;
-}
-#dev_page_content_wrap a.anchor-link,
-.page-content-wrap a.anchor-link {
- text-decoration: none;
- line-height: 1;
- margin-left: -0.7em;
-
- cursor: default;
- display: block;
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
-
- border-top: 10px solid transparent;
- margin-top: -10px;
- outline: 0;
-}
-
-#dev_page_content_wrap a.anchor-link i.anchor-icon,
-.page-content-wrap a.anchor-link i.anchor-icon {
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: 400;
- font-size: 62%;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
- margin-top: 2px;
- opacity: 0;
-
- cursor: pointer;
- padding: 0;
- position: relative;
- z-index: 10;
-
- -webkit-transition: opacity .2s ease-in-out;
- -moz-transition: opacity .2s ease-in-out;
- -ms-transition: opacity .2s ease-in-out;
- -o-transition: opacity .2s ease-in-out;
- transition: opacity .2s ease-in-out;
-}
-#dev_page_content_wrap a.anchor-link i.anchor-icon:before,
-.page-content-wrap a.anchor-link i.anchor-icon:before {
- content: "\e144";
-}
-@media (min-width: 992px) {
- #dev_page_content_wrap a.anchor-link,
- .page-content-wrap a.anchor-link {
- margin-left: -1.1em;
- }
- #dev_page_content_wrap a.anchor-link i.anchor-icon,
- .page-content-wrap a.anchor-link i.anchor-icon {
- font-size: 85%;
- }
-}
-
-#dev_page_content_wrap h1 a.anchor-link i.anchor-icon {
- margin-top: 4px;
-}
-
-#dev_page_content_wrap h1:hover a.anchor-link i.anchor-icon,
-#dev_page_content_wrap h2:hover a.anchor-link i.anchor-icon,
-#dev_page_content_wrap h3:hover a.anchor-link i.anchor-icon,
-#dev_page_content_wrap h4:hover a.anchor-link i.anchor-icon,
-.page-content-wrap h3:hover a.anchor-link i.anchor-icon {
- opacity: 0.6;
-}
-#dev_page_content_wrap i.anchor-icon:hover,
-.page-content-wrap i.anchor-icon:hover {
- opacity: 1 !important;
-}
-
-#dev_side_nav_cont .dev_side_nav_wrap {
- position: relative;
- display: none;
-}
-@media (min-width: 768px) {
- #dev_side_nav_cont .dev_side_nav_wrap {
- display: block;
- }
-}
-#dev_side_nav_cont .dev_side_nav {
- position: static;
- width: auto;
-}
-#dev_side_nav_cont .dev_side_nav > ul {
- width: auto;
- float: none;
- background: none;
- padding: 7px 0;
-}
-#dev_side_nav_cont .dev_side_nav > ul::-webkit-scrollbar {
- display: none;
-}
-#dev_side_nav_cont .dev_side_nav > ul.affix-top,
-#dev_side_nav_cont .dev_side_nav > ul.affix,
-#dev_side_nav_cont .dev_side_nav > ul.affix-bottom {
- position: static;
-}
-#dev_side_nav_cont .dev_side_nav li {
- float: none !important;
-}
-#dev_side_nav_cont .dev_side_nav li:before {
- display: none;
-}
-#dev_side_nav_cont .dev_side_nav li a {
- border-left: 3px solid transparent;
- padding: 9px 15px 9px 12px;
- font-size: 13px;
- font-weight: normal;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- display: block;
-}
-#dev_side_nav_cont .dev_side_nav li li a {
- padding: 6px 15px 6px 22px;
- font-size: 12px;
- font-weight: 400;
-}
-#dev_side_nav_cont .dev_side_nav li a:hover {
- background: #f0f6fa !important;
-}
-#dev_side_nav_cont .dev_side_nav li.active > a {
- border-left: 3px solid #1e98d4;
-}
-#dev_side_nav_cont .dev_side_nav li ul {
- display: none;
-}
-#dev_side_nav_cont .dev_side_nav li.active ul {
- display: block;
-}
-
-main.intro,
-main.docs {
- padding-bottom: 43px;
-}
-
-main.docs #dev_page_content_wrap h1#dev_page_title {
- font-size: 24px;
- margin: 12px 0 12px;
-}
-
-main.intro #dev_page_content_wrap h1#dev_page_title {
- padding: 12px 0 12px;
- margin: 0;
- font-weight: 500;
- font-size: 18px;
-}
-
-.popup-container {
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background: rgba(0,0,0,.6);
- z-index: 101;
- display: -webkit-flex;
- display: flex;
- justify-content: center;
- align-items: center;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-.popup {
- max-width: 100%;
- word-wrap: break-word;
- margin: 15px;
- border-radius: 4px;
- background: #fff;
- box-shadow: 0 0 12px rgba(0, 0, 0, .3);
-}
-.popup section {
- position: relative;
- padding-bottom: 60px;
-}
-.popup h4 {
- font-size: 18px;
- margin: 5px 0 15px;
-}
-.popup h4 ~ h4 {
- margin-top: 25px;
-}
-.popup-body {
- padding: 20px;
-}
-.login-popup-container .popup-body {
- padding: 15px 25px 25px;
-}
-@media (min-width: 560px) {
- .popup {
- margin: 50px;
- }
- .popup-body {
- padding: 30px 35px;
- }
- .login-popup-container .popup-body {
- padding: 50px 60px;
- }
-}
-@media (min-width: 768px) {
- .popup {
- max-width: 600px;
- }
-}
-.popup .popup-text {
- margin: 0;
- line-height: 24px;
- position: relative;
- z-index: 1;
-}
-.popup .popup-buttons {
- margin: -17px -15px -10px;
- position: absolute;
- right: 0;
- bottom: 0;
-}
-
-
-
-.form-group label,
-.popup-text b,
-.th-markdown strong {
- font-weight: 500;
-}
-.form-group-buttons {
- margin-top: 30px;
-}
-
-
-a.th-header-right-btn,
-button.th-header-right-btn {
- font-size: 12px;
- line-height: 14px;
- padding: 4px 10px 3px;
- margin: 1px 0 1px 7px;
- border-radius: 3px;
- position: relative;
- float: right;
- z-index: 1;
-}
-
-.th-filter-wrap {
- display: inline-block;
- position: relative;
- margin: -3px -9px 0 0;
- float: right;
- z-index: 1;
-}
-.th-dropdown {
- display: inline-block;
- font-size: 13px;
- line-height: 15px;
- padding: 5px 12px;
- border-radius: 3px;
- color: #0086d3;
-}
-.th-dropdown.dropdown-toggle {
- cursor: pointer;
-}
-.th-dropdown.dropdown-toggle:hover,
-.open .th-dropdown.dropdown-toggle {
- background: #f0f4f7;
-}
-.th-dropdown-wrap span.dropdown-menu {
- left: auto;
- right: 0;
- margin: 7px 0 0;
- border: 1px solid rgba(0, 0, 0, .06);
- border-radius: 4px;
- font-size: 14px;
- line-height: 1.42857143;
- overflow: hidden;
- min-width: 150px;
-}
-.th-dropdown-wrap span.dropdown-menu > ul.dropdown-menu {
- position: static;
- display: block;
- float: none;
- border: none;
- box-shadow: none;
- border-radius: 0;
- min-width: 0;
- margin: 0 -20px 0 0;
- padding: 7px 20px 7px 0;
- max-height: 235px;
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item {
- display: block;
- cursor: pointer;
- padding: 6px 36px 6px 15px;
- margin: 0;
- position: relative;
- color: #222;
-}
-.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item:hover,
-.th-dropdown-wrap ul.dropdown-menu > li > .th-dropdown-item:focus {
- background-color: #f4f4f4;
- color: #222;
-}
-.th-dropdown-wrap ul.dropdown-menu > li.selected > .th-dropdown-item:after {
- content: '';
- display: inline-block;
- position: absolute;
- pointer-events: none;
- bottom: 0;
- right: 0;
- top: 0;
- margin: auto 13px;
- width: 15px;
- height: 12px;
- background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 15 12" width="15" height="12" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M 2 6 L 5.5 9.5 L 13 3" stroke="%23228fe1" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/%3E%3C/svg%3E');
-}
-.th-places-wrap {
- display: inline-block;
- position: relative;
- margin: 10px 0 0 4px;
- float: right;
-}
-.th-places-wrap .th-dropdown {
- font-weight: 500;
- text-align: center;
- width: 36px;
-}
-
-
-
-@media (min-width: 720px) {
- .container {
- padding-left: 15px;
- padding-right: 15px;
- }
- .th-aside {
- width: 308px;
- float: right;
- margin: -5px 15px 35px;
- }
- .th-content {
- min-width: 308px;
- margin-top: -5px;
- }
- .th-aside + .th-content {
- margin-right: 410px;
- }
- .th-logo-title {
- display: inline;
- }
- .th-aside > a.th-header-right-btn,
- .th-aside > button.th-header-right-btn {
- margin-top: 26px;
- }
- .th-dropdown-wrap span.dropdown-menu {
- left: 0;
- right: auto;
- }
- .th-theme-header .th-theme-buttons {
- margin-right: 0;
- }
- .th-theme-source-code-wrap .CodeMirror {
- border-width: 1px;
- }
-}
diff --git a/data/translations.telegram.org/en.html b/data/translations.telegram.org/en.html
deleted file mode 100644
index f20b3e6ed1..0000000000
--- a/data/translations.telegram.org/en.html
+++ /dev/null
@@ -1,333 +0,0 @@
-
-
-
-
-
Translations
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Search in: English All Apps
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Feel free to join the discussion of this language pack.
- View Discussion
-
-
-
-
-
- Anyone can switch their Telegram interface to English by following this link:
-
-
-
-
-
-
-
-
English
-
English
-
Please open this link on a desktop to help translate Telegram into English :
-
-
-
Feel free to join the discussion of this language pack.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data/tsf.telegram.org/js/tsf.js b/data/tsf.telegram.org/js/tsf.js
deleted file mode 100644
index b793849eea..0000000000
--- a/data/tsf.telegram.org/js/tsf.js
+++ /dev/null
@@ -1,1236 +0,0 @@
-(function($) {
- $.fn.redraw = function() {
- return this.map(function(){ this.offsetTop; return this; });
- };
- $.fn.prepareSlideX = function(callback) {
- return this.map(function(){
- $(this).css({width: this.scrollWidth, overflow: 'hidden'});
- return this;
- }).one('transitionend', function(){
- $(this).css({width: '', overflow: ''});
- callback && callback.call(this);
- }).redraw();
- };
- $.fn.prepareSlideY = function(callback) {
- return this.map(function(){
- $(this).css({height: this.scrollHeight, overflow: 'hidden'});
- return this;
- }).one('transitionend', function(){
- $(this).css({height: '', overflow: ''});
- callback && callback.call(this);
- }).redraw();
- };
- $.fn.animOff = function(this_el) {
- if (this_el) {
- return this.css('transition', 'none').redraw();
- }
- return this.addClass('no-transition').redraw();
- };
- $.fn.animOn = function(this_el) {
- if (this_el) {
- return this.redraw().css('transition', '');
- }
- return this.redraw().removeClass('no-transition');
- };
- $.fn.fadeShow = function() {
- return this.removeClass('ohide');
- };
- $.fn.fadeHide = function() {
- return this.addClass('ohide');
- };
- $.fn.isFadeHidden = function() {
- return this.hasClass('ohide');
- };
- $.fn.fadeToggle = function(state) {
- if (state === true || state === false) {
- state = !state;
- }
- return this.toggleClass('ohide', state);
- };
- $.fn.slideShow = function(callback) {
- return this.prepareSlideY(callback).removeClass('shide');
- };
- $.fn.slideHide = function(callback) {
- if (callback == 'remove') {
- callback = function(){ $(this).remove(); };
- }
- return this.prepareSlideY(callback).addClass('shide');
- };
- $.fn.isSlideHidden = function() {
- return this.hasClass('shide');
- };
- $.fn.slideToggle = function(state, callback) {
- if (state === true || state === false) {
- state = !state;
- }
- return this.prepareSlideY(callback).toggleClass('shide', state);
- };
- $.fn.highlight = function(delay) {
- var $this = this;
- $this.addClass('highlight');
- setTimeout(function() { $this.removeClass('highlight'); }, delay);
- return $this;
- };
- $.fn.scrollIntoView = function(options) {
- options = options || {}
- return this.first().each(function() {
- var padding = options.padding || 0,
- duration = options.duration || 0;
- var $item = $(this),
- $cont = $item.scrollParent(),
- scrollTop = $cont.scrollTop(),
- positionTop = 0,
- paddingTop = 0,
- itemHeight = $item.outerHeight(),
- isBody = false;
- if ($cont.get(0) === document) {
- isBody = true;
- $cont = $(window);
- positionTop = $item.offset().top;
- paddingTop = $('header').height() + 1;
- } else {
- positionTop = $item.offset().top - $cont.offset().top + scrollTop;
- }
- if (options.slidedEl) {
- if (options.slidedEl === 'this') {
- options.slidedEl = this;
- }
- $(options.slidedEl, this).each(function() {
- itemHeight += (this.scrollHeight - this.clientHeight);
- });
- }
- var itemTop = positionTop,
- itemBottom = itemTop + itemHeight,
- contHeight = $cont.height(),
- contTop = scrollTop + padding + paddingTop,
- contBottom = scrollTop + contHeight - padding,
- scrollTo = null;
- if (itemTop < contTop) {
- scrollTo = itemTop - padding - paddingTop;
- } else if (itemBottom > contBottom) {
- if (itemHeight > contHeight - padding - padding) {
- scrollTo = itemTop - padding - paddingTop;
- } else {
- scrollTo = itemBottom - contHeight + padding;
- }
- }
- if (scrollTo) {
- if (duration) {
- if (isBody) {
- $cont = $('html');
- }
- $cont.stop().animate({scrollTop: scrollTo}, duration);
- } else {
- $cont.scrollTop(scrollTo);
- }
- }
- });
- };
- $.fn.initSearch = function(options) {
- var $field = this;
- var curValue = $field.val();
- var curSelectedIndex = false;
- var curResult = [];
- var curRenderedIndex = 0;
- var dataWaiting = false;
- var keyUpTimeout = null;
- var blurTimeout = null;
- var isFocused = false;
- options = options || {};
- if (!options.searchEnabled) {
- options.searchEnabled = function(){ return true; };
- }
- $field.data('options', options);
-
- function onKeyDown(e) {
- switch (e.which) {
- case Keys.ESC:
- $field.blur();
- break;
- case Keys.RETURN:
- select(curSelectedIndex);
- break;
- case Keys.UP:
- var index;
- if (!curSelectedIndex) {
- if (options.$enter && options.enterEnabled()) {
- index = false;
- } else {
- break;
- }
- } else {
- index = curSelectedIndex - 1;
- }
- hover(index, true);
- break;
- case Keys.DOWN:
- var index;
- if (curSelectedIndex === false) {
- index = 0;
- } else {
- index = curSelectedIndex + 1;
- }
- if (index > curResult.length - 1) {
- break;
- }
- hover(index, true);
- break;
- default:
- return;
- }
- e.stopImmediatePropagation();
- e.preventDefault();
- }
-
- function onKeyUp(e) {
- console.log(+new Date, 'cancelblur3');
- clearTimeout(blurTimeout);
- var value = $field.val();
- clearTimeout(keyUpTimeout);
- if (curValue !== value) {
- // if (e.type == 'keyup') {
- // keyUpTimeout = setTimeout(function() {
- // valueChange();
- // }, 50);
- // } else {
- valueChange();
- options.onInput && options.onInput(value);
- // }
- }
- }
-
- function check(item, queryLower) {
- if (!queryLower.length) {
- return 0;
- }
- for (var j = 0; j < item._values.length; j++) {
- var valueLower = item._values[j];
- if (valueLower == queryLower) {
- return valueLower.length;
- }
- }
- for (var j = 0; j < item._values.length; j++) {
- var valueLower = item._values[j];
- if (valueLower.indexOf(queryLower) !== -1) {
- return valueLower.length;
- }
- }
- return false;
- }
-
- function search(data, query) {
- if (!query.length) {
- return [];
- }
- var time = +(new Date);
- var queryLower = query.toLowerCase();
- var result = [];
- for (var i = 0; i < data.length; i++) {
- var item = data[i];
- var valueScore = check(item, queryLower);
- if (valueScore !== false) {
- item._score = valueScore;
- item._i = i;
- result.push(item);
- }
- }
- result.sort(function(item1, item2) {
- return (item1._score - item2._score) || (item1._i - item2._i);
- });
- for (i = 0; i < result.length; i++) {
- var item = result[i];
- delete item._score;
- delete item._i;
- }
- console.log('search: ' + (((new Date) - time) / 1000) + 's');
- return result;
- }
-
- function render(result, query, from_index) {
- var time = +(new Date);
- var queryLower = query.toLowerCase();
- from_index = from_index || 0;
- var html = '';
- if (result.length > 0) {
- for (var i = from_index, j = 0; i < result.length && j < 50; i++, j++) {
- var item = result[i];
- var item_html = '
' + options.renderItem(item, query) + '
';
- html += item_html;
- }
- curRenderedIndex = i;
- } else {
- html = options.renderNoItems ? options.renderNoItems(query) : '';
- curRenderedIndex = 0;
- }
- if (!from_index) {
- options.$results.html(html);
- } else if (html) {
- options.$results.append(html);
- }
- console.log('render: from ' + from_index + ', ' + j + ' lines, ' + (((new Date) - time) / 1000) + 's');
- }
-
- function renderLoading() {
- curRenderedIndex = 0;
- options.$results.html(options.renderLoading ? options.renderLoading() : '');
- }
-
- function renderEmpty() {
- curRenderedIndex = 0;
- options.$results.html('');
- }
-
- function close() {
- console.log(+new Date, 'close');
- clearTimeout(keyUpTimeout);
- if (!options.$results.hasClass('collapsed')) {
- if (options.$enter && options.enterEnabled()) {
- options.$enter.removeClass('selected');
- }
- options.$results.addClass('collapsed');
- options.onClose && options.onClose();
- }
- }
-
- function open() {
- clearTimeout(blurTimeout);
- hover(curSelectedIndex, true);
- options.$results.removeClass('collapsed');
- options.onOpen && options.onOpen();
- }
-
- function onFocus() {
- isFocused = true;
- var value = $field.val();
- if (curValue != value ||
- options.searchEnabled() && options.getData() === false) {
- valueChange();
- }
- open();
- }
-
- function onBlur() {
- if (!isFocused) return;
- console.log(+new Date, 'onblur');
- isFocused = false;
- clearTimeout(blurTimeout);
- blurTimeout = setTimeout(close, 100);
- }
-
- function valueChange() {
- console.log(+new Date, 'cancelblur1');
- clearTimeout(blurTimeout);
- clearTimeout(keyUpTimeout);
- var value = $field.val();
- curValue = value;
- console.log('valueChange', options.searchEnabled());
- if (options.searchEnabled()) {
- var data = options.getData();
- if (data === false) {
- if (!dataWaiting) {
- dataWaiting = true;
- $field.one('dataready.search', function() {
- dataWaiting = false;
- valueChange();
- });
- }
- if (curValue.length) {
- renderLoading();
- } else {
- renderEmpty();
- }
- return;
- }
- curResult = search(data, curValue);
- var index = false;
- if (curValue.length) {
- render(curResult, curValue);
- if (curResult.length && (!options.$enter || !options.enterEnabled())) {
- index = 0;
- }
- } else {
- renderEmpty();
- }
- } else {
- curResult = [];
- var index = false;
- renderEmpty();
- }
- hover(index, true);
- }
-
- function hover(i, adjust_scroll) {
- $('.search-item.selected', options.$results).removeClass('selected');
- curSelectedIndex = i;
- if (curSelectedIndex !== false) {
- var selectedEl = $('.search-item', options.$results).get(curSelectedIndex);
- if (!selectedEl) {
- curSelectedIndex = false;
- } else {
- $(selectedEl).addClass('selected');
- if (adjust_scroll) {
- adjustScroll($(selectedEl));
- }
- if (Math.abs(curSelectedIndex - curRenderedIndex) < 5) {
- render(curResult, curValue, curRenderedIndex);
- }
- }
- }
- if (options.$enter && options.enterEnabled()) {
- options.$enter.toggleClass('selected', curSelectedIndex === false);
- }
- }
-
- function select(i) {
- if (i === false) {
- if (options.$enter && options.enterEnabled()) {
- $field.blur();
- options.onEnter(curValue);
- close();
- }
- return;
- }
- $field.blur();
- options.onSelect(curResult[i]);
- close();
- }
-
- function onItemMouseOver() {
- hover($(this).data('i'));
- }
-
- function onResultsScroll(e) {
- if (this.scrollTop > this.scrollHeight - this.clientHeight - 1000) {
- render(curResult, curValue, curRenderedIndex);
- }
- }
-
- function onResultsMouseWheel(e) {
- var d = e.originalEvent.wheelDelta;
- if((this.scrollTop === (this.scrollHeight - this.clientHeight) && d < 0) ||
- (this.scrollTop === 0 && d > 0)) {
- e.preventDefault();
- }
- }
-
- function onItemClick(e) {
- if (e.metaKey || e.ctrlKey) return true;
- console.log(+new Date, 'cancelblur2');
- clearTimeout(blurTimeout);
- e.stopImmediatePropagation();
- e.preventDefault();
- select($(this).data('i'));
- }
-
- function adjustScroll($itemEl) {
- var scrollTop = options.$results.scrollTop(),
- itemTop = $itemEl.position().top + scrollTop,
- itemHeight = $itemEl.outerHeight(),
- itemBottom = itemTop + itemHeight,
- contHeight = options.$results.height() || 300;
-
- if (itemTop < scrollTop) {
- options.$results.scrollTop(itemTop);
- } else if (itemBottom > scrollTop + contHeight) {
- options.$results.scrollTop(itemBottom - contHeight);
- }
- }
-
- if (options.$enter && options.enterEnabled()) {
- options.$enter.on('mouseover.search', onItemMouseOver);
- options.$enter.on('mousedown.search', onItemClick);
- options.$enter.data('i', false);
- }
- options.$results.on('mouseover.search', '.search-item', onItemMouseOver);
- options.$results.on('mousedown.search', '.search-item', onItemClick);
- options.$results.on('scroll.search', onResultsScroll);
- options.$results.on('mousewheel.search', onResultsMouseWheel);
- $field.on('keydown.search', onKeyDown);
- $field.on('keyup.search', onKeyUp);
- $field.on('focus.search', onFocus);
- $field.on('blur.search', onBlur);
- $field.on('input.search', onKeyUp);
-
- $field.on('datachange.search', function() {
- valueChange();
- });
-
- options.$results.addClass('collapsed');
- return this;
- };
- $.fn.destroySearch = function() {
- var $field = this;
- var options = $field.data('options');
- if (options.$enter && options.enterEnabled()) {
- options.$enter.off('.search');
- }
- options.$results.off('.search');
- $field.off('.search');
- return this;
- };
- $.fn.hasField = function(name) {
- return this.first().map(function() {
- if (this.tagName == 'FORM') {
- if (this[name]) {
- return true;
- }
- return $('.input[data-name]', this).filter(function() {
- return ($(this).attr('data-name') == name);
- }).size() > 0;
- }
- return false;
- }).get(0) || false;
- };
- $.fn.field = function(name) {
- return this.first().map(function() {
- if (this.tagName == 'FORM') {
- if (this[name]) {
- return this[name];
- }
- return $('.input[data-name]', this).filter(function() {
- return ($(this).attr('data-name') == name);
- }).get(0);
- }
- });
- };
- $.fn.reset = function(val) {
- return this.each(function() {
- if (this.tagName == 'FORM') {
- this.reset();
- $('.input[data-name]', this).each(function() {
- $(this).text($(this).attr('data-value')).trigger('input');
- });
- }
- });
- };
- $.fn.defaultValue = function(val) {
- if (typeof val !== 'undefined') {
- return this.each(function() {
- if (this.tagName == 'TEXTAREA' || this.tagName == 'INPUT') {
- this.defaultValue = val;
- } else {
- $(this).attr('data-value', val);
- }
- });
- }
- return this.first().map(function() {
- if (this.tagName == 'TEXTAREA' || this.tagName == 'INPUT') {
- return this.defaultValue || '';
- } else {
- return $(this).attr('data-value') || '';
- }
- }).get(0) || '';
- };
- $.fn.value = function(val) {
- if (typeof val !== 'undefined') {
- return this.each(function() {
- if (this.tagName == 'TEXTAREA' || this.tagName == 'INPUT') {
- this.value = val;
- } else {
- $(this).text(val).trigger('input');
- }
- });
- }
- return this.first().map(function() {
- if (this.tagName == 'TEXTAREA' || this.tagName == 'INPUT') {
- return this.value || '';
- } else {
- return $(this).text() || '';
- }
- }).get(0) || '';
- };
-
- $.fn.initTextarea = function() {
- function getRangeText(range) {
- var div = document.createElement('DIV');
- div.appendChild(range.cloneContents());
- return getText(div, true);
- }
- function isBlockEl(el) {
- var blockTags = {ADDRESS: 1, ARTICLE: 1, ASIDE: 1, AUDIO: 1, BLOCKQUOTE: 1, CANVAS: 1, DD: 1, DIV: 1, DL: 1, FIELDSET: 1, FIGCAPTION: 1, FIGURE: 1, FIGURE: 1, FIGCAPTION: 1, FOOTER: 1, FORM: 1, H1: 1, H2: 1, H3: 1, H4: 1, H5: 1, H6: 1, HEADER: 1, HGROUP: 1, HR: 1, LI: 1, MAIN: 1, NAV: 1, NOSCRIPT: 1, OL: 1, OUTPUT: 1, P: 1, PRE: 1, SECTION: 1, TABLE: 1, TFOOT: 1, UL: 1, VIDEO: 1};
- return (el.nodeType == el.ELEMENT_NODE && blockTags[el.tagName]);
- }
- function isMetadataEl(el) {
- var metadataTags = {HEAD: 1, TITLE: 1, BASE: 1, LINK: 1, META: 1, STYLE: 1, SCRIPT: 1};
- return (el.nodeType == el.ELEMENT_NODE && metadataTags[el.tagName]);
- }
- function getText(el, safe_last_br) {
- var child = el.firstChild, blocks = [], block = '';
- while (child) {
- if (child.nodeType == child.TEXT_NODE) {
- block += child.nodeValue;
- } else if (child.nodeType == child.ELEMENT_NODE && !isMetadataEl(child)) {
- if (child.tagName == 'BR') {
- block += '\n';
- } else if (!isBlockEl(child)) {
- block += getText(child);
- } else {
- if (block.length > 0) {
- if (block.substr(-1) == '\n') {
- block = block.slice(0, -1);
- }
- blocks.push(block);
- block = '';
- }
- blocks.push(getText(child, safe_last_br));
- }
- }
- child = child.nextSibling;
- }
- if (block.length > 0) {
- if (!safe_last_br && block.substr(-1) == '\n') {
- block = block.slice(0, -1);
- }
- blocks.push(block);
- }
- return blocks.join('\n');
- }
- function getTextNodesIn(node) {
- var textNodes = [];
- if (node.nodeType == node.TEXT_NODE) {
- textNodes.push(node);
- } else {
- for (var i = 0, len = node.childNodes.length; i < len; ++i) {
- textNodes.push.apply(textNodes, getTextNodesIn(node.childNodes[i]));
- }
- }
- return textNodes;
- }
- function editableClosest(el) {
- while (el) {
- if (el.nodeType == el.ELEMENT_NODE &&
- el.getAttribute('contenteditable') == 'true') {
- return el;
- }
- el = el.parentNode;
- }
- return null;
- }
- function nonEditableClosest(el) {
- while (el) {
- if (el.tagName == 'INS' &&
- el.getAttribute('contenteditable') == 'false') {
- return el;
- }
- el = el.parentNode;
- }
- return null;
- }
- function setSelectionRange(el, start, end) {
- var sel = window.getSelection();
- sel.removeAllRanges();
- var textNodes = getTextNodesIn(el);
- var charCount = 0, endCharCount, i, textNode, node, offset, nonEditEl;
- for (i = 0, charCount = 0; textNode = textNodes[i++]; ) {
- endCharCount = charCount + textNode.length;
- if (start >= charCount && (start < endCharCount ||
- (start == endCharCount && i <= textNodes.length))) {
- if (nonEditEl = nonEditableClosest(textNode)) {
- var range = document.createRange();
- if (start < end) range.setStartBefore(nonEditEl);
- else range.setStartAfter(nonEditEl);
- node = range.startContainer;
- offset = range.startOffset;
- } else {
- node = textNode;
- offset = start - charCount;
- }
- sel.collapse(node, offset);
- break;
- }
- charCount = endCharCount;
- }
- if (start != end) {
- for (i = 0, charCount = 0; textNode = textNodes[i++]; ) {
- endCharCount = charCount + textNode.length;
- if (end >= charCount && (end < endCharCount ||
- (end == endCharCount && i <= textNodes.length))) {
- if (nonEditEl = nonEditableClosest(textNode)) {
- var range = document.createRange();
- if (start < end) range.setStartAfter(nonEditEl);
- else range.setStartBefore(nonEditEl);
- node = range.startContainer;
- offset = range.startOffset;
- } else {
- node = textNode;
- offset = end - charCount;
- }
- sel.extend(node, offset);
- break;
- }
- charCount = endCharCount;
- }
- }
- }
- function onKeyDown(e) {
- if ((e.metaKey || e.ctrlKey) && !e.altKey &&
- e.which == 90) { // Z
- e.preventDefault();
- if (e.shiftKey) {
- redo(this);
- } else {
- undo(this);
- }
- }
- else if ((e.metaKey || e.ctrlKey) && !e.shiftKey && !e.altKey &&
- e.which == 89) { // Y
- e.preventDefault();
- redo(this);
- }
- else if ((e.metaKey || e.ctrlKey) &&
- !e.shiftKey && !e.altKey && e.which == 73) { // I
- e.preventDefault();
- $(this).data('$tokens').filter(':not(.used)').eq(0).trigger('click');
- }
- else if (!e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey &&
- (e.which == Keys.LEFT || e.which == Keys.RIGHT || e.which == Keys.BACKSPACE)) {
- var isLeft = e.which == Keys.LEFT || e.which == Keys.BACKSPACE;
- var isBackspace = e.which == Keys.BACKSPACE;
- var sel = window.getSelection();
- if (sel.isCollapsed && sel.focusNode) {
- if (sel.focusNode.nodeType == sel.focusNode.TEXT_NODE) {
- var newOffset = sel.focusOffset + (isLeft ? -1 : 1);
- if (newOffset < 0) {
- var prevNode = sel.focusNode.previousSibling;
- if (prevNode.nodeType == prevNode.ELEMENT_NODE) {
- var range = document.createRange();
- range.setStartBefore(prevNode);
- if (isBackspace) {
- range.setEnd(sel.focusNode, sel.focusOffset);
- range.deleteContents();
- $(sel.focusNode).closest('.input').trigger('input');
- } else {
- sel.collapse(range.startContainer, range.startOffset);
- }
- e.preventDefault();
- }
- } else if (newOffset > sel.focusNode.nodeValue.length) {
- var nextNode = sel.focusNode.nextSibling;
- if (nextNode.nodeType == nextNode.ELEMENT_NODE && nextNode.tagName != 'BR') {
- var range = document.createRange();
- range.setStartAfter(nextNode);
- if (!isBackspace) {
- sel.collapse(range.startContainer, range.startOffset);
- }
- e.preventDefault();
- }
- }
- }
- else if (sel.focusNode.nodeType == sel.focusNode.ELEMENT_NODE) {
- var curNode = sel.focusNode.childNodes[sel.focusOffset];
- if (isLeft) {
- var prevNode = curNode ? curNode.previousSibling : sel.focusNode.lastChild;
- if (prevNode && prevNode.nodeType == prevNode.ELEMENT_NODE) {
- if (isBackspace) {
- var range = document.createRange();
- range.selectNode(prevNode);
- range.deleteContents();
- $(sel.focusNode).closest('.input').trigger('input');
- } else {
- sel.collapse(sel.focusNode, sel.focusOffset - 1);
- }
- e.preventDefault();
- } else if (prevNode && prevNode.nodeType == prevNode.TEXT_NODE) {
- if (isBackspace) {
- var range = document.createRange();
- range.setStart(prevNode, prevNode.nodeValue.length - 1);
- range.setEnd(prevNode, prevNode.nodeValue.length);
- range.deleteContents();
- $(sel.focusNode).closest('.input').trigger('input');
- } else {
- sel.collapse(prevNode, prevNode.nodeValue.length - 1);
- }
- e.preventDefault();
- }
- } else {
- if (curNode && curNode.nodeType == curNode.ELEMENT_NODE && curNode.tagName != 'BR') {
- sel.collapse(sel.focusNode, sel.focusOffset + 1);
- e.preventDefault();
- } else if (curNode && curNode.nodeType == curNode.TEXT_NODE) {
- sel.collapse(curNode, 1);
- e.preventDefault();
- }
- }
- }
- }
- }
- }
- function getFieldRange(field) {
- var sel = window.getSelection();
- if (sel.anchorNode && sel.focusNode) {
- var rng = document.createRange();
- rng.setStart(field, 0);
- rng.setEnd(sel.anchorNode, sel.anchorOffset);
- var startOffset = getRangeText(rng).length;
- rng.setEnd(sel.focusNode, sel.focusOffset);
- var endOffset = getRangeText(rng).length;
- return {startOffset: startOffset, endOffset: endOffset};
- }
- var offset = field.childNodes.length;
- if (field.lastChild && field.lastChild.tagName == 'BR') {
- offset--;
- }
- return {startOffset: offset, endOffset: offset};
- }
- function setFieldRange(field, fieldRange) {
- if (fieldRange) {
- setSelectionRange(field, fieldRange.startOffset, fieldRange.endOffset);
- }
- }
- function update(field, text, fieldRange) {
- var tokens = $(field).data('tokens');
- var avail_tokens = [];
- $.each(tokens, function(i, value) {
- avail_tokens[i] = cleanHTML(value);
- });
- var avail_count = tokens.length;
- var $tokens = $(field).data('$tokens');
- var html = cleanHTML(text);
- if (avail_count > 0) {
- html = html.replace(TOKEN_REGEX, function(s) {
- var i = avail_tokens.indexOf(s);
- if (i >= 0) {
- avail_tokens[i] = null;
- avail_count--;
- var $token = $tokens.eq(i);
- if (!$token.hasClass('used')) {
- $token.prepareSlideX().addClass('used');
- }
- return '
' + s + ' ';
- } else {
- return s;
- }
- });
- $tokens.each(function(i) {
- if (avail_tokens[i] !== null) {
- var $token = $(this);
- if ($token.hasClass('used')) {
- $token.prepareSlideX().removeClass('used');
- }
- }
- });
- }
- $tokens.parents('.key-add-tokens-wrap').toggleClass('empty', !avail_count);
- html = html.replace(/
/g, '\n') + '
';
- if ($(field).html() === html) return;
-
- fieldRange = fieldRange || getFieldRange(field);
- $(field).html(html);
- setFieldRange(field, fieldRange);
- }
- function onInput() {
- var field = this;
- var $field = $(this);
- var text = getText(field);
- update(field, text);
-
- var history = $field.data('history');
- var fieldRange = getFieldRange(field);
- var prevSelRange = $field.data('prevSelRange');
- var time = +(new Date);
- history.list = history.index >= 0 ? history.list.slice(0, history.index + 1) : [];
- if (history.index >= 0 && history.list[history.index]) {
- var entry = history.list[history.index];
- if (entry.text == text) {
- return;
- }
- if (time - entry.time < 1000 &&
- entry.redoSel.startOffset == entry.redoSel.endOffset &&
- (entry.text.length - entry.redoSel.endOffset) ==
- (text.length - fieldRange.endOffset)) {
- entry.text = text;
- entry.redoSel = fieldRange;
- return;
- }
- entry.undoSel = prevSelRange;
- }
- history.list.push({text: text, redoSel: fieldRange, time: time});
- history.index++;
- }
- function undo(field) {
- var $field = $(field);
- var history = $field.data('history');
- if (history.index > 0) {
- history.index--;
- var entry = history.list[history.index];
- update(field, entry.text, entry.undoSel);
- }
- }
- function redo(field) {
- var $field = $(field);
- var history = $field.data('history');
- if (history.index < history.list.length - 1) {
- history.index++;
- var entry = history.list[history.index];
- update(field, entry.text, entry.redoSel);
- }
- }
- function onSelectionChange() {
- $(this).data('prevSelRange', getFieldRange(this));
- var sel = window.getSelection();
- if (sel.isCollapsed) {
- var nonEditEl;
- if (nonEditEl = nonEditableClosest(sel.focusNode)) {
- var range = document.createRange();
- if (sel.focusOffset < $(nonEditEl).text().length / 2) {
- range.setStartBefore(nonEditEl);
- } else {
- range.setStartAfter(nonEditEl);
- }
- sel.collapse(range.startContainer, range.startOffset);
- }
- else if (sel.focusNode === this && sel.focusOffset == this.childNodes.length && this.lastChild && this.lastChild.nodeType == 'BR') {
- sel.collapse(this, this.childNodes.length - 1);
- }
- else if (sel.focusNode.nodeType == sel.focusNode.TEXT_NODE && sel.focusOffset == sel.focusNode.nodeValue.length) {
- var range = document.createRange();
- range.setStartAfter(sel.focusNode);
- sel.collapse(range.startContainer, range.startOffset);
- }
- }
- }
-
- if (!$(document).data('selectionchange_inited')) {
- $(document).data('selectionchange_inited', true);
- document.execCommand('autoUrlDetect', false, false);
- $(document).on('selectionchange', function() {
- var sel = window.getSelection();
- var anchorField, focusField;
- var field, offset;
- if (sel.anchorNode && (anchorField = editableClosest(sel.anchorNode))) {
- $(anchorField).triggerHandler('selectionchange');
- }
- if (sel.focusNode && (focusField = editableClosest(sel.focusNode)) &&
- anchorField != focusField) {
- $(focusField).triggerHandler('selectionchange');
- }
- if (!sel.focusNode &&
- document.activeElement &&
- document.activeElement.getAttribute('contenteditable') == 'true') {
- field = document.activeElement;
- offset = field.childNodes.length;
- if (field.lastChild.tagName == 'BR') {
- offset--;
- }
- sel.collapse(field, offset);
- }
- });
- }
-
- return this.each(function() {
- var field = this;
- var $field = $(field);
- $field.attr('contenteditable', 'true');
-
- function insertTag(e) {
- e.preventDefault();
- document.execCommand('insertText', false, $(this).attr('data-token'));
- $field.focus();
- }
-
- $field.data('history', {list: [], index: -1});
-
- var tokens_attr = $field.attr('data-tokens');
- var tokens = tokens_attr ? tokens_attr.split(' ') : [];
-
- var $tokensBtns = $('
');
- for (var i = 0; i < tokens.length; i++) {
- var token = tokens[i] = tokens[i].replace('\xa0', ' ');
- var $token = $('
');
- $token.attr('data-token', token).appendTo($tokensBtns);
- }
- var ua = navigator.userAgent || '',
- is_mac = ua.indexOf('Mac') >= 0 ||
- ua.indexOf('AppleWebKit') >= 0 &&
- /Mobile\/\w+/.test(ua);
- var shortcut = is_mac ? '⌘I' : 'Ctrl+I';
- $tokensBtns.attr('data-shortcut', shortcut).wrap('
').parent().wrap('
').parent().toggleClass('empty', !tokens.length).insertAfter($field);
- var $tokens = $('.field-ins-btn', $tokensBtns);
- $tokens.on('click.tr-textarea', insertTag);
- $field.data('$tokens', $tokens);
- $field.data('tokens', tokens);
-
- $field.on('selectionchange.tr-textarea', onSelectionChange);
- $field.on('keydown.tr-textarea', onKeyDown);
- $field.on('input.tr-textarea', onInput);
- $field.trigger('input');
- });
-
- };
- $.fn.destroyTextarea = function() {
- return this.off('.tr-textarea').each(function() {
- $(this).data('$tokens').off('.tr-textarea');
- });
- };
-
-})(jQuery);
-
-
-var Auth = {
- login: function(user) {
- $.ajax({
- url: '/auth/login',
- type: 'POST',
- data: user,
- dataType: 'json',
- success: function (result) {
- location.reload();
- },
- error: function (xhr) {
- alert(xhr.responseText || 'Unknown error');
- }
- });
- }
-};
-
-var Nav = {
- init: function() {
- $(window).resize(Nav.update);
- Nav.update();
- },
- update: function() {
- var $nav_menu = $('.nav-menu');
- $nav_menu.addClass('nav-menu-can-fix');
- if ($nav_menu.css('position') == 'fixed') {
- $nav_menu.width($nav_menu.parent().width());
- } else {
- $nav_menu.css('width', 'auto');
- }
- }
-};
-
-function wrapLangValue(lang_value, is_rtl, highlight) {
- var html = '';
- var rtl_class = (is_rtl ? ' rtl' : '');
- if ($.isArray(lang_value) ||
- $.isPlainObject(lang_value)) {
- html += '
';
- for (var p = 0; p < 6; p++) {
- if (typeof lang_value[p] === 'undefined') continue;
- html += '' + wrapHighlight(lang_value[p], highlight, true) + ' ';
- first = false;
- }
- html += ' ';
- return html;
- }
- return '
' + wrapHighlight(lang_value, highlight, true) + ' ';
-}
-
-function cleanHTML(value) {
- return value.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\n/g, '
');
-}
-
-function wrapHighlight(value, highlight, wrap_tag) {
- value = cleanHTML(value);
- if (highlight) {
- var pattern = cleanHTML(highlight).replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
- value = value.replace(new RegExp(pattern, 'gi'), '
$&<\/strong>');
- }
- if (wrap_tag) {
- value = value.replace(TOKEN_REGEX, '$& ');
- }
- return value;
-}
-
-
-
-
-
-
-
-
-function tableFiltersInit() {
-Aj.onLoad(function(state) {
- $('.tr-round-tab').on('click', function(e) {
- $(this).parent().find('.tr-round-tab').removeClass('tr-round-tab-current');
- $(this).addClass('tr-round-tab-current');
- var filter = $(this).data('filter');
- var $tbody = $('tbody.tbody-' + filter);
- $tbody.parent().find('tbody').hide();
- $tbody.show();
- });
-});
-Aj.onUnload(function(state) {
- $('.tr-round-tab').off('click');
-});
-}
-
-function myStatsInit() {
-
-Aj.onLoad(function(state) {
- $('.bio-edit-btn').on('click', function(e) {
- $('.bio-saved').hide();
- $('.bio-edit').show();
- });
- $('.bio-save-btn').on('click', function(e) {
- Aj.apiRequest('saveBio', {
- bio: $('.bio-input').val()
- }, function(result) {
- if (result.error) {
- return showAlert(result.error);
- }
- if (result.ok) {
- $('.bio-value').html(result.bio_html);
- var input = $('.bio-input').get(0);
- input.value = input.defaultValue = result.bio_text;
- $('.bio-saved').show();
- $('.bio-edit').hide();
- }
- });
- });
- $('.bio-cancel-btn').on('click', function(e) {
- $('.bio-saved').show();
- $('.bio-edit').hide();
- var input = $('.bio-input').get(0);
- input.value = input.defaultValue;
- });
- $('.graph-checkbox').on('change', function(e) {
- Aj.apiRequest('saveGraphAvail', {
- avail: $('.graph-checkbox').prop('checked') ? 1 : 0
- }, function(result) {
- if (result.error) {
- return showAlert(result.error);
- }
- });
- });
-});
-Aj.onUnload(function(state) {
- $('.bio-edit-btn').off('click');
- $('.bio-save-btn').off('click');
- $('.bio-cancel-btn').off('click');
- $('.graph-checkbox').off('change');
-});
-}
-
-function rightsInit() {
-
-Aj.onLoad(function(state) {
- $('.tr-members-add-form').on('submit', function(e) {
- e.preventDefault();
- var form = this;
- var blockEl = $(this).parents('.tr-members-block');
- Aj.apiRequest('rightsSearchMember', {
- number: form.short_number.value,
- query: this.query.value
- }, function(result) {
- if (result.member_html) {
- var rowEl = $(result.member_html);
- var phone = rowEl.attr('data-phone');
- if (!$('.tr-member-row-wrap[data-phone="' + phone + '"]', blockEl).size()) {
- rowEl.addClass('shide').prependTo($('.tr-members', blockEl)).slideShow();
- openEditMember(rowEl);
- }
- }
- if (result.error) {
- return showAlert(result.error);
- }
- form.reset();
- form.query.blur();
- });
- });
- function openEditMember(rowEl) {
- var nameEl = $('.tr-member-name-short', rowEl);
- var inputEl = $('.tr-member-name-input', rowEl);
- var width = nameEl.width();
- nameEl.width(width);
- inputEl.width(width + 50);
- rowEl.addClass('tr-member-row-edit');
- setTimeout(function() {
- $('.tr-member-name-input', rowEl).focus().select();
- }, 100);
- }
- function editMember(rowEl, add) {
- if (!add && $(rowEl).hasClass('tr-member-row-add')) {
- return;
- }
- var nameEl = $('.tr-member-name-short', rowEl);
- var inputEl = $('.tr-member-name-input', rowEl);
- var inputDom = inputEl.get(0);
- if (add || inputDom.value != inputDom.defaultValue) {
- var name = inputEl.val();
- var phone = rowEl.attr('data-phone');
- var blockEl = rowEl.parents('.tr-members-block');
- var form = $('.tr-members-add-form', blockEl);
- Aj.apiRequest('rightsEditAgent', {
- number: form.get(0).short_number.value,
- phone: phone,
- name: name
- }, function(result) {
- if (result.error) {
- return showAlert(result.error);
- }
- });
- if (add) {
- rowEl.removeClass('tr-member-row-add');
- var blockEl = rowEl.parents('.tr-members-block');
- $('.tr-header-counter', blockEl).text($('.tr-member-row-wrap:not(.tr-member-row-add)', blockEl).size() || '');
- }
- $('.tr-member-row-wrap[data-phone="' + phone + '"]').each(function() {
- var nameEl = $('.tr-member-name-short', this);
- var inputEl = $('.tr-member-name-input', this);
- var inputDom = inputEl.get(0);
- nameEl.text(name);
- nameEl.attr('style', 'width:auto!important');
- var width = nameEl.width();
- nameEl.width(width);
- inputEl.width(width);
- inputDom.defaultValue = name;
- });
- }
- rowEl.removeClass('tr-member-row-edit');
- }
- $(document).on('submit', '.tr-member-edit-form', function(e) {
- e.preventDefault();
- var rowEl = $(this).parents('.tr-member-row-wrap');
- editMember(rowEl);
- });
- $(document).on('blur', '.tr-member-name-input', function() {
- var rowEl = $(this).parents('.tr-member-row-wrap');
- editMember(rowEl);
- });
- $(document).on('click', '.tr-member-name-short', function() {
- var rowEl = $(this).parents('.tr-member-row-wrap');
- openEditMember(rowEl);
- });
- $(document).on('click', '.add-member-btn', function() {
- var rowEl = $(this).parents('.tr-member-row-wrap');
- editMember(rowEl, true);
- });
- $(document).on('click', '.cancel-member-btn', function() {
- var rowEl = $(this).parents('.tr-member-row-wrap');
- rowEl.slideHide('remove');
- });
- $(document).on('click', '.delete-member-btn', function() {
- var blockEl = $(this).parents('.tr-members-block');
- var form = $('.tr-members-add-form', blockEl);
- var rowEl = $(this).parents('.tr-member-row-wrap');
- Aj.apiRequest('rightsDeleteAgent', {
- number: form.get(0).short_number.value,
- phone: rowEl.attr('data-phone'),
- }, function(result) {
- if (result.ok) {
- rowEl.slideHide(function() {
- $(this).remove();
- $('.tr-header-counter', blockEl).text($('.tr-member-row-wrap:not(.tr-member-row-add)', blockEl).size() || '');
- });
- }
- if (result.error) {
- return showAlert(result.error);
- }
- });
- });
-});
-Aj.onUnload(function(state) {
- $('.tr-members-add-form').off('submit');
- $(document).off('submit', '.tr-member-edit-form');
- $(document).off('blur', '.tr-member-name-input');
- $(document).off('click', '.tr-member-name-short');
- $(document).off('click', '.add-member-btn');
- $(document).off('click', '.cancel-member-btn');
- $(document).off('click', '.delete-member-btn');
-});
-}
-
-
-
-