Initial export
636
css/style.css
Normal file
@ -0,0 +1,636 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font: 12px/18px 'Open Sans',"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,Verdana,sans-serif;
|
||||
}
|
||||
strong {
|
||||
font-weight: 700;
|
||||
}
|
||||
code, kbd, pre, samp {
|
||||
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
|
||||
}
|
||||
code {
|
||||
padding: 2px 4px;
|
||||
font-size: 90%;
|
||||
color: #c7254e;
|
||||
background-color: #f9f2f4;
|
||||
border-radius: 4px;
|
||||
}
|
||||
pre {
|
||||
display: block;
|
||||
margin: 0;
|
||||
line-height: 1.42857143;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
color: #333;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 4px;
|
||||
overflow: auto;
|
||||
padding: 3px;
|
||||
border: 1px solid #eee;
|
||||
max-height: none;
|
||||
font-size: inherit;
|
||||
}
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
}
|
||||
.pull_left {
|
||||
float: left;
|
||||
}
|
||||
.pull_right {
|
||||
float: right;
|
||||
}
|
||||
.page_wrap {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
.page_wrap a {
|
||||
color: #168acd;
|
||||
text-decoration: none;
|
||||
}
|
||||
.page_wrap a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.page_header {
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
background-color: #ffffff;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #e3e6e8;
|
||||
}
|
||||
.page_header .content {
|
||||
width: 480px;
|
||||
margin: 0 auto;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
.page_header a.content {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 24px 21px;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.bold {
|
||||
color: #212121;
|
||||
font-weight: 700;
|
||||
}
|
||||
.details {
|
||||
color: #70777b;
|
||||
}
|
||||
.page_header .content .text {
|
||||
padding: 24px 24px 22px 24px;
|
||||
font-size: 22px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.page_header a.content .text {
|
||||
padding: 24px 24px 22px 82px;
|
||||
}
|
||||
.page_body {
|
||||
padding-top: 64px;
|
||||
width: 480px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.page_about {
|
||||
padding: 24px 24px;
|
||||
}
|
||||
.with_divider {
|
||||
border-top: 1px solid #e3e6e8;
|
||||
}
|
||||
.userpic_link {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
.userpic_link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.userpic {
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.story {
|
||||
display: block;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.userpic .initials {
|
||||
display: block;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
user-select: none;
|
||||
}
|
||||
.color_red,
|
||||
.userpic1,
|
||||
.media_call .fill,
|
||||
.media_file .fill,
|
||||
.media_live_location .fill {
|
||||
background-color: #ff5555;
|
||||
}
|
||||
.color_green,
|
||||
.userpic2,
|
||||
.media_call.success .fill,
|
||||
.media_photo .fill {
|
||||
background-color: #64bf47;
|
||||
}
|
||||
.color_yellow,
|
||||
.userpic3,
|
||||
.media_venue .fill {
|
||||
background-color: #ffab00;
|
||||
}
|
||||
.color_blue,
|
||||
.userpic4,
|
||||
.media_audio_file .fill,
|
||||
.media_voice_message .fill {
|
||||
background-color: #4f9cd9;
|
||||
}
|
||||
.color_purple,
|
||||
.userpic5,
|
||||
.media_game .fill {
|
||||
background-color: #9884e8;
|
||||
}
|
||||
.color_pink,
|
||||
.userpic6,
|
||||
.media_invoice .fill {
|
||||
background-color: #e671a5;
|
||||
}
|
||||
.color_sea,
|
||||
.userpic7,
|
||||
.media_location .fill,
|
||||
.media_video .fill {
|
||||
background-color: #47bcd1;
|
||||
}
|
||||
.color_orange,
|
||||
.userpic8,
|
||||
.media_contact .fill {
|
||||
background-color: #ff8c44;
|
||||
}
|
||||
.personal_info {
|
||||
padding: 24px;
|
||||
}
|
||||
.personal_info .userpic .initials {
|
||||
font-size: 30px;
|
||||
}
|
||||
.personal_info .rows {
|
||||
float: left;
|
||||
padding-right: 24px;
|
||||
}
|
||||
.personal_info .names {
|
||||
width: 164px;
|
||||
}
|
||||
.personal_info .info {
|
||||
width: 124px;
|
||||
}
|
||||
.personal_info .bio {
|
||||
width: 400px;
|
||||
}
|
||||
.personal_info .row {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
a.block_link {
|
||||
display: block;
|
||||
text-decoration: none !important;
|
||||
border-radius: 4px;
|
||||
}
|
||||
a.block_link:hover {
|
||||
text-decoration: none !important;
|
||||
background-color: #f5f7f8;
|
||||
}
|
||||
a.expanded {
|
||||
padding: 2px 8px;
|
||||
margin: -2px -8px;
|
||||
}
|
||||
.sections {
|
||||
padding: 11px 0;
|
||||
}
|
||||
.section {
|
||||
height: 48px;
|
||||
background-position: 24px 12px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.section .counter {
|
||||
float: right;
|
||||
padding: 14px 24px 0;
|
||||
font-size: 15px;
|
||||
}
|
||||
.section .label {
|
||||
padding: 15px 0 0 82px;
|
||||
font-size: 15px;
|
||||
}
|
||||
.list_page .page_about {
|
||||
padding: 16px 24px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
.list_page .entry_list {
|
||||
padding: 16px 0;
|
||||
}
|
||||
.list_page .entry {
|
||||
padding: 10px 16px;
|
||||
}
|
||||
.list_page .entry .userpic .initials {
|
||||
font-size: 18px;
|
||||
}
|
||||
.list_page .entry .body {
|
||||
margin-left: 66px;
|
||||
}
|
||||
.list_page .entry .name {
|
||||
padding: 4px 0 2px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.list_page .entry .subname {
|
||||
padding-top: 4px;
|
||||
}
|
||||
.list_page .entry .details_entry {
|
||||
padding-top: 4px;
|
||||
}
|
||||
.list_page .entry .info {
|
||||
font-size: 11px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.history {
|
||||
padding: 16px 0;
|
||||
}
|
||||
.message {
|
||||
margin: 0 -10px;
|
||||
transition: background-color 2.0s ease;
|
||||
}
|
||||
div.selected {
|
||||
background-color: rgba(242,246,250,255);
|
||||
transition: background-color 0.5s ease;
|
||||
}
|
||||
.service {
|
||||
padding: 10px 24px;
|
||||
}
|
||||
.service .body {
|
||||
text-align: center;
|
||||
}
|
||||
.service .userpic_wrap {
|
||||
padding-top: 10px;
|
||||
}
|
||||
.service .userpic {
|
||||
margin: 0 auto;
|
||||
}
|
||||
.service .userpic .initials {
|
||||
font-size: 24px;
|
||||
}
|
||||
.message .userpic .initials {
|
||||
font-size: 16px;
|
||||
}
|
||||
.default {
|
||||
padding: 10px;
|
||||
}
|
||||
.default.joined {
|
||||
margin-top: -10px;
|
||||
}
|
||||
.default .from_name {
|
||||
color: #3892db;
|
||||
font-weight: 700;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.default .from_name .details {
|
||||
font-weight: normal;
|
||||
}
|
||||
.default .body {
|
||||
margin-left: 60px;
|
||||
}
|
||||
.default .text {
|
||||
word-wrap: break-word;
|
||||
line-height: 150%;
|
||||
unicode-bidi: plaintext;
|
||||
text-align: start;
|
||||
}
|
||||
.default .reply_to,
|
||||
.default .media_wrap {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.default .media {
|
||||
margin: 0 -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.default .media .fill,
|
||||
.default .media .thumb {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.default .media .fill {
|
||||
background-repeat: no-repeat;
|
||||
background-position: 12px 12px;
|
||||
background-size: 24px 24px;
|
||||
}
|
||||
.default .media .title,
|
||||
.default .media_poll .question {
|
||||
padding-top: 4px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.default .media .description {
|
||||
color: #000000;
|
||||
padding-top: 4px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.default .media .status {
|
||||
padding-top: 4px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.default .video_file_wrap,
|
||||
.default .animated_wrap {
|
||||
position: relative;
|
||||
}
|
||||
.default .video_file,
|
||||
.default .animated,
|
||||
.default .photo,
|
||||
.default .sticker {
|
||||
display: block;
|
||||
}
|
||||
.video_duration {
|
||||
background: rgba(0, 0, 0, .4);
|
||||
padding: 0px 5px;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
border-radius: 2px;
|
||||
right: 3px;
|
||||
bottom: 3px;
|
||||
color: #ffffff;
|
||||
font-size: 11px;
|
||||
}
|
||||
.video_play_bg {
|
||||
background: rgba(0, 0, 0, .4);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 0;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin: -20px auto 0 -20px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
.video_play {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
margin-top: -9px;
|
||||
z-index: 1;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 9px 0 9px 14px;
|
||||
border-color: transparent transparent transparent #fff;
|
||||
}
|
||||
.gif_play {
|
||||
font-weight: 700;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
line-height: 40px;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
}
|
||||
.pagination {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.toast_container {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
opacity: 0;
|
||||
transition: opacity 3.0s ease;
|
||||
}
|
||||
.toast_body {
|
||||
margin: 0 -50%;
|
||||
float: left;
|
||||
border-radius: 15px;
|
||||
padding: 10px 20px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
color: #ffffff;
|
||||
}
|
||||
div.toast_shown {
|
||||
opacity: 1;
|
||||
transition: opacity 0.4s ease;
|
||||
}
|
||||
|
||||
.section.calls {
|
||||
background-image: url(../images/section_calls.png);
|
||||
}
|
||||
.section.chats {
|
||||
background-image: url(../images/section_chats.png);
|
||||
}
|
||||
.section.contacts {
|
||||
background-image: url(../images/section_contacts.png);
|
||||
}
|
||||
.section.frequent {
|
||||
background-image: url(../images/section_frequent.png);
|
||||
}
|
||||
.section.photos {
|
||||
background-image: url(../images/section_photos.png);
|
||||
}
|
||||
.section.sessions {
|
||||
background-image: url(../images/section_sessions.png);
|
||||
}
|
||||
.section.stories {
|
||||
background-image: url(../images/section_stories.png);
|
||||
}
|
||||
.section.web {
|
||||
background-image: url(../images/section_web.png);
|
||||
}
|
||||
.section.other {
|
||||
background-image: url(../images/section_other.png)
|
||||
}
|
||||
.page_header a.content {
|
||||
background-image: url(../images/back.png);
|
||||
}
|
||||
.media_call .fill {
|
||||
background-image: url(../images/media_call.png)
|
||||
}
|
||||
.media_contact .fill {
|
||||
background-image: url(../images/media_contact.png)
|
||||
}
|
||||
.media_file .fill {
|
||||
background-image: url(../images/media_file.png)
|
||||
}
|
||||
.media_game .fill {
|
||||
background-image: url(../images/media_game.png)
|
||||
}
|
||||
.media_live_location .fill,
|
||||
.media_location .fill,
|
||||
.media_venue .fill {
|
||||
background-image: url(../images/media_location.png)
|
||||
}
|
||||
.media_audio_file .fill {
|
||||
background-image: url(../images/media_music.png)
|
||||
}
|
||||
.media_invoice .fill {
|
||||
background-image: url(../images/media_shop.png)
|
||||
}
|
||||
.media_voice_message .fill {
|
||||
background-image: url(../images/media_voice.png)
|
||||
}
|
||||
.media_photo .fill {
|
||||
background-image: url(../images/media_photo.png)
|
||||
}
|
||||
.media_video .fill {
|
||||
background-image: url(../images/media_video.png)
|
||||
}
|
||||
|
||||
@media only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
||||
.section.calls {
|
||||
background-image: url(../images/section_calls@2x.png);
|
||||
}
|
||||
.section.chats {
|
||||
background-image: url(../images/section_chats@2x.png);
|
||||
}
|
||||
.section.contacts {
|
||||
background-image: url(../images/section_contacts@2x.png);
|
||||
}
|
||||
.section.frequent {
|
||||
background-image: url(../images/section_frequent@2x.png);
|
||||
}
|
||||
.section.photos {
|
||||
background-image: url(../images/section_photos@2x.png);
|
||||
}
|
||||
.section.sessions {
|
||||
background-image: url(../images/section_sessions@2x.png);
|
||||
}
|
||||
.section.stories {
|
||||
background-image: url(../images/section_stories@2x.png);
|
||||
}
|
||||
.section.web {
|
||||
background-image: url(../images/section_web@2x.png);
|
||||
}
|
||||
.section.other {
|
||||
background-image: url(../images/section_other@2x.png);
|
||||
}
|
||||
.page_header a.content {
|
||||
background-image: url(../images/back@2x.png);
|
||||
}
|
||||
.media_call .fill {
|
||||
background-image: url(../images/media_call@2x.png)
|
||||
}
|
||||
.media_contact .fill {
|
||||
background-image: url(../images/media_contact@2x.png)
|
||||
}
|
||||
.media_file .fill {
|
||||
background-image: url(../images/media_file@2x.png)
|
||||
}
|
||||
.media_game .fill {
|
||||
background-image: url(../images/media_game@2x.png)
|
||||
}
|
||||
.media_live_location .fill,
|
||||
.media_location .fill,
|
||||
.media_venue .fill {
|
||||
background-image: url(../images/media_location@2x.png)
|
||||
}
|
||||
.media_audio_file .fill {
|
||||
background-image: url(../images/media_music@2x.png)
|
||||
}
|
||||
.media_invoice .fill {
|
||||
background-image: url(../images/media_shop@2x.png)
|
||||
}
|
||||
.media_voice_message .fill {
|
||||
background-image: url(../images/media_voice@2x.png)
|
||||
}
|
||||
.media_photo .fill {
|
||||
background-image: url(../images/media_photo@2x.png)
|
||||
}
|
||||
.media_video .fill {
|
||||
background-image: url(../images/media_video@2x.png)
|
||||
}
|
||||
}
|
||||
|
||||
.spoiler {
|
||||
background: #e8e8e8;
|
||||
}
|
||||
.spoiler.hidden {
|
||||
background: #a9a9a9;
|
||||
cursor: pointer;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.spoiler.hidden span {
|
||||
opacity: 0;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.bot_buttons_table {
|
||||
border-spacing: 0px 2px;
|
||||
width: 100%;
|
||||
}
|
||||
.bot_button {
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
background-color: #168acd40;
|
||||
}
|
||||
.bot_button_row {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
padding: 0px;
|
||||
width:100%;
|
||||
}
|
||||
.bot_button_row div {
|
||||
display: table-cell;
|
||||
}
|
||||
.bot_button_column_separator {
|
||||
width: 2px
|
||||
}
|
||||
|
||||
.reactions {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.reactions .reaction {
|
||||
display: inline-flex;
|
||||
height: 20px;
|
||||
border-radius: 15px;
|
||||
background-color: #e8f5fc;
|
||||
color: #168acd;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.reactions .reaction.active {
|
||||
background-color: #40a6e2;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.reactions .reaction.paid {
|
||||
background-color: #fdf6e1;
|
||||
color: #c58523;
|
||||
}
|
||||
|
||||
.reactions .reaction.active.paid {
|
||||
background-color: #ecae0a;
|
||||
color: #fdf6e1;
|
||||
}
|
||||
|
||||
.reactions .reaction .emoji {
|
||||
line-height: 20px;
|
||||
margin: 0 5px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.reactions .reaction .userpic:not(:first-child) {
|
||||
margin-left: -8px;
|
||||
}
|
||||
|
||||
.reactions .reaction .userpic {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.reactions .reaction .userpic .initials {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.reactions .reaction .count {
|
||||
margin-right: 8px;
|
||||
line-height: 20px;
|
||||
}
|
BIN
images/back.png
Normal file
After Width: | Height: | Size: 312 B |
BIN
images/back@2x.png
Normal file
After Width: | Height: | Size: 518 B |
BIN
images/media_call.png
Normal file
After Width: | Height: | Size: 417 B |
BIN
images/media_call@2x.png
Normal file
After Width: | Height: | Size: 815 B |
BIN
images/media_contact.png
Normal file
After Width: | Height: | Size: 323 B |
BIN
images/media_contact@2x.png
Normal file
After Width: | Height: | Size: 600 B |
BIN
images/media_file.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
images/media_file@2x.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
images/media_game.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
images/media_game@2x.png
Normal file
After Width: | Height: | Size: 510 B |
BIN
images/media_location.png
Normal file
After Width: | Height: | Size: 480 B |
BIN
images/media_location@2x.png
Normal file
After Width: | Height: | Size: 991 B |
BIN
images/media_music.png
Normal file
After Width: | Height: | Size: 275 B |
BIN
images/media_music@2x.png
Normal file
After Width: | Height: | Size: 464 B |
BIN
images/media_photo.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
images/media_photo@2x.png
Normal file
After Width: | Height: | Size: 458 B |
BIN
images/media_shop.png
Normal file
After Width: | Height: | Size: 377 B |
BIN
images/media_shop@2x.png
Normal file
After Width: | Height: | Size: 790 B |
BIN
images/media_video.png
Normal file
After Width: | Height: | Size: 235 B |
BIN
images/media_video@2x.png
Normal file
After Width: | Height: | Size: 411 B |
BIN
images/media_voice.png
Normal file
After Width: | Height: | Size: 328 B |
BIN
images/media_voice@2x.png
Normal file
After Width: | Height: | Size: 660 B |
BIN
images/section_calls.png
Normal file
After Width: | Height: | Size: 656 B |
BIN
images/section_calls@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
images/section_chats.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
images/section_chats@2x.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
images/section_contacts.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
images/section_contacts@2x.png
Normal file
After Width: | Height: | Size: 1023 B |
BIN
images/section_frequent.png
Normal file
After Width: | Height: | Size: 771 B |
BIN
images/section_frequent@2x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
images/section_other.png
Normal file
After Width: | Height: | Size: 155 B |
BIN
images/section_other@2x.png
Normal file
After Width: | Height: | Size: 269 B |
BIN
images/section_photos.png
Normal file
After Width: | Height: | Size: 415 B |
BIN
images/section_photos@2x.png
Normal file
After Width: | Height: | Size: 750 B |
BIN
images/section_sessions.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
images/section_sessions@2x.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
images/section_stories.png
Normal file
After Width: | Height: | Size: 605 B |
BIN
images/section_stories@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
images/section_web.png
Normal file
After Width: | Height: | Size: 266 B |
BIN
images/section_web@2x.png
Normal file
After Width: | Height: | Size: 447 B |
211
js/script.js
Normal file
@ -0,0 +1,211 @@
|
||||
"use strict";
|
||||
|
||||
window.AllowBackFromHistory = false;
|
||||
function CheckLocation() {
|
||||
var start = "#go_to_message";
|
||||
var hash = location.hash;
|
||||
if (hash.substr(0, start.length) == start) {
|
||||
var messageId = parseInt(hash.substr(start.length));
|
||||
if (messageId) {
|
||||
GoToMessage(messageId);
|
||||
}
|
||||
} else if (hash == "#allow_back") {
|
||||
window.AllowBackFromHistory = true;
|
||||
}
|
||||
}
|
||||
|
||||
function ShowToast(text) {
|
||||
var container = document.createElement("div");
|
||||
container.className = "toast_container";
|
||||
var inner = container.appendChild(document.createElement("div"));
|
||||
inner.className = "toast_body";
|
||||
inner.appendChild(document.createTextNode(text));
|
||||
var appended = document.body.appendChild(container);
|
||||
setTimeout(function () {
|
||||
AddClass(appended, "toast_shown");
|
||||
setTimeout(function () {
|
||||
RemoveClass(appended, "toast_shown");
|
||||
setTimeout(function () {
|
||||
document.body.removeChild(appended);
|
||||
}, 3000);
|
||||
}, 3000);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function ShowHashtag(tag) {
|
||||
ShowToast("This is a hashtag '#" + tag + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowCashtag(tag) {
|
||||
ShowToast("This is a cashtag '$" + tag + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowBotCommand(command) {
|
||||
ShowToast("This is a bot command '/" + command + "' link.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowMentionName() {
|
||||
ShowToast("This is a link to a user mentioned by name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowNotLoadedEmoji() {
|
||||
ShowToast("This custom emoji is not included, change data exporting settings to download.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowNotAvailableEmoji() {
|
||||
ShowToast("This custom emoji is not available.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowTextCopied(content) {
|
||||
navigator.clipboard.writeText(content);
|
||||
ShowToast("Text copied to clipboard.");
|
||||
return false;
|
||||
}
|
||||
|
||||
function ShowSpoiler(target) {
|
||||
if (target.classList.contains("hidden")) {
|
||||
target.classList.toggle("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
function AddClass(element, name) {
|
||||
var current = element.className;
|
||||
var expression = new RegExp('(^|\\s)' + name + '(\\s|$)', 'g');
|
||||
if (expression.test(current)) {
|
||||
return;
|
||||
}
|
||||
element.className = current + ' ' + name;
|
||||
}
|
||||
|
||||
function RemoveClass(element, name) {
|
||||
var current = element.className;
|
||||
var expression = new RegExp('(^|\\s)' + name + '(\\s|$)', '');
|
||||
var match = expression.exec(current);
|
||||
while ((match = expression.exec(current)) != null) {
|
||||
if (match[1].length > 0 && match[2].length > 0) {
|
||||
current = current.substr(0, match.index + match[1].length)
|
||||
+ current.substr(match.index + match[0].length);
|
||||
} else {
|
||||
current = current.substr(0, match.index)
|
||||
+ current.substr(match.index + match[0].length);
|
||||
}
|
||||
}
|
||||
element.className = current;
|
||||
}
|
||||
|
||||
function EaseOutQuad(t) {
|
||||
return t * t;
|
||||
}
|
||||
|
||||
function EaseInOutQuad(t) {
|
||||
return (t < 0.5) ? (2 * t * t) : ((4 - 2 * t) * t - 1);
|
||||
}
|
||||
|
||||
function ScrollHeight() {
|
||||
if ("innerHeight" in window) {
|
||||
return window.innerHeight;
|
||||
} else if (document.documentElement) {
|
||||
return document.documentElement.clientHeight;
|
||||
}
|
||||
return document.body.clientHeight;
|
||||
}
|
||||
|
||||
function ScrollTo(top, callback) {
|
||||
var html = document.documentElement;
|
||||
var current = html.scrollTop;
|
||||
var delta = top - current;
|
||||
var finish = function () {
|
||||
html.scrollTop = top;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
if (!window.performance.now || delta == 0) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
var transition = EaseOutQuad;
|
||||
var max = 300;
|
||||
if (delta < -max) {
|
||||
current = top + max;
|
||||
delta = -max;
|
||||
} else if (delta > max) {
|
||||
current = top - max;
|
||||
delta = max;
|
||||
} else {
|
||||
transition = EaseInOutQuad;
|
||||
}
|
||||
var duration = 150;
|
||||
var interval = 7;
|
||||
var time = window.performance.now();
|
||||
var animate = function () {
|
||||
var now = window.performance.now();
|
||||
if (now >= time + duration) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
var dt = (now - time) / duration;
|
||||
html.scrollTop = Math.round(current + delta * transition(dt));
|
||||
setTimeout(animate, interval);
|
||||
};
|
||||
setTimeout(animate, interval);
|
||||
}
|
||||
|
||||
function ScrollToElement(element, callback) {
|
||||
var header = document.getElementsByClassName("page_header")[0];
|
||||
var headerHeight = header.offsetHeight;
|
||||
var html = document.documentElement;
|
||||
var scrollHeight = ScrollHeight();
|
||||
var available = scrollHeight - headerHeight;
|
||||
var padding = 10;
|
||||
var top = element.offsetTop;
|
||||
var height = element.offsetHeight;
|
||||
var desired = top
|
||||
- Math.max((available - height) / 2, padding)
|
||||
- headerHeight;
|
||||
var scrollTopMax = html.offsetHeight - scrollHeight;
|
||||
ScrollTo(Math.min(desired, scrollTopMax), callback);
|
||||
}
|
||||
|
||||
function GoToMessage(messageId) {
|
||||
var element = document.getElementById("message" + messageId);
|
||||
if (element) {
|
||||
var hash = "#go_to_message" + messageId;
|
||||
if (location.hash != hash) {
|
||||
location.hash = hash;
|
||||
}
|
||||
ScrollToElement(element, function () {
|
||||
AddClass(element, "selected");
|
||||
setTimeout(function () {
|
||||
RemoveClass(element, "selected");
|
||||
}, 1000);
|
||||
});
|
||||
} else {
|
||||
ShowToast("This message was not exported. Maybe it was deleted.");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function GoBack(anchor) {
|
||||
if (!window.AllowBackFromHistory) {
|
||||
return true;
|
||||
}
|
||||
history.back();
|
||||
if (!anchor || !anchor.getAttribute) {
|
||||
return true;
|
||||
}
|
||||
var destination = anchor.getAttribute("href");
|
||||
if (!destination) {
|
||||
return true;
|
||||
}
|
||||
setTimeout(function () {
|
||||
location.href = destination;
|
||||
}, 100);
|
||||
return false;
|
||||
}
|
8724
messages.html
Normal file
BIN
photos/photo_10@01-05-2023_20-30-37.jpg
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
photos/photo_10@01-05-2023_20-30-37_thumb.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
photos/photo_11@02-05-2023_08-56-21.jpg
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
photos/photo_11@02-05-2023_08-56-21_thumb.jpg
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
photos/photo_12@02-05-2023_11-37-37.jpg
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
photos/photo_12@02-05-2023_11-37-37_thumb.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
photos/photo_13@02-05-2023_14-38-45.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
photos/photo_13@02-05-2023_14-38-45_thumb.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
photos/photo_14@17-06-2023_10-22-10.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
photos/photo_14@17-06-2023_10-22-10_thumb.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
photos/photo_15@20-06-2023_19-39-17.jpg
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
photos/photo_15@20-06-2023_19-39-17_thumb.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
photos/photo_16@22-06-2023_19-14-59.jpg
Normal file
After Width: | Height: | Size: 95 KiB |
BIN
photos/photo_16@22-06-2023_19-14-59_thumb.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
photos/photo_17@30-06-2023_16-00-54.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
photos/photo_17@30-06-2023_16-00-54_thumb.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
photos/photo_18@30-06-2023_16-00-54.jpg
Normal file
After Width: | Height: | Size: 311 KiB |
BIN
photos/photo_18@30-06-2023_16-00-54_thumb.jpg
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
photos/photo_19@12-07-2023_00-51-58.jpg
Normal file
After Width: | Height: | Size: 185 KiB |
BIN
photos/photo_19@12-07-2023_00-51-58_thumb.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
photos/photo_1@22-04-2023_21-04-15.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
photos/photo_1@22-04-2023_21-04-15_thumb.jpg
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
photos/photo_20@13-07-2023_20-23-00.jpg
Normal file
After Width: | Height: | Size: 130 KiB |
BIN
photos/photo_20@13-07-2023_20-23-00_thumb.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
photos/photo_21@13-07-2023_20-23-00.jpg
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
photos/photo_21@13-07-2023_20-23-00_thumb.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
photos/photo_22@13-07-2023_20-24-32.jpg
Normal file
After Width: | Height: | Size: 279 KiB |
BIN
photos/photo_22@13-07-2023_20-24-32_thumb.jpg
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
photos/photo_23@15-07-2023_11-10-14.jpg
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
photos/photo_23@15-07-2023_11-10-14_thumb.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
photos/photo_24@15-07-2023_11-10-14.jpg
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
photos/photo_24@15-07-2023_11-10-14_thumb.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
photos/photo_25@15-07-2023_20-44-48.jpg
Normal file
After Width: | Height: | Size: 139 KiB |
BIN
photos/photo_25@15-07-2023_20-44-48_thumb.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
photos/photo_26@15-07-2023_20-44-48.jpg
Normal file
After Width: | Height: | Size: 181 KiB |
BIN
photos/photo_26@15-07-2023_20-44-48_thumb.jpg
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
photos/photo_2@27-04-2023_08-35-25.jpg
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
photos/photo_2@27-04-2023_08-35-25_thumb.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
photos/photo_3@27-04-2023_08-35-25.jpg
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
photos/photo_3@27-04-2023_08-35-25_thumb.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
photos/photo_4@30-04-2023_19-02-31.jpg
Normal file
After Width: | Height: | Size: 202 KiB |
BIN
photos/photo_4@30-04-2023_19-02-31_thumb.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
photos/photo_5@01-05-2023_12-43-43.jpg
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
photos/photo_5@01-05-2023_12-43-43_thumb.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
photos/photo_6@01-05-2023_13-55-42.jpg
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
photos/photo_6@01-05-2023_13-55-42_thumb.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
photos/photo_7@01-05-2023_14-17-52.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
photos/photo_7@01-05-2023_14-17-52_thumb.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
photos/photo_8@01-05-2023_18-50-30.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
photos/photo_8@01-05-2023_18-50-30_thumb.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
photos/photo_9@01-05-2023_20-11-56.jpg
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
photos/photo_9@01-05-2023_20-11-56_thumb.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
video_files/IMG_0800.MP4
Normal file
BIN
video_files/IMG_0800.MP4_thumb.jpg
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
video_files/IMG_3289.MOV
Normal file
BIN
video_files/IMG_3289.MOV_thumb.jpg
Normal file
After Width: | Height: | Size: 7.8 KiB |