add
@@ -0,0 +1,42 @@
|
||||
# jsdelivr HomePage cdn
|
||||
|
||||
[](https://www.jsdelivr.com/package/gh/ldxw/cdn)
|
||||
|
||||
# 🏠 HomePage
|
||||
|
||||
✨ **项目简介**
|
||||
- 毛玻璃风格设计卡片风格
|
||||
- 响应式布局适配移动端访问
|
||||
- 动态社交链接交互效果
|
||||
- 优雅的联系方式弹窗
|
||||
|
||||
🛠️ **技术栈**
|
||||
- HTML5语义化标签
|
||||
- CSS3动画与毛玻璃效果
|
||||
- Font Awesome图标库
|
||||
|
||||
## 🌟 功能特性
|
||||
- 📱 完美移动端适配
|
||||
- 🌓 智能配色切换
|
||||
- ✨ 流畅的交互动效
|
||||
|
||||
## 🖼️ 预览效果
|
||||
<div align="center">
|
||||
|
||||

|
||||
</div>
|
||||
|
||||
## 🚀 使用指南
|
||||
1. 克隆仓库
|
||||
```bash
|
||||
git clone https://github.com/LangfordKuo/HomePage.git
|
||||
```
|
||||
2. 直接使用现代浏览器打开`index.html`
|
||||
3. 点击「联系方式」图标体验弹窗交互
|
||||
|
||||
## 📜 开源协议
|
||||
本项目采用 [GPL-3.0 License](LICENSE) 授权
|
||||
|
||||
> 💡 提示:所有图标资源来自[Font Awesome](https://fontawesome.com)
|
||||
|
||||
> 💡 提示:README使用AI生成
|
||||
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,284 @@
|
||||
/* 基础样式重置 */
|
||||
:root {
|
||||
--primary-color: #2c3e50;
|
||||
--accent-color: #3498db;
|
||||
--text-color: #333;
|
||||
--bg-gradient-start: #f5f7fa;
|
||||
--bg-gradient-end: #c3cfe2;
|
||||
--main-bg: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--primary-color: #dfe6ec;
|
||||
--text-color: #e0e0e0;
|
||||
--bg-gradient-start: #2c3e50;
|
||||
--bg-gradient-end: #3498db;
|
||||
--main-bg: rgba(40, 44, 52, 0.98);
|
||||
--shadow-color: rgba(255,255,255,0.08);
|
||||
}
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
font-size: 0.9rem;
|
||||
color: var(--text-color);
|
||||
padding: 0.8rem 1.5rem;
|
||||
border-radius: 15px 15px 0 0;
|
||||
background: var(--main-bg);
|
||||
backdrop-filter: blur(5px);
|
||||
box-shadow: 0 -2px 10px var(--shadow-color);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Segoe UI', system-ui, sans-serif;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);
|
||||
}
|
||||
|
||||
.profile-card {
|
||||
background: var(--main-bg);
|
||||
padding: 2.5rem;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
|
||||
text-align: center;
|
||||
max-width: 400px;
|
||||
width: 90%;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.avatar-container {
|
||||
margin: 0 auto 1.5rem;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
0% { transform: rotate(0deg) scale(1); }
|
||||
25% { transform: rotate(3deg) scale(1.1); }
|
||||
75% { transform: rotate(-3deg) scale(1.1); }
|
||||
100% { transform: rotate(0deg) scale(1); }
|
||||
|
||||
}
|
||||
|
||||
.avatar-container:hover .avatar {
|
||||
animation: shake 0.8s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.name {
|
||||
color: var(--primary-color);
|
||||
margin: 0 0 0.8rem;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.bio {
|
||||
color: var(--text-color);
|
||||
margin: 0 0 2rem;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.social-links {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.social-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.8rem 1.5rem;
|
||||
border-radius: 25px;
|
||||
background: rgba(52, 152, 219, 0.1);
|
||||
color: var(--accent-color);
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.social-link::after {
|
||||
content: attr(data-hover-text);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.social-link:hover::after {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.social-link:hover span,
|
||||
.social-link:hover i {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
.social-link span {
|
||||
transition: all 0.3s ease;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.social-link i {
|
||||
margin-right: 0.8rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.social-link:hover {
|
||||
background: var(--accent-color);
|
||||
color: white;
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.modal-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0,0,0,0.5);
|
||||
display: none;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.modal-overlay.active {
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: var(--main-bg);
|
||||
color: var(--text-color);
|
||||
padding: 2rem;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
|
||||
position: relative;
|
||||
transform: translateY(20px);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.modal-overlay.active .modal-content {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.modal-close {
|
||||
position: absolute;
|
||||
top: 1rem;
|
||||
right: 1rem;
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 1.5rem;
|
||||
cursor: pointer;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.contact-info p {
|
||||
margin: 1rem 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.8rem;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.profile-card {
|
||||
padding: 1rem;
|
||||
margin: 0.5rem 0.5rem 60px;
|
||||
}
|
||||
|
||||
.avatar-container {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
font-size: 0.8rem;
|
||||
padding: 0.5rem;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
z-index: 100;
|
||||
background: var(--main-bg);
|
||||
box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
|
||||
border-radius: 0;
|
||||
transform: none;
|
||||
backdrop-filter: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
max-width: 95vw;
|
||||
padding: 1rem;
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.social-links {
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.bio {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
body {
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.profile-card {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 20px 15px;
|
||||
}
|
||||
|
||||
.social-links {
|
||||
margin-top: auto;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>默认主页</title>
|
||||
<link rel="stylesheet" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Home-Page/css/style.css">
|
||||
<link rel="stylesheet" href="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/6.0.0/css/all.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<header class="profile-card">
|
||||
<div class="avatar-container">
|
||||
<img src="https://gcore.jsdelivr.net/gh/ldxw/cdn/@master/static/Home-Page/avatar.jpg" alt="个人头像" class="avatar">
|
||||
</div>
|
||||
<h1 class="name">默认主页</h1>
|
||||
<!--<p class="bio">飞舞开发者 | 台球爱好者 | 开源灌水者</p>
|
||||
<div class="social-links">
|
||||
<a href="https://kj.ldxw.de" target="_blank" class="social-link" data-hover-text="前往小窝主机">
|
||||
<i class="fab fa-xiaowoidc"></i>
|
||||
<span>小窝主机</span>
|
||||
</a>
|
||||
<a href="https://ucany.net" target="_blank" class="social-link" data-hover-text="前往站长的博客">
|
||||
<i class="fas fa-blog"></i>
|
||||
<span>站长博客</span>
|
||||
</a>
|
||||
<a href="#" class="social-link contact-trigger" data-hover-text="发送消息给站长">
|
||||
<i class="fas fa-envelope"></i>
|
||||
<span>联系方式</span>
|
||||
</a>-->
|
||||
</div>
|
||||
</header>
|
||||
<!--<div class="modal-overlay">
|
||||
<div class="modal-content">
|
||||
<button class="modal-close">×</button>
|
||||
<h3>📬 联系站长</h3>
|
||||
<div class="contact-info">
|
||||
<p><i class="fas fa-envelope"></i> 邮箱:langfordkuo@foxmail.com</p>
|
||||
<p><i class="fab fa-qq"></i> QQ:1244486871</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<script>
|
||||
document.querySelector('.contact-trigger').addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
document.querySelector('.modal-overlay').classList.add('active');
|
||||
});
|
||||
|
||||
document.querySelector('.modal-close').addEventListener('click', () => {
|
||||
document.querySelector('.modal-overlay').classList.remove('active');
|
||||
});
|
||||
|
||||
document.querySelector('.modal-overlay').addEventListener('click', (e) => {
|
||||
if (e.target === document.querySelector('.modal-overlay')) {
|
||||
document.querySelector('.modal-overlay').classList.remove('active');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<center><footer class="site-footer">
|
||||
© 2025 默认主页
|
||||
</footer></center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,192 @@
|
||||
/**
|
||||
* 移动端菜单栏动画
|
||||
*/
|
||||
.animated {
|
||||
-webkit-animation-fill-mode: both;
|
||||
-moz-animation-fill-mode: both;
|
||||
-ms-animation-fill-mode: both;
|
||||
-o-animation-fill-mode: both;
|
||||
animation-fill-mode: both;
|
||||
-webkit-animation-duration: 1s;
|
||||
-moz-animation-duration: 1s;
|
||||
-ms-animation-duration: 1s;
|
||||
-o-animation-duration: 1s;
|
||||
animation-duration: 1s;
|
||||
}
|
||||
|
||||
.animated.hinge {
|
||||
-webkit-animation-duration: 1s;
|
||||
-moz-animation-duration: 1s;
|
||||
-ms-animation-duration: 1s;
|
||||
-o-animation-duration: 1s;
|
||||
animation-duration: 1s;
|
||||
}
|
||||
|
||||
.animated.flip {
|
||||
-webkit-backface-visibility: visible !important;
|
||||
-webkit-animation-name: flip;
|
||||
-moz-backface-visibility: visible !important;
|
||||
-moz-animation-name: flip;
|
||||
-o-backface-visibility: visible !important;
|
||||
-o-animation-name: flip;
|
||||
backface-visibility: visible !important;
|
||||
animation-name: flip;
|
||||
}
|
||||
|
||||
@-webkit-keyframes bounceOutUp {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(20px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-2000px);
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes bounceOutUp {
|
||||
0% {
|
||||
-moz-transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
opacity: 1;
|
||||
-moz-transform: translateY(20px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
-moz-transform: translateY(-2000px);
|
||||
}
|
||||
}
|
||||
|
||||
@-o-keyframes bounceOutUp {
|
||||
0% {
|
||||
-o-transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
opacity: 1;
|
||||
-o-transform: translateY(20px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
-o-transform: translateY(-2000px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounceOutUp {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
opacity: 1;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translateY(-2000px);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceOutUp {
|
||||
-webkit-animation-name: bounceOutUp;
|
||||
-moz-animation-name: bounceOutUp;
|
||||
-o-animation-name: bounceOutUp;
|
||||
animation-name: bounceOutUp;
|
||||
}
|
||||
|
||||
@-webkit-keyframes bounceInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-2000px);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(30px);
|
||||
}
|
||||
|
||||
80% {
|
||||
-webkit-transform: translateY(-10px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes bounceInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-moz-transform: translateY(-2000px);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
-moz-transform: translateY(30px);
|
||||
}
|
||||
|
||||
80% {
|
||||
-moz-transform: translateY(-10px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@-o-keyframes bounceInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-o-transform: translateY(-2000px);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
-o-transform: translateY(30px);
|
||||
}
|
||||
|
||||
80% {
|
||||
-o-transform: translateY(-10px);
|
||||
}
|
||||
|
||||
100% {
|
||||
-o-transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounceInDown {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-2000px);
|
||||
}
|
||||
|
||||
60% {
|
||||
opacity: 1;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounceInDown {
|
||||
-webkit-animation-name: bounceInDown;
|
||||
-moz-animation-name: bounceInDown;
|
||||
-o-animation-name: bounceInDown;
|
||||
animation-name: bounceInDown;
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Font Awesome Lite.
|
||||
* Created by Noisky on 19/08/29.
|
||||
* Revised by Noisky on 19/08/29.
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
src: url('//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2')
|
||||
}
|
||||
|
||||
.fa {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale
|
||||
}
|
||||
|
||||
.fa-weibo:before {
|
||||
content: "\f18a"
|
||||
}
|
||||
|
||||
.fa-qq:before {
|
||||
content: "\f1d6"
|
||||
}
|
||||
|
||||
.fa-telegram:before {
|
||||
content: "\f2c6"
|
||||
}
|
||||
|
||||
.fa-wechat:before,
|
||||
.fa-weixin:before {
|
||||
content: "\f1d7"
|
||||
}
|
||||
|
||||
.fa-github-square:before {
|
||||
content: "\f092"
|
||||
}
|
||||
|
||||
.fa-github:before {
|
||||
content: "\f09b"
|
||||
}
|
||||
|
||||
.fa-github-alt:before {
|
||||
content: "\f113"
|
||||
}
|
||||
|
||||
.fa-feed:before,
|
||||
.fa-rss:before {
|
||||
content: "\f09e"
|
||||
}
|
||||
|
||||
.fa-rss-square:before {
|
||||
content: "\f143"
|
||||
}
|
||||
|
||||
.fa-list-alt:before {
|
||||
content: "\f022"
|
||||
}
|
||||
|
||||
.fa-list:before {
|
||||
content: "\f03a"
|
||||
}
|
||||
|
||||
.fa-list-ul:before {
|
||||
content: "\f0ca"
|
||||
}
|
||||
|
||||
.fa-list-ol:before {
|
||||
content: "\f0cb"
|
||||
}
|
||||
|
||||
.fa-angle-up:before {
|
||||
content: "\f106"
|
||||
}
|
||||
|
||||
.fa-envelope-o:before {
|
||||
content: "\f003"
|
||||
}
|
||||
|
||||
.fa-envelope:before {
|
||||
content: "\f0e0"
|
||||
}
|
||||
|
||||
.fa-envelope-square:before {
|
||||
content: "\f199"
|
||||
}
|
||||
|
||||
.fa-envelope-open:before {
|
||||
content: "\f2b6"
|
||||
}
|
||||
|
||||
.fa-envelope-open-o:before {
|
||||
content: "\f2b7"
|
||||
}
|
||||
|
||||
.fa-home:before {
|
||||
content: "\f015"
|
||||
}
|
||||
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 488 B |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 394 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 272 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,684 @@
|
||||
/**
|
||||
* Created by Noisky on 17/05/13.
|
||||
* Revised by Noisky on 19/08/29.
|
||||
*/
|
||||
@import url(//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/animate.css);
|
||||
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
vertical-align: baseline;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
tbody, tfoot, thead, tr, th, td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font: inherit;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
body:before, body:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
body:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #333333;
|
||||
font-size: 1em;
|
||||
font-family: "ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Hiragino Sans GB", "Hiragino Sans GB W3", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
a {
|
||||
color: #DF9C81;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #d06c44;
|
||||
-webkit-transition: .5s;
|
||||
-moz-transition: .5s;
|
||||
-o-transition: .5s;
|
||||
-ms-transition: .5s;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h5 {
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: .5em;
|
||||
color: #333333;
|
||||
font-weight: lighter;
|
||||
font-family: "ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Hiragino Sans GB", "Hiragino Sans GB W3", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
letter-spacing: .05em;
|
||||
font-size: 1.8em;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1.3em;
|
||||
line-height: 1.7em;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
margin: 0 0 .3em 1em;
|
||||
}
|
||||
|
||||
ol li, ul li {
|
||||
margin: 0 0 .2em 0;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
ol ol, ol ul, ul ol, ul ul {
|
||||
margin: .1em 0 .2em 2em;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.date a,
|
||||
.time a,
|
||||
.author a,
|
||||
.tags a {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.date a:hover,
|
||||
.time a:hover,
|
||||
.author a:hover,
|
||||
.tags a:hover {
|
||||
color: #d06c44;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 25%;
|
||||
border: 3px solid #FFF;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.3);
|
||||
transition: all .5s;
|
||||
}
|
||||
|
||||
.logo:hover {
|
||||
border: 3px solid #5ba4e5;
|
||||
transition: all .5s;
|
||||
-webkit-transform: rotate(360deg);
|
||||
/* Safari 和 Chrome */
|
||||
-moz-transform: rotate(360deg);
|
||||
/* Firefox */
|
||||
-o-transform: rotate(350deg);
|
||||
/* Opera */
|
||||
transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
/* IE 9 */
|
||||
}
|
||||
|
||||
/* 微博图标
|
||||
.Weibo_icon_logo {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
|
||||
vertical-align: -2px;
|
||||
}
|
||||
|
||||
.Weibo_icon {
|
||||
display: inline-block;
|
||||
background-image: url(//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/V_icon_lite.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.Weibo_icon_position {
|
||||
position: relative;
|
||||
top: -12px;
|
||||
right: 42px;
|
||||
}*/
|
||||
|
||||
/* 国旗 */
|
||||
.Weibo_icon_position {
|
||||
position: relative;
|
||||
right: 42px;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
.Weibo_icon {
|
||||
display: inline-block;
|
||||
background-image: url(//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/feed_icon_32x28.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.Weibo_icon_logo {
|
||||
width: 40px;
|
||||
height: 35px;
|
||||
vertical-align: -2px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
.panel-title {
|
||||
margin: 0 0 15px 0;
|
||||
color: #FFF;
|
||||
letter-spacing: 4px;
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
.panel-subtitle {
|
||||
color: #CCCCCC;
|
||||
letter-spacing: 3px;
|
||||
font-weight: lighter;
|
||||
font-size: 1.2em;
|
||||
font-family: "ff-tisa-web-pro-1", "ff-tisa-web-pro-2", "Lucida Grande", "Hiragino Sans GB", "Hiragino Sans GB W3", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.panel-cover {
|
||||
position: fixed;
|
||||
z-index: -1;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: none;
|
||||
background: url(//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/background-image/bg-1.jpg) top left no-repeat #666666;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
|
||||
.panel-cover--overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 0;
|
||||
display: block;
|
||||
background-color: rgba(68, 68, 68, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(68, 68, 68, 0.6) 20%, rgba(0, 0, 0, 0.9));
|
||||
background-image: linear-gradient(140deg, rgba(68, 68, 68, 0.6) 20%, rgba(0, 0, 0, 0.9));
|
||||
}
|
||||
|
||||
.panel-cover_logo {
|
||||
margin: 0 0 .2em 40px;
|
||||
}
|
||||
|
||||
.panel-cover_description {
|
||||
margin: 0 30px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.panel-cover_divider {
|
||||
margin: 20px auto;
|
||||
width: 50%;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.14);
|
||||
}
|
||||
|
||||
.panel-cover_divider-secondary {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.panel-main {
|
||||
display: table;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.panel-main_inner {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
display: table-cell;
|
||||
padding: 0 60px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.panel-main_content {
|
||||
margin: 0 auto;
|
||||
max-width: 620px;
|
||||
}
|
||||
|
||||
|
||||
.panel-inverted {
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
.panel-inverted a {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
color: #d2d2d2;
|
||||
font-size: .7em;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #d2d2d2;
|
||||
}
|
||||
|
||||
.footer p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.footer img {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.cover-navigation {
|
||||
margin-top: 42px;
|
||||
}
|
||||
|
||||
/*背景覆盖层*/
|
||||
.cover-blue {
|
||||
background-color: rgba(37, 104, 163, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(37, 104, 163, 0.6) 20%, rgba(18, 51, 80, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(37, 104, 163, 0.6) 20%, rgba(18, 51, 80, 0.8));
|
||||
}
|
||||
|
||||
.cover-green {
|
||||
background-color: rgba(21, 111, 120, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(21, 111, 120, 0.6) 20%, rgba(6, 31, 33, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(21, 111, 120, 0.6) 20%, rgba(6, 31, 33, 0.8));
|
||||
}
|
||||
|
||||
.cover-purple {
|
||||
background-color: rgba(73, 50, 82, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(73, 50, 82, 0.6) 20%, rgba(17, 11, 19, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(73, 50, 82, 0.6) 20%, rgba(17, 11, 19, 0.8));
|
||||
}
|
||||
|
||||
.cover-red {
|
||||
background-color: rgba(119, 31, 18, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(119, 31, 18, 0.6) 20%, rgba(30, 8, 5, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(119, 31, 18, 0.6) 20%, rgba(30, 8, 5, 0.8));
|
||||
}
|
||||
|
||||
.cover-orange {
|
||||
background-color: rgba(174, 80, 4, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(174, 80, 4, 0.6) 20%, rgba(74, 34, 2, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(174, 80, 4, 0.6) 20%, rgba(74, 34, 2, 0.8));
|
||||
}
|
||||
|
||||
.cover-slate {
|
||||
background-color: rgba(60, 91, 147, 0.6);
|
||||
background-image: -webkit-linear-gradient(-410deg, rgba(61, 66, 96, 0.6) 20%, rgba(21, 23, 34, 0.8));
|
||||
background-image: linear-gradient(140deg, rgba(61, 66, 96, 0.6) 20%, rgba(21, 23, 34, 0.8));
|
||||
}
|
||||
|
||||
.navigation_item a {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #DF9C81;
|
||||
border-radius: 20px;
|
||||
color: #DF9C81;
|
||||
text-shadow: none;
|
||||
letter-spacing: 1px;
|
||||
font-weight: bold;
|
||||
font-size: .9em;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.navigation_item a:hover {
|
||||
border-color: #d06c44;
|
||||
color: #d06c44;
|
||||
}
|
||||
|
||||
|
||||
.btn-mobile-menu {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
display: none;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: rgba(51, 51, 51, 0.98);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.btn-mobile-menu_icon,
|
||||
.btn-mobile-close_icon {
|
||||
position: relative;
|
||||
top: 10px;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
nav {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.navigation {
|
||||
position: relative;
|
||||
float: left;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.navigation_item {
|
||||
display: inline-block;
|
||||
margin: 5px 1px 0 0;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.navigation_item a {
|
||||
position: relative;
|
||||
display: block;
|
||||
border-color: #FFF;
|
||||
color: #FFF;
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.navigation_item a:hover {
|
||||
border-color: rgba(255, 255, 255, 0.3);
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
color: #FFF;
|
||||
opacity: 1;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.navigation--social a {
|
||||
padding: 6px 8px 6px 9px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.navigation--social a .label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navigation--social a .icon {
|
||||
display: block;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
.social {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
*:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.wechat[data-v] {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.qrCode[data-v] {
|
||||
position: absolute;
|
||||
bottom: 43px;
|
||||
left: -29px;
|
||||
display: none;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.wechat .qrCode .triangle-down[data-v] {
|
||||
position: absolute;
|
||||
bottom: -8px;
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-top: 10px solid #fff;
|
||||
border-right: 6px solid transparent;
|
||||
border-left: 6px solid transparent;
|
||||
}
|
||||
|
||||
.wechat:hover .qrCode[data-v] {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
@media all and (max-width: 1100px) {
|
||||
.panel-title {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.panel-subtitle {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.panel-cover_description {
|
||||
margin: 0 10px;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.navigation--social {
|
||||
margin-top: 5px;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 960px) {
|
||||
.btn-mobile-menu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.qrCode[data-v] {
|
||||
Margin: 0 41%;
|
||||
}
|
||||
|
||||
.panel-main {
|
||||
position: relative;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.panel-main_inner {
|
||||
display: table-cell;
|
||||
padding: 60px 10%;
|
||||
}
|
||||
|
||||
.panel-cover_description {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
.panel-cover {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
.panel-cover.panel-cover--collapsed {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 0;
|
||||
height: auto;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
.panel-cover.panel-cover--collapsed .panel-main_inner {
|
||||
display: block;
|
||||
padding: 70px 0 30px 0;
|
||||
}
|
||||
|
||||
.panel-cover.panel-cover--collapsed .panel-cover_logo {
|
||||
width: 60px;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.panel-cover.panel-cover--collapsed .panel-cover_description {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.panel-cover.panel-cover--collapsed .panel-cover_divider {
|
||||
display: none;
|
||||
margin: 1em auto;
|
||||
}
|
||||
|
||||
.navigation-wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
padding: 20px 0;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
|
||||
background: rgba(51, 51, 51, 0.98);
|
||||
}
|
||||
|
||||
.navigation-wrapper.visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.cover-navigation {
|
||||
position: relative;
|
||||
float: left;
|
||||
clear: left;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cover-navigation .navigation {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cover-navigation .navigation li {
|
||||
margin-bottom: .4em;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.cover-navigation.navigation--social {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.cover-navigation.navigation--social .navigation li {
|
||||
display: inline-block;
|
||||
width: 25.8%;
|
||||
}
|
||||
|
||||
.navigation_item {
|
||||
margin: 0 0 .4em 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 767px) {
|
||||
.panel-cover_logo {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.Weibo_icon_position {
|
||||
top: -6px;
|
||||
right: 35px;
|
||||
}
|
||||
|
||||
.qrCode[data-v] {
|
||||
Margin: 0 38%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 480px) {
|
||||
.qrCode[data-v] {
|
||||
Margin: 0 30%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 340px) {
|
||||
.panel-main_inner {
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
margin-bottom: .1em;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.panel-subtitle {
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.btn, .navigation_item a {
|
||||
margin-bottom: .4em;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Created by Noisky on 17/05/13.
|
||||
* Revised by Noisky on 19/09/10.
|
||||
*/
|
||||
$(document).ready(function () {
|
||||
/**
|
||||
* 随机获取背景图片
|
||||
*/
|
||||
var bgNum = 10; // 定义随机数范围 1-10 和图片数量保持一致
|
||||
var randomNum = Math.floor(Math.random() * bgNum) + 1;
|
||||
// 拼接图片地址
|
||||
var imgUrl = '//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/background-image/bg-' + randomNum + '.jpg';
|
||||
// 替换页面中的背景图片地址
|
||||
$("header").css("background-image", "url(" + imgUrl + ")");
|
||||
|
||||
/**
|
||||
* 移动端下拉菜单栏
|
||||
*/
|
||||
var nw = $('.navigation-wrapper');
|
||||
|
||||
// 定义菜单关闭事件
|
||||
function bounceOutUp() {
|
||||
nw.on(function () {
|
||||
nw.toggleClass('visible animated bounceOutUp');
|
||||
});
|
||||
nw.toggleClass('animated bounceInDown animated bounceOutUp');
|
||||
}
|
||||
|
||||
// 根据菜单状态定义单击的操作
|
||||
$('.btn-mobile-menu').click(function () {
|
||||
if (nw.css('display') === "block") {
|
||||
bounceOutUp();
|
||||
} else {
|
||||
nw.toggleClass('visible animated bounceInDown');
|
||||
}
|
||||
$('.btn-mobile-menu_icon').toggleClass('fa fa-list fa fa-angle-up animated fadeIn');
|
||||
});
|
||||
// 点击下拉菜单以外的其他标签区域收起菜单生效
|
||||
$(".panel-main").on('click', ':not(.mobile,.btn-mobile-menu,.navigation-wrapper)', function () {
|
||||
if (nw.hasClass("bounceInDown")) {
|
||||
bounceOutUp();
|
||||
$('.btn-mobile-menu_icon').toggleClass('fa fa-list fa fa-angle-up animated fadeIn');
|
||||
}
|
||||
});
|
||||
// 阻止冒泡事件执行
|
||||
nw.click(function (event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
/**
|
||||
* 底部年份动态化
|
||||
*/
|
||||
$('.year').html(new Date().getFullYear());
|
||||
|
||||
/**
|
||||
* 异步加载一言
|
||||
*/
|
||||
(function getHitokoto() {
|
||||
$.ajax({
|
||||
//url: "https://api.imjad.cn/hitokoto/?encode=jsc&charset=utf-8&length=50",
|
||||
url: "https://v1.hitokoto.cn/?encode=json&charset=utf-8",
|
||||
dataType: "jsonp",
|
||||
async: true,
|
||||
jsonp: "callback",
|
||||
jsonpCallback: "hitokoto",
|
||||
success: function (result) {
|
||||
$('#hitokoto').html("<p>" + result.hitokoto + "</p>")
|
||||
},
|
||||
error: function () {
|
||||
$('#hitokoto').html("<p>读取数据失败了的说……_(:з」∠)_</p>")
|
||||
}
|
||||
});
|
||||
})();
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
$(document).ready(function(){var b=10;var e=Math.floor(Math.random()*b)+1;var f="//gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/background-image/bg-"+e+".jpg";$("header").css("background-image","url("+f+")");var a=$(".navigation-wrapper");function c(){a.on(function(){a.toggleClass("visible animated bounceOutUp")});a.toggleClass("animated bounceInDown animated bounceOutUp")}$(".btn-mobile-menu").click(function(){if(a.css("display")==="block"){c()}else{a.toggleClass("visible animated bounceInDown")}$(".btn-mobile-menu_icon").toggleClass("fa fa-list fa fa-angle-up animated fadeIn")});$(".panel-main").on("click",":not(.mobile,.btn-mobile-menu,.navigation-wrapper)",function(){if(a.hasClass("bounceInDown")){c();$(".btn-mobile-menu_icon").toggleClass("fa fa-list fa fa-angle-up animated fadeIn")}});a.click(function(g){g.stopPropagation()});$(".year").html(new Date().getFullYear());(function d(){$.ajax({url:"https://v1.hitokoto.cn/?encode=json&charset=utf-8",dataType:"jsonp",async:true,jsonp:"callback",jsonpCallback:"hitokoto",success:function(g){$("#hitokoto").html("<p>"+g.hitokoto+"</p>")},error:function(){$("#hitokoto").html("<p>读取数据失败了的说……_(:з」∠)_</p>")}})})()});
|
||||
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<link rel="dns-prefetch" href="//api.ffis.me"/>
|
||||
<link rel="dns-prefetch" href="//static.ffis.me"/>
|
||||
<link rel="dns-prefetch" href="//static.noisky.cn"/>
|
||||
<link rel="dns-prefetch" href="//v1.hitokoto.cn"/>
|
||||
<link rel="dns-prefetch" href="//hm.baidu.com"/>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, maximum-scale=2">
|
||||
<title>林的小窝</title>
|
||||
<meta name="author" content="ldxw">
|
||||
<meta name="copyright" content="ldxw"/>
|
||||
<meta name="description" content="林的小窝"/>
|
||||
<meta name="keywords" content="林的小窝"/>
|
||||
<link rel="icon" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/logo/svg/logo/32x32/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/logo/svg/logo/32x32/favicon.ico">
|
||||
<link rel="shortcut icon" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/logo/svg/logo/32x32/favicon.ico">
|
||||
<link rel="stylesheet" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/font-awesome.lite.css">
|
||||
<link rel="stylesheet" href="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/main.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
作者:饭饭
|
||||
时间:2018.11.27
|
||||
描述:本项目使用 Apache License V2.0 开源许可,您可以自由的修改和使用,但请注明出处,非常感谢!
|
||||
本项目开源地址:https://github.com/noisky/Homepage
|
||||
-->
|
||||
<span class="mobile btn-mobile-menu">
|
||||
<i class="fa fa-list btn-mobile-menu_icon"></i>
|
||||
<i class="fa fa-angle-up btn-mobile-close_icon hidden"></i>
|
||||
</span>
|
||||
<!-- 随机背景图片 -->
|
||||
<header class="panel-cover"></header>
|
||||
<!-- 必应每日背景图片
|
||||
<header class="panel-cover" style="background-image: url('https://api.ffis.me/bing/bing-images.php')"></header> -->
|
||||
<!-- 饭饭的随机背景图片api
|
||||
<header class="panel-cover" style="background-image: url('https://api.ffis.me/img/images.php')"></header> -->
|
||||
|
||||
<div class="panel-main">
|
||||
<div class="panel-main_inner panel-inverted">
|
||||
<div class="panel-main_content">
|
||||
<a href="/" title="前往 林的小窝"><img src="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/noisky.jpg" alt="logo"
|
||||
class="panel-cover_logo logo"></a>
|
||||
<!--微博图标
|
||||
<a href="#" class="Weibo_icon_position"><em title="前往饭饭的微博"
|
||||
class="Weibo_icon Weibo_icon_logo"></em></a>-->
|
||||
<!--国旗图标-->
|
||||
<a href="#" class="Weibo_icon_position"><em title="庆祝新中国成立70周年" id="myAvatar"
|
||||
class="Weibo_icon Weibo_icon_logo"></em></a>
|
||||
|
||||
<h1 class="panel-title"><a href="/" title="link to homepage for noisky">林小窝</a></h1>
|
||||
|
||||
<span class="panel-subtitle" id="hitokoto">『Loading…』</span>
|
||||
|
||||
<hr class="panel-cover_divider">
|
||||
|
||||
<p class="panel-cover_description">我们相爱了</p><img src="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/H5ea84ac1fcfe43e8a0b49f086896b5acs.png"style="width: 50px;height: 50px;vertical-align: -20px;border-radius: 50%;margin-right: 5px;margin-bottom: 5px;border: 2px solid #fff;display:inline-block;"/><i class="momo"style="color:red;font-size:20px;">❤</i><img src="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/img/H2c34dcef25624aa0b2dec3a8436854293.png"style="width: 50px;height: 50px;vertical-align: -20px;border-radius: 50%;margin-left: 5px;margin-bottom: 5px;border: 2px solid #fff;display:inline-block;"/><br/><span id="htmer_time"></span></p>
|
||||
|
||||
<!--<p class="panel-cover_description">欢迎来到 林的小窝<s><土木工程专业</s> 辣鸡专业,已经转行了。</p>-->
|
||||
<hr class="panel-cover_divider panel-cover_divider-secondary">
|
||||
|
||||
<p class="panel-cover_description">欢迎来到 林的小窝</p>
|
||||
|
||||
<div class="navigation-wrapper">
|
||||
<div>
|
||||
<nav class="cover-navigation">
|
||||
<ul class="navigation">
|
||||
<li class="navigation_item"><a href="/" title="访问首页">首页</a></li>
|
||||
<!--<li class="navigation_item"><a href="https://img.ffis.me/" target="_blank"
|
||||
rel="noopener noreferrer" title="饭饭's 图床">图床</a>
|
||||
</li>
|
||||
<li class="navigation_item"><a href="https://music.ffis.me/" title="饭饭's 下载站">音乐盒</a></li>
|
||||
<li class="navigation_item"><a href="https://sign.ffis.me/" title="饭饭's 签到站">签到站</a></li>
|
||||
<li class="navigation_item"><a href="https://dl.ffis.me/" title="饭饭's 下载站">下载站</a></li>
|
||||
<li class="navigation_item"><a href="https://ffis.me/about.html" title="关于饭饭">关于</a></li>-->
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div>
|
||||
<nav class="cover-navigation navigation--social">
|
||||
<ul class="navigation">
|
||||
<!-- Weibo
|
||||
<li class="navigation_item">
|
||||
<a href="http://weibo.com" title="前往微博" target="_blank"
|
||||
rel="noopener noreferrer">
|
||||
<i class="social fa fa-weibo"></i>
|
||||
</a>
|
||||
</li> -->
|
||||
|
||||
<!-- QQ
|
||||
<li class="navigation_item">
|
||||
<a data-v class="wechat" href="#" title="QQ">
|
||||
<div data-v class="qrCode">
|
||||
<img data-v src="./Noisky_files/img/qq.png" width="100"
|
||||
onclick='window.open("./Noisky_files/img/qq.png")' alt="qq">
|
||||
<div data-v class="triangle-down"></div>
|
||||
</div>
|
||||
<i class="social fa fa-qq"></i>
|
||||
</a>
|
||||
</li> -->
|
||||
|
||||
<!-- Telegram -->
|
||||
<!--<li class="navigation_item">
|
||||
<a href="https://telegram.me/Noisky" title="Telegeam @Noisky" target="_blank"
|
||||
rel="noopener noreferrer">
|
||||
<i class="social fa fa-telegram"></i>
|
||||
</a>
|
||||
</li>-->
|
||||
|
||||
<!-- Weixin
|
||||
<li class="navigation_item">
|
||||
<a data-v href="#" title="扫一扫加我微信" class="wechat">
|
||||
<div data-v class="qrCode">
|
||||
<img data-v src="./Noisky_files/img/Noisky_weixin.png" width="100"
|
||||
onclick='window.open("./Noisky_files/img/Noisky_weixin.png")' alt="weixin">
|
||||
<div data-v class="triangle-down"></div>
|
||||
</div>
|
||||
<i class="social fa fa-weixin"></i>
|
||||
</a>
|
||||
</li> -->
|
||||
|
||||
<!-- Github -->
|
||||
<!--<li class="navigation_item">
|
||||
<a href="https://github.com/noisky" title="Github @Noisky" target="_blank"
|
||||
rel="noopener noreferrer">
|
||||
<i class="social fa fa-github"></i>
|
||||
</a>
|
||||
</li>-->
|
||||
|
||||
<!-- RSS -->
|
||||
<!--<li class="navigation_item">
|
||||
<a href="https://ffis.me/feed/" title="RSS" target="_blank" rel="noopener noreferrer">
|
||||
<i class="social fa fa-rss"></i>
|
||||
</a>
|
||||
</li>-->
|
||||
|
||||
<!-- Email -->
|
||||
<!--<li class="navigation_item">
|
||||
<a href="mailto:i@ffis.me" title="发邮件给我">
|
||||
<i class="social fa fa-envelope"></i>
|
||||
</a>
|
||||
</li>-->
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 底部年份动态化 + 备案号 -->
|
||||
<footer class="footer">
|
||||
<p><!--<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=41019702002681"
|
||||
rel="nofollow noopener noreferrer"
|
||||
target="_blank"><img src="https://fastly.jsdelivr.net/gh/noisky/Homepage@master/Noisky_files/img/policebeian.png" alt="beian" /> 豫公网安备
|
||||
41019702002681号</a><br />-->
|
||||
Copyright © 2025-<span class="year"></span> 林的小窝 | <a
|
||||
href="https://beian.miit.gov.cn/" rel="nofollow noopener noreferrer"
|
||||
target="_blank">豫ICP备xxxxx号-1</a></p>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-cover--overlay cover-slate"></div>
|
||||
</div>
|
||||
|
||||
<!--我们相爱了
|
||||
<script type="text/javascript"language="javascript">function setTime(){var create_time=Math.round(new Date(Date.UTC(2019,11,5,00,00,0)).getTime()/1000);var timestamp=Math.round((new Date().getTime()+8*60*60*1000)/1000);currentTime=secondToDate((timestamp-create_time));currentTimeHtml=currentTime[0]+' 年 '+currentTime[1]+' 天 '+currentTime[2]+' 时 '+currentTime[3]+' 分 '+currentTime[4]+' 秒';document.getElementById("htmer_time").innerHTML=currentTimeHtml}function secondToDate(second){if(!second){return 0}var time=new Array(0,0,0,0,0);if(second>=365*24*3600){time[0]=parseInt(second/(365*24*3600));second%=365*24*3600}if(second>=24*3600){time[1]=parseInt(second/(24*3600));second%=24*3600}if(second>=3600){time[2]=parseInt(second/3600);second%=3600}if(second>=60){time[3]=parseInt(second/60);second%=60}if(second>0){time[4]=second}return time}setInterval(setTime,1000);</script>-->
|
||||
<script>function setTime(){const createDate=new Date(2019,10,5,0,0,0);const createTime=Math.round(createDate.getTime()/1000);const now=new Date();const timestamp=Math.round(now.getTime()/1000);const timeDiff=timestamp-createTime;const currentTime=secondToDate(timeDiff);const currentTimeHtml=currentTime[0]+' 年 '+currentTime[1]+' 天 '+currentTime[2]+' 时 '+currentTime[3]+' 分 '+currentTime[4]+' 秒';const element=document.getElementById("htmer_time");if(element){element.innerHTML=currentTimeHtml;}}function secondToDate(second){if(!second||second<0){return[0,0,0,0,0];}let time=[0,0,0,0,0];const SECONDS_IN_YEAR=365*24*3600;const SECONDS_IN_DAY=24*3600;const SECONDS_IN_HOUR=3600;const SECONDS_IN_MINUTE=60;if(second>=SECONDS_IN_YEAR){time[0]=Math.floor(second/SECONDS_IN_YEAR);second%=SECONDS_IN_YEAR;}if(second>=SECONDS_IN_DAY){time[1]=Math.floor(second/SECONDS_IN_DAY);second%=SECONDS_IN_DAY;}if(second>=SECONDS_IN_HOUR){time[2]=Math.floor(second/SECONDS_IN_HOUR);second%=SECONDS_IN_HOUR;}if(second>=SECONDS_IN_MINUTE){time[3]=Math.floor(second/SECONDS_IN_MINUTE);second%=SECONDS_IN_MINUTE;}time[4]=second;return time;}document.addEventListener('DOMContentLoaded',function(){setTime();setInterval(setTime,1000);});</script>
|
||||
<!--我们相爱了-->
|
||||
|
||||
<script type="text/javascript" src="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/jquery-3.5.0.min.js"></script>
|
||||
<script type="text/javascript" src="https://gcore.jsdelivr.net/gh/ldxw/cdn@master/static/Homepage/Noisky_files/main.min.js"></script>
|
||||
<script src="//v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>
|
||||
<!-- 统计代码 -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Hasher <http://github.com/millermedeiros/hasher>
|
||||
* @author Miller Medeiros
|
||||
* @version 1.2.0 (2013/11/11 03:18 PM)
|
||||
* Released under the MIT License
|
||||
*/
|
||||
(function(){var a=function(b){var c=(function(k){var p=25,r=k.document,n=k.history,x=b.Signal,f,v,m,F,d,D,t=/#(.*)$/,j=/(\?.*)|(\#.*)/,g=/^\#/,i=(!+"\v1"),B=("onhashchange" in k)&&r.documentMode!==7,e=i&&!B,s=(location.protocol==="file:");function o(G){return String(G||"").replace(/\W/g,"\\$&")}function u(H){if(!H){return""}var G=new RegExp("^"+o(f.prependHash)+"|"+o(f.appendHash)+"$","g");return H.replace(G,"")}function E(){var G=t.exec(f.getURL());var I=(G&&G[1])||"";try{return f.raw?I:decodeURIComponent(I)}catch(H){return I}}function A(){return(d)?d.contentWindow.frameHash:null}function z(){d=r.createElement("iframe");d.src="about:blank";d.style.display="none";r.body.appendChild(d)}function h(){if(d&&v!==A()){var G=d.contentWindow.document;G.open();G.write("<html><head><title>"+r.title+'</title><script type="text/javascript">var frameHash="'+v+'";<\/script></head><body> </body></html>');G.close()}}function l(G,H){if(v!==G){var I=v;v=G;if(e){if(!H){h()}else{d.contentWindow.frameHash=G}}f.changed.dispatch(u(G),u(I))}}if(e){D=function(){var H=E(),G=A();if(G!==v&&G!==H){f.setHash(u(G))}else{if(H!==v){l(H)}}}}else{D=function(){var G=E();if(G!==v){l(G)}}}function C(I,G,H){if(I.addEventListener){I.addEventListener(G,H,false)}else{if(I.attachEvent){I.attachEvent("on"+G,H)}}}function y(I,G,H){if(I.removeEventListener){I.removeEventListener(G,H,false)}else{if(I.detachEvent){I.detachEvent("on"+G,H)}}}function q(H){H=Array.prototype.slice.call(arguments);var G=H.join(f.separator);G=G?f.prependHash+G.replace(g,"")+f.appendHash:G;return G}function w(G){G=encodeURI(G);if(i&&s){G=G.replace(/\?/,"%3F")}return G}f={VERSION:"1.2.0",raw:false,appendHash:"",prependHash:"/",separator:"/",changed:new x(),stopped:new x(),initialized:new x(),init:function(){if(F){return}v=E();if(B){C(k,"hashchange",D)}else{if(e){if(!d){z()}h()}m=setInterval(D,p)}F=true;f.initialized.dispatch(u(v))},stop:function(){if(!F){return}if(B){y(k,"hashchange",D)}else{clearInterval(m);m=null}F=false;f.stopped.dispatch(u(v))},isActive:function(){return F},getURL:function(){return k.location.href},getBaseURL:function(){return f.getURL().replace(j,"")},setHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G);if(G===v){if(!f.raw){G=w(G)}k.location.hash="#"+G}}},replaceHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G,true);if(G===v){if(!f.raw){G=w(G)}k.location.replace("#"+G)}}},getHash:function(){return u(v)},getHashAsArray:function(){return f.getHash().split(f.separator)},dispose:function(){f.stop();f.initialized.dispose();f.stopped.dispose();f.changed.dispose();d=f=k.hasher=null},toString:function(){return'[hasher version="'+f.VERSION+'" hash="'+f.getHash()+'"]'}};f.initialized.memorize=true;return f}(window));return c};if(typeof define==="function"&&define.amd){define(["signals"],a)}else{if(typeof exports==="object"){module.exports=a(require("signals"))}else{window.hasher=a(window.signals)}}}());
|
||||
@@ -0,0 +1,367 @@
|
||||
/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */
|
||||
/*global window:false, global:false*/
|
||||
|
||||
/*!!
|
||||
* JS Signals <http://millermedeiros.github.com/js-signals/>
|
||||
* Released under the MIT license <http://www.opensource.org/licenses/mit-license.php>
|
||||
* @author Miller Medeiros <http://millermedeiros.com/>
|
||||
* @version 0.6.3
|
||||
* @build 187 (07/11/2011 10:14 AM)
|
||||
*/
|
||||
(function(global){
|
||||
|
||||
/**
|
||||
* @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals
|
||||
* @name signals
|
||||
*/
|
||||
var signals = /** @lends signals */{
|
||||
/**
|
||||
* Signals Version Number
|
||||
* @type String
|
||||
* @const
|
||||
*/
|
||||
VERSION : '0.6.3'
|
||||
};
|
||||
|
||||
|
||||
|
||||
// SignalBinding -------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
/**
|
||||
* Object that represents a binding between a Signal and a listener function.
|
||||
* <br />- <strong>This is an internal constructor and shouldn't be called by regular users.</strong>
|
||||
* <br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
* @internal
|
||||
* @name signals.SignalBinding
|
||||
* @param {signals.Signal} signal Reference to Signal object that listener is currently bound to.
|
||||
* @param {Function} listener Handler function bound to the signal.
|
||||
* @param {boolean} isOnce If binding should be executed just once.
|
||||
* @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. (default = 0).
|
||||
*/
|
||||
function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
|
||||
|
||||
/**
|
||||
* Handler function bound to the signal.
|
||||
* @type Function
|
||||
* @private
|
||||
*/
|
||||
this._listener = listener;
|
||||
|
||||
/**
|
||||
* If binding should be executed just once.
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
this._isOnce = isOnce;
|
||||
|
||||
/**
|
||||
* Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @memberOf signals.SignalBinding.prototype
|
||||
* @name context
|
||||
* @type Object|undefined|null
|
||||
*/
|
||||
this.context = listenerContext;
|
||||
|
||||
/**
|
||||
* Reference to Signal object that listener is currently bound to.
|
||||
* @type signals.Signal
|
||||
* @private
|
||||
*/
|
||||
this._signal = signal;
|
||||
|
||||
/**
|
||||
* Listener priority
|
||||
* @type Number
|
||||
* @private
|
||||
*/
|
||||
this._priority = priority || 0;
|
||||
}
|
||||
|
||||
SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ {
|
||||
|
||||
/**
|
||||
* If binding is active and should be executed.
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters)
|
||||
* @type Array|null
|
||||
*/
|
||||
params : null,
|
||||
|
||||
/**
|
||||
* Call listener passing arbitrary parameters.
|
||||
* <p>If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.</p>
|
||||
* @param {Array} [paramsArr] Array of parameters that should be passed to the listener
|
||||
* @return {*} Value returned by the listener.
|
||||
*/
|
||||
execute : function (paramsArr) {
|
||||
var handlerReturn, params;
|
||||
if (this.active && !!this._listener) {
|
||||
params = this.params? this.params.concat(paramsArr) : paramsArr;
|
||||
handlerReturn = this._listener.apply(this.context, params);
|
||||
if (this._isOnce) {
|
||||
this.detach();
|
||||
}
|
||||
}
|
||||
return handlerReturn;
|
||||
},
|
||||
|
||||
/**
|
||||
* Detach binding from signal.
|
||||
* - alias to: mySignal.remove(myBinding.getListener());
|
||||
* @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached.
|
||||
*/
|
||||
detach : function () {
|
||||
return this.isBound()? this._signal.remove(this._listener) : null;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Boolean} `true` if binding is still bound to the signal and have a listener.
|
||||
*/
|
||||
isBound : function () {
|
||||
return (!!this._signal && !!this._listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Function} Handler function bound to the signal.
|
||||
*/
|
||||
getListener : function () {
|
||||
return this._listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Delete instance properties
|
||||
* @private
|
||||
*/
|
||||
_destroy : function () {
|
||||
delete this._signal;
|
||||
delete this._listener;
|
||||
delete this.context;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {boolean} If SignalBinding will only be executed once.
|
||||
*/
|
||||
isOnce : function () {
|
||||
return this._isOnce;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[SignalBinding isOnce: ' + this._isOnce +', isBound: '+ this.isBound() +', active: ' + this.active + ']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*global signals:true, SignalBinding:false*/
|
||||
|
||||
// Signal --------------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
function validateListener(listener, fnName) {
|
||||
if (typeof listener !== 'function') {
|
||||
throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom event broadcaster
|
||||
* <br />- inspired by Robert Penner's AS3 Signals.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
*/
|
||||
signals.Signal = function () {
|
||||
/**
|
||||
* @type Array.<SignalBinding>
|
||||
* @private
|
||||
*/
|
||||
this._bindings = [];
|
||||
};
|
||||
|
||||
signals.Signal.prototype = {
|
||||
|
||||
/**
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
_shouldPropagate : true,
|
||||
|
||||
/**
|
||||
* If Signal is active and should broadcast events.
|
||||
* <p><strong>IMPORTANT:</strong> Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.</p>
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @param {boolean} isOnce
|
||||
* @param {Object} [scope]
|
||||
* @param {Number} [priority]
|
||||
* @return {SignalBinding}
|
||||
* @private
|
||||
*/
|
||||
_registerListener : function (listener, isOnce, scope, priority) {
|
||||
|
||||
var prevIndex = this._indexOfListener(listener),
|
||||
binding;
|
||||
|
||||
if (prevIndex !== -1) { //avoid creating a new Binding for same listener if already added to list
|
||||
binding = this._bindings[prevIndex];
|
||||
if (binding.isOnce() !== isOnce) {
|
||||
throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.');
|
||||
}
|
||||
} else {
|
||||
binding = new SignalBinding(this, listener, isOnce, scope, priority);
|
||||
this._addBinding(binding);
|
||||
}
|
||||
|
||||
return binding;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {SignalBinding} binding
|
||||
* @private
|
||||
*/
|
||||
_addBinding : function (binding) {
|
||||
//simplified insertion sort
|
||||
var n = this._bindings.length;
|
||||
do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority);
|
||||
this._bindings.splice(n + 1, 0, binding);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @return {number}
|
||||
* @private
|
||||
*/
|
||||
_indexOfListener : function (listener) {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
if (this._bindings[n]._listener === listener) {
|
||||
return n;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a listener to the signal.
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
add : function (listener, scope, priority) {
|
||||
validateListener(listener, 'add');
|
||||
return this._registerListener(listener, false, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add listener to the signal that should be removed after first execution (will be executed only once).
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
addOnce : function (listener, scope, priority) {
|
||||
validateListener(listener, 'addOnce');
|
||||
return this._registerListener(listener, true, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove a single listener from the dispatch queue.
|
||||
* @param {Function} listener Handler function that should be removed.
|
||||
* @return {Function} Listener handler function.
|
||||
*/
|
||||
remove : function (listener) {
|
||||
validateListener(listener, 'remove');
|
||||
|
||||
var i = this._indexOfListener(listener);
|
||||
if (i !== -1) {
|
||||
this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal
|
||||
this._bindings.splice(i, 1);
|
||||
}
|
||||
return listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all listeners from the Signal.
|
||||
*/
|
||||
removeAll : function () {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
this._bindings[n]._destroy();
|
||||
}
|
||||
this._bindings.length = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {number} Number of listeners attached to the Signal.
|
||||
*/
|
||||
getNumListeners : function () {
|
||||
return this._bindings.length;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stop propagation of the event, blocking the dispatch to next listeners on the queue.
|
||||
* <p><strong>IMPORTANT:</strong> should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
|
||||
* @see signals.Signal.prototype.disable
|
||||
*/
|
||||
halt : function () {
|
||||
this._shouldPropagate = false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Dispatch/Broadcast Signal to all listeners added to the queue.
|
||||
* @param {...*} [params] Parameters that should be passed to each handler.
|
||||
*/
|
||||
dispatch : function (params) {
|
||||
if (! this.active) {
|
||||
return;
|
||||
}
|
||||
|
||||
var paramsArr = Array.prototype.slice.call(arguments),
|
||||
bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch
|
||||
n = this._bindings.length;
|
||||
|
||||
this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
|
||||
|
||||
//execute all callbacks until end of the list or until a callback returns `false` or stops propagation
|
||||
//reverse loop since listeners with higher priority will be added at the end of the list
|
||||
do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).
|
||||
* <p><strong>IMPORTANT:</strong> calling any method on the signal instance after calling dispose will throw errors.</p>
|
||||
*/
|
||||
dispose : function () {
|
||||
this.removeAll();
|
||||
delete this._bindings;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
global.signals = signals;
|
||||
|
||||
}(window || this));
|
||||
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
To change this license header, choose License Headers in Project Properties.
|
||||
To change this template file, choose Tools | Templates
|
||||
and open the template in the editor.
|
||||
*/
|
||||
/*
|
||||
Created on : 19 Oct, 2017, 11:29:05 AM
|
||||
Author : Harshit
|
||||
*/
|
||||
|
||||
input, textarea, select {
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
float: right;
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#adminLogin {
|
||||
margin: 150px 0px;
|
||||
}
|
||||
|
||||
#titleText {
|
||||
margin: 50px;
|
||||
font-size: 28px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
background: none;
|
||||
margin-top: 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.text-field {
|
||||
width: 100%;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
.text-field span {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.text-field input, .text-field textarea,.text-field select {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 100%;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 19%;
|
||||
font-size: 18px;
|
||||
margin-right: 1%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 80%;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.inner-fields, .small-inner-fields, .big-inner-fields {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 25px 0px;
|
||||
}
|
||||
|
||||
.addIcons {
|
||||
font-size: 32px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[name="configuration"], input[name="options"] {
|
||||
font-weight: 600;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.success {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #0F9D58;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #CD0000;
|
||||
}
|
||||
|
||||
textarea {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
#test-connection {
|
||||
background: #444;
|
||||
color: #fff;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#test-result {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/* latin-ext https://fonts.gstatic.com/s/lato/v16/S6uyw4BMUTPHjxAwXjeu.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Lato Regular'), local('Lato-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Classic/fonts/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin https://fonts.gstatic.com/s/lato/v16/S6uyw4BMUTPHjx4wXg.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Lato Regular'), local('Lato-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Classic/fonts/S6uyw4BMUTPHjx4wXg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -0,0 +1,562 @@
|
||||
/*
|
||||
Created on : 20 May, 2017, 12:58:19 PM
|
||||
Author : Harshit
|
||||
*/
|
||||
|
||||
* {
|
||||
font-family: "Segoe UI", 'Lato', sans-serif;;
|
||||
}
|
||||
|
||||
#generateID {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.setEmailDiv {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.at {
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.breakicon {
|
||||
margin: 40px 0px;
|
||||
padding-right: 7px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
margin: 0px 5px 0px 10px;
|
||||
}
|
||||
|
||||
.header {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
float: left;
|
||||
margin: 50px 0px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#logo img {
|
||||
max-height: 40px;
|
||||
}
|
||||
|
||||
.setLang {
|
||||
float: right;
|
||||
margin: 50px 0px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 21px;
|
||||
border-bottom: 1px solid #000;
|
||||
padding: 0px 30px 0px 10px;
|
||||
}
|
||||
|
||||
#aboutus {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.aboutus p {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#closeIcon {
|
||||
float: right;
|
||||
margin: 35px 0px;
|
||||
font-weight: 300;
|
||||
font-size: 42px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.setEmail, .setDomain {
|
||||
margin: 50px 0px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
@media (min-width:961px) {
|
||||
.setEmail {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.setDomain {
|
||||
padding: 0px 30px 0px 10px;
|
||||
}
|
||||
|
||||
select {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
background: transparent;
|
||||
background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
|
||||
background-repeat: no-repeat;
|
||||
background-position-x: 100%;
|
||||
background-position-y: 10px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
text-align: center;
|
||||
margin: 50px 0px;
|
||||
}
|
||||
|
||||
#createline, #createdline, #data {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.message {
|
||||
text-align: center;
|
||||
margin-top: 50px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.downloadButton {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
background-color: #777 !important;
|
||||
border-color: #333333 !important;
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
.deleteButton {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
background-color: #333 !important;
|
||||
border-color: #000 !important;
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
button.accordion {
|
||||
background-color: #eee;
|
||||
color: #444;
|
||||
cursor: pointer;
|
||||
padding: 18px 24px;
|
||||
width: 100%;
|
||||
border: none;
|
||||
text-align: left;
|
||||
outline: none;
|
||||
font-size: 15px;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
button.accordion.active, button.accordion:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
button.accordion:after {
|
||||
content: '\002B';
|
||||
color: #777;
|
||||
font-weight: bold;
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
|
||||
button.accordion.active:after {
|
||||
content: "\2212";
|
||||
}
|
||||
|
||||
div.panel {
|
||||
padding: 0px 24px;
|
||||
padding-top: 15px;
|
||||
background-color: #f6f6f6;
|
||||
max-height: 50px;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.2s ease-out;
|
||||
}
|
||||
|
||||
div.panel > p {
|
||||
margin-top: -62px;
|
||||
}
|
||||
|
||||
.tmail-email-attachments {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
border-top: 1px solid #ccc;
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a {
|
||||
text-decoration: none !important;
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #111;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a:hover {
|
||||
background: #111;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a i {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
/* Search Bar */
|
||||
|
||||
#search-bar-container{
|
||||
position:relative;
|
||||
display:none
|
||||
}
|
||||
|
||||
#search-bar-container:after{
|
||||
content:'\e003';
|
||||
font-family:Glyphicons Halflings;
|
||||
width:18px;
|
||||
height:18px;
|
||||
position:absolute;
|
||||
right:19px;
|
||||
bottom:19px;
|
||||
color:#fff
|
||||
}
|
||||
|
||||
#search-bar-container #search-bar{
|
||||
display:block;
|
||||
margin:20px auto;
|
||||
width:100%;
|
||||
padding:15px 20px;
|
||||
border:none;
|
||||
border-radius:5px;
|
||||
outline:0;
|
||||
background:#555;
|
||||
color:#fff
|
||||
}
|
||||
|
||||
/* Action Bar */
|
||||
|
||||
.action-button i, .action-list-button i{
|
||||
vertical-align: bottom;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.action-switch-email{
|
||||
position: fixed;
|
||||
bottom: 30px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
.action-button {
|
||||
background: #DB4437;
|
||||
}
|
||||
|
||||
.action-list-button {
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.action-button, .action-list-button {
|
||||
position: relative;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.action-switch-email:hover .action-button i {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
|
||||
.action-button {
|
||||
width: 75px;
|
||||
height: 75px;
|
||||
border-radius: 37.5px;
|
||||
}
|
||||
|
||||
.action-button i {
|
||||
display: inline-block;
|
||||
font-size: 30px;
|
||||
line-height: 75px;
|
||||
color: #fff;
|
||||
width: 75px;
|
||||
height: 75px;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.action-list-button {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: block;
|
||||
margin: 0 auto 20%;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.action-list-button i {
|
||||
display: inline-block;
|
||||
font-size: 24px;
|
||||
line-height: 50px;
|
||||
color: #fff;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.action-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.action-switch-email:hover .action-list:hover {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.action-button .action-info, .action-list-button .action-info {
|
||||
visibility: hidden;
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 5px 10px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 25%;
|
||||
right: 125%;
|
||||
margin-left: -60px;
|
||||
opacity: 0;
|
||||
transition: opacity .3s;
|
||||
}
|
||||
|
||||
.action-button .action-info {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.action-list-button .action-info {
|
||||
bottom: 15%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.action-button:hover .action-info, .action-list-button:hover .action-info {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.saveEMails {
|
||||
background: #9c0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.clearEMails {
|
||||
background: #DB4437;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.addEMail {
|
||||
background: #1E90FF;
|
||||
}
|
||||
|
||||
.action-list a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.menu {
|
||||
margin: 100px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.menu ul {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.menu a {
|
||||
color: #222;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.menu a:hover {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.menu li {
|
||||
display: inline-block;
|
||||
border-bottom: 1px solid #222;
|
||||
}
|
||||
|
||||
@media only screen and (max-width:500px) {
|
||||
.action-list-button .action-info {
|
||||
visibility:visible;
|
||||
opacity:1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* CSS Loader */
|
||||
|
||||
.cssload-container * {
|
||||
box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
.cssload-container {
|
||||
margin: 17px auto 0 auto;
|
||||
max-width: 489px;
|
||||
}
|
||||
.cssload-container ul li {
|
||||
list-style: none;
|
||||
}
|
||||
.cssload-flex-container {
|
||||
display: flex;
|
||||
display: -o-flex;
|
||||
display: -ms-flex;
|
||||
display: -webkit-flex;
|
||||
display: -moz-flex;
|
||||
flex-direction: row;
|
||||
-o-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
-webkit-flex-direction: row;
|
||||
-moz-flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
-o-flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
-webkit-flex-wrap: wrap;
|
||||
-moz-flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.cssload-flex-container li {
|
||||
padding: 9px;
|
||||
height: 87px;
|
||||
width: 87px;
|
||||
margin: 26px 17px 26px -20px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
.cssload-loading,
|
||||
.cssload-loading:after,
|
||||
.cssload-loading:before {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 4px;
|
||||
height: 44px;
|
||||
background: rgb(0, 0, 0);
|
||||
margin-top: 4px;
|
||||
border-radius: 875px;
|
||||
-o-border-radius: 875px;
|
||||
-ms-border-radius: 875px;
|
||||
-webkit-border-radius: 875px;
|
||||
-moz-border-radius: 875px;
|
||||
animation: cssload-upDown2 0.9s ease infinite;
|
||||
-o-animation: cssload-upDown2 0.9s ease infinite;
|
||||
-ms-animation: cssload-upDown2 0.9s ease infinite;
|
||||
-webkit-animation: cssload-upDown2 0.9s ease infinite;
|
||||
-moz-animation: cssload-upDown2 0.9s ease infinite;
|
||||
animation-direction: alternate;
|
||||
-o-animation-direction: alternate;
|
||||
-ms-animation-direction: alternate;
|
||||
-webkit-animation-direction: alternate;
|
||||
-moz-animation-direction: alternate;
|
||||
animation-delay: 0.2225s;
|
||||
-o-animation-delay: 0.2225s;
|
||||
-ms-animation-delay: 0.2225s;
|
||||
-webkit-animation-delay: 0.2225s;
|
||||
-moz-animation-delay: 0.2225s;
|
||||
}
|
||||
.cssload-loading:after,
|
||||
.cssload-loading:before {
|
||||
position: absolute;
|
||||
content: '';
|
||||
animation: cssload-upDown 0.9s ease infinite;
|
||||
-o-animation: cssload-upDown 0.9s ease infinite;
|
||||
-ms-animation: cssload-upDown 0.9s ease infinite;
|
||||
-webkit-animation: cssload-upDown 0.9s ease infinite;
|
||||
-moz-animation: cssload-upDown 0.9s ease infinite;
|
||||
animation-direction: alternate;
|
||||
-o-animation-direction: alternate;
|
||||
-ms-animation-direction: alternate;
|
||||
-webkit-animation-direction: alternate;
|
||||
-moz-animation-direction: alternate;
|
||||
}
|
||||
.cssload-loading:before {
|
||||
left: -9px;
|
||||
}
|
||||
.cssload-loading:after {
|
||||
left: 9px;
|
||||
animation-delay: 0.445s;
|
||||
-o-animation-delay: 0.445s;
|
||||
-ms-animation-delay: 0.445s;
|
||||
-webkit-animation-delay: 0.445s;
|
||||
-moz-animation-delay: 0.445s;
|
||||
}
|
||||
@keyframes cssload-upDown {
|
||||
from {
|
||||
transform: translateY(17px);
|
||||
}
|
||||
to {
|
||||
transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-o-keyframes cssload-upDown {
|
||||
from {
|
||||
-o-transform: translateY(17px);
|
||||
}
|
||||
to {
|
||||
-o-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes cssload-upDown {
|
||||
from {
|
||||
-ms-transform: translateY(17px);
|
||||
}
|
||||
to {
|
||||
-ms-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes cssload-upDown {
|
||||
from {
|
||||
-webkit-transform: translateY(17px);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes cssload-upDown {
|
||||
from {
|
||||
-moz-transform: translateY(17px);
|
||||
}
|
||||
to {
|
||||
-moz-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@keyframes cssload-upDown2 {
|
||||
from {
|
||||
transform: translateY(26px);
|
||||
}
|
||||
to {
|
||||
transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-o-keyframes cssload-upDown2 {
|
||||
from {
|
||||
-o-transform: translateY(26px);
|
||||
}
|
||||
to {
|
||||
-o-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes cssload-upDown2 {
|
||||
from {
|
||||
-ms-transform: translateY(26px);
|
||||
}
|
||||
to {
|
||||
-ms-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes cssload-upDown2 {
|
||||
from {
|
||||
-webkit-transform: translateY(26px);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes cssload-upDown2 {
|
||||
from {
|
||||
-moz-transform: translateY(26px);
|
||||
}
|
||||
to {
|
||||
-moz-transform: translateY(-17px);
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 434 KiB |
@@ -0,0 +1,220 @@
|
||||
|
||||
// Copyright 2012 Google Inc. All rights reserved.
|
||||
(function(){
|
||||
|
||||
var data = {
|
||||
"resource": {
|
||||
"version":"1",
|
||||
|
||||
"macros":[],
|
||||
"tags":[],
|
||||
"predicates":[],
|
||||
"rules":[]
|
||||
},
|
||||
"runtime":[]
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
/*
|
||||
|
||||
Copyright The Closure Library Authors.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
var aa,ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},ea;if("function"==typeof Object.setPrototypeOf)ea=Object.setPrototypeOf;else{var fa;a:{var ha={sf:!0},ia={};try{ia.__proto__=ha;fa=ia.sf;break a}catch(a){}fa=!1}ea=fa?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ja=ea,ka=this||self,la=/^[\w+/_-]+[=]{0,2}$/,na=null;var oa=function(){},pa=function(a){return"function"==typeof a},g=function(a){return"string"==typeof a},qa=function(a){return"number"==typeof a&&!isNaN(a)},ra=function(a){return"[object Array]"==Object.prototype.toString.call(Object(a))},q=function(a,b){if(Array.prototype.indexOf){var c=a.indexOf(b);return"number"==typeof c?c:-1}for(var d=0;d<a.length;d++)if(a[d]===b)return d;return-1},va=function(a,b){if(a&&ra(a))for(var c=0;c<a.length;c++)if(a[c]&&b(a[c]))return a[c]},wa=function(a,b){if(!qa(a)||
|
||||
!qa(b)||a>b)a=0,b=2147483647;return Math.floor(Math.random()*(b-a+1)+a)},ya=function(a,b){for(var c=new xa,d=0;d<a.length;d++)c.set(a[d],!0);for(var e=0;e<b.length;e++)if(c.get(b[e]))return!0;return!1},C=function(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(c,a[c])},za=function(a){return Math.round(Number(a))||0},Aa=function(a){return"false"==String(a).toLowerCase()?!1:!!a},Ba=function(a){var b=[];if(ra(a))for(var c=0;c<a.length;c++)b.push(String(a[c]));return b},Ca=function(a){return a?
|
||||
a.replace(/^\s+|\s+$/g,""):""},Ea=function(){return(new Date).getTime()},xa=function(){this.prefix="gtm.";this.values={}};xa.prototype.set=function(a,b){this.values[this.prefix+a]=b};xa.prototype.get=function(a){return this.values[this.prefix+a]};
|
||||
var Fa=function(a,b,c){return a&&a.hasOwnProperty(b)?a[b]:c},Ga=function(a){var b=!1;return function(){if(!b)try{a()}catch(c){}b=!0}},Ha=function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])},Ia=function(a){for(var b in a)if(a.hasOwnProperty(b))return!0;return!1},Ja=function(a,b){for(var c=[],d=0;d<a.length;d++)c.push(a[d]),c.push.apply(c,b[a[d]]||[]);return c},Ka=function(a,b){for(var c={},d=c,e=a.split("."),f=0;f<e.length-1;f++)d=d[e[f]]={};d[e[e.length-1]]=b;return c},La=function(a){var b=
|
||||
[];C(a,function(c,d){10>c.length&&d&&b.push(c)});return b.join(",")};/*
|
||||
jQuery v1.9.1 (c) 2005, 2012 jQuery Foundation, Inc. jquery.org/license. */
|
||||
var Ma=/\[object (Boolean|Number|String|Function|Array|Date|RegExp)\]/,Na=function(a){if(null==a)return String(a);var b=Ma.exec(Object.prototype.toString.call(Object(a)));return b?b[1].toLowerCase():"object"},Oa=function(a,b){return Object.prototype.hasOwnProperty.call(Object(a),b)},Pa=function(a){if(!a||"object"!=Na(a)||a.nodeType||a==a.window)return!1;try{if(a.constructor&&!Oa(a,"constructor")&&!Oa(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}for(var b in a);return void 0===
|
||||
b||Oa(a,b)},D=function(a,b){var c=b||("array"==Na(a)?[]:{}),d;for(d in a)if(Oa(a,d)){var e=a[d];"array"==Na(e)?("array"!=Na(c[d])&&(c[d]=[]),c[d]=D(e,c[d])):Pa(e)?(Pa(c[d])||(c[d]={}),c[d]=D(e,c[d])):c[d]=e}return c};var ob;
|
||||
var pb=[],qb=[],rb=[],sb=[],tb=[],ub={},vb,xb,yb,zb=function(a,b){var c={};c["function"]="__"+a;for(var d in b)b.hasOwnProperty(d)&&(c["vtp_"+d]=b[d]);return c},Ab=function(a,b){var c=a["function"];if(!c)throw Error("Error: No function name given for function call.");var d=ub[c],e={},f;for(f in a)a.hasOwnProperty(f)&&0===f.indexOf("vtp_")&&(e[void 0!==d?f:f.substr(4)]=a[f]);return void 0!==d?d(e):ob(c,e,b)},Cb=function(a,b,c){c=c||[];var d={},e;for(e in a)a.hasOwnProperty(e)&&(d[e]=Bb(a[e],b,c));
|
||||
return d},Db=function(a){var b=a["function"];if(!b)throw"Error: No function name given for function call.";var c=ub[b];return c?c.priorityOverride||0:0},Bb=function(a,b,c){if(ra(a)){var d;switch(a[0]){case "function_id":return a[1];case "list":d=[];for(var e=1;e<a.length;e++)d.push(Bb(a[e],b,c));return d;case "macro":var f=a[1];if(c[f])return;var h=pb[f];if(!h||b.Qc(h))return;c[f]=!0;try{var k=Cb(h,b,c);k.vtp_gtmEventId=b.id;d=Ab(k,b);yb&&(d=yb.Rf(d,k))}catch(y){b.xe&&b.xe(y,Number(f)),d=!1}c[f]=
|
||||
!1;return d;case "map":d={};for(var l=1;l<a.length;l+=2)d[Bb(a[l],b,c)]=Bb(a[l+1],b,c);return d;case "template":d=[];for(var m=!1,n=1;n<a.length;n++){var r=Bb(a[n],b,c);xb&&(m=m||r===xb.yb);d.push(r)}return xb&&m?xb.Uf(d):d.join("");case "escape":d=Bb(a[1],b,c);if(xb&&ra(a[1])&&"macro"===a[1][0]&&xb.sg(a))return xb.Og(d);d=String(d);for(var t=2;t<a.length;t++)Qa[a[t]]&&(d=Qa[a[t]](d));return d;case "tag":var p=a[1];if(!sb[p])throw Error("Unable to resolve tag reference "+p+".");return d={ke:a[2],
|
||||
index:p};case "zb":var u={arg0:a[2],arg1:a[3],ignore_case:a[5]};u["function"]=a[1];var v=Eb(u,b,c),w=!!a[4];return w||2!==v?w!==(1===v):null;default:throw Error("Attempting to expand unknown Value type: "+a[0]+".");}}return a},Eb=function(a,b,c){try{return vb(Cb(a,b,c))}catch(d){JSON.stringify(a)}return 2};var Fb=function(){var a=function(b){return{toString:function(){return b}}};return{vd:a("convert_case_to"),wd:a("convert_false_to"),xd:a("convert_null_to"),yd:a("convert_true_to"),zd:a("convert_undefined_to"),wh:a("debug_mode_metadata"),sa:a("function"),Ue:a("instance_name"),Ye:a("live_only"),$e:a("malware_disabled"),af:a("metadata"),xh:a("original_vendor_template_id"),ef:a("once_per_event"),Hd:a("once_per_load"),Pd:a("setup_tags"),Rd:a("tag_id"),Sd:a("teardown_tags")}}();var Gb=null,Kb=function(a){function b(r){for(var t=0;t<r.length;t++)d[r[t]]=!0}var c=[],d=[];Gb=Hb(a);for(var e=0;e<qb.length;e++){var f=qb[e],h=Jb(f);if(h){for(var k=f.add||[],l=0;l<k.length;l++)c[k[l]]=!0;b(f.block||[])}else null===h&&b(f.block||[])}for(var m=[],n=0;n<sb.length;n++)c[n]&&!d[n]&&(m[n]=!0);return m},Jb=function(a){for(var b=a["if"]||[],c=0;c<b.length;c++){var d=Gb(b[c]);if(0===d)return!1;if(2===d)return null}for(var e=a.unless||[],f=0;f<e.length;f++){var h=Gb(e[f]);if(2===h)return null;
|
||||
if(1===h)return!1}return!0},Hb=function(a){var b=[];return function(c){void 0===b[c]&&(b[c]=Eb(rb[c],a));return b[c]}};/*
|
||||
Copyright (c) 2014 Derek Brans, MIT license https://github.com/krux/postscribe/blob/master/LICENSE. Portions derived from simplehtmlparser, which is licensed under the Apache License, Version 2.0 */
|
||||
var F=window,G=document,ec=navigator,fc=G.currentScript&&G.currentScript.src,gc=function(a,b){var c=F[a];F[a]=void 0===c?b:c;return F[a]},hc=function(a,b){b&&(a.addEventListener?a.onload=b:a.onreadystatechange=function(){a.readyState in{loaded:1,complete:1}&&(a.onreadystatechange=null,b())})},ic=function(a,b,c){var d=G.createElement("script");d.type="text/javascript";d.async=!0;d.src=a;hc(d,b);c&&(d.onerror=c);var e;if(null===na)b:{var f=ka.document,h=f.querySelector&&f.querySelector("script[nonce]");
|
||||
if(h){var k=h.nonce||h.getAttribute("nonce");if(k&&la.test(k)){na=k;break b}}na=""}e=na;e&&d.setAttribute("nonce",e);var l=G.getElementsByTagName("script")[0]||G.body||G.head;l.parentNode.insertBefore(d,l);return d},jc=function(){if(fc){var a=fc.toLowerCase();if(0===a.indexOf("https://"))return 2;if(0===a.indexOf("http://"))return 3}return 1},kc=function(a,b){var c=G.createElement("iframe");c.height="0";c.width="0";c.style.display="none";c.style.visibility="hidden";var d=G.body&&G.body.lastChild||
|
||||
G.body||G.head;d.parentNode.insertBefore(c,d);hc(c,b);void 0!==a&&(c.src=a);return c},lc=function(a,b,c){var d=new Image(1,1);d.onload=function(){d.onload=null;b&&b()};d.onerror=function(){d.onerror=null;c&&c()};d.src=a;return d},mc=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,!!d):a.attachEvent&&a.attachEvent("on"+b,c)},nc=function(a,b,c){a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c)},I=function(a){F.setTimeout(a,0)},oc=function(a,b){return a&&
|
||||
b&&a.attributes&&a.attributes[b]?a.attributes[b].value:null},pc=function(a){var b=a.innerText||a.textContent||"";b&&" "!=b&&(b=b.replace(/^[\s\xa0]+|[\s\xa0]+$/g,""));b&&(b=b.replace(/(\xa0+|\s{2,}|\n|\r\t)/g," "));return b},qc=function(a){var b=G.createElement("div");b.innerHTML="A<div>"+a+"</div>";b=b.lastChild;for(var c=[];b.firstChild;)c.push(b.removeChild(b.firstChild));return c},sc=function(a,b,c){c=c||100;for(var d={},e=0;e<b.length;e++)d[b[e]]=!0;for(var f=a,h=0;f&&h<=c;h++){if(d[String(f.tagName).toLowerCase()])return f;
|
||||
f=f.parentElement}return null},tc=function(a){ec.sendBeacon&&ec.sendBeacon(a)||lc(a)},uc=function(a,b){var c=a[b];c&&"string"===typeof c.animVal&&(c=c.animVal);return c};var wc=function(a){return vc?G.querySelectorAll(a):null},xc=function(a,b){if(!vc)return null;if(Element.prototype.closest)try{return a.closest(b)}catch(e){return null}var c=Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector,d=a;if(!G.documentElement.contains(d))return null;do{try{if(c.call(d,b))return d}catch(e){break}d=d.parentElement||d.parentNode}while(null!==d&&1===d.nodeType);
|
||||
return null},yc=!1;if(G.querySelectorAll)try{var zc=G.querySelectorAll(":root");zc&&1==zc.length&&zc[0]==G.documentElement&&(yc=!0)}catch(a){}var vc=yc;var J={ra:"_ee",Bh:"_uci",uc:"event_callback",xb:"event_timeout",D:"gtag.config",Y:"allow_ad_personalization_signals",vc:"restricted_data_processing",Ra:"allow_google_signals",Z:"cookie_expires",wb:"cookie_update",Sa:"session_duration",ca:"user_properties"};
|
||||
J.md="page_view";J.bh="user_engagement";J.ma="purchase";J.Hb="refund";J.Ta="begin_checkout";J.Eb="add_to_cart";J.Fb="remove_from_cart";J.Hg="view_cart";J.Ed="add_to_wishlist";J.Ua="view_item";J.Vg="view_promotion";J.Ug="select_promotion";J.Mg="select_item";J.fd="view_item_list";J.Dd="add_payment_info";J.Fg="add_shipping_info";J.ih="allow_custom_scripts";J.lh="allow_display_features";J.nh="allow_enhanced_conversions";J.Zd="enhanced_conversions";J.Ib="client_id";J.P="cookie_domain";J.Kb="cookie_name";
|
||||
J.Ea="cookie_path";J.Va="cookie_flags";J.ia="currency";J.Ob="custom_params";J.uh="custom_map";J.nc="groups";J.Fa="language";J.th="country";J.Ah="non_interaction";J.$a="page_location";J.ab="page_referrer";J.qc="page_title";J.cb="send_page_view";J.oa="send_to";J.sc="session_engaged";J.Tb="session_id";J.wc="session_number";J.jf="tracking_id";J.na="linker";J.Wa="accept_incoming";J.C="domains";J.Za="url_position";J.Ya="decorate_forms";J.be="phone_conversion_number";J.ae="phone_conversion_callback";J.td=
|
||||
"phone_conversion_css_class";J.ee="phone_conversion_options";J.Ze="phone_conversion_ids";J.Xe="phone_conversion_country_code";J.Fd="aw_remarketing";J.Gd="aw_remarketing_only";J.X="value";J.bf="quantity";J.Me="affiliation";J.Yd="tax";J.Qe="shipping";J.nd="list_name";J.Xd="checkout_step";J.Vd="checkout_option";J.Ne="coupon";J.Pe="promotions";J.eb="transaction_id";J.fb="user_id";J.Da="conversion_linker";J.Ba="conversion_cookie_prefix";J.T="cookie_prefix";J.M="items";J.Od="aw_merchant_id";J.Kd="aw_feed_country";
|
||||
J.Ld="aw_feed_language";J.Id="discount";J.Ud="disable_merchant_reported_purchases";J.oc="new_customer";J.Qd="customer_lifetime_value";J.Ke="dc_natural_search";J.vh="dc_custom_params";J.kf="trip_type";J.$d="passengers";J.Ve="method";J.hf="search_term";J.ph="content_type";J.We="optimize_id";J.Re="experiments";J.Sb="google_signals";J.rd="google_tld";J.Ub="update";J.qd="firebase_id";J.Qb="ga_restrict_domain";J.pd="event_settings";J.cf="screen_name";J.Te="_x_19";J.Se="_x_20";J.qa="transport_url";J.pe=
|
||||
[J.Y,J.Ra,J.vc,J.P,J.Z,J.Va,J.Kb,J.Ea,J.T,J.wb,J.Ob,J.uc,J.pd,J.xb,J.Qb,J.Sb,J.rd,J.nc,J.na,J.oa,J.cb,J.Sa,J.Ub,J.ca,J.qa];J.ie=[J.$a,J.ab,J.qc,J.Fa,J.cf,J.fb,J.qd];J.lf=[J.ma,J.Hb,J.Ta,J.Eb,J.Fb,J.Hg,J.Ed,J.Ua,J.Vg,J.Ug,J.fd,J.Mg,J.Dd,J.Fg];J.Cd=[J.oa,J.Fd,J.Gd,J.Ob,J.cb,J.Fa,J.X,J.ia,J.eb,J.fb,J.Da,J.Ba,J.T,J.P,J.Z,J.Va,J.$a,J.ab,J.be,J.ae,J.td,J.ee,J.M,J.Od,J.Kd,J.Ld,J.Id,J.Ud,J.oc,J.Qd,J.Y,
|
||||
J.vc,J.Ub,J.qd,J.Zd,J.qa];J.je=[J.Y,J.Ra,J.wb];J.qe=[J.Z,J.xb,J.Sa];var Qc=/[A-Z]+/,Rc=/\s/,Sc=function(a){if(g(a)&&(a=Ca(a),!Rc.test(a))){var b=a.indexOf("-");if(!(0>b)){var c=a.substring(0,b);if(Qc.test(c)){for(var d=a.substring(b+1).split("/"),e=0;e<d.length;e++)if(!d[e])return;return{id:a,prefix:c,containerId:c+"-"+d[0],o:d}}}}},Uc=function(a){for(var b={},c=0;c<a.length;++c){var d=Sc(a[c]);d&&(b[d.id]=d)}Tc(b);var e=[];C(b,function(f,h){e.push(h)});return e};
|
||||
function Tc(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];"AW"===d.prefix&&d.o[1]&&b.push(d.containerId)}for(var e=0;e<b.length;++e)delete a[b[e]]};var Vc={},Wc=null,Xc=Math.random();Vc.s="";Vc.Cb="340";var Yc={__cl:!0,__ecl:!0,__ehl:!0,__evl:!0,__fal:!0,__fil:!0,__fsl:!0,__hl:!0,__jel:!0,__lcl:!0,__sdl:!0,__tl:!0,__ytl:!0,__paused:!0,__tg:!0},Zc="www.googletagmanager.com/gtm.js";Zc="www.googletagmanager.com/gtag/js";var $c=Zc,bd=null,cd=null,dd=null,ed="//www.googletagmanager.com/a?id="+Vc.s+"&cv=1",fd={},gd={},hd=function(){var a=Wc.sequence||0;Wc.sequence=a+1;return a};var id={},jd=function(a,b){id[a]=id[a]||[];id[a][b]=!0},kd=function(a){for(var b=[],c=id[a]||[],d=0;d<c.length;d++)c[d]&&(b[Math.floor(d/6)]^=1<<d%6);for(var e=0;e<b.length;e++)b[e]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charAt(b[e]||0);return b.join("")};
|
||||
var ld=function(){return"&tc="+sb.filter(function(a){return a}).length},od=function(){md||(md=F.setTimeout(nd,500))},nd=function(){md&&(F.clearTimeout(md),md=void 0);void 0===pd||qd[pd]&&!rd&&!sd||(td[pd]||ud.vg()||0>=vd--?(jd("GTM",1),td[pd]=!0):(ud.Xg(),lc(wd()),qd[pd]=!0,xd=yd=sd=rd=""))},wd=function(){var a=pd;if(void 0===a)return"";var b=kd("GTM"),c=kd("TAGGING");return[zd,qd[a]?"":"&es=1",Ad[a],b?"&u="+b:"",c?"&ut="+c:"",ld(),rd,sd,yd,xd,"&z=0"].join("")},Bd=function(){return[ed,"&v=3&t=t",
|
||||
"&pid="+wa(),"&rv="+Vc.Cb].join("")},Cd="0.005000">Math.random(),zd=Bd(),Dd=function(){zd=Bd()},qd={},rd="",sd="",xd="",yd="",pd=void 0,Ad={},td={},md=void 0,ud=function(a,b){var c=0,d=0;return{vg:function(){if(c<a)return!1;Ea()-d>=b&&(c=0);return c>=a},Xg:function(){Ea()-d>=b&&(c=0);c++;d=Ea()}}}(2,1E3),vd=1E3,Ed=function(a,b){if(Cd&&!td[a]&&pd!==a){nd();pd=a;xd=rd="";var c;c=0===b.indexOf("gtm.")?encodeURIComponent(b):"*";Ad[a]="&e="+c+"&eid="+a;od()}},Fd=function(a,b,c){if(Cd&&
|
||||
!td[a]&&b){a!==pd&&(nd(),pd=a);var d,e=String(b[Fb.sa]||"").replace(/_/g,"");0===e.indexOf("cvt")&&(e="cvt");d=e;var f=c+d;rd=rd?rd+"."+f:"&tr="+f;var h=b["function"];if(!h)throw Error("Error: No function name given for function call.");var k=(ub[h]?"1":"2")+d;xd=xd?xd+"."+k:"&ti="+k;od();2022<=wd().length&&nd()}},Gd=function(a,b,c){if(Cd&&!td[a]){a!==pd&&(nd(),pd=a);var d=c+b;sd=
|
||||
sd?sd+"."+d:"&epr="+d;od();2022<=wd().length&&nd()}};var Hd={},Id=new xa,Jd={},Kd={},Nd={name:"dataLayer",set:function(a,b){D(Ka(a,b),Jd);Ld()},get:function(a){return Md(a,2)},reset:function(){Id=new xa;Jd={};Ld()}},Md=function(a,b){if(2!=b){var c=Id.get(a);if(Cd){var d=Od(a);c!==d&&jd("GTM",5)}return c}return Od(a)},Od=function(a,b,c){var d=a.split("."),e=!1,f=void 0;var h=function(k,l){for(var m=0;void 0!==k&&m<d.length;m++){if(null===k)return!1;k=k[d[m]]}return void 0!==k||1<m?k:l.length?h(Pd(l.pop()),l):Qd(d)};
|
||||
e=!0;f=h(Jd.eventModel,[b,c]);return e?f:Qd(d)},Qd=function(a){for(var b=Jd,c=0;c<a.length;c++){if(null===b)return!1;if(void 0===b)break;b=b[a[c]]}return b};var Pd=function(a){if(a){var b=Qd(["gtag","targets",a]);return Pa(b)?b:void 0}},Rd=function(a,b){function c(f){f&&C(f,function(h){d[h]=null})}var d={};c(Jd);delete d.eventModel;c(Pd(a));c(Pd(b));c(Jd.eventModel);var e=[];C(d,function(f){e.push(f)});return e};
|
||||
var Sd=function(a,b){Kd.hasOwnProperty(a)||(Id.set(a,b),D(Ka(a,b),Jd),Ld())},Ld=function(a){C(Kd,function(b,c){Id.set(b,c);D(Ka(b,void 0),Jd);D(Ka(b,c),Jd);a&&delete Kd[b]})},Td=function(a,b,c){Hd[a]=Hd[a]||{};var d=1!==c?Od(b):Id.get(b);"array"===Na(d)||"object"===Na(d)?Hd[a][b]=D(d):Hd[a][b]=d},Ud=function(a,b){if(Hd[a])return Hd[a][b]},Vd=function(a,b){Hd[a]&&delete Hd[a][b]};var Wd=function(){var a=!1;return a};var Q=function(a,b,c,d){return(2===Xd()||d||"http:"!=F.location.protocol?a:b)+c},Xd=function(){var a=jc(),b;if(1===a)a:{var c=$c;c=c.toLowerCase();for(var d="https://"+c,e="http://"+c,f=1,h=G.getElementsByTagName("script"),k=0;k<h.length&&100>k;k++){var l=h[k].src;if(l){l=l.toLowerCase();if(0===l.indexOf(e)){b=3;break a}1===f&&0===l.indexOf(d)&&(f=2)}}b=f}else b=a;return b};
|
||||
var Zd=function(a,b,c){if(F[a.functionName])return b.Wc&&I(b.Wc),F[a.functionName];var d=Yd();F[a.functionName]=d;if(a.Gb)for(var e=0;e<a.Gb.length;e++)F[a.Gb[e]]=F[a.Gb[e]]||Yd();a.Rb&&void 0===F[a.Rb]&&(F[a.Rb]=c);ic(Q("https://","http://",a.gd),b.Wc,b.Ig);return d},Yd=function(){var a=function(){a.q=a.q||[];a.q.push(arguments)};return a},$d={functionName:"_googWcmImpl",Rb:"_googWcmAk",gd:"www.gstatic.com/wcm/loader.js"},ae={functionName:"_gaPhoneImpl",Rb:"ga_wpid",gd:"www.gstatic.com/gaphone/loader.js"},
|
||||
be={Le:"",nf:"1"},ce={functionName:"_googCallTrackingImpl",Gb:[ae.functionName,$d.functionName],gd:"www.gstatic.com/call-tracking/call-tracking_"+(be.Le||be.nf)+".js"},de={},ee=function(a,b,c,d){jd("GTM",22);if(c){d=d||{};var e=Zd($d,d,a),f={ak:a,cl:b};void 0===d.da&&(f.autoreplace=c);e(2,d.da,f,c,0,new Date,d.options)}},fe=function(a,b,c){jd("GTM",23);if(b){c=c||{};var d=Zd(ae,c,a),e={};void 0!==c.da?e.receiver=c.da:e.replace=b;e.ga_wpid=a;e.destination=b;d(2,
|
||||
new Date,e)}},ge=function(a,b,c,d){jd("GTM",21);if(b&&c){d=d||{};for(var e={countryNameCode:c,destinationNumber:b,retrievalTime:new Date},f=0;f<a.length;f++){var h=a[f];de[h.id]||(h&&"AW"===h.prefix&&!e.adData&&2<=h.o.length?(e.adData={ak:h.o[0],cl:h.o[1]},de[h.id]=!0):h&&"UA"===h.prefix&&!e.gaData&&(e.gaData={gaWpid:h.containerId},de[h.id]=!0))}(e.gaData||e.adData)&&Zd(ce,d)(d.da,e,d.options)}},he=function(){var a=!1;
|
||||
return a},ie=function(a,b){if(a)if(Wd()){}else{if(g(a)){var c=Sc(a);if(!c)return;a=c}var d=function(x){return b?b.getWithConfig(x):Od(x,a.containerId,a.id)},e=void 0,f=!1,h=d(J.Ze);if(h&&ra(h)){e=[];for(var k=0;k<h.length;k++){var l=Sc(h[k]);l&&(e.push(l),(a.id===l.id||a.id===a.containerId&&a.containerId===l.containerId)&&(f=!0))}}if(!e||f){var m=d(J.be),n;if(m){ra(m)?n=m:n=[m];var r=d(J.ae),t=d(J.td),p=d(J.ee),u=d(J.Xe),
|
||||
v=r||t,w=1;"UA"!==a.prefix||e||(w=5);for(var y=0;y<n.length;y++)y<w&&(e?ge(e,n[y],u,{da:v,options:p}):"AW"===a.prefix&&a.o[1]?he()?ge([a],n[y],u||"US",{da:v,options:p}):ee(a.o[0],a.o[1],n[y],{da:v,options:p}):"UA"===a.prefix&&(he()?ge([a],n[y],u||"US",{da:v}):fe(a.containerId,n[y],{da:v})))}}}};var le=new RegExp(/^(.*\.)?(google|youtube|blogger|withgoogle)(\.com?)?(\.[a-z]{2})?\.?$/),me={cl:["ecl"],customPixels:["nonGooglePixels"],ecl:["cl"],ehl:["hl"],hl:["ehl"],html:["customScripts","customPixels","nonGooglePixels","nonGoogleScripts","nonGoogleIframes"],customScripts:["html","customPixels","nonGooglePixels","nonGoogleScripts","nonGoogleIframes"],nonGooglePixels:[],nonGoogleScripts:["nonGooglePixels"],nonGoogleIframes:["nonGooglePixels"]},ne={cl:["ecl"],customPixels:["customScripts","html"],
|
||||
ecl:["cl"],ehl:["hl"],hl:["ehl"],html:["customScripts"],customScripts:["html"],nonGooglePixels:["customPixels","customScripts","html","nonGoogleScripts","nonGoogleIframes"],nonGoogleScripts:["customScripts","html"],nonGoogleIframes:["customScripts","html","nonGoogleScripts"]},oe="google customPixels customScripts html nonGooglePixels nonGoogleScripts nonGoogleIframes".split(" ");
|
||||
var qe=function(a){var b=Md("gtm.whitelist");b&&jd("GTM",9);b="google gtagfl lcl zone oid op".split(" ");var c=b&&Ja(Ba(b),me),d=Md("gtm.blacklist");d||(d=Md("tagTypeBlacklist"))&&jd("GTM",3);
|
||||
d?jd("GTM",8):d=[];pe()&&(d=Ba(d),d.push("nonGooglePixels","nonGoogleScripts","sandboxedScripts"));0<=q(Ba(d),"google")&&jd("GTM",2);var e=d&&Ja(Ba(d),ne),f={};return function(h){var k=h&&h[Fb.sa];if(!k||"string"!=typeof k)return!0;k=k.replace(/^_*/,"");if(void 0!==f[k])return f[k];var l=gd[k]||[],m=a(k,l);if(b){var n;if(n=m)a:{if(0>q(c,k))if(l&&0<l.length)for(var r=
|
||||
0;r<l.length;r++){if(0>q(c,l[r])){jd("GTM",11);n=!1;break a}}else{n=!1;break a}n=!0}m=n}var t=!1;if(d){var p=0<=q(e,k);if(p)t=p;else{var u=ya(e,l||[]);u&&jd("GTM",10);t=u}}var v=!m||t;v||!(0<=q(l,"sandboxedScripts"))||c&&-1!==q(c,"sandboxedScripts")||(v=ya(e,oe));return f[k]=v}},pe=function(){return le.test(F.location&&F.location.hostname)};var re={Rf:function(a,b){b[Fb.vd]&&"string"===typeof a&&(a=1==b[Fb.vd]?a.toLowerCase():a.toUpperCase());b.hasOwnProperty(Fb.xd)&&null===a&&(a=b[Fb.xd]);b.hasOwnProperty(Fb.zd)&&void 0===a&&(a=b[Fb.zd]);b.hasOwnProperty(Fb.yd)&&!0===a&&(a=b[Fb.yd]);b.hasOwnProperty(Fb.wd)&&!1===a&&(a=b[Fb.wd]);return a}};var se={active:!0,isWhitelisted:function(){return!0}},te=function(a){var b=Wc.zones;!b&&a&&(b=Wc.zones=a());return b};var ue=function(){};var ve=!1,we=0,xe=[];function ye(a){if(!ve){var b=G.createEventObject,c="complete"==G.readyState,d="interactive"==G.readyState;if(!a||"readystatechange"!=a.type||c||!b&&d){ve=!0;for(var e=0;e<xe.length;e++)I(xe[e])}xe.push=function(){for(var f=0;f<arguments.length;f++)I(arguments[f]);return 0}}}function ze(){if(!ve&&140>we){we++;try{G.documentElement.doScroll("left"),ye()}catch(a){F.setTimeout(ze,50)}}}var Ae=function(a){ve?a():xe.push(a)};var Be={},Ce={},De=function(a,b,c,d){if(!Ce[a]||Yc[b]||"__zone"===b)return-1;var e={};Pa(d)&&(e=D(d,e));e.id=c;e.status="timeout";return Ce[a].tags.push(e)-1},Ee=function(a,b,c,d){if(Ce[a]){var e=Ce[a].tags[b];e&&(e.status=c,e.executionTime=d)}};function Fe(a){for(var b=Be[a]||[],c=0;c<b.length;c++)b[c]();Be[a]={push:function(d){d(Vc.s,Ce[a])}}}
|
||||
var Ie=function(a,b,c){Ce[a]={tags:[]};pa(b)&&Ge(a,b);c&&F.setTimeout(function(){return Fe(a)},Number(c));return He(a)},Ge=function(a,b){Be[a]=Be[a]||[];Be[a].push(Ga(function(){return I(function(){b(Vc.s,Ce[a])})}))};function He(a){var b=0,c=0,d=!1;return{add:function(){c++;return Ga(function(){b++;d&&b>=c&&Fe(a)})},Df:function(){d=!0;b>=c&&Fe(a)}}};var Je=function(){function a(d){return!qa(d)||0>d?0:d}if(!Wc._li&&F.performance&&F.performance.timing){var b=F.performance.timing.navigationStart,c=qa(Nd.get("gtm.start"))?Nd.get("gtm.start"):0;Wc._li={cst:a(c-b),cbt:a(cd-b)}}};var Ne={},Oe=function(){return F.GoogleAnalyticsObject&&F[F.GoogleAnalyticsObject]},Pe=!1;
|
||||
var Qe=function(a){F.GoogleAnalyticsObject||(F.GoogleAnalyticsObject=a||"ga");var b=F.GoogleAnalyticsObject;if(F[b])F.hasOwnProperty(b)||jd("GTM",12);else{var c=function(){c.q=c.q||[];c.q.push(arguments)};c.l=Number(new Date);F[b]=c}Je();return F[b]},Re=function(a,b,c,d){b=String(b).replace(/\s+/g,"").split(",");var e=Oe();e(a+"require","linker");e(a+"linker:autoLink",b,c,d)};
|
||||
var Te=function(a){},Se=function(){return F.GoogleAnalyticsObject||"ga"};var Ve=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;var We=/:[0-9]+$/,Xe=function(a,b,c){for(var d=a.split("&"),e=0;e<d.length;e++){var f=d[e].split("=");if(decodeURIComponent(f[0]).replace(/\+/g," ")===b){var h=f.slice(1).join("=");return c?h:decodeURIComponent(h).replace(/\+/g," ")}}},$e=function(a,b,c,d,e){b&&(b=String(b).toLowerCase());if("protocol"===b||"port"===b)a.protocol=Ye(a.protocol)||Ye(F.location.protocol);"port"===b?a.port=String(Number(a.hostname?a.port:F.location.port)||("http"==a.protocol?80:"https"==a.protocol?443:"")):"host"===b&&
|
||||
(a.hostname=(a.hostname||F.location.hostname).replace(We,"").toLowerCase());var f=b,h,k=Ye(a.protocol);f&&(f=String(f).toLowerCase());switch(f){case "url_no_fragment":h=Ze(a);break;case "protocol":h=k;break;case "host":h=a.hostname.replace(We,"").toLowerCase();if(c){var l=/^www\d*\./.exec(h);l&&l[0]&&(h=h.substr(l[0].length))}break;case "port":h=String(Number(a.port)||("http"==k?80:"https"==k?443:""));break;case "path":a.pathname||a.hostname||jd("TAGGING",1);h="/"==a.pathname.substr(0,1)?a.pathname:
|
||||
"/"+a.pathname;var m=h.split("/");0<=q(d||[],m[m.length-1])&&(m[m.length-1]="");h=m.join("/");break;case "query":h=a.search.replace("?","");e&&(h=Xe(h,e,void 0));break;case "extension":var n=a.pathname.split(".");h=1<n.length?n[n.length-1]:"";h=h.split("/")[0];break;case "fragment":h=a.hash.replace("#","");break;default:h=a&&a.href}return h},Ye=function(a){return a?a.replace(":","").toLowerCase():""},Ze=function(a){var b="";if(a&&a.href){var c=a.href.indexOf("#");b=0>c?a.href:a.href.substr(0,c)}return b},
|
||||
af=function(a){var b=G.createElement("a");a&&(b.href=a);var c=b.pathname;"/"!==c[0]&&(a||jd("TAGGING",1),c="/"+c);var d=b.hostname.replace(We,"");return{href:b.href,protocol:b.protocol,host:b.host,hostname:d,pathname:c,search:b.search,hash:b.hash,port:b.port}};function ff(a,b,c,d){var e=sb[a],f=gf(a,b,c,d);if(!f)return null;var h=Bb(e[Fb.Pd],c,[]);if(h&&h.length){var k=h[0];f=ff(k.index,{B:f,w:1===k.ke?b.terminate:f,terminate:b.terminate},c,d)}return f}
|
||||
function gf(a,b,c,d){function e(){if(f[Fb.$e])k();else{var w=Cb(f,c,[]),y=De(c.id,String(f[Fb.sa]),Number(f[Fb.Rd]),w[Fb.af]),x=!1;w.vtp_gtmOnSuccess=function(){if(!x){x=!0;var A=Ea()-z;Fd(c.id,sb[a],"5");Ee(c.id,y,"success",A);h()}};w.vtp_gtmOnFailure=function(){if(!x){x=!0;var A=Ea()-z;Fd(c.id,sb[a],"6");Ee(c.id,y,"failure",A);k()}};w.vtp_gtmTagId=f.tag_id;
|
||||
w.vtp_gtmEventId=c.id;Fd(c.id,f,"1");var B=function(){var A=Ea()-z;Fd(c.id,f,"7");Ee(c.id,y,"exception",A);x||(x=!0,k())};var z=Ea();try{Ab(w,c)}catch(A){B(A)}}}var f=sb[a],h=b.B,k=b.w,l=b.terminate;if(c.Qc(f))return null;var m=Bb(f[Fb.Sd],c,[]);if(m&&m.length){var n=m[0],r=ff(n.index,{B:h,w:k,terminate:l},c,d);if(!r)return null;h=r;k=2===n.ke?l:r}if(f[Fb.Hd]||f[Fb.ef]){var t=f[Fb.Hd]?tb:c.gh,p=h,u=k;if(!t[a]){e=Ga(e);var v=hf(a,t,e);h=v.B;k=v.w}return function(){t[a](p,u)}}return e}
|
||||
function hf(a,b,c){var d=[],e=[];b[a]=jf(d,e,c);return{B:function(){b[a]=kf;for(var f=0;f<d.length;f++)d[f]()},w:function(){b[a]=lf;for(var f=0;f<e.length;f++)e[f]()}}}function jf(a,b,c){return function(d,e){a.push(d);b.push(e);c()}}function kf(a){a()}function lf(a,b){b()};var of=function(a,b){for(var c=[],d=0;d<sb.length;d++)if(a.mb[d]){var e=sb[d];var f=b.add();try{var h=ff(d,{B:f,w:f,terminate:f},a,d);h?c.push({Ie:d,De:Db(e),cg:h}):(mf(d,a),f())}catch(l){f()}}b.Df();c.sort(nf);for(var k=0;k<c.length;k++)c[k].cg();return 0<c.length};function nf(a,b){var c,d=b.De,e=a.De;c=d>e?1:d<e?-1:0;var f;if(0!==c)f=c;else{var h=a.Ie,k=b.Ie;f=h>k?1:h<k?-1:0}return f}
|
||||
function mf(a,b){if(!Cd)return;var c=function(d){var e=b.Qc(sb[d])?"3":"4",f=Bb(sb[d][Fb.Pd],b,[]);f&&f.length&&c(f[0].index);Fd(b.id,sb[d],e);var h=Bb(sb[d][Fb.Sd],b,[]);h&&h.length&&c(h[0].index)};c(a);}
|
||||
var pf=!1,qf=function(a,b,c,d,e){if("gtm.js"==b){if(pf)return!1;pf=!0}Ed(a,b);var f=Ie(a,d,e);Td(a,"event",1);Td(a,"ecommerce",1);Td(a,"gtm");var h={id:a,name:b,Qc:qe(c),mb:[],gh:[],xe:function(){jd("GTM",6)}};h.mb=Kb(h);var k=of(h,f);"gtm.js"!==b&&"gtm.sync"!==b||Te(Vc.s);if(!k)return k;for(var l=0;l<h.mb.length;l++)if(h.mb[l]){var m=sb[l];if(m&&!Yc[String(m[Fb.sa])])return!0}return!1};var rf=function(a,b){var c=zb(a,b);sb.push(c);return sb.length-1};var sf=/^https?:\/\/www\.googletagmanager\.com/;function tf(){var a;return a}function vf(a,b){}
|
||||
function uf(a){0!==a.indexOf("http://")&&0!==a.indexOf("https://")&&(a="https://"+a);"/"===a[a.length-1]&&(a=a.substring(0,a.length-1));return a}function wf(){var a=!1;return a};var xf=function(){this.eventModel={};this.targetConfig={};this.containerConfig={};this.h={};this.globalConfig={};this.B=function(){};this.w=function(){}},yf=function(a){var b=new xf;b.eventModel=a;return b},zf=function(a,b){a.targetConfig=b;return a},Af=function(a,b){a.containerConfig=b;return a},Bf=function(a,b){a.h=b;return a},Cf=function(a,b){a.globalConfig=b;return a},Df=function(a,b){a.B=b;return a},Ef=function(a,b){a.w=b;return a};
|
||||
xf.prototype.getWithConfig=function(a){if(void 0!==this.eventModel[a])return this.eventModel[a];if(void 0!==this.targetConfig[a])return this.targetConfig[a];if(void 0!==this.containerConfig[a])return this.containerConfig[a];if(void 0!==this.h[a])return this.h[a];if(void 0!==this.globalConfig[a])return this.globalConfig[a]};
|
||||
var Ff=function(a){function b(e){C(e,function(f){c[f]=null})}var c={};b(a.eventModel);b(a.targetConfig);b(a.containerConfig);b(a.globalConfig);var d=[];C(c,function(e){d.push(e)});return d};var Gf=function(a,b,c){for(var d=[],e=String(b||document.cookie).split(";"),f=0;f<e.length;f++){var h=e[f].split("="),k=h[0].replace(/^\s*|\s*$/g,"");if(k&&k==a){var l=h.slice(1).join("=").replace(/^\s*|\s*$/g,"");l&&c&&(l=decodeURIComponent(l));d.push(l)}}return d},Jf=function(a,b,c,d){var e=Hf(a,d);if(1===e.length)return e[0].id;if(0!==e.length){e=If(e,function(f){return f.Mb},b);if(1===e.length)return e[0].id;e=If(e,function(f){return f.nb},c);return e[0]?e[0].id:void 0}};
|
||||
function Kf(a,b,c){var d=document.cookie;document.cookie=a;var e=document.cookie;return d!=e||void 0!=c&&0<=Gf(b,e).indexOf(c)}
|
||||
var Nf=function(a,b,c,d,e,f,h){d=d||"auto";var k={path:c||"/"};e&&(k.expires=e);"none"!==d&&(k.domain=d);h&&(k.flags=h);var l;a:{var m=b,n;if(void 0==m)n=a+"=deleted; expires="+(new Date(0)).toUTCString();else{f&&(m=encodeURIComponent(m));var r=m;r&&1200<r.length&&(r=r.substring(0,1200));m=r;n=a+"="+m}var t=void 0,p=void 0,u="",v;for(v in k)if(k.hasOwnProperty(v)){var w=k[v];if(null!=w)switch(v){case "secure":w&&(n+="; secure");break;case "domain":t=w;break;case "flags":u=";"+w;break;default:"path"==
|
||||
v&&(p=w),"expires"==v&&w instanceof Date&&(w=w.toUTCString()),n+="; "+v+"="+w}}if("auto"===t){for(var y=Lf(),x=0;x<y.length;++x){var B="none"!=y[x]?y[x]:void 0;if(!Mf(B,p)&&Kf(n+(B?"; domain="+B:"")+u,a,m)){l=!0;break a}}l=!1}else t&&"none"!=t&&(n+="; domain="+t),l=!Mf(t,p)&&Kf(n+u,a,m)}return l};function If(a,b,c){for(var d=[],e=[],f,h=0;h<a.length;h++){var k=a[h],l=b(k);l===c?d.push(k):void 0===f||l<f?(e=[k],f=l):l===f&&e.push(k)}return 0<d.length?d:e}
|
||||
function Hf(a,b){for(var c=[],d=Gf(a),e=0;e<d.length;e++){var f=d[e].split("."),h=f.shift();if(!b||-1!==b.indexOf(h)){var k=f.shift();k&&(k=k.split("-"),c.push({id:f.join("."),Mb:1*k[0]||1,nb:1*k[1]||1}))}}return c}
|
||||
var Of=/^(www\.)?google(\.com?)?(\.[a-z]{2})?$/,Pf=/(^|\.)doubleclick\.net$/i,Mf=function(a,b){return Pf.test(document.location.hostname)||"/"===b&&Of.test(a)},Lf=function(){var a=[],b=document.location.hostname.split(".");if(4===b.length){var c=b[b.length-1];if(parseInt(c,10).toString()===c)return["none"]}for(var d=b.length-2;0<=d;d--)a.push(b.slice(d).join("."));var e=document.location.hostname;Pf.test(e)||Of.test(e)||a.push("none");return a};function Qf(){for(var a=Rf,b={},c=0;c<a.length;++c)b[a[c]]=c;return b}function Sf(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";a+=a.toLowerCase()+"0123456789-_";return a+"."}var Rf,Tf;function Uf(a){Rf=Rf||Sf();Tf=Tf||Qf();for(var b=[],c=0;c<a.length;c+=3){var d=c+1<a.length,e=c+2<a.length,f=a.charCodeAt(c),h=d?a.charCodeAt(c+1):0,k=e?a.charCodeAt(c+2):0,l=f>>2,m=(f&3)<<4|h>>4,n=(h&15)<<2|k>>6,r=k&63;e||(r=64,d||(n=64));b.push(Rf[l],Rf[m],Rf[n],Rf[r])}return b.join("")}
|
||||
function Vf(a){function b(l){for(;d<a.length;){var m=a.charAt(d++),n=Tf[m];if(null!=n)return n;if(!/^[\s\xa0]*$/.test(m))throw Error("Unknown base64 encoding at char: "+m);}return l}Rf=Rf||Sf();Tf=Tf||Qf();for(var c="",d=0;;){var e=b(-1),f=b(0),h=b(64),k=b(64);if(64===k&&-1===e)return c;c+=String.fromCharCode(e<<2|f>>4);64!=h&&(c+=String.fromCharCode(f<<4&240|h>>2),64!=k&&(c+=String.fromCharCode(h<<6&192|k)))}};var Wf;var $f=function(){var a=Xf,b=Yf,c=Zf(),d=function(h){a(h.target||h.srcElement||{})},e=function(h){b(h.target||h.srcElement||{})};if(!c.init){mc(G,"mousedown",d);mc(G,"keyup",d);mc(G,"submit",e);var f=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){b(this);f.call(this)};c.init=!0}},ag=function(a,b,c){for(var d=Zf().decorators,e={},f=0;f<d.length;++f){var h=d[f],k;if(k=!c||h.forms)a:{var l=h.domains,m=a;if(l&&(h.sameHost||m!==G.location.hostname))for(var n=0;n<l.length;n++)if(l[n]instanceof
|
||||
RegExp){if(l[n].test(m)){k=!0;break a}}else if(0<=m.indexOf(l[n])){k=!0;break a}k=!1}if(k){var r=h.placement;void 0==r&&(r=h.fragment?2:1);r===b&&Ha(e,h.callback())}}return e},Zf=function(){var a=gc("google_tag_data",{}),b=a.gl;b&&b.decorators||(b={decorators:[]},a.gl=b);return b};var cg=/(.*?)\*(.*?)\*(.*)/,dg=/^https?:\/\/([^\/]*?)\.?cdn\.ampproject\.org\/?(.*)/,eg=/^(?:www\.|m\.|amp\.)+/,fg=/([^?#]+)(\?[^#]*)?(#.*)?/;function gg(a){return new RegExp("(.*?)(^|&)"+a+"=([^&]*)&?(.*)")}
|
||||
var ig=function(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];void 0!==d&&d===d&&null!==d&&"[object Object]"!==d.toString()&&(b.push(c),b.push(Uf(String(d))))}var e=b.join("*");return["1",hg(e),e].join("*")},hg=function(a,b){var c=[window.navigator.userAgent,(new Date).getTimezoneOffset(),window.navigator.userLanguage||window.navigator.language,Math.floor((new Date).getTime()/60/1E3)-(void 0===b?0:b),a].join("*"),d;if(!(d=Wf)){for(var e=Array(256),f=0;256>f;f++){for(var h=f,k=0;8>k;k++)h=
|
||||
h&1?h>>>1^3988292384:h>>>1;e[f]=h}d=e}Wf=d;for(var l=4294967295,m=0;m<c.length;m++)l=l>>>8^Wf[(l^c.charCodeAt(m))&255];return((l^-1)>>>0).toString(36)},kg=function(){return function(a){var b=af(F.location.href),c=b.search.replace("?",""),d=Xe(c,"_gl",!0)||"";a.query=jg(d)||{};var e=$e(b,"fragment").match(gg("_gl"));a.fragment=jg(e&&e[3]||"")||{}}},lg=function(){var a=kg(),b=Zf();b.data||(b.data={query:{},fragment:{}},a(b.data));var c={},d=b.data;d&&(Ha(c,d.query),Ha(c,d.fragment));return c},jg=function(a){var b;
|
||||
b=void 0===b?3:b;try{if(a){var c;a:{for(var d=a,e=0;3>e;++e){var f=cg.exec(d);if(f){c=f;break a}d=decodeURIComponent(d)}c=void 0}var h=c;if(h&&"1"===h[1]){var k=h[3],l;a:{for(var m=h[2],n=0;n<b;++n)if(m===hg(k,n)){l=!0;break a}l=!1}if(l){for(var r={},t=k?k.split("*"):[],p=0;p<t.length;p+=2)r[t[p]]=Vf(t[p+1]);return r}}}}catch(u){}};
|
||||
function mg(a,b,c,d){function e(n){var r=n,t=gg(a).exec(r),p=r;if(t){var u=t[2],v=t[4];p=t[1];v&&(p=p+u+v)}n=p;var w=n.charAt(n.length-1);n&&"&"!==w&&(n+="&");return n+m}d=void 0===d?!1:d;var f=fg.exec(c);if(!f)return"";var h=f[1],k=f[2]||"",l=f[3]||"",m=a+"="+b;d?l="#"+e(l.substring(1)):k="?"+e(k.substring(1));return""+h+k+l}
|
||||
function ng(a,b){var c="FORM"===(a.tagName||"").toUpperCase(),d=ag(b,1,c),e=ag(b,2,c),f=ag(b,3,c);if(Ia(d)){var h=ig(d);c?og("_gl",h,a):pg("_gl",h,a,!1)}if(!c&&Ia(e)){var k=ig(e);pg("_gl",k,a,!0)}for(var l in f)if(f.hasOwnProperty(l))a:{var m=l,n=f[l],r=a;if(r.tagName){if("a"===r.tagName.toLowerCase()){pg(m,n,r,void 0);break a}if("form"===r.tagName.toLowerCase()){og(m,n,r);break a}}"string"==typeof r&&mg(m,n,r,void 0)}}
|
||||
function pg(a,b,c,d){if(c.href){var e=mg(a,b,c.href,void 0===d?!1:d);Ve.test(e)&&(c.href=e)}}
|
||||
function og(a,b,c){if(c&&c.action){var d=(c.method||"").toLowerCase();if("get"===d){for(var e=c.childNodes||[],f=!1,h=0;h<e.length;h++){var k=e[h];if(k.name===a){k.setAttribute("value",b);f=!0;break}}if(!f){var l=G.createElement("input");l.setAttribute("type","hidden");l.setAttribute("name",a);l.setAttribute("value",b);c.appendChild(l)}}else if("post"===d){var m=mg(a,b,c.action);Ve.test(m)&&(c.action=m)}}}
|
||||
var Xf=function(a){try{var b;a:{for(var c=a,d=100;c&&0<d;){if(c.href&&c.nodeName.match(/^a(?:rea)?$/i)){b=c;break a}c=c.parentNode;d--}b=null}var e=b;if(e){var f=e.protocol;"http:"!==f&&"https:"!==f||ng(e,e.hostname)}}catch(h){}},Yf=function(a){try{if(a.action){var b=$e(af(a.action),"host");ng(a,b)}}catch(c){}},qg=function(a,b,c,d){$f();var e="fragment"===c?2:1,f={callback:a,domains:b,fragment:2===e,placement:e,forms:!!d,sameHost:!1};Zf().decorators.push(f)},rg=function(){var a=G.location.hostname,
|
||||
b=dg.exec(G.referrer);if(!b)return!1;var c=b[2],d=b[1],e="";if(c){var f=c.split("/"),h=f[1];e="s"===h?decodeURIComponent(f[2]):decodeURIComponent(h)}else if(d){if(0===d.indexOf("xn--"))return!1;e=d.replace(/-/g,".").replace(/\.\./g,"-")}var k=a.replace(eg,""),l=e.replace(eg,""),m;if(!(m=k===l)){var n="."+l;m=k.substring(k.length-n.length,k.length)===n}return m},sg=function(a,b){return!1===a?!1:a||b||rg()};var tg={};var ug=/^\w+$/,vg=/^[\w-]+$/,wg=/^~?[\w-]+$/,xg={aw:"_aw",dc:"_dc",gf:"_gf",ha:"_ha",gp:"_gp"};function yg(a){return a&&"string"==typeof a&&a.match(ug)?a:"_gcl"}
|
||||
var Ag=function(){var a=af(F.location.href),b=$e(a,"query",!1,void 0,"gclid"),c=$e(a,"query",!1,void 0,"gclsrc"),d=$e(a,"query",!1,void 0,"dclid");if(!b||!c){var e=a.hash.replace("#","");b=b||Xe(e,"gclid",void 0);c=c||Xe(e,"gclsrc",void 0)}return zg(b,c,d)},zg=function(a,b,c){var d={},e=function(f,h){d[h]||(d[h]=[]);d[h].push(f)};d.gclid=a;d.gclsrc=b;d.dclid=c;if(void 0!==a&&a.match(vg))switch(b){case void 0:e(a,"aw");break;case "aw.ds":e(a,"aw");e(a,"dc");break;case "ds":e(a,"dc");break;case "3p.ds":(void 0==
|
||||
tg.gtm_3pds?0:tg.gtm_3pds)&&e(a,"dc");break;case "gf":e(a,"gf");break;case "ha":e(a,"ha");break;case "gp":e(a,"gp")}c&&e(c,"dc");return d},Cg=function(a){var b=Ag();Bg(b,a)};
|
||||
function Bg(a,b,c){function d(r,t){var p=Dg(r,e);p&&Nf(p,t,h,f,l,!0)}b=b||{};var e=yg(b.prefix),f=b.domain||"auto",h=b.path||"/",k=void 0==b.La?7776E3:b.La;c=c||Ea();var l=0==k?void 0:new Date(c+1E3*k),m=Math.round(c/1E3),n=function(r){return["GCL",m,r].join(".")};a.aw&&(!0===b.Rh?d("aw",n("~"+a.aw[0])):d("aw",n(a.aw[0])));a.dc&&d("dc",n(a.dc[0]));a.gf&&d("gf",n(a.gf[0]));a.ha&&d("ha",n(a.ha[0]));a.gp&&d("gp",n(a.gp[0]))}
|
||||
var Fg=function(a,b,c,d,e){for(var f=lg(),h=yg(b),k=0;k<a.length;++k){var l=a[k];if(void 0!==xg[l]){var m=Dg(l,h),n=f[m];if(n){var r=Math.min(Eg(n),Ea()),t;b:{for(var p=r,u=Gf(m,G.cookie),v=0;v<u.length;++v)if(Eg(u[v])>p){t=!0;break b}t=!1}t||Nf(m,n,c,d,0==e?void 0:new Date(r+1E3*(null==e?7776E3:e)),!0)}}}var w={prefix:b,path:c,domain:d};Bg(zg(f.gclid,f.gclsrc),w)},Dg=function(a,b){var c=xg[a];if(void 0!==c)return b+c},Eg=function(a){var b=a.split(".");return 3!==b.length||"GCL"!==b[0]?0:1E3*(Number(b[1])||
|
||||
0)};function Gg(a){var b=a.split(".");if(3==b.length&&"GCL"==b[0]&&b[1])return b[2]}
|
||||
var Hg=function(a,b,c,d,e){if(ra(b)){var f=yg(e);qg(function(){for(var h={},k=0;k<a.length;++k){var l=Dg(a[k],f);if(l){var m=Gf(l,G.cookie);m.length&&(h[l]=m.sort()[m.length-1])}}return h},b,c,d)}},Ig=function(a){return a.filter(function(b){return wg.test(b)})},Jg=function(a,b){for(var c=yg(b&&b.prefix),d={},e=0;e<a.length;e++)xg[a[e]]&&(d[a[e]]=xg[a[e]]);C(d,function(f,h){var k=Gf(c+h,G.cookie);if(k.length){var l=k[0],m=Eg(l),n={};n[f]=[Gg(l)];Bg(n,b,m)}})};function Kg(){var a=Ag(),b=a.gclid,c=a.gclsrc;if(b&&(!c||"aw.ds"===c)){var d;Wc.reported_gclid||(Wc.reported_gclid={});d=Wc.reported_gclid;if(!d[b]){d[b]=!0;var e="/pagead/landing?gclid="+encodeURIComponent(b);c&&(e+="&gclsrc="+encodeURIComponent(c));tc("https://www.google.com"+e)}}};var Lg;if(3===Vc.Cb.length)Lg="g";else{var Mg="G";Mg="g";Lg=Mg}
|
||||
var Ng={"":"n",UA:"u",AW:"a",DC:"d",G:"e",GF:"f",HA:"h",GTM:Lg,OPT:"o"},Og=function(a){var b=Vc.s.split("-"),c=b[0].toUpperCase(),d=Ng[c]||"i",e=a&&"GTM"===c?b[1]:"OPT"===c?b[1]:"",f;if(3===Vc.Cb.length){var h=void 0;h=h||(Wd()?"s":"o");f="2"+(h||"w")}else f=
|
||||
"";return f+d+Vc.Cb+e};
|
||||
var Pg=function(a){var b=vf(a,"/pagead/conversion_async.js");return b?b:-1===navigator.userAgent.toLowerCase().indexOf("firefox")?Q("https://","http://","www.googleadservices.com/pagead/conversion_async.js"):"https://www.google.com/pagead/conversion_async.js"},Qg=!1,Rg=[],Sg=["aw","dc"],Tg=function(a){var b=F.google_trackConversion,c=a.gtm_onFailure;"function"==typeof b?b(a)||c():c()},Ug=function(){for(;0<Rg.length;)Tg(Rg.shift())},Vg=function(a){if(!Qg){Qg=!0;Je();var b=function(){Ug();Rg={push:Tg}};
|
||||
Wd()?b():ic(a,b,function(){Ug();Qg=!1})}},Wg=function(a){if(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];d&&b.push({item_id:d.id,quantity:d.quantity,value:d.price,start_date:d.start_date,end_date:d.end_date})}return b}},Xg=function(a,b,c,d){var e=Sc(a),f=b==J.D,h=e.o[0],k=e.o[1],l=void 0!==k,m=function(V){return d.getWithConfig(V)},n=!1!==m(J.Da),r=m(J.Ba)||m(J.T),t=m(J.P),p=m(J.Z),u=m(J.qa),v=Pg(u);if(f){var w=m(J.na)||{};if(n){sg(w[J.Wa],!!w[J.C])&&Fg(Sg,r,void 0,t,p);var y={prefix:r,domain:t,
|
||||
La:p};Cg(y);Jg(["aw","dc"],y)}w[J.C]&&Hg(Sg,w[J.C],w[J.Za],!!w[J.Ya],r);var x=!1;x=!0;x?ie(e,d):ie(e);}var B=!1===m(J.Fd)||!1===m(J.cb);if(!f||!l&&!B)if(!0===m(J.Gd)&&(l=!1),!1!==m(J.Y)||l){var z={google_conversion_id:h,google_remarketing_only:!l,onload_callback:d.B,
|
||||
gtm_onFailure:d.w,google_conversion_format:"3",google_conversion_color:"ffffff",google_conversion_domain:"",google_conversion_label:k,google_conversion_language:m(J.Fa),google_conversion_value:m(J.X),google_conversion_currency:m(J.ia),google_conversion_order_id:m(J.eb),google_user_id:m(J.fb),google_conversion_page_url:m(J.$a),google_conversion_referrer_url:m(J.ab),google_gtm:Og(),google_transport_url:vf(u,"/")};z.google_restricted_data_processing=m(J.vc);
|
||||
Wd()&&(z.opt_image_generator=function(){return new Image},z.google_enable_display_cookie_match=!1);!1===m(J.Y)&&(z.google_allow_ad_personalization_signals=!1);z.google_read_gcl_cookie_opt_out=!n;n&&r&&(z.google_gcl_cookie_prefix=r);var A=function(){var V=m(J.Ob),ca={event:b};if(ra(V)){jd("GTM",26);for(var da=0;da<V.length;++da){var M=V[da],N=m(M);void 0!==N&&(ca[M]=N)}return ca}var P=d.eventModel;if(!P)return null;D(P,ca);for(var T=0;T<J.Cd.length;++T)delete ca[J.Cd[T]];
|
||||
return ca}();A&&(z.google_custom_params=A);!l&&m(J.M)&&(z.google_gtag_event_data={items:m(J.M),value:m(J.X)});if(l&&b==J.ma){z.google_conversion_merchant_id=m(J.Od);z.google_basket_feed_country=m(J.Kd);z.google_basket_feed_language=m(J.Ld);z.google_basket_discount=m(J.Id);z.google_basket_transaction_type=b;z.google_disable_merchant_reported_conversions=!0===m(J.Ud);Wd()&&(z.google_disable_merchant_reported_conversions=!0);var E=Wg(m(J.M));E&&(z.google_conversion_items=E)}var H=function(V,ca){void 0!=
|
||||
ca&&""!==ca&&(z.google_additional_conversion_params=z.google_additional_conversion_params||{},z.google_additional_conversion_params[V]=ca)};l&&("boolean"===typeof m(J.oc)&&H("vdnc",m(J.oc)),H("vdltv",m(J.Qd)));var K=!0;K&&Rg.push(z)}Vg(v)};var Yg=function(){for(var a=ec.userAgent+(G.cookie||"")+(G.referrer||""),b=a.length,c=F.history.length;0<c;)a+=c--^b++;var d=1,e,f,h;if(a)for(d=0,f=a.length-1;0<=f;f--)h=a.charCodeAt(f),d=(d<<6&268435455)+h+(h<<14),e=d&266338304,d=0!=e?d^e>>21:d;return[Math.round(2147483647*Math.random())^d&2147483647,Math.round(Ea()/1E3)].join(".")},ah=function(a,b,c,d){var e=Zg(b);return Jf(a,e,$g(c),d)},bh=function(a,b,c,d){var e=""+Zg(c),f=$g(d);1<f&&(e+="-"+f);return[b,e,a].join(".")},Zg=function(a){if(!a)return 1;
|
||||
a=0===a.indexOf(".")?a.substr(1):a;return a.split(".").length},$g=function(a){if(!a||"/"===a)return 1;"/"!==a[0]&&(a="/"+a);"/"!==a[a.length-1]&&(a+="/");return a.split("/").length-1};var ch=["1"],dh={},hh=function(a,b,c,d){var e=eh(a);dh[e]||fh(e,b,c)||(gh(e,Yg(),b,c,d),fh(e,b,c))};function gh(a,b,c,d,e){var f=bh(b,"1",d,c);Nf(a,f,c,d,0==e?void 0:new Date(Ea()+1E3*(void 0==e?7776E3:e)))}function fh(a,b,c){var d=ah(a,b,c,ch);d&&(dh[a]=d);return d}function eh(a){return(a||"_gcl")+"_au"};var ih=function(){for(var a=[],b=G.cookie.split(";"),c=/^\s*_gac_(UA-\d+-\d+)=\s*(.+?)\s*$/,d=0;d<b.length;d++){var e=b[d].match(c);e&&a.push({jd:e[1],value:e[2]})}var f={};if(!a||!a.length)return f;for(var h=0;h<a.length;h++){var k=a[h].value.split(".");"1"==k[0]&&3==k.length&&k[1]&&(f[a[h].jd]||(f[a[h].jd]=[]),f[a[h].jd].push({timestamp:k[1],fg:k[2]}))}return f};var jh=/^\d+\.fls\.doubleclick\.net$/;function kh(a){var b=af(F.location.href),c=$e(b,"host",!1);if(c&&c.match(jh)){var d=$e(b,"path").split(a+"=");if(1<d.length)return d[1].split(";")[0].split("?")[0]}}
|
||||
function lh(a,b){if("aw"==a||"dc"==a){var c=kh("gcl"+a);if(c)return c.split(".")}var d=yg(b);if("_gcl"==d){var e;e=Ag()[a]||[];if(0<e.length)return e}var f=Dg(a,d),h;if(f){var k=[];if(G.cookie){var l=Gf(f,G.cookie);if(l&&0!=l.length){for(var m=0;m<l.length;m++){var n=Gg(l[m]);n&&-1===q(k,n)&&k.push(n)}h=Ig(k)}else h=k}else h=k}else h=[];return h}
|
||||
var mh=function(){var a=kh("gac");if(a)return decodeURIComponent(a);var b=ih(),c=[];C(b,function(d,e){for(var f=[],h=0;h<e.length;h++)f.push(e[h].fg);f=Ig(f);f.length&&c.push(d+":"+f.join(","))});return c.join(";")},nh=function(a,b,c,d,e){hh(b,c,d,e);var f=dh[eh(b)],h=Ag().dc||[],k=!1;if(f&&0<h.length){var l=Wc.joined_au=Wc.joined_au||{},m=b||"_gcl";if(!l[m])for(var n=0;n<h.length;n++){var r="http://ad.doubleclick.net/ddm/regclk";r=r+"?gclid="+h[n]+"&auiddc="+f;tc(r);k=l[m]=!0}}null==a&&(a=k);if(a&&f){var t=
|
||||
eh(b),p=dh[t];p&&gh(t,p,c,d,e)}};
|
||||
var oh=function(a){return!(void 0===a||null===a||0===(a+"").length)},ph=function(a,b){var c;if(2===b.W)return a("ord",wa(1E11,1E13)),!0;if(3===b.W)return a("ord","1"),a("num",wa(1E11,1E13)),!0;if(4===b.W)return oh(b.sessionId)&&a("ord",b.sessionId),!0;if(5===b.W)c="1";else if(6===b.W)c=b.dd;else return!1;oh(c)&&a("qty",c);oh(b.Jb)&&a("cost",b.Jb);oh(b.transactionId)&&a("ord",b.transactionId);return!0},qh=encodeURIComponent,rh=function(a,b){function c(n,r,t){f.hasOwnProperty(n)||(r+="",e+=";"+n+"="+
|
||||
(t?r:qh(r)))}var d=a.Jc,e=a.protocol;e+=a.cc?"//"+d+".fls.doubleclick.net/activityi":"//ad.doubleclick.net/activity";e+=";src="+qh(d)+(";type="+qh(a.Mc))+(";cat="+qh(a.hb));var f=a.Xf||{};C(f,function(n,r){e+=";"+qh(n)+"="+qh(r+"")});if(ph(c,a)){oh(a.mc)&&c("u",a.mc);oh(a.kc)&&c("tran",a.kc);c("gtm",Og());!1===a.Af&&c("npa","1");if(a.Ic){var h=lh("dc",a.Ga);h&&h.length&&c("gcldc",h.join("."));var k=lh("aw",a.Ga);k&&k.length&&c("gclaw",k.join("."));var l=mh();l&&c("gac",l);hh(a.Ga,void 0,a.Sf,a.Tf);
|
||||
var m=dh[eh(a.Ga)];m&&c("auiddc",m)}oh(a.$c)&&c("prd",a.$c,!0);C(a.ld,function(n,r){c(n,r)});e+=b||"";oh(a.Xb)&&c("~oref",a.Xb);a.cc?kc(e+"?",a.B):lc(e+"?",a.B,a.w)}else I(a.w)};
|
||||
var sh=function(a,b,c,d,e,f){var h={config:a,gtm:Og()};c&&(hh(d,void 0,e,f),h.auiddc=dh[eh(d)]);b&&(h.loadInsecure=b);void 0===F.__dc_ns_processor&&(F.__dc_ns_processor=[]);F.__dc_ns_processor.push(h);ic((b?"http":"https")+"://www.googletagmanager.com/dclk/ns/v1.js")},th=function(a,b,c){var d=/^u([1-9]\d?|100)$/,e=a.getWithConfig(J.uh)||{},f=Rd(b,c);var h={},k={};if(Pa(e))for(var l in e)if(e.hasOwnProperty(l)&&
|
||||
d.test(l)){var m=e[l];g(m)&&(h[l]=m)}for(var n=0;n<f.length;n++){var r=f[n];d.test(r)&&(h[r]=r)}for(var t in h)h.hasOwnProperty(t)&&(k[t]=a.getWithConfig(h[t]));return k},uh=function(a){function b(l,m,n){void 0!==n&&0!==(n+"").length&&d.push(l+m+":"+c(n+""))}var c=encodeURIComponent,d=[],e=a(J.M)||[];if(ra(e))for(var f=0;f<e.length;f++){var h=e[f],k=f+1;b("i",k,h.id);b("p",k,h.price);b("q",k,h.quantity);b("c",k,a(J.th));b("l",k,a(J.Fa))}return d.join("|")},vh=function(a){var b=/^DC-(\d+)(\/([\w-]+)\/([\w-]+)\+(\w+))?$/.exec(a);
|
||||
if(b){var c={standard:2,unique:3,per_session:4,transactions:5,items_sold:6,"":1}[(b[5]||"").toLowerCase()];if(c)return{containerId:"DC-"+b[1],N:b[3]?a:"",uf:b[1],tf:b[3]||"",hb:b[4]||"",W:c}}},xh=function(a,b,c,d){var e=vh(a);if(e){var f=function(K){return d.getWithConfig(K)},h=!1!==f(J.Da),k=f(J.Ba)||f(J.T),l=f(J.P),m=f(J.Z),n=f(J.Ke),r=3===Xd();if(b===J.D){var t=f(J.na)||{},p=f(J.wb),u=void 0===p?!0:!!p;if(h){if(sg(t[J.Wa],!!t[J.C])){Fg(wh,k,void 0,l,
|
||||
m);}var v={prefix:k,domain:l,La:m};Cg(v);Jg(wh,v);nh(u,k,void 0,l,m)}if(t[J.C]){Hg(wh,t[J.C],t[J.Za],!!t[J.Ya],k);}if(n&&n.exclusion_parameters&&n.engines)if(Wd()){}else sh(n,r,h,k,l,m);I(d.B)}else{var w={},y=f(J.vh);if(Pa(y))for(var x in y)if(y.hasOwnProperty(x)){var B=y[x];void 0!==B&&null!==
|
||||
B&&(w[x]=B)}var z="";if(5===e.W||6===e.W)z=uh(f);var A=th(d,e.containerId,e.N),E=!0===f(J.ih);if(Wd()&&E){E=!1}var H={hb:e.hb,Ic:h,Sf:l,Tf:m,Ga:k,Jb:f(J.X),W:e.W,Xf:w,Jc:e.uf,Mc:e.tf,w:d.w,B:d.B,Xb:Ze(af(F.location.href)),$c:z,protocol:r?"http:":"https:",dd:f(J.bf),cc:E,sessionId:f(J.Tb),kc:void 0,transactionId:f(J.eb),mc:void 0,ld:A,Af:!1!==f(J.Y)};rh(H)}}else I(d.w)},wh=["aw","dc"];
|
||||
var zh=function(a){var b;if(a.hasOwnProperty("conversion_data"))b="conversion_data";else if(a.hasOwnProperty("price"))b="price";else return;var c=b,d=yh(JSON.stringify(a[c])),e=yh(a.conversion_id),f="https://www.googletraveladservices.com/travel/flights/clk/pagead/conversion";f="https://www.google.com/travel/flights/click/conversion";var h=f+"/"+e+"/?"+c+"="+d;if(a.conversionLinkerEnabled){var k=
|
||||
lh("gf",a.cookiePrefix);if(k&&k.length)for(var l=0;l<k.length;l++)h+="&gclgf="+yh(k[l])}lc(h,a.onSuccess,a.onFailure)},yh=function(a){return null===a||void 0===a||0===String(a).length?"":encodeURIComponent(String(a))};
|
||||
var Ah=/.*\.google\.com(:\d+)?\/booking\/flights.*/,Ch=function(a,b,c,d){var e=function(w){return d.getWithConfig(w)},f=Sc(a).o[0],h=!1!==e(J.Da),k=e(J.Ba)||e(J.T),l=e(J.P),m=e(J.Z);if(b===J.D){if(h){var n={prefix:k,domain:l,La:m};Cg(n);Jg(["aw","dc"],n)}I(d.B)}else{var r={conversion_id:f,onFailure:d.w,onSuccess:d.B,conversionLinkerEnabled:h,cookiePrefix:k},t=Ah.test(F.location.href);if(b!==J.ma)I(d.w);else{var u={partner_id:f,trip_type:e(J.kf),total_price:e(J.X),currency:e(J.ia),is_direct_booking:t,flight_segment:Bh(e(J.M))},v=e(J.$d);v&&"object"===typeof v&&(u.passengers_total=za(v.total),u.passengers_adult=za(v.adult),u.passengers_child=za(v.child),u.passengers_infant_in_seat=za(v.infant_in_seat),u.passengers_infant_in_lap=za(v.infant_in_lap));r.conversion_data=u;zh(r)}}},Bh=
|
||||
function(a){if(a){for(var b=[],c=0,d=0;d<a.length;++d){var e=a[d];!e||void 0!==e.category&&""!==e.category&&"FlightSegment"!==e.category||(b[c]={cabin:e.travel_class,fare_product:e.fare_product,booking_code:e.booking_code,flight_number:e.flight_number,origin:e.origin,destination:e.destination,departure_date:e.start_date},c++)}return b}};
|
||||
var Hh=function(a,b,c,d){var e=Sc(a),f=function(w){return d.getWithConfig(w)},h=!1!==f(J.Da),k=f(J.Ba)||f(J.T),l=f(J.P),m=f(J.Z);if(b===J.D){var n=f(J.na)||{};if(h){sg(n[J.Wa],!!n[J.C])&&Fg(Dh,k,void 0,l,m);var r={prefix:k,domain:l,La:m};Cg(r);Jg(["aw","dc"],r)}if(n[J.C]){Hg(Dh,n[J.C],n[J.Za],!!n[J.Ya],k);}I(d.B)}else{var t=e.o[0];if(/^\d+$/.test(t)){var p="https://www.googletraveladservices.com/travel/clk/pagead/conversion/"+encodeURIComponent(t)+
|
||||
"/";if(b===J.ma){var u=Eh(f(J.eb),f(J.X),f(J.ia),f(J.M));u=encodeURIComponent(Fh(u));p+="?data="+u}else if(b===J.Ua){var v=Gh(t,f(J.X),f(J.Yd),f(J.ia),f(J.M));v=encodeURIComponent(Fh(v));p+="?label=FH&guid=ON&script=0&ord="+wa(0,4294967295)+("&price="+v)}else{I(d.w);return}h&&(p+=lh("ha",k).map(function(w){return"&gclha="+encodeURIComponent(w)}).join(""));lc(p,d.B,d.w)}else I(d.w)}},Eh=function(a,b,c,d){var e={};Ih(a)&&(e.hct_booking_xref=a);g(c)&&(e.hct_currency_code=c);Ih(b)&&(e.hct_total_price=
|
||||
b,e.hct_base_price=b);if(!ra(d)||0===d.length)return e;var f=d[0];if(!Pa(f))return e;Ih(f[Jh.va])&&(e.hct_partner_hotel_id=f[Jh.va]);g(f[Jh.ja])&&(e.hct_checkin_date=f[Jh.ja]);g(f[Jh.Qa])&&(e.hct_checkout_date=f[Jh.Qa]);return e},Gh=function(a,b,c,d,e){function f(n){void 0===n&&(n=0);if(Ih(n))return l+n}function h(n,r,t){t(r)&&(k[n]=r)}var k={};k.partner_id=a;var l="USD";g(d)&&(l=k.currency=d);Ih(b)&&(k.base_price_value_string=f(b),k.display_price_value_string=f(b));Ih(c)&&(k.tax_price_value_string=
|
||||
f(c));g("LANDING_PAGE")&&(k.page_type="LANDING_PAGE");if(!ra(e)||0==e.length)return k;var m=e[0];if(!Pa(m))return k;Ih(m[Jh.Jd])&&(k.total_price_value_string=f(m[Jh.Jd]));h("partner_hotel_id",m[Jh.va],Ih);h("check_in_date",m[Jh.ja],g);h("check_out_date",m[Jh.Qa],g);h("adults",m[Jh.df],Kh);h(Jh.Nd,m[Jh.Nd],g);h(Jh.Md,m[Jh.Md],g);return k},Fh=function(a){var b=[];C(a,function(c,d){b.push(c+"="+d)});return b.join(";")},Ih=function(a){return g(a)||Kh(a)},Kh=function(a){return"number"===typeof a},Jh={va:"id",
|
||||
Jd:"price",ja:"start_date",Qa:"end_date",df:"occupancy",Nd:"room_id",Md:"rate_rule_id"},Dh=["ha"];
|
||||
var Yh=function(a,b,c,d){var e="https://www.google-analytics.com/analytics.js",f=Qe();if(pa(f)){var h="gtag_"+a.split("-").join("_"),k=function(x){var B=[].slice.call(arguments,0);B[0]=h+"."+B[0];f.apply(window,B)},l=function(){var x=function(E,H){for(var K=0;H&&K<H.length;K++)k(E,H[K])},B=Ph(b,d);if(B){var z=B.action;if("impressions"===z)x("ec:addImpression",B.ng);else if("promo_click"===z||"promo_view"===z){var A=B.ad;x("ec:addPromo",B.ad);A&&0<A.length&&"promo_click"===z&&k("ec:setAction",z)}else x("ec:addProduct",
|
||||
B.Ma),k("ec:setAction",z,B.gb)}},m=function(){if(Wd()){}else{var x=d.getWithConfig(J.We);x&&(k("require",x,{dataLayer:"dataLayer"}),k("require","render"))}},n=Qh(a,h,b,d);Rh(h,n.Ha)&&(f(function(){Oe()&&Oe().remove(h)}),Sh[h]=!1);f("create",a,n.Ha);(function(){var x=d.getWithConfig("custom_map");f(function(){if(Pa(x)){var B=n.ka,z=Oe().getByName(h),A;for(A in x)if(x.hasOwnProperty(A)&&/^(dimension|metric)\d+$/.test(A)&&void 0!=x[A]){var E=z.get(Th(x[A]));Uh(B,A,E)}}})})();(function(x){if(x){var B={};if(Pa(x))for(var z in Vh)Vh.hasOwnProperty(z)&&Wh(Vh[z],z,x[z],B);k("require","linkid",B)}})(n.linkAttribution);
|
||||
var t=n[J.na];if(t&&t[J.C]){var p=t[J.Za];Re(h+".",t[J.C],void 0===p?!!t.use_anchor:"fragment"===p,!!t[J.Ya])}var u=function(x,B,z){z&&(B=""+B);n.ka[x]=B};if(b===J.md)m(),k("send","pageview",n.ka);else if(b===J.D){m();var v=!1;v=!0;v?ie(a,d):ie(a);0!=n.sendPageView&&k("send","pageview",n.ka)}else"screen_view"===b?k("send","screenview",n.ka):"timing_complete"===b?(u("timingCategory",
|
||||
n.eventCategory,!0),u("timingVar",n.name,!0),u("timingValue",za(n.value)),void 0!==n.eventLabel&&u("timingLabel",n.eventLabel,!0),k("send","timing",n.ka)):"exception"===b?k("send","exception",n.ka):"optimize.callback"!==b&&(0<=q([J.fd,"select_content",J.Ua,J.Eb,J.Fb,J.Ta,"set_checkout_option",J.ma,J.Hb,"view_promotion","checkout_progress"],b)&&(k("require","ec","ec.js"),l()),u("eventCategory",n.eventCategory,!0),u("eventAction",n.eventAction||b,!0),void 0!==n.eventLabel&&u("eventLabel",n.eventLabel,
|
||||
!0),void 0!==n.value&&u("eventValue",za(n.value)),k("send","event",n.ka));if(!Xh){Xh=!0;Je();var w=d.w,y=function(){Oe().loaded||w()};Wd()?I(y):ic(e,y,w)}}else I(d.w)},Xh,Sh={},Zh={client_id:1,client_storage:"storage",cookie_name:1,cookie_domain:1,cookie_expires:1,cookie_path:1,cookie_update:1,cookie_flags:1,sample_rate:1,site_speed_sample_rate:1,use_amp_client_id:1,store_gac:1,conversion_linker:"storeGac"},$h={anonymize_ip:1,app_id:1,app_installer_id:1,app_name:1,app_version:1,campaign:{name:"campaignName",
|
||||
source:"campaignSource",medium:"campaignMedium",term:"campaignTerm",content:"campaignContent",id:"campaignId"},currency:"currencyCode",description:"exDescription",fatal:"exFatal",language:1,non_interaction:1,page_hostname:"hostname",page_referrer:"referrer",page_path:"page",page_location:"location",page_title:"title",screen_name:1,transport_type:"transport",user_id:1},ai={content_id:1,event_category:1,event_action:1,event_label:1,link_attribution:1,linker:1,method:1,name:1,send_page_view:1,value:1},
|
||||
Vh={cookie_name:1,cookie_expires:"duration",levels:1},bi={anonymize_ip:1,fatal:1,non_interaction:1,use_amp_client_id:1,send_page_view:1,store_gac:1,conversion_linker:1},Wh=function(a,b,c,d){if(void 0!==c)if(bi[b]&&(c=Aa(c)),"anonymize_ip"!==b||c||(c=void 0),1===a)d[Th(b)]=c;else if(g(a))d[a]=c;else for(var e in a)a.hasOwnProperty(e)&&void 0!==c[e]&&(d[a[e]]=c[e])},Th=function(a){return a&&g(a)?a.replace(/(_[a-z])/g,function(b){return b[1].toUpperCase()}):a},ci=function(a){var b="general";0<=q([J.Dd,
|
||||
J.Eb,J.Ed,J.Ta,"checkout_progress",J.ma,J.Hb,J.Fb,"set_checkout_option"],a)?b="ecommerce":0<=q("generate_lead login search select_content share sign_up view_item view_item_list view_promotion view_search_results".split(" "),a)?b="engagement":"exception"===a&&(b="error");return b},Uh=function(a,b,c){a.hasOwnProperty(b)||(a[b]=c)},di=function(a){if(ra(a)){for(var b=[],c=0;c<a.length;c++){var d=a[c];if(void 0!=d){var e=d.id,f=d.variant;void 0!=e&&void 0!=f&&b.push(String(e)+"."+String(f))}}return 0<
|
||||
b.length?b.join("!"):void 0}},Qh=function(a,b,c,d){var e=function(A){return d.getWithConfig(A)},f={},h={},k={},l=di(e(J.Re));l&&Uh(h,"exp",l);var m=e("custom_map");if(Pa(m))for(var n in m)if(m.hasOwnProperty(n)&&/^(dimension|metric)\d+$/.test(n)&&void 0!=m[n]){var r=e(String(m[n]));void 0!==r&&Uh(h,n,r)}var t=Rd(a);for(var p=0;p<t.length;++p){var u=t[p],v=e(u);if(ai.hasOwnProperty(u))Wh(ai[u],
|
||||
u,v,f);else if($h.hasOwnProperty(u))Wh($h[u],u,v,h);else if(Zh.hasOwnProperty(u))Wh(Zh[u],u,v,k);else if(/^(dimension|metric|content_group)\d+$/.test(u))Wh(1,u,v,h);else if("developer_id"===u){}else u===J.T&&0>q(t,J.Kb)&&(k.cookieName=v+"_ga")}Uh(k,"cookieDomain","auto");Uh(h,"forceSSL",!0);Uh(f,"eventCategory",ci(c));0<=q(["view_item","view_item_list","view_promotion",
|
||||
"view_search_results"],c)&&Uh(h,"nonInteraction",!0);"login"===c||"sign_up"===c||"share"===c?Uh(f,"eventLabel",e(J.Ve)):"search"===c||"view_search_results"===c?Uh(f,"eventLabel",e(J.hf)):"select_content"===c&&Uh(f,"eventLabel",e(J.ph));var y=f[J.na]||{},x=y[J.Wa];x||0!=x&&y[J.C]?k.allowLinker=!0:!1===x&&Uh(k,"useAmpClientId",!1);if(!1===e(J.lh)||!1===e(J.Y)||!1===e(J.Ra))h.allowAdFeatures=!1;!1===e(J.Y)&&jd("GTM",27);k.name=b;h[">m"]=Og(!0);h.hitCallback=d.B;var B=e(J.Te)||Md("gtag.remote_config."+
|
||||
a+".url",2),z=e(J.Se)||Md("gtag.remote_config."+a+".dualId",2);B&&null!=fc&&(k._x_19=B);z&&(k._x_20=z);f.ka=h;f.Ha=k;return f},Ph=function(a,b){function c(v){var w=D(v);w.list=v.list_name;w.listPosition=v.list_position;w.position=v.list_position||v.creative_slot;w.creative=v.creative_name;return w}function d(v){for(var w=[],y=0;v&&y<v.length;y++)v[y]&&w.push(c(v[y]));return w.length?w:void 0}function e(v){return{id:f(J.eb),affiliation:f(J.Me),revenue:f(J.X),tax:f(J.Yd),shipping:f(J.Qe),coupon:f(J.Ne),
|
||||
list:f(J.nd)||v}}for(var f=function(v){return b.getWithConfig(v)},h=f(J.M),k,l=0;h&&l<h.length&&!(k=h[l][J.nd]);l++);var m=f("custom_map");if(Pa(m))for(var n=0;h&&n<h.length;++n){var r=h[n],t;for(t in m)m.hasOwnProperty(t)&&/^(dimension|metric)\d+$/.test(t)&&void 0!=m[t]&&Uh(r,t,r[m[t]])}var p=null,u=f(J.Pe);a===J.ma||a===J.Hb?p={action:a,gb:e(),Ma:d(h)}:a===J.Eb?p={action:"add",Ma:d(h)}:a===J.Fb?p={action:"remove",Ma:d(h)}:a===J.Ua?p={action:"detail",gb:e(k),Ma:d(h)}:a===J.fd?p={action:"impressions",
|
||||
ng:d(h)}:"view_promotion"===a?p={action:"promo_view",ad:d(u)}:"select_content"===a&&u&&0<u.length?p={action:"promo_click",ad:d(u)}:"select_content"===a?p={action:"click",gb:{list:f(J.nd)||k},Ma:d(h)}:a===J.Ta||"checkout_progress"===a?p={action:"checkout",Ma:d(h),gb:{step:a===J.Ta?1:f(J.Xd),option:f(J.Vd)}}:"set_checkout_option"===a&&(p={action:"checkout_option",gb:{step:f(J.Xd),option:f(J.Vd)}});p&&(p.Vf=f(J.ia));return p},ei={},Rh=function(a,b){var c=ei[a];ei[a]=D(b);if(!c)return!1;for(var d in b)if(b.hasOwnProperty(d)&&
|
||||
b[d]!==c[d])return!0;for(var e in c)if(c.hasOwnProperty(e)&&c[e]!==b[e])return!0;return!1};var fi={},gi=["G","GP"];fi.Je="";var hi=fi.Je.split(",");function ii(){var a=Wc;return a.gcq=a.gcq||new ji}
|
||||
var ki=function(a,b,c){ii().register(a,b,c)},li=function(a,b,c,d){ii().push("event",[b,a],c,d)},mi=function(a,b){ii().push("config",[a],b)},ni={},oi=function(){this.status=1;this.containerConfig={};this.targetConfig={};this.i={};this.m=null;this.h=!1},pi=function(a,b,c,d,e){this.type=a;this.m=b;this.N=c||"";this.h=d;this.i=e},ji=function(){this.i={};this.m={};this.h=[]},qi=function(a,b){var c=Sc(b);return a.i[c.containerId]=a.i[c.containerId]||new oi},ri=function(a,b,c,d){if(d.N){var e=qi(a,d.N),
|
||||
f=e.m;if(f){var h=D(c),k=D(e.targetConfig[d.N]),l=D(e.containerConfig),m=D(e.i),n=D(a.m),r=Md("gtm.uniqueEventId"),t=Sc(d.N).prefix,p=Ef(Df(Cf(Bf(Af(zf(yf(h),k),l),m),n),function(){Gd(r,t,"2");}),function(){Gd(r,t,"3");});try{Gd(r,t,"1");f(d.N,b,d.m,p)}catch(u){
|
||||
Gd(r,t,"4");}}}};
|
||||
ji.prototype.register=function(a,b,c){if(3!==qi(this,a).status){qi(this,a).m=b;qi(this,a).status=3;c&&(qi(this,a).i=c);var d=Sc(a),e=ni[d.containerId];if(void 0!==e){var f=Wc[d.containerId].bootstrap,h=d.prefix.toUpperCase();Wc[d.containerId]._spx&&(h=h.toLowerCase());var k=Md("gtm.uniqueEventId"),l=h,m=Ea()-f;if(Cd&&!td[k]){k!==pd&&(nd(),pd=k);var n=l+"."+Math.floor(f-e)+"."+Math.floor(m);yd=yd?yd+","+n:"&cl="+n}delete ni[d.containerId]}this.flush()}};
|
||||
ji.prototype.push=function(a,b,c,d){var e=Math.floor(Ea()/1E3);a:if(c){var f=Sc(c),h;if(h=f){var k;if(k=1===qi(this,c).status)b:{var l=f.prefix;k=!0}h=k}if(h)if(qi(this,c).status=2,this.push("require",[],f.containerId),ni[f.containerId]=Ea(),Wd()){}else{var n=encodeURIComponent(f.containerId),r=("http:"!=F.location.protocol?"https:":"http:")+"//www.googletagmanager.com";
|
||||
ic(r+"/gtag/js?id="+n+"&l=dataLayer&cx=c")}}this.h.push(new pi(a,e,c,b,d));d||this.flush()};
|
||||
ji.prototype.flush=function(a){for(var b=this;this.h.length;){var c=this.h[0];if(c.i)c.i=!1,this.h.push(c);else switch(c.type){case "require":if(3!==qi(this,c.N).status&&!a)return;break;case "set":C(c.h[0],function(l,m){D(Ka(l,m),b.m)});break;case "config":var d=c.h[0],e=!!d[J.Ub];delete d[J.Ub];var f=qi(this,c.N),h=Sc(c.N),k=h.containerId===h.id;e||(k?f.containerConfig={}:f.targetConfig[c.N]={});f.h&&e||ri(this,J.D,d,c);f.h=!0;delete d[J.ra];k?D(d,f.containerConfig):D(d,f.targetConfig[c.N]);break;
|
||||
case "event":ri(this,c.h[1],c.h[0],c)}this.h.shift()}};var si=["GP","G"],ti="G".split(/,/);ti.push("HA");var ui=!1;ui=!0;var vi=null,wi={},xi={},yi;function zi(a,b){var c={event:a};b&&(c.eventModel=D(b),b[J.uc]&&(c.eventCallback=b[J.uc]),b[J.xb]&&(c.eventTimeout=b[J.xb]));return c}
|
||||
var Ai=function(){vi=vi||!Wc.gtagRegistered;Wc.gtagRegistered=!0;return vi},Bi=function(a){if(void 0===xi[a.id]){var b;switch(a.prefix){case "UA":b=rf("gtagua",{trackingId:a.id});break;case "AW":b=rf("gtagaw",{conversionId:a});break;case "DC":b=rf("gtagfl",{targetId:a.id});break;case "GF":b=rf("gtaggf",{conversionId:a});break;case "HA":b=rf("gtagha",{conversionId:a});break;case "GP":b=rf("gtaggp",{conversionId:a.id});break;default:return}if(!yi){var c=zb("v",{name:"send_to",dataLayerVersion:2});pb.push(c);
|
||||
yi=["macro",pb.length-1]}var d={arg0:yi,arg1:a.id,ignore_case:!1};d[Fb.sa]="_lc";rb.push(d);var e={"if":[rb.length-1],add:[b]};e["if"]&&(e.add||e.block)&&qb.push(e);xi[a.id]=b}},Ci=function(a){C(wi,function(b,c){var d=q(c,a);0<=d&&c.splice(d,1)})},Di=Ga(function(){}),Ei=function(a){if(a.containerId!==Vc.s&&"G"!==a.prefix){var b;switch(a.prefix){case "UA":b=14;break;case "AW":b=15;break;case "DC":b=16;break;default:b=17}jd("GTM",b)}};
|
||||
var Fi={config:function(a){var b=a[2]||{};if(2>a.length||!g(a[1])||!Pa(b))return;var c=Sc(a[1]);if(!c)return;Ci(c.id);var d=c.id,e=b[J.nc]||"default";e=e.toString().split(",");for(var f=0;f<e.length;f++)wi[e[f]]=wi[e[f]]||[],wi[e[f]].push(d);delete b[J.nc];if(Ai()){hd();D(b);if(ui&&-1!==q(ti,c.prefix)||-1!==q(si,c.prefix)){"G"===c.prefix&&(b[J.ra]=!0);mi(b,c.id);return}Bi(c);Ei(c)}else Di();Sd("gtag.targets."+c.id,void 0);Sd("gtag.targets."+c.id,D(b));var h={};h[J.oa]=
|
||||
c.id;return zi(J.D,h);},event:function(a){var b=a[1];if(g(b)&&!(3<a.length)){var c;if(2<a.length){if(!Pa(a[2])&&void 0!=a[2])return;c=a[2]}var d=zi(b,c);var e;var f=c&&c[J.oa];void 0===f&&(f=Md(J.oa,2),void 0===f&&(f="default"));if(g(f)||ra(f)){for(var h=f.toString().replace(/\s+/g,"").split(","),k=[],l=0;l<h.length;l++)0<=h[l].indexOf("-")?k.push(h[l]):k=k.concat(wi[h[l]]||[]);e=Uc(k)}else e=void 0;var m=e;if(!m)return;hd();var n=Ai();n||
|
||||
Di();for(var r=[],t=0;n&&t<m.length;t++){var p=m[t];Ei(p);if(ui&&-1!==q(ti,p.prefix)||-1!==q(si,p.prefix)){var u=D(c);"G"===p.prefix&&(u[J.ra]=!0);li(b,u,p.id)}else Bi(p);r.push(p.id)}d.eventModel=d.eventModel||{};0<m.length?d.eventModel[J.oa]=r.join():delete d.eventModel[J.oa];return d}},js:function(a){if(2==a.length&&a[1].getTime)return{event:"gtm.js","gtm.start":a[1].getTime()}},policy:function(){},set:function(a){var b;2==a.length&&Pa(a[1])?b=D(a[1]):3==a.length&&
|
||||
g(a[1])&&(b={},Pa(a[2])||ra(a[2])?b[a[1]]=D(a[2]):b[a[1]]=a[2]);if(b){if(Ai()){var c=D(b);ii().push("set",[c]);D(b)}b._clear=!0;return b}}},Gi={policy:!0};var Hi=function(a,b){var c=a.hide;if(c&&void 0!==c[b]&&c.end){c[b]=!1;var d=!0,e;for(e in c)if(c.hasOwnProperty(e)&&!0===c[e]){d=!1;break}d&&(c.end(),c.end=null)}},Ji=function(a){var b=Ii(),c=b&&b.hide;c&&c.end&&(c[a]=!0)};var Ki=!1,Li=[];function Mi(){if(!Ki){Ki=!0;for(var a=0;a<Li.length;a++)I(Li[a])}}var Ni=function(a){Ki?I(a):Li.push(a)};var cj=function(a){if(aj(a))return a;this.h=a};cj.prototype.jg=function(){return this.h};var aj=function(a){return!a||"object"!==Na(a)||Pa(a)?!1:"getUntrustedUpdateValue"in a};cj.prototype.getUntrustedUpdateValue=cj.prototype.jg;var dj=[],ej=!1,fj=function(a){return F["dataLayer"].push(a)},gj=function(a){var b=Wc["dataLayer"],c=b?b.subscribers:1,d=0;return function(){++d===c&&a()}};
|
||||
function hj(a){var b=a._clear;C(a,function(f,h){"_clear"!==f&&(b&&Sd(f,void 0),Sd(f,h))});bd||(bd=a["gtm.start"]);var c=a.event;if(!c)return!1;var d=a["gtm.uniqueEventId"];d||(d=hd(),a["gtm.uniqueEventId"]=d,Sd("gtm.uniqueEventId",d));dd=c;var e=ij(a);
|
||||
dd=null;switch(c){case "gtm.init":jd("GTM",19),e&&jd("GTM",20)}return e}function ij(a){var b=a.event,c=a["gtm.uniqueEventId"],d,e=Wc.zones;d=e?e.checkState(Vc.s,c):se;return d.active?qf(c,b,d.isWhitelisted,a.eventCallback,a.eventTimeout)?!0:!1:!1}
|
||||
function jj(){for(var a=!1;!ej&&0<dj.length;){ej=!0;delete Jd.eventModel;Ld();var b=dj.shift();if(null!=b){var c=aj(b);if(c){var d=b;b=aj(d)?d.getUntrustedUpdateValue():void 0;for(var e=["gtm.whitelist","gtm.blacklist","tagTypeBlacklist"],f=0;f<e.length;f++){var h=e[f],k=Md(h,1);if(ra(k)||Pa(k))k=D(k);Kd[h]=k}}try{if(pa(b))try{b.call(Nd)}catch(v){}else if(ra(b)){var l=b;if(g(l[0])){var m=
|
||||
l[0].split("."),n=m.pop(),r=l.slice(1),t=Md(m.join("."),2);if(void 0!==t&&null!==t)try{t[n].apply(t,r)}catch(v){}}}else{var p=b;if(p&&("[object Arguments]"==Object.prototype.toString.call(p)||Object.prototype.hasOwnProperty.call(p,"callee"))){a:{if(b.length&&g(b[0])){var u=Fi[b[0]];if(u&&(!c||!Gi[b[0]])){b=u(b);break a}}b=void 0}if(!b){ej=!1;continue}}a=hj(b)||a}}finally{c&&Ld(!0)}}ej=!1}
|
||||
return!a}function kj(){var a=jj();try{Hi(F["dataLayer"],Vc.s)}catch(b){}return a}
|
||||
var mj=function(){var a=gc("dataLayer",[]),b=gc("google_tag_manager",{});b=b["dataLayer"]=b["dataLayer"]||{};Ae(function(){b.gtmDom||(b.gtmDom=!0,a.push({event:"gtm.dom"}))});Ni(function(){b.gtmLoad||(b.gtmLoad=!0,a.push({event:"gtm.load"}))});b.subscribers=(b.subscribers||0)+1;var c=a.push;a.push=function(){var d;if(0<Wc.SANDBOXED_JS_SEMAPHORE){d=[];for(var e=0;e<arguments.length;e++)d[e]=new cj(arguments[e])}else d=[].slice.call(arguments,0);var f=c.apply(a,d);dj.push.apply(dj,d);if(300<
|
||||
this.length)for(jd("GTM",4);300<this.length;)this.shift();var h="boolean"!==typeof f||f;return jj()&&h};dj.push.apply(dj,a.slice(0));lj()&&I(kj)},lj=function(){var a=!0;return a};var nj={};nj.yb=new String("undefined");
|
||||
var oj=function(a){this.h=function(b){for(var c=[],d=0;d<a.length;d++)c.push(a[d]===nj.yb?b:a[d]);return c.join("")}};oj.prototype.toString=function(){return this.h("undefined")};oj.prototype.valueOf=oj.prototype.toString;nj.qf=oj;nj.Cc={};nj.Uf=function(a){return new oj(a)};var pj={};nj.Yg=function(a,b){var c=hd();pj[c]=[a,b];return c};nj.fe=function(a){var b=a?0:1;return function(c){var d=pj[c];if(d&&"function"===typeof d[b])d[b]();pj[c]=void 0}};nj.sg=function(a){for(var b=!1,c=!1,d=2;d<a.length;d++)b=
|
||||
b||8===a[d],c=c||16===a[d];return b&&c};nj.Og=function(a){if(a===nj.yb)return a;var b=hd();nj.Cc[b]=a;return'google_tag_manager["'+Vc.s+'"].macro('+b+")"};nj.Dg=function(a,b,c){a instanceof nj.qf&&(a=a.h(nj.Yg(b,c)),b=oa);return{Oc:a,B:b}};var qj=function(a,b,c){function d(f,h){var k=f[h];return k}var e={event:b,"gtm.element":a,"gtm.elementClasses":d(a,"className"),"gtm.elementId":a["for"]||oc(a,"id")||"","gtm.elementTarget":a.formTarget||d(a,"target")||""};c&&(e["gtm.triggers"]=c.join(","));e["gtm.elementUrl"]=(a.attributes&&a.attributes.formaction?a.formAction:"")||a.action||d(a,"href")||a.src||a.code||a.codebase||
|
||||
"";return e},rj=function(a){Wc.hasOwnProperty("autoEventsSettings")||(Wc.autoEventsSettings={});var b=Wc.autoEventsSettings;b.hasOwnProperty(a)||(b[a]={});return b[a]},sj=function(a,b,c){rj(a)[b]=c},tj=function(a,b,c,d){var e=rj(a),f=Fa(e,b,d);e[b]=c(f)},uj=function(a,b,c){var d=rj(a);return Fa(d,b,c)};var vj=["input","select","textarea"],wj=["button","hidden","image","reset","submit"],xj=function(a){var b=a.tagName.toLowerCase();return!va(vj,function(c){return c===b})||"input"===b&&va(wj,function(c){return c===a.type.toLowerCase()})?!1:!0},yj=function(a){return a.form?a.form.tagName?a.form:G.getElementById(a.form):sc(a,["form"],100)},zj=function(a,b,c){if(!a.elements)return 0;for(var d=b.getAttribute(c),e=0,f=1;e<a.elements.length;e++){var h=a.elements[e];if(xj(h)){if(h.getAttribute(c)===d)return f;
|
||||
f++}}return 0};var Aj=!!F.MutationObserver,Bj=void 0,Cj=function(a){if(!Bj){var b=function(){var c=G.body;if(c)if(Aj)(new MutationObserver(function(){for(var e=0;e<Bj.length;e++)I(Bj[e])})).observe(c,{childList:!0,subtree:!0});else{var d=!1;mc(c,"DOMNodeInserted",function(){d||(d=!0,I(function(){d=!1;for(var e=0;e<Bj.length;e++)I(Bj[e])}))})}};Bj=[];G.body?b():I(b)}Bj.push(a)};var Xj=F.clearTimeout,Yj=F.setTimeout,S=function(a,b,c){if(Wd()){b&&I(b)}else return ic(a,b,c)},Zj=function(){return F.location.href},ak=function(a){return $e(af(a),"fragment")},bk=function(a){return Ze(af(a))},U=function(a,b){return Md(a,b||2)},ck=function(a,b,c){var d;b?(a.eventCallback=b,c&&(a.eventTimeout=c),d=fj(a)):d=fj(a);return d},dk=function(a,b){F[a]=b},W=function(a,b,c){b&&(void 0===F[a]||c&&!F[a])&&(F[a]=
|
||||
b);return F[a]},ek=function(a,b,c){return Gf(a,b,void 0===c?!0:!!c)},fk=function(a,b){if(Wd()){b&&I(b)}else kc(a,b)},gk=function(a){return!!uj(a,"init",!1)},hk=function(a){sj(a,"init",!0)},ik=function(a,b){var c=(void 0===b?0:b)?"www.googletagmanager.com/gtag/js":$c;c+="?id="+encodeURIComponent(a)+"&l=dataLayer";S(Q("https://","http://",c))},jk=function(a,b){var c=a[b];return c};
|
||||
var kk=nj.Dg;var Hk=new xa;function Ik(a,b){function c(h){var k=af(h),l=$e(k,"protocol"),m=$e(k,"host",!0),n=$e(k,"port"),r=$e(k,"path").toLowerCase().replace(/\/$/,"");if(void 0===l||"http"==l&&"80"==n||"https"==l&&"443"==n)l="web",n="default";return[l,m,n,r]}for(var d=c(String(a)),e=c(String(b)),f=0;f<d.length;f++)if(d[f]!==e[f])return!1;return!0}
|
||||
function Jk(a){return Kk(a)?1:0}
|
||||
function Kk(a){var b=a.arg0,c=a.arg1;if(a.any_of&&ra(c)){for(var d=0;d<c.length;d++)if(Jk({"function":a["function"],arg0:b,arg1:c[d]}))return!0;return!1}switch(a["function"]){case "_cn":return 0<=String(b).indexOf(String(c));case "_css":var e;a:{if(b){var f=["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"];try{for(var h=0;h<f.length;h++)if(b[f[h]]){e=b[f[h]](c);break a}}catch(v){}}e=!1}return e;case "_ew":var k,l;k=String(b);l=String(c);var m=k.length-
|
||||
l.length;return 0<=m&&k.indexOf(l,m)==m;case "_eq":return String(b)==String(c);case "_ge":return Number(b)>=Number(c);case "_gt":return Number(b)>Number(c);case "_lc":var n;n=String(b).split(",");return 0<=q(n,String(c));case "_le":return Number(b)<=Number(c);case "_lt":return Number(b)<Number(c);case "_re":var r;var t=a.ignore_case?"i":void 0;try{var p=String(c)+t,u=Hk.get(p);u||(u=new RegExp(c,t),Hk.set(p,u));r=u.test(b)}catch(v){r=!1}return r;case "_sw":return 0==String(b).indexOf(String(c));case "_um":return Ik(b,
|
||||
c)}return!1};var Lk=function(a,b){var c=function(){};c.prototype=a.prototype;var d=new c;a.apply(d,Array.prototype.slice.call(arguments,1));return d};var Mk={},Nk=encodeURI,X=encodeURIComponent,Ok=lc;var Pk=function(a,b){if(!a)return!1;var c=$e(af(a),"host");if(!c)return!1;for(var d=0;b&&d<b.length;d++){var e=b[d]&&b[d].toLowerCase();if(e){var f=c.length-e.length;0<f&&"."!=e.charAt(0)&&(f--,e="."+e);if(0<=f&&c.indexOf(e,f)==f)return!0}}return!1};
|
||||
var Qk=function(a,b,c){for(var d={},e=!1,f=0;a&&f<a.length;f++)a[f]&&a[f].hasOwnProperty(b)&&a[f].hasOwnProperty(c)&&(d[a[f][b]]=a[f][c],e=!0);return e?d:null};Mk.ug=function(){var a=!1;return a};var cm=function(){var a=F.gaGlobal=F.gaGlobal||{};a.hid=a.hid||wa();return a.hid};var nm=window,om=document,pm=function(a){var b=nm._gaUserPrefs;if(b&&b.ioo&&b.ioo()||a&&!0===nm["ga-disable-"+a])return!0;try{var c=nm.external;if(c&&c._gaUserPrefs&&"oo"==c._gaUserPrefs)return!0}catch(f){}for(var d=Gf("AMP_TOKEN",om.cookie,!0),e=0;e<d.length;e++)if("$OPT_OUT"==d[e])return!0;return om.getElementById("__gaOptOutExtension")?!0:!1};var sm=function(a){C(a,function(c){"_"===c.charAt(0)&&delete a[c]});var b=a[J.ca]||{};C(b,function(c){"_"===c.charAt(0)&&delete b[c]})};var wm=function(a,b,c){li(b,c,a)},xm=function(a,b,c){li(b,c,a,!0)},zm=function(a,b){};
|
||||
function ym(a,b){}var Z={a:{}};
|
||||
|
||||
|
||||
|
||||
Z.a.gtagha=["google"],function(){var a=!1;a=!0;var b=function(c){var d=c.vtp_conversionId,e=dd,f=U("eventModel");if(a){ki(d.id,Hh);if(e===J.D){var h=U("gtag.targets."+d.id);mi(h,d.id)}else li(e,f,d.id);I(c.vtp_gtmOnSuccess)}else{var k=Ef(Df(yf(f),c.vtp_gtmOnSuccess),c.vtp_gtmOnFailure);k.getWithConfig=function(l){return Od(l,d.containerId,d.id)};Hh(d.id,e,(new Date).getTime(),
|
||||
k)}};Z.__gtagha=b;Z.__gtagha.b="gtagha";Z.__gtagha.g=!0;Z.__gtagha.priorityOverride=0;}();
|
||||
Z.a.e=["google"],function(){(function(a){Z.__e=a;Z.__e.b="e";Z.__e.g=!0;Z.__e.priorityOverride=0})(function(a){return String(Ud(a.vtp_gtmEventId,"event"))})}();
|
||||
|
||||
Z.a.v=["google"],function(){(function(a){Z.__v=a;Z.__v.b="v";Z.__v.g=!0;Z.__v.priorityOverride=0})(function(a){var b=a.vtp_name;if(!b||!b.replace)return!1;var c=U(b.replace(/\\\./g,"."),a.vtp_dataLayerVersion||1);return void 0!==c?c:a.vtp_defaultValue})}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Z.a.gtagaw=["google"],function(){(function(a){Z.__gtagaw=a;Z.__gtagaw.b="gtagaw";Z.__gtagaw.g=!0;Z.__gtagaw.priorityOverride=0})(function(a){var b=a.vtp_conversionId,c=dd;ki(b.id,Xg);if(c===J.D){var d=U("gtag.targets."+b.id);mi(d,b.id)}else{var e=U("eventModel");li(c,e,b.id)}I(a.vtp_gtmOnSuccess)})}();
|
||||
|
||||
Z.a.get=["google"],function(){(function(a){Z.__get=a;Z.__get.b="get";Z.__get.g=!0;Z.__get.priorityOverride=0})(function(a){if(a.vtp_isAutoTag){var b=String(a.vtp_trackingId),c=dd||"",d={};if(c===J.D){var e=U("gtag.targets."+b);D(e,d);d[J.ra]=!0;mi(d,b)}else{var f=U("eventModel");D(f,d);d[J.ra]=!0;li(c,d,b)}}else{var h=a.vtp_settings;(a.vtp_deferrable?xm:wm)(String(h.streamId),String(a.vtp_eventName),h.eventParameters||{})}a.vtp_gtmOnSuccess()})}();
|
||||
|
||||
|
||||
Z.a.gtagfl=[],function(){function a(d){var e=/^DC-(\d+)(\/([\w-]+)\/([\w-]+)\+(\w+))?$/.exec(d);if(e)return{containerId:"DC-"+e[1],N:e[3]&&d}}var b=!1;b=!0;var c=function(d){var e=d.vtp_targetId,f=dd,h=U("eventModel");if(b){ki(e,xh);if(f===J.D){var k=U("gtag.targets."+e);mi(k,e)}else li(f,h,e);I(d.vtp_gtmOnSuccess)}else{var l=a(e);if(l){var m=Ef(Df(yf(h),d.vtp_gtmOnSuccess),
|
||||
d.vtp_gtmOnFailure);m.getWithConfig=function(n){return Od(n,l.containerId,l.N)};xh(e,f,(new Date).getTime(),m)}else I(d.vtp_gtmOnFailure)}};Z.__gtagfl=c;Z.__gtagfl.b="gtagfl";Z.__gtagfl.g=!0;Z.__gtagfl.priorityOverride=0;}();
|
||||
|
||||
|
||||
Z.a.gtaggf=["google"],function(){(function(a){Z.__gtaggf=a;Z.__gtaggf.b="gtaggf";Z.__gtaggf.g=!0;Z.__gtaggf.priorityOverride=0})(function(a){var b=a.vtp_conversionId,c=dd,d=U("eventModel");ki(b.id,Ch);if(c===J.D){var e=U("gtag.targets."+b.id);mi(e,b.id)}else li(c,d,b.id);I(a.vtp_gtmOnSuccess)})}();
|
||||
|
||||
|
||||
|
||||
|
||||
Z.a.gtagua=["google"],function(){var a=!1;a=!0;var b=function(c){var d=c.vtp_trackingId,e=dd,f=U("eventModel");if(a){ki(d,Yh);if(e===J.D){var h=U("gtag.targets."+d);mi(h,d)}else li(e,f,d);I(c.vtp_gtmOnSuccess)}else{var k=Ef(Df(yf(f),c.vtp_gtmOnSuccess),c.vtp_gtmOnFailure);k.getWithConfig=function(l){return Od(l,d,void 0)};Yh(d,e,(new Date).getTime(),k)}};Z.__gtagua=
|
||||
b;Z.__gtagua.b="gtagua";Z.__gtagua.g=!0;Z.__gtagua.priorityOverride=0;}();
|
||||
|
||||
var Am={};Am.macro=function(a){if(nj.Cc.hasOwnProperty(a))return nj.Cc[a]},Am.onHtmlSuccess=nj.fe(!0),Am.onHtmlFailure=nj.fe(!1);Am.dataLayer=Nd;Am.callback=function(a){fd.hasOwnProperty(a)&&pa(fd[a])&&fd[a]();delete fd[a]};function Bm(){Wc[Vc.s]=Am;Ha(gd,Z.a);xb=xb||nj;yb=re}
|
||||
function Cm(){tg.gtm_3pds=!0;Wc=F.google_tag_manager=F.google_tag_manager||{};if(Wc[Vc.s]){var a=Wc.zones;a&&a.unregisterChild(Vc.s)}else{for(var b=data.resource||{},c=b.macros||[],d=0;d<c.length;d++)pb.push(c[d]);for(var e=b.tags||[],f=0;f<e.length;f++)sb.push(e[f]);for(var h=b.predicates||[],k=0;k<
|
||||
h.length;k++)rb.push(h[k]);for(var l=b.rules||[],m=0;m<l.length;m++){for(var n=l[m],r={},t=0;t<n.length;t++)r[n[t][0]]=Array.prototype.slice.call(n[t],1);qb.push(r)}ub=Z;vb=Jk;Bm();mj();ve=!1;we=0;if("interactive"==G.readyState&&!G.createEventObject||"complete"==G.readyState)ye();else{mc(G,"DOMContentLoaded",ye);mc(G,"readystatechange",ye);if(G.createEventObject&&G.documentElement.doScroll){var p=!0;try{p=!F.frameElement}catch(y){}p&&ze()}mc(F,"load",ye)}Ki=!1;"complete"===G.readyState?Mi():mc(F,
|
||||
"load",Mi);a:{if(!Cd)break a;F.setInterval(Dd,864E5);}
|
||||
cd=(new Date).getTime();
|
||||
Am.bootstrap=cd;}}Cm();
|
||||
|
||||
})()
|
||||
@@ -0,0 +1,427 @@
|
||||
var address = (hasher.getURL()).replace((hasher.getBaseURL()), '');
|
||||
var isEncode;
|
||||
address = address.replace('#/', '');
|
||||
if( address ) {
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
if(address.indexOf("@") != -1) {
|
||||
createUser(address);
|
||||
} else {
|
||||
createUser(atob(address));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#generateID").fadeIn(500);
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
});
|
||||
|
||||
}
|
||||
var refreshRate;
|
||||
$.get("actions.php", {
|
||||
action: 'refreshRate'
|
||||
}).done(function( data ) {
|
||||
refreshRate = parseInt(data);
|
||||
});
|
||||
var pushNotifications;
|
||||
$.get("actions.php", {
|
||||
action: 'pushNotifications'
|
||||
}).done(function( data ) {
|
||||
if(data === 'yes') {
|
||||
pushNotifications = true;
|
||||
} else {
|
||||
pushNotifications = false;
|
||||
}
|
||||
});
|
||||
/*
|
||||
* Notification Function
|
||||
*/
|
||||
function notifyUser(message) {
|
||||
if(pushNotifications) {
|
||||
if (!("Notification" in window)) {
|
||||
document.getElementById('notifyUserSound').play();
|
||||
} else if (Notification.permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
document.getElementById('notifyUserSound').play();
|
||||
} else if (Notification.permission !== 'denied') {
|
||||
Notification.requestPermission(function(permission) {
|
||||
if (permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
document.getElementById('notifyUserSound').play();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
document.getElementById('notifyUserSound').play();
|
||||
}
|
||||
} else {
|
||||
document.getElementById('notifyUserSound').play();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Show About Us
|
||||
*/
|
||||
function showAboutUs() {
|
||||
$("#main").fadeOut( "slow", function() {
|
||||
$("#aboutus").fadeIn("slow");
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Close About Us
|
||||
*/
|
||||
function closeAboutUs() {
|
||||
$("#aboutus").fadeOut( "slow", function() {
|
||||
$("#main").fadeIn("slow");
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Set Language
|
||||
*/
|
||||
function setLang() {
|
||||
var setLang = document.getElementsByName("lang")[0].value;
|
||||
$("#generateID").fadeOut(500);
|
||||
$("#createdline").fadeOut(500);
|
||||
$("#data").fadeOut(500);
|
||||
$("#search-bar-container").fadeOut(500);
|
||||
$(".message").fadeOut(500);
|
||||
if ( setLang === "hi" ) {
|
||||
$("#createline").html("डटे रहो! भाषा बदल रही है...");
|
||||
} else if ( setLang === "fr" ) {
|
||||
$("#createline").html("Attendre! Changer de langue...");
|
||||
} else if ( setLang === "ch" ) {
|
||||
$("#createline").html("不掛斷!改變語言...");
|
||||
} else if ( setLang === "ar" ) {
|
||||
$("#createline").html("تشبث! جار تغيير اللغة ...");
|
||||
} else if ( setLang === "sp" ) {
|
||||
$("#createline").html("¡Aférrate! Cambio de idioma...");
|
||||
} else if ( setLang === "ru" ) {
|
||||
$("#createline").html("Подожди! Изменение языка...");
|
||||
} else if ( setLang === "de" ) {
|
||||
$("#createline").html("Abwarten! Sprache ändern...");
|
||||
} else if ( setLang === "pl" ) {
|
||||
$("#createline").html("Wytrzymać! Zmiana języka...");
|
||||
} else {
|
||||
$("#createline").html("Hang on! Changing Language...");
|
||||
}
|
||||
$("#createline").delay(500).fadeIn(500);
|
||||
$.get( "actions.php", { action: "changeLang", lang: setLang } )
|
||||
.done(function( data ) {
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Set a New ID
|
||||
*/
|
||||
function setNewID() {
|
||||
$("#generateID").fadeOut(500);
|
||||
var email = document.getElementsByName("email")[0].value;
|
||||
var domain = document.getElementsByName("domain")[0].value;
|
||||
var fullEmail = email + domain;
|
||||
createUser(fullEmail);
|
||||
}
|
||||
/*
|
||||
* Generate a Random ID
|
||||
*/
|
||||
function generateRandomID() {
|
||||
$("#generateID").fadeOut(500);
|
||||
var address = (hasher.getURL()).replace((hasher.getBaseURL()), '');
|
||||
address = address.replace('#/', '');
|
||||
createUser(address);
|
||||
}
|
||||
/*
|
||||
* Create a new address for user. If address is already specified it checks if that is valid
|
||||
*/
|
||||
function createUser(address) {
|
||||
$.get("actions.php", {
|
||||
action: 'getTitle'
|
||||
}).done(function( data ) {
|
||||
$("title").html(data);
|
||||
});
|
||||
$.get("user.php", {
|
||||
user: address
|
||||
}).done(function(data) {
|
||||
address = data;
|
||||
document.getElementById("address").innerHTML = address;
|
||||
if(isEncode === "yes") {
|
||||
var newAddress = btoa(address);
|
||||
hasher.setHash(newAddress);
|
||||
} else {
|
||||
hasher.setHash(address);
|
||||
}
|
||||
$("title").prepend(" - ");
|
||||
$("title").prepend(address);
|
||||
$("#createdline").delay(500).fadeIn(500);
|
||||
$.get("mail.php", function(data) {
|
||||
$("#data").html(data);
|
||||
$.get("actions.php", {
|
||||
action: 'getCount'
|
||||
}).done(function( data ) {
|
||||
counter = Number(data);
|
||||
if(counter > 1) {
|
||||
$("#search-bar-container").delay(600).fadeIn(500);
|
||||
}
|
||||
$("#data").delay(600).fadeIn(500);
|
||||
$(".message").delay(600).fadeIn(500);
|
||||
});
|
||||
retriveNewMails();
|
||||
});
|
||||
classAddress = address.replace('@', '');
|
||||
classAddress = classAddress.replace('.', '');
|
||||
if (!$('.'+classAddress).length) {
|
||||
$(".action-list").append('<a class="'+classAddress+'" onclick="switchEmail(\''+address+'\')"><div class="action-list-button"><span class="action-info">'+address+'</span><i>'+classAddress.substring(1, 0, 1)+'</i></div></a>');
|
||||
}
|
||||
checkCurrentTMail();
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Switch Email ID
|
||||
*/
|
||||
function switchEmail(address) {
|
||||
$("#generateID").fadeOut(500);
|
||||
createUser(address);
|
||||
}
|
||||
/*
|
||||
* Function to check if element is empty with possible only blank spaces
|
||||
*/
|
||||
function isEmpty( el ){
|
||||
return !$.trim(el.html())
|
||||
}
|
||||
/*
|
||||
* Checks for new emails at regular interval. setTimeout calls function every 1000 ms (1 Second)
|
||||
*/
|
||||
function retriveNewMails() {
|
||||
str = $("title").text();
|
||||
counter = 0;
|
||||
if ( str.includes("nbox") ) {
|
||||
str = str.substring(str.indexOf("-") + 1);
|
||||
}
|
||||
$.get("actions.php", {
|
||||
action: 'getCount'
|
||||
}).done(function( data ) {
|
||||
$("title").text(str);
|
||||
counter = Number(data);
|
||||
if(counter > 1) {
|
||||
$("#search-bar-container").fadeIn(500);
|
||||
}
|
||||
$("title").prepend(" - ");
|
||||
$("title").prepend(")");
|
||||
$("title").prepend(data);
|
||||
$("title").prepend("Inbox (");
|
||||
});
|
||||
$.get("mail.php?unseen=1", function(data) {
|
||||
if (data.trim() === "DIE") {
|
||||
location.reload();
|
||||
return;
|
||||
}
|
||||
if(data) {
|
||||
if (!isEmpty($('.cssload-container'))) {
|
||||
$("#data").html(data);
|
||||
} else {
|
||||
$("#data").prepend(data);
|
||||
}
|
||||
notifyUser("You got some new EMails");
|
||||
}
|
||||
});
|
||||
$("#timer").html(refreshRate);
|
||||
var acc = document.getElementsByClassName("accordion");
|
||||
var i;
|
||||
for (i = 0; i < acc.length; i++) {
|
||||
acc[i].onclick = function() {
|
||||
this.classList.toggle("active");
|
||||
var panel = this.nextElementSibling;
|
||||
if (panel.style.maxHeight){
|
||||
panel.style.maxHeight = null;
|
||||
} else {
|
||||
panel.style.maxHeight = panel.scrollHeight + "px";
|
||||
}
|
||||
}
|
||||
}
|
||||
setTimeout(retriveNewMails, refreshRate*1000);
|
||||
}
|
||||
/*
|
||||
* Function to delete email
|
||||
* @param mailid - Identify the mail to delete
|
||||
*/
|
||||
function deleteMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'delete',
|
||||
id: mailid
|
||||
});
|
||||
var mailLocator = "#mail".concat(mailid);
|
||||
$(mailLocator).hide( "slow", function() {
|
||||
$( this ).remove();
|
||||
if (isEmpty($('#data'))) {
|
||||
$("#data").html('<div class="cssload-container"><ul class="cssload-flex-container"><li><span class="cssload-loading"></span></li></div></div>');
|
||||
}
|
||||
});
|
||||
str = $("title").text();
|
||||
if ( str.includes("nbox") ) {
|
||||
str = str.substring(str.indexOf("-") + 1);
|
||||
}
|
||||
$.get("actions.php", {
|
||||
action: 'getCount'
|
||||
}).done(function( data ) {
|
||||
$("title").text(str);
|
||||
$("title").prepend(" - ");
|
||||
$("title").prepend(")");
|
||||
$("title").prepend(data);
|
||||
$("title").prepend("Inbox (");
|
||||
});
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
* Function which enables user to download any email
|
||||
* @param mailid - Identify the mail to download
|
||||
*/
|
||||
function downloadMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'download',
|
||||
id: mailid
|
||||
}).done(function( data ) {
|
||||
window.location.href = data;
|
||||
});
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
* Simple click to copy to clipboard function
|
||||
*/
|
||||
function copyToClipboard(element) {
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val($(element).text()).select();
|
||||
document.execCommand("copy");
|
||||
$temp.remove();
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$('[data-toggle="popover"]').popover({
|
||||
html : true
|
||||
});
|
||||
deleteAttachments();
|
||||
});
|
||||
|
||||
$("#addDomain").click(function(){
|
||||
$("#addDomain").before('<input class="inner-fields" type="text" name="domain[]" placeholder="Enter Domain">');
|
||||
});
|
||||
|
||||
$("#addForbidden").click(function(){
|
||||
$("#addForbidden").before('<input class="inner-fields" type="text" name="forbidemail[]" placeholder="Enter Forbiden EMail">');
|
||||
});
|
||||
|
||||
$("#addLinks").click(function(){
|
||||
$("#addLinks").before('<input class="small-inner-fields" type="text" name="linksTitle[]" placeholder="Enter Title"><input class="big-inner-fields" type="text" name="linksValue[]" placeholder="Enter Link">');
|
||||
});
|
||||
|
||||
/*
|
||||
* Search Bar
|
||||
*/
|
||||
|
||||
(function(){
|
||||
var searchTerm, panelContainerId;
|
||||
$.expr[':'].containsCaseInsensitive = function (n, i, m) {
|
||||
return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
|
||||
};
|
||||
|
||||
$('#search-bar').on('change keyup paste click', function () {
|
||||
searchTerm = $(this).val();
|
||||
$('#data > .searchPanel').each(function () {
|
||||
panelContainerId = '#' + $(this).attr('id');
|
||||
$(panelContainerId + ':not(:containsCaseInsensitive(' + searchTerm + '))').hide();
|
||||
$(panelContainerId + ':containsCaseInsensitive(' + searchTerm + ')').show();
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
/*
|
||||
* Floating Action Bar
|
||||
*/
|
||||
|
||||
$( ".action-switch-email .action-button" ).mouseenter(function() {
|
||||
$( ".action-list" ).slideDown(200);
|
||||
});
|
||||
|
||||
$( ".action-switch-email" ).mouseleave(function() {
|
||||
$( ".action-list" ).slideUp(200);
|
||||
});
|
||||
|
||||
function setWidth() {
|
||||
$( ".action-list a" ).each(function( index ) {
|
||||
var string = $(this).children("div").children("span").text();
|
||||
var length = (string.length)*9;
|
||||
$(this).children("div").children("span").css("width",length+"px");
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to check current TMail
|
||||
*/
|
||||
|
||||
function checkCurrentTMail() {
|
||||
var address = (hasher.getURL()).replace((hasher.getBaseURL()), '');
|
||||
address = address.replace('#/', '');
|
||||
address = address.replace('@', '');
|
||||
address = address.replace('.', '');
|
||||
var classAddress = "."+address;
|
||||
$(".action-list a").show();
|
||||
$(classAddress).hide();
|
||||
}
|
||||
/*
|
||||
* Check if enter key is pressed
|
||||
*/
|
||||
function checkEnter(e, item) {
|
||||
var code = (e.keyCode ? e.keyCode : e.which);
|
||||
if(code == 13) {
|
||||
setNewID();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Function for saving email in Cookie
|
||||
*/
|
||||
function saveEMails() {
|
||||
var xmlHttp = new XMLHttpRequest();
|
||||
xmlHttp.open( "GET", "actions.php?action=saveEMails", false );
|
||||
xmlHttp.send( null );
|
||||
if(xmlHttp.responseText == "1") {
|
||||
notifyUser("Email list stored successfully on your local machine.");
|
||||
} else {
|
||||
notifyUser("Fail to store emails list on your local machine. Please check if cookie is enabled in your browser.");
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Function for clearing email in Cookie
|
||||
*/
|
||||
function clearEMails() {
|
||||
$.get("actions.php?action=clearEMails", function (data) {
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Deleting old attachments
|
||||
*/
|
||||
function deleteAttachments() {
|
||||
$.get("actions.php", {
|
||||
action: 'deleteOldAttachments'
|
||||
});
|
||||
}
|
||||
|
||||
$("#test-connection").click(function(){
|
||||
$("#test-result").html("<span style='color: #006ECE'>Checking...</span>");
|
||||
var host = document.getElementsByName("host")[0].value;
|
||||
var user = document.getElementsByName("user")[0].value;
|
||||
var pass = document.getElementsByName("pass")[0].value;
|
||||
$.get("admin.php", {
|
||||
host: host,
|
||||
user: user,
|
||||
pass: pass
|
||||
}).done(function( data ) {
|
||||
if(data === 'FAIL') {
|
||||
$("#test-result").html("<span style='color: #DB0015'>Connection Failed</span>");
|
||||
} else {
|
||||
$("#test-result").html("<span style='color: #006e2e'>Connection Passed</span>");
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Container style
|
||||
*/
|
||||
.ps {
|
||||
overflow: hidden !important;
|
||||
overflow-anchor: none;
|
||||
-ms-overflow-style: none;
|
||||
touch-action: auto;
|
||||
-ms-touch-action: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar rail styles
|
||||
*/
|
||||
.ps__rail-x {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
-webkit-transition: background-color .2s linear, opacity .2s linear;
|
||||
height: 15px;
|
||||
/* there must be 'bottom' or 'top' for ps__rail-x */
|
||||
bottom: 0px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__rail-y {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
-webkit-transition: background-color .2s linear, opacity .2s linear;
|
||||
width: 15px;
|
||||
/* there must be 'right' or 'left' for ps__rail-y */
|
||||
right: 0;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps--active-x > .ps__rail-x,
|
||||
.ps--active-y > .ps__rail-y {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.ps:hover > .ps__rail-x,
|
||||
.ps:hover > .ps__rail-y,
|
||||
.ps--focus > .ps__rail-x,
|
||||
.ps--focus > .ps__rail-y,
|
||||
.ps--scrolling-x > .ps__rail-x,
|
||||
.ps--scrolling-y > .ps__rail-y {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.ps .ps__rail-x:hover,
|
||||
.ps .ps__rail-y:hover,
|
||||
.ps .ps__rail-x:focus,
|
||||
.ps .ps__rail-y:focus,
|
||||
.ps .ps__rail-x.ps--clicking,
|
||||
.ps .ps__rail-y.ps--clicking {
|
||||
background-color: #eee;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar thumb styles
|
||||
*/
|
||||
.ps__thumb-x {
|
||||
background-color: #aaa;
|
||||
border-radius: 6px;
|
||||
transition: background-color .2s linear, height .2s ease-in-out;
|
||||
-webkit-transition: background-color .2s linear, height .2s ease-in-out;
|
||||
height: 6px;
|
||||
/* there must be 'bottom' for ps__thumb-x */
|
||||
bottom: 2px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__thumb-y {
|
||||
background-color: #aaa;
|
||||
border-radius: 6px;
|
||||
transition: background-color .2s linear, width .2s ease-in-out;
|
||||
-webkit-transition: background-color .2s linear, width .2s ease-in-out;
|
||||
width: 6px;
|
||||
/* there must be 'right' for ps__thumb-y */
|
||||
right: 2px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-x.ps--clicking .ps__thumb-x {
|
||||
background-color: #999;
|
||||
height: 11px;
|
||||
}
|
||||
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-y.ps--clicking .ps__thumb-y {
|
||||
background-color: #999;
|
||||
width: 11px;
|
||||
}
|
||||
|
||||
/* MS supports */
|
||||
@supports (-ms-overflow-style: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Hasher <http://github.com/millermedeiros/hasher>
|
||||
* @author Miller Medeiros
|
||||
* @version 1.2.0 (2013/11/11 03:18 PM)
|
||||
* Released under the MIT License
|
||||
*/
|
||||
(function(){var a=function(b){var c=(function(k){var p=25,r=k.document,n=k.history,x=b.Signal,f,v,m,F,d,D,t=/#(.*)$/,j=/(\?.*)|(\#.*)/,g=/^\#/,i=(!+"\v1"),B=("onhashchange" in k)&&r.documentMode!==7,e=i&&!B,s=(location.protocol==="file:");function o(G){return String(G||"").replace(/\W/g,"\\$&")}function u(H){if(!H){return""}var G=new RegExp("^"+o(f.prependHash)+"|"+o(f.appendHash)+"$","g");return H.replace(G,"")}function E(){var G=t.exec(f.getURL());var I=(G&&G[1])||"";try{return f.raw?I:decodeURIComponent(I)}catch(H){return I}}function A(){return(d)?d.contentWindow.frameHash:null}function z(){d=r.createElement("iframe");d.src="about:blank";d.style.display="none";r.body.appendChild(d)}function h(){if(d&&v!==A()){var G=d.contentWindow.document;G.open();G.write("<html><head><title>"+r.title+'</title><script type="text/javascript">var frameHash="'+v+'";<\/script></head><body> </body></html>');G.close()}}function l(G,H){if(v!==G){var I=v;v=G;if(e){if(!H){h()}else{d.contentWindow.frameHash=G}}f.changed.dispatch(u(G),u(I))}}if(e){D=function(){var H=E(),G=A();if(G!==v&&G!==H){f.setHash(u(G))}else{if(H!==v){l(H)}}}}else{D=function(){var G=E();if(G!==v){l(G)}}}function C(I,G,H){if(I.addEventListener){I.addEventListener(G,H,false)}else{if(I.attachEvent){I.attachEvent("on"+G,H)}}}function y(I,G,H){if(I.removeEventListener){I.removeEventListener(G,H,false)}else{if(I.detachEvent){I.detachEvent("on"+G,H)}}}function q(H){H=Array.prototype.slice.call(arguments);var G=H.join(f.separator);G=G?f.prependHash+G.replace(g,"")+f.appendHash:G;return G}function w(G){G=encodeURI(G);if(i&&s){G=G.replace(/\?/,"%3F")}return G}f={VERSION:"1.2.0",raw:false,appendHash:"",prependHash:"/",separator:"/",changed:new x(),stopped:new x(),initialized:new x(),init:function(){if(F){return}v=E();if(B){C(k,"hashchange",D)}else{if(e){if(!d){z()}h()}m=setInterval(D,p)}F=true;f.initialized.dispatch(u(v))},stop:function(){if(!F){return}if(B){y(k,"hashchange",D)}else{clearInterval(m);m=null}F=false;f.stopped.dispatch(u(v))},isActive:function(){return F},getURL:function(){return k.location.href},getBaseURL:function(){return f.getURL().replace(j,"")},setHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G);if(G===v){if(!f.raw){G=w(G)}k.location.hash="#"+G}}},replaceHash:function(G){G=q.apply(null,arguments);if(G!==v){l(G,true);if(G===v){if(!f.raw){G=w(G)}k.location.replace("#"+G)}}},getHash:function(){return u(v)},getHashAsArray:function(){return f.getHash().split(f.separator)},dispose:function(){f.stop();f.initialized.dispose();f.stopped.dispose();f.changed.dispose();d=f=k.hasher=null},toString:function(){return'[hasher version="'+f.VERSION+'" hash="'+f.getHash()+'"]'}};f.initialized.memorize=true;return f}(window));return c};if(typeof define==="function"&&define.amd){define(["signals"],a)}else{if(typeof exports==="object"){module.exports=a(require("signals"))}else{window.hasher=a(window.signals)}}}());
|
||||
@@ -0,0 +1,367 @@
|
||||
/*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */
|
||||
/*global window:false, global:false*/
|
||||
|
||||
/*!!
|
||||
* JS Signals <http://millermedeiros.github.com/js-signals/>
|
||||
* Released under the MIT license <http://www.opensource.org/licenses/mit-license.php>
|
||||
* @author Miller Medeiros <http://millermedeiros.com/>
|
||||
* @version 0.6.3
|
||||
* @build 187 (07/11/2011 10:14 AM)
|
||||
*/
|
||||
(function(global){
|
||||
|
||||
/**
|
||||
* @namespace Signals Namespace - Custom event/messaging system based on AS3 Signals
|
||||
* @name signals
|
||||
*/
|
||||
var signals = /** @lends signals */{
|
||||
/**
|
||||
* Signals Version Number
|
||||
* @type String
|
||||
* @const
|
||||
*/
|
||||
VERSION : '0.6.3'
|
||||
};
|
||||
|
||||
|
||||
|
||||
// SignalBinding -------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
/**
|
||||
* Object that represents a binding between a Signal and a listener function.
|
||||
* <br />- <strong>This is an internal constructor and shouldn't be called by regular users.</strong>
|
||||
* <br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
* @internal
|
||||
* @name signals.SignalBinding
|
||||
* @param {signals.Signal} signal Reference to Signal object that listener is currently bound to.
|
||||
* @param {Function} listener Handler function bound to the signal.
|
||||
* @param {boolean} isOnce If binding should be executed just once.
|
||||
* @param {Object} [listenerContext] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. (default = 0).
|
||||
*/
|
||||
function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
|
||||
|
||||
/**
|
||||
* Handler function bound to the signal.
|
||||
* @type Function
|
||||
* @private
|
||||
*/
|
||||
this._listener = listener;
|
||||
|
||||
/**
|
||||
* If binding should be executed just once.
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
this._isOnce = isOnce;
|
||||
|
||||
/**
|
||||
* Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @memberOf signals.SignalBinding.prototype
|
||||
* @name context
|
||||
* @type Object|undefined|null
|
||||
*/
|
||||
this.context = listenerContext;
|
||||
|
||||
/**
|
||||
* Reference to Signal object that listener is currently bound to.
|
||||
* @type signals.Signal
|
||||
* @private
|
||||
*/
|
||||
this._signal = signal;
|
||||
|
||||
/**
|
||||
* Listener priority
|
||||
* @type Number
|
||||
* @private
|
||||
*/
|
||||
this._priority = priority || 0;
|
||||
}
|
||||
|
||||
SignalBinding.prototype = /** @lends signals.SignalBinding.prototype */ {
|
||||
|
||||
/**
|
||||
* If binding is active and should be executed.
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* Default parameters passed to listener during `Signal.dispatch` and `SignalBinding.execute`. (curried parameters)
|
||||
* @type Array|null
|
||||
*/
|
||||
params : null,
|
||||
|
||||
/**
|
||||
* Call listener passing arbitrary parameters.
|
||||
* <p>If binding was added using `Signal.addOnce()` it will be automatically removed from signal dispatch queue, this method is used internally for the signal dispatch.</p>
|
||||
* @param {Array} [paramsArr] Array of parameters that should be passed to the listener
|
||||
* @return {*} Value returned by the listener.
|
||||
*/
|
||||
execute : function (paramsArr) {
|
||||
var handlerReturn, params;
|
||||
if (this.active && !!this._listener) {
|
||||
params = this.params? this.params.concat(paramsArr) : paramsArr;
|
||||
handlerReturn = this._listener.apply(this.context, params);
|
||||
if (this._isOnce) {
|
||||
this.detach();
|
||||
}
|
||||
}
|
||||
return handlerReturn;
|
||||
},
|
||||
|
||||
/**
|
||||
* Detach binding from signal.
|
||||
* - alias to: mySignal.remove(myBinding.getListener());
|
||||
* @return {Function|null} Handler function bound to the signal or `null` if binding was previously detached.
|
||||
*/
|
||||
detach : function () {
|
||||
return this.isBound()? this._signal.remove(this._listener) : null;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Boolean} `true` if binding is still bound to the signal and have a listener.
|
||||
*/
|
||||
isBound : function () {
|
||||
return (!!this._signal && !!this._listener);
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Function} Handler function bound to the signal.
|
||||
*/
|
||||
getListener : function () {
|
||||
return this._listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Delete instance properties
|
||||
* @private
|
||||
*/
|
||||
_destroy : function () {
|
||||
delete this._signal;
|
||||
delete this._listener;
|
||||
delete this.context;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {boolean} If SignalBinding will only be executed once.
|
||||
*/
|
||||
isOnce : function () {
|
||||
return this._isOnce;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[SignalBinding isOnce: ' + this._isOnce +', isBound: '+ this.isBound() +', active: ' + this.active + ']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*global signals:true, SignalBinding:false*/
|
||||
|
||||
// Signal --------------------------------------------------------
|
||||
//================================================================
|
||||
|
||||
function validateListener(listener, fnName) {
|
||||
if (typeof listener !== 'function') {
|
||||
throw new Error( 'listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom event broadcaster
|
||||
* <br />- inspired by Robert Penner's AS3 Signals.
|
||||
* @author Miller Medeiros
|
||||
* @constructor
|
||||
*/
|
||||
signals.Signal = function () {
|
||||
/**
|
||||
* @type Array.<SignalBinding>
|
||||
* @private
|
||||
*/
|
||||
this._bindings = [];
|
||||
};
|
||||
|
||||
signals.Signal.prototype = {
|
||||
|
||||
/**
|
||||
* @type boolean
|
||||
* @private
|
||||
*/
|
||||
_shouldPropagate : true,
|
||||
|
||||
/**
|
||||
* If Signal is active and should broadcast events.
|
||||
* <p><strong>IMPORTANT:</strong> Setting this property during a dispatch will only affect the next dispatch, if you want to stop the propagation of a signal use `halt()` instead.</p>
|
||||
* @type boolean
|
||||
*/
|
||||
active : true,
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @param {boolean} isOnce
|
||||
* @param {Object} [scope]
|
||||
* @param {Number} [priority]
|
||||
* @return {SignalBinding}
|
||||
* @private
|
||||
*/
|
||||
_registerListener : function (listener, isOnce, scope, priority) {
|
||||
|
||||
var prevIndex = this._indexOfListener(listener),
|
||||
binding;
|
||||
|
||||
if (prevIndex !== -1) { //avoid creating a new Binding for same listener if already added to list
|
||||
binding = this._bindings[prevIndex];
|
||||
if (binding.isOnce() !== isOnce) {
|
||||
throw new Error('You cannot add'+ (isOnce? '' : 'Once') +'() then add'+ (!isOnce? '' : 'Once') +'() the same listener without removing the relationship first.');
|
||||
}
|
||||
} else {
|
||||
binding = new SignalBinding(this, listener, isOnce, scope, priority);
|
||||
this._addBinding(binding);
|
||||
}
|
||||
|
||||
return binding;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {SignalBinding} binding
|
||||
* @private
|
||||
*/
|
||||
_addBinding : function (binding) {
|
||||
//simplified insertion sort
|
||||
var n = this._bindings.length;
|
||||
do { --n; } while (this._bindings[n] && binding._priority <= this._bindings[n]._priority);
|
||||
this._bindings.splice(n + 1, 0, binding);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Function} listener
|
||||
* @return {number}
|
||||
* @private
|
||||
*/
|
||||
_indexOfListener : function (listener) {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
if (this._bindings[n]._listener === listener) {
|
||||
return n;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a listener to the signal.
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
add : function (listener, scope, priority) {
|
||||
validateListener(listener, 'add');
|
||||
return this._registerListener(listener, false, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add listener to the signal that should be removed after first execution (will be executed only once).
|
||||
* @param {Function} listener Signal handler function.
|
||||
* @param {Object} [scope] Context on which listener will be executed (object that should represent the `this` variable inside listener function).
|
||||
* @param {Number} [priority] The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0)
|
||||
* @return {SignalBinding} An Object representing the binding between the Signal and listener.
|
||||
*/
|
||||
addOnce : function (listener, scope, priority) {
|
||||
validateListener(listener, 'addOnce');
|
||||
return this._registerListener(listener, true, scope, priority);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove a single listener from the dispatch queue.
|
||||
* @param {Function} listener Handler function that should be removed.
|
||||
* @return {Function} Listener handler function.
|
||||
*/
|
||||
remove : function (listener) {
|
||||
validateListener(listener, 'remove');
|
||||
|
||||
var i = this._indexOfListener(listener);
|
||||
if (i !== -1) {
|
||||
this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal
|
||||
this._bindings.splice(i, 1);
|
||||
}
|
||||
return listener;
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all listeners from the Signal.
|
||||
*/
|
||||
removeAll : function () {
|
||||
var n = this._bindings.length;
|
||||
while (n--) {
|
||||
this._bindings[n]._destroy();
|
||||
}
|
||||
this._bindings.length = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {number} Number of listeners attached to the Signal.
|
||||
*/
|
||||
getNumListeners : function () {
|
||||
return this._bindings.length;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stop propagation of the event, blocking the dispatch to next listeners on the queue.
|
||||
* <p><strong>IMPORTANT:</strong> should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
|
||||
* @see signals.Signal.prototype.disable
|
||||
*/
|
||||
halt : function () {
|
||||
this._shouldPropagate = false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Dispatch/Broadcast Signal to all listeners added to the queue.
|
||||
* @param {...*} [params] Parameters that should be passed to each handler.
|
||||
*/
|
||||
dispatch : function (params) {
|
||||
if (! this.active) {
|
||||
return;
|
||||
}
|
||||
|
||||
var paramsArr = Array.prototype.slice.call(arguments),
|
||||
bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch
|
||||
n = this._bindings.length;
|
||||
|
||||
this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
|
||||
|
||||
//execute all callbacks until end of the list or until a callback returns `false` or stops propagation
|
||||
//reverse loop since listeners with higher priority will be added at the end of the list
|
||||
do { n--; } while (bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all bindings from signal and destroy any reference to external objects (destroy Signal object).
|
||||
* <p><strong>IMPORTANT:</strong> calling any method on the signal instance after calling dispose will throw errors.</p>
|
||||
*/
|
||||
dispose : function () {
|
||||
this.removeAll();
|
||||
delete this._bindings;
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {string} String representation of the object.
|
||||
*/
|
||||
toString : function () {
|
||||
return '[Signal active: '+ this.active +' numListeners: '+ this.getNumListeners() +']';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
global.signals = signals;
|
||||
|
||||
}(window || this));
|
||||
@@ -0,0 +1,136 @@
|
||||
/*
|
||||
To change this license header, choose License Headers in Project Properties.
|
||||
To change this template file, choose Tools | Templates
|
||||
and open the template in the editor.
|
||||
*/
|
||||
/*
|
||||
Created on : 19 Oct, 2017, 11:29:05 AM
|
||||
Author : Harshit
|
||||
*/
|
||||
|
||||
* {
|
||||
font-family: "Segoe UI", 'Lato', sans-serif;;
|
||||
}
|
||||
|
||||
.header {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
float: right;
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
float: left;
|
||||
margin: 50px 0px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input, textarea, select {
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 28px;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
#adminLogin {
|
||||
margin: 150px 0px;
|
||||
}
|
||||
|
||||
#titleText {
|
||||
margin: 50px;
|
||||
font-size: 28px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
background: none;
|
||||
margin-top: 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.text-field {
|
||||
width: 100%;
|
||||
margin: 20px 0px;
|
||||
}
|
||||
|
||||
.text-field span {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.text-field input, .text-field textarea,.text-field select {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 100%;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 19%;
|
||||
font-size: 18px;
|
||||
margin-right: 1%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
border-bottom: 1px solid #000;
|
||||
width: 60%;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.inner-fields, .small-inner-fields, .big-inner-fields {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 25px 0px;
|
||||
}
|
||||
|
||||
.addIcons {
|
||||
font-size: 32px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[name="configuration"], input[name="options"] {
|
||||
font-weight: 600;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.success {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #0F9D58;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 24px;
|
||||
font-weight: 300;
|
||||
color: #CD0000;
|
||||
}
|
||||
|
||||
textarea {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
#test-connection {
|
||||
background: #444;
|
||||
color: #fff;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#test-result {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
|
||||
.divided-text-field input.small-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.divided-text-field input.big-inner-fields {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/* cyrillic-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWJ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVp0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFW50bbck.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2 */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://cdn.jsdelivr.net/gh/ldxw/CDN@0.0002/4.3.6/Modern/fonts/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -0,0 +1,761 @@
|
||||
* {
|
||||
font-family: "Segoe UI", 'Open Sans', sans-serif;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #e0e6e9 !important;
|
||||
padding: 1.2%;
|
||||
}
|
||||
|
||||
.tmail-container {
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-container .row {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-container .row .col-lg-12 {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-header {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
height: 100px;
|
||||
background: #673ae2;
|
||||
}
|
||||
|
||||
.tmail-footer {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
height: 80px;
|
||||
background: #06b4fe;
|
||||
}
|
||||
|
||||
.tmail-mobile-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-logo {
|
||||
padding: 20px 40px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.tmail-language-switcher {
|
||||
float: right;
|
||||
height: 100px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.tmail-language-switcher select {
|
||||
margin: 24% 0px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.tmail-divider {
|
||||
background: #673ae2;
|
||||
}
|
||||
|
||||
/* TMail Loader Screen */
|
||||
|
||||
.tmail-main .tmail-loader {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.tmail-main .tmail-loader .inner-loader {
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
display: block;
|
||||
height: 100%;
|
||||
padding: 15% 0 0 50px;
|
||||
font-size: 34px;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.tmail-main .tmail-loader .inner-loader .lds-ellipsis {
|
||||
margin-left: 48.3%;
|
||||
}
|
||||
|
||||
/* TMail HomePage CSS */
|
||||
|
||||
.tmail-main {
|
||||
height: calc(100% - 180px);
|
||||
background: #673ae2;
|
||||
background: -moz-linear-gradient(top, #673ae2 0%, #3160e4 99%);
|
||||
background: -webkit-linear-gradient(top, #673ae2 0%,#3160e4 99%);
|
||||
background: linear-gradient(to bottom, #673ae2 0%,#3160e4 99%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#673ae2', endColorstr='#3160e4',GradientType=0 );
|
||||
}
|
||||
|
||||
.tmail-main-inner {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-main .row {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.tmail-main-inner {
|
||||
width: 100%;
|
||||
color: #fff;
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
width: 700px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.tmail-input-set-email {
|
||||
margin: 50px 0px;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 24px;
|
||||
color: #431bb0;
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tmail-input-set-domain {
|
||||
margin: 50px 0px;
|
||||
border: none;
|
||||
font-weight: 300;
|
||||
font-size: 24px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
select:focus, select:focus {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
select.tmail-input-set-domain {
|
||||
padding: 10px 20px;
|
||||
padding-right: 40px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
background: #431bb0;
|
||||
background-image: url("data:image/svg+xml;utf8,<svg fill='white' height='31' viewBox='4 2 29 15' width='31' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
|
||||
background-repeat: no-repeat;
|
||||
background-position-x: 100%;
|
||||
background-position-y: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-main-inner span {
|
||||
padding: 0px 10px;
|
||||
font-size: 48px;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.tmail-generate-random i, .tmail-generate-custom i {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.tmail-generate-random a, .tmail-generate-custom a {
|
||||
background: #fff;
|
||||
padding: 10px 25px;
|
||||
line-height: 21px;
|
||||
font-size: 21px;
|
||||
border-radius: 4px;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.tmail-generate-custom a {
|
||||
background: #431bb0;
|
||||
width: 200px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-custom a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-custom {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.tmail-generate-random a {
|
||||
background: #06b4fe;
|
||||
width: 230px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-random a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-generate-random {
|
||||
margin: 50px 0px;
|
||||
}
|
||||
|
||||
/* TMail Body CSS */
|
||||
|
||||
.tmail-body {
|
||||
height: calc(100% - 180px);
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-body .row {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tmail-sidebar {
|
||||
border-right: 1px solid #eee;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li {
|
||||
padding: 15px 40px;
|
||||
color: #52586c;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu a {
|
||||
color: #52586c;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li.active {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li:hover {
|
||||
background: #5a47d1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li:hover a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li i {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
ul.tmail-main-menu li span {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
.menu-title {
|
||||
padding: 15px 40px;
|
||||
margin: 20px 0px 10px 0px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tmail-list {
|
||||
border-right: 1px solid #eee;
|
||||
height: 100%;
|
||||
padding: 0px;
|
||||
overflow-y: scroll;
|
||||
transition: display 2s;
|
||||
}
|
||||
|
||||
.tmail-compose {
|
||||
padding: 15px 20px;
|
||||
margin: 40px;
|
||||
text-align: center;
|
||||
background: #00b8ff;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-search-input, .tmail-current-id {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.tmail-current-id {
|
||||
background: #fcc747;
|
||||
padding: 20px 10px;
|
||||
cursor: copy;
|
||||
}
|
||||
|
||||
.tmail-current-id-icon {
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
line-height: 45px;
|
||||
}
|
||||
|
||||
.tmail-current-id-info {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#current-tmail-id {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.tmail-current-id-info-text {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#reloading-line {
|
||||
padding-right: 15px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#reloading-line i {
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
#reloading-msg {
|
||||
line-height: 42px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.tmail-search-input .input-group-prepend {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input .input-group-text, .tmail-current-id .input-group-text {
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input #tmail-search {
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-search-input #tmail-search:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li {
|
||||
padding: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li.tmail-list-active {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li:hover {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .name {
|
||||
float: left;
|
||||
color: #a0aabe;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .date {
|
||||
float: right;
|
||||
font-weight: bold;
|
||||
color: #a0aabe;
|
||||
}
|
||||
|
||||
ul.tmail-list-ul li .subject {
|
||||
font-weight: bold;
|
||||
color: #52586c;
|
||||
margin-bottom: 10px;
|
||||
height: 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
ul.tmail-list-ul li .body {
|
||||
color: #777e8e;
|
||||
height: 48px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tmail-email-body {
|
||||
padding: 50px !important;
|
||||
border-bottom-right-radius: 4px;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.tmail-email-title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: #06b4fe;
|
||||
}
|
||||
|
||||
.tmail-email-body-content {
|
||||
color: #777e8e;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.tmail-email-attachments {
|
||||
margin-top: 30px;
|
||||
margin-bottom: 30px;
|
||||
border-top: 1px solid #ccc;
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a {
|
||||
padding: 10px 20px;
|
||||
border: 1px solid #673AE2;
|
||||
color: #673AE2;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a:hover {
|
||||
background: #673AE2;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-email-attachments a i {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.tmail-list-placeholder {
|
||||
line-height: 50vh;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
opacity: 0.1;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.tmail-email-body-placeholder {
|
||||
display: table;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tmail-email-body-placeholder span {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
opacity: 0.1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tmail-email-description {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.tmail-email-time {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.tmail-email-response {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 50px 0px;
|
||||
}
|
||||
|
||||
.tmail-email-response textarea {
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 15px 20px;
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.tmail-email-response a {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 10px;
|
||||
background: #5a47d1;
|
||||
padding: 10px 20px;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.tmail-list-clear button {
|
||||
margin: 18px 20px 20px 0px;
|
||||
width: 150px;
|
||||
max-width: 100%;
|
||||
padding: 10px 0px 12px 0px;
|
||||
border-radius: 4px;
|
||||
background: #ea3b3b;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-switch button {
|
||||
margin: 18px 20px 20px 20px;
|
||||
width: 200px;
|
||||
max-width: 100%;
|
||||
padding: 10px 0px 12px 0px;
|
||||
border-radius: 4px;
|
||||
background: #0177a9;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tmail-switch button:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.tmail-switch ul {
|
||||
width: 200px;
|
||||
max-width: 100%;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.tmail-switch ul li:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.tmail-switch ul li:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.tmail-switch ul li {
|
||||
padding: 15px 25px;
|
||||
background: #5a47d1;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.tmail-switch ul li.dropdown-create-menu {
|
||||
background: #94c314;
|
||||
}
|
||||
|
||||
.tmail-switch ul li a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tmail-icons a {
|
||||
margin-right: 10px;
|
||||
font-size: 36px;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
.tmail-icons a i {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
|
||||
.tmail-ads * {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.tmail-ads {
|
||||
overflow: hidden;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.tmail-email-content-li {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tmail-body-delete-download-icons div {
|
||||
font-size: 18px;
|
||||
padding: 20px 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tmail-body-download-icon {
|
||||
color: #673ae2;
|
||||
}
|
||||
|
||||
.tmail-body-delete-icon {
|
||||
margin-top: -1px;
|
||||
color: #bc0808;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1000px) {
|
||||
body {
|
||||
padding: 10px;
|
||||
}
|
||||
.tmail-mobile-menu {
|
||||
font-size: 30px;
|
||||
padding: 22px 10px 22px 30px;
|
||||
color: #fff;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
width: 60px;
|
||||
}
|
||||
.tmail-mobile-menu i.fa-times,
|
||||
.tmail-mobile-menu i.fa-chevron-left {
|
||||
display: none;
|
||||
}
|
||||
.tmail-logo {
|
||||
padding: 20px 10px;
|
||||
}
|
||||
.setEmail {
|
||||
width: 50%;
|
||||
}
|
||||
.tmail-main-inner {
|
||||
margin-top: 30px;
|
||||
}
|
||||
select.tmail-input-set-domain {
|
||||
margin: 0px 0px 10px 0px;
|
||||
}
|
||||
.tmail-input-set-email,
|
||||
.tmail-input-set-domain {
|
||||
padding: 10px 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
.tmail-language-switcher select {
|
||||
font-size: 12px;
|
||||
margin: 30px 0;
|
||||
}
|
||||
.tmail-input-set-email {
|
||||
margin: 10px 0;
|
||||
font-size: 18px;
|
||||
}
|
||||
.tmail-input-set-domain {
|
||||
width: 90%;
|
||||
font-size: 18px;
|
||||
}
|
||||
.tmail-generate-random a, .tmail-generate-custom a {
|
||||
width: 90%;
|
||||
font-size: 18px;
|
||||
display: block;
|
||||
}
|
||||
.tmail-email-body {
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* CSS Loader */
|
||||
|
||||
.lds-ellipsis {
|
||||
position: relative;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 27px;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 6px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 6px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 26px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 45px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
100% {
|
||||
transform: translate(19px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Custom SnackBar */
|
||||
|
||||
#snackbar {
|
||||
visibility: hidden;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
text-align: right;
|
||||
border-radius: 4px;
|
||||
padding: 20px 40px;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
right: 30px;
|
||||
bottom: 30px;
|
||||
margin-left: 30px;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
#snackbar.show {
|
||||
visibility: visible;
|
||||
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadein {
|
||||
from {bottom: 0; opacity: 0;}
|
||||
to {bottom: 30px; opacity: 1;}
|
||||
}
|
||||
|
||||
@keyframes fadein {
|
||||
from {bottom: 0; opacity: 0;}
|
||||
to {bottom: 30px; opacity: 1;}
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadeout {
|
||||
from {bottom: 30px; opacity: 1;}
|
||||
to {bottom: 0; opacity: 0;}
|
||||
}
|
||||
|
||||
@keyframes fadeout {
|
||||
from {bottom: 30px; opacity: 1;}
|
||||
to {bottom: 0; opacity: 0;}
|
||||
}
|
||||
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,31 @@
|
||||
//Admin JS
|
||||
|
||||
$("#addDomain").click(function(){
|
||||
$("#addDomain").before('<input class="inner-fields" type="text" name="domain[]" placeholder="Enter Domain">');
|
||||
});
|
||||
|
||||
$("#addForbidden").click(function(){
|
||||
$("#addForbidden").before('<input class="inner-fields" type="text" name="forbidemail[]" placeholder="Enter Forbiden TMail">');
|
||||
});
|
||||
|
||||
$("#addLinks").click(function(){
|
||||
$("#addLinks").before('<input class="small-inner-fields" type="text" name="linksIcon[]" placeholder="Enter Icon"><input class="small-inner-fields" type="text" name="linksTitle[]" placeholder="Enter Title"><input class="big-inner-fields" type="text" name="linksValue[]" placeholder="Enter Link">');
|
||||
});
|
||||
|
||||
$("#test-connection").click(function(){
|
||||
$("#test-result").html("<span style='color: #006ECE'>Checking...</span>");
|
||||
var host = document.getElementsByName("host")[0].value;
|
||||
var user = document.getElementsByName("user")[0].value;
|
||||
var pass = document.getElementsByName("pass")[0].value;
|
||||
$.get("admin.php", {
|
||||
host: host,
|
||||
user: user,
|
||||
pass: pass
|
||||
}).done(function( data ) {
|
||||
if(data === 'FAIL') {
|
||||
$("#test-result").html("<span style='color: #DB0015'>Connection Failed</span>");
|
||||
} else {
|
||||
$("#test-result").html("<span style='color: #006e2e'>Connection Passed</span>");
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,418 @@
|
||||
$(document).ready(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
deleteAttachments();
|
||||
});
|
||||
|
||||
const scrollHome = new PerfectScrollbar('.tmail-homepage');
|
||||
const scrollSidebar = new PerfectScrollbar('.tmail-sidebar');
|
||||
const scrollTmailList = new PerfectScrollbar('.tmail-list');
|
||||
const scrollTmailBody = new PerfectScrollbar('.tmail-email-body');
|
||||
const scrollTmailListSection = new PerfectScrollbar('#tmail-switcher-list-ul');
|
||||
|
||||
var isEncode;
|
||||
var address = (hasher.getURL()).replace((hasher.getBaseURL()), '');
|
||||
address = address.replace('#/', '');
|
||||
if (address) {
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
if(address.indexOf("@") != -1) {
|
||||
createUser(address);
|
||||
} else {
|
||||
createUser(atob(address));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$(".tmail-loader").fadeOut(200, function(){
|
||||
$(".tmail-main-inner").delay(400).fadeIn();
|
||||
scrollHome.update();
|
||||
$.get("actions.php", {
|
||||
action: 'encode'
|
||||
}).done(function (data) {
|
||||
isEncode = data;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var refreshRate;
|
||||
$.get("actions.php", {
|
||||
action: 'refreshRate'
|
||||
}).done(function (data) {
|
||||
refreshRate = parseInt(data);
|
||||
});
|
||||
|
||||
var pushNotifications;
|
||||
$.get("actions.php", {
|
||||
action: 'pushNotifications'
|
||||
}).done(function( data ) {
|
||||
if(data === 'yes') {
|
||||
pushNotifications = true;
|
||||
} else {
|
||||
pushNotifications = false;
|
||||
}
|
||||
});
|
||||
|
||||
var t;
|
||||
var currentRefreshRate;
|
||||
var intialText = $("#reloading-line").html();
|
||||
|
||||
function updateTimer() {
|
||||
if(currentRefreshRate == refreshRate) {
|
||||
$("#reloading-line").fadeOut(200, function(){
|
||||
$("#reloading-line").html(intialText);
|
||||
});
|
||||
}
|
||||
$("#reloading-msg").html("<strong>"+(currentRefreshRate)+"</strong>");
|
||||
if(currentRefreshRate == refreshRate) {
|
||||
$("#reloading-line").fadeIn(200);
|
||||
}
|
||||
if(currentRefreshRate == 0) {
|
||||
retriveNewMails();
|
||||
clearInterval(t);
|
||||
$("#reloading-line").fadeOut(200, function(){
|
||||
$("#reloading-line").html('<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>');
|
||||
$("#reloading-line").delay(100).fadeIn(200);
|
||||
});
|
||||
|
||||
}
|
||||
currentRefreshRate = currentRefreshRate - 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if enter key is pressed
|
||||
*/
|
||||
function checkEnter(e, item) {
|
||||
var code = (e.keyCode ? e.keyCode : e.which);
|
||||
if (code === 13) {
|
||||
setNewID();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Set a New ID
|
||||
*/
|
||||
function setNewID() {
|
||||
var email = document.getElementsByName("email")[0].value;
|
||||
var domain = document.getElementsByName("domain")[0].value;
|
||||
var fullEmail = email + domain;
|
||||
createUser(fullEmail);
|
||||
}
|
||||
/*
|
||||
* Create a new address for user. If address is already specified it checks if that is valid
|
||||
*/
|
||||
function createUser(address) {
|
||||
if($(window).width() < 1000) {
|
||||
$(".tmail-mobile-menu").fadeIn(100);
|
||||
$(".tmail-sidebar").hide(100);
|
||||
}
|
||||
$(".tmail-homepage").fadeOut(100);
|
||||
$(".tmail-body").fadeOut(100);
|
||||
$(".tmail-main").delay(100).fadeIn();
|
||||
$(".tmail-loader").delay(100).fadeIn();
|
||||
$.get("user.php", {
|
||||
user: address
|
||||
}).done(function (data) {
|
||||
address = data;
|
||||
$("#current-tmail-id").html(address);
|
||||
if(isEncode === "yes") {
|
||||
var newAddress = btoa(address);
|
||||
hasher.setHash(newAddress);
|
||||
} else {
|
||||
hasher.setHash(address);
|
||||
}
|
||||
if (!$("#tmail-switcher-list-ul:contains('"+address+"')").length) {
|
||||
var tagToAdd = "<li onclick=\"createUser('"+address+"')\"><a>"+address+"</a></li>";
|
||||
$("#tmail-switcher-list-ul").append(tagToAdd);
|
||||
}
|
||||
$.get("mail.php", function (data) {
|
||||
$("#tmail-data").html('');
|
||||
if (data) {
|
||||
var splitData = data.split('<-----TMAILNEXTMAIL----->');
|
||||
$.each(splitData, function (index, value) {
|
||||
value = $.trim(value);
|
||||
if (value.length > 0) {
|
||||
var internalSplitData = value.split('<-----TMAILCHOPPER----->');
|
||||
$("#tmail-data").append(internalSplitData[0]);
|
||||
$(".tmail-email-body").append(internalSplitData[1]);
|
||||
}
|
||||
});
|
||||
}
|
||||
checkEmptyEmailList();
|
||||
retriveNewMails();
|
||||
$(".tmail-main").fadeOut()
|
||||
$(".tmail-body").delay(400).fadeIn();
|
||||
saveEMails();
|
||||
$(".tmail-email-body a").attr("target","_blank");
|
||||
scrollTmailList.update();
|
||||
scrollTmailBody.update();
|
||||
scrollSidebar.update();
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$(".tmail-email-body-placeholder").delay(500).fadeIn();
|
||||
});
|
||||
});
|
||||
}
|
||||
/*
|
||||
* Checks for new emails at regular interval. setTimeout calls function every 1000 ms (1 Second)
|
||||
*/
|
||||
function retriveNewMails() {
|
||||
$.get("mail.php?unseen=1", function (data) {
|
||||
if (data.trim() === "DIE") {
|
||||
location.reload();
|
||||
return;
|
||||
} else {
|
||||
if (data) {
|
||||
if(data.indexOf("Fatal error: Uncaught exception 'PhpImap") != -1){
|
||||
location.reload(true);
|
||||
}
|
||||
var splitData = data.split('<-----TMAILNEXTMAIL----->');
|
||||
$.each(splitData, function (index, value) {
|
||||
if (value.trim().length > 0) {
|
||||
var internalSplitData = value.split('<-----TMAILCHOPPER----->');
|
||||
$("#tmail-data").prepend(internalSplitData[0]);
|
||||
$(".tmail-email-body").prepend(internalSplitData[1]);
|
||||
alignElements();
|
||||
}
|
||||
});
|
||||
checkEmptyEmailList();
|
||||
$(".tmail-email-body a").attr("target","_blank");
|
||||
notifyUser("You got some new EMails",true);
|
||||
}
|
||||
currentRefreshRate = refreshRate;
|
||||
t = setInterval(updateTimer, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function alignElements() {
|
||||
var docWidth = $(window).width();
|
||||
if (docWidth < 1000) {
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
} else {
|
||||
var sidebarWidth = $(".tmail-sidebar").width();
|
||||
if (sidebarWidth < 200) {
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
if ($(".tmail-email-body").hasClass("col-lg-6")) {
|
||||
$(".tmail-email-body").removeClass("col-lg-6").addClass("col-lg-8");
|
||||
}
|
||||
} else {
|
||||
$(".tmail-sidebar").show();
|
||||
if ($(".tmail-email-body").hasClass("col-lg-8")) {
|
||||
$(".tmail-email-body").removeClass("col-lg-8").addClass("col-lg-6");
|
||||
}
|
||||
}
|
||||
var listWidth = $(".tmail-list").width();
|
||||
if (listWidth < 306) {
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
} else {
|
||||
$(".tmail-email-body").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(window).resize(function () {
|
||||
alignElements();
|
||||
});
|
||||
|
||||
$(".tmail-list-ul").click(function () {
|
||||
var docWidth = $(window).width();
|
||||
if (docWidth < 1000) {
|
||||
$(".tmail-list").fadeOut(100);
|
||||
$(".tmail-email-body").fadeIn();
|
||||
$(".tmail-mobile-menu i.fa-bars").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").delay(100).fadeIn();
|
||||
}
|
||||
$(".tmail-email-body-placeholder").fadeOut(100);
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").click(function () {
|
||||
$(".tmail-list").fadeIn();
|
||||
$(".tmail-email-body").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-chevron-left").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-bars").delay(100).fadeIn();
|
||||
$(".tmail-email-body").css("z-index","-1");
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-bars").click(function () {
|
||||
$(".tmail-list").fadeOut(100);
|
||||
$(".tmail-sidebar").fadeIn();
|
||||
$(".tmail-mobile-menu i.fa-bars").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-times").delay(100).fadeIn();
|
||||
});
|
||||
|
||||
$(".tmail-mobile-menu i.fa-times").click(function () {
|
||||
$(".tmail-list").fadeIn();
|
||||
$(".tmail-sidebar").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-times").fadeOut(100);
|
||||
$(".tmail-mobile-menu i.fa-bars").delay(100).fadeIn();
|
||||
});
|
||||
|
||||
/*
|
||||
* To show TMail Complete EMail
|
||||
*/
|
||||
function showTMailBody(mailContentID) {
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$("#tmail-email-body-content-" + mailContentID).fadeToggle();
|
||||
$(".tmail-list-ul li").removeClass("tmail-list-active");
|
||||
$("#tmail-email-list-" + mailContentID).addClass("tmail-list-active");
|
||||
$(".tmail-email-body").css("z-index","1");
|
||||
}
|
||||
|
||||
/*
|
||||
* Simple click to copy to clipboard function
|
||||
*/
|
||||
function copyToClipboard(element) {
|
||||
var $temp = $("<input>");
|
||||
$("body").append($temp);
|
||||
$temp.val($(element).text()).select();
|
||||
document.execCommand("copy");
|
||||
$temp.remove();
|
||||
notifyUser("EMail ID copied to clipboard");
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
function notifyUser(message, sendPush = false) {
|
||||
var x = document.getElementById("snackbar");
|
||||
x.innerHTML = message;
|
||||
x.className = "show";
|
||||
setTimeout(function () {
|
||||
x.className = x.className.replace("show", "");
|
||||
}, 3000);
|
||||
if(pushNotifications && sendPush) {
|
||||
if (Notification.permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
} else if (Notification.permission !== 'denied') {
|
||||
Notification.requestPermission(function(permission) {
|
||||
if (permission === "granted") {
|
||||
var notification = new Notification(message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Search Bar
|
||||
*/
|
||||
(function () {
|
||||
var searchTerm, panelContainerId;
|
||||
$.expr[':'].containsCaseInsensitive = function (n, i, m) {
|
||||
return jQuery(n).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
|
||||
};
|
||||
$('#tmail-search').on('change keyup paste click', function () {
|
||||
searchTerm = $(this).val();
|
||||
$('#tmail-data > .tmail-email-list-li').each(function () {
|
||||
panelContainerId = '#' + $(this).attr('id');
|
||||
$(panelContainerId + ':not(:containsCaseInsensitive(' + searchTerm + '))').fadeOut(100);
|
||||
$(panelContainerId + ':containsCaseInsensitive(' + searchTerm + ')').show();
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
/*
|
||||
* Function for saving email in Cookie
|
||||
*/
|
||||
function saveEMails() {
|
||||
$.get("actions.php?action=saveEMails", function (data) {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Function for clearing email in Cookie
|
||||
*/
|
||||
function clearEMails() {
|
||||
$.get("actions.php?action=clearEMails", function (data) {
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to check if list is empty
|
||||
*/
|
||||
function checkEmptyEmailList() {
|
||||
var emptyCheck = $('#tmail-data').html().trim();
|
||||
if (emptyCheck === "") {
|
||||
$(".tmail-list-placeholder").fadeIn();
|
||||
} else {
|
||||
$(".tmail-list-placeholder").fadeOut();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Function which enables user to download any email
|
||||
* @param mailid - Identify the mail to download
|
||||
*/
|
||||
function downloadMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'download',
|
||||
id: mailid
|
||||
}).done(function( data ) {
|
||||
window.location.href = data;
|
||||
});
|
||||
notifyUser("File Ready! Please hit okay / save if you got a popup");
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to delete email
|
||||
* @param mailid - Identify the mail to delete
|
||||
*/
|
||||
function deleteMail(mailid) {
|
||||
$.get("actions.php", {
|
||||
action: 'delete',
|
||||
id: mailid
|
||||
});
|
||||
var mailLocator = "#tmail-email-list-".concat(mailid);
|
||||
$(mailLocator).hide( "400", function() {
|
||||
$( this ).remove();
|
||||
$(".tmail-email-content-li").fadeOut(100);
|
||||
$(".tmail-email-body-placeholder").delay(500).fadeIn();
|
||||
$("#tmail-email-body-content-"+mailid).delay(500).remove();
|
||||
checkEmptyEmailList();
|
||||
});
|
||||
notifyUser("TMail Deleted!");
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function to change language
|
||||
*/
|
||||
function setLang() {
|
||||
var setLang = document.getElementsByName("lang")[0].value;
|
||||
$(".tmail-homepage").fadeOut();
|
||||
$(".tmail-body").fadeOut();
|
||||
$(".tmail-main").delay(400).fadeIn();
|
||||
if ( setLang === "hi" ) {
|
||||
$(".inner-loader span").html("रुकिए");
|
||||
} else if ( setLang === "fr" ) {
|
||||
$(".inner-loader span").html("Chargement");
|
||||
} else if ( setLang === "ch" ) {
|
||||
$(".inner-loader span").html("载入中");
|
||||
} else if ( setLang === "ar" ) {
|
||||
$(".inner-loader span").html("جار التحميل");
|
||||
} else if ( setLang === "sp" ) {
|
||||
$(".inner-loader span").html("Cargando");
|
||||
} else if ( setLang === "ru" ) {
|
||||
$(".inner-loader span").html("загрузка");
|
||||
} else if ( setLang === "de" ) {
|
||||
$(".inner-loader span").html("Bezig met laden");
|
||||
} else if ( setLang === "pl" ) {
|
||||
$(".inner-loader span").html("Ładuję");
|
||||
} else {
|
||||
$(".inner-loader span").html("Loading");
|
||||
}
|
||||
$(".tmail-loader").delay(600).fadeIn();
|
||||
$.get( "actions.php", { action: "changeLang", lang: setLang } ).done(function( data ) { location.reload(); });
|
||||
}
|
||||
|
||||
/*
|
||||
* Deleting old attachments
|
||||
*/
|
||||
function deleteAttachments() {
|
||||
$.get("actions.php", {
|
||||
action: 'deleteOldAttachments'
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
# TMail临时邮件系统 静态文件
|
||||
@@ -0,0 +1,6 @@
|
||||
# CDN
|
||||
OneManager-php 程序 美化主题js
|
||||
添加到<#body>下
|
||||
<script src="//cdn.jsdelivr.net/gh/ldxw/CDN@v0.02.1/scfone-theme-js/odscf/scf.js"></script>
|
||||
|
||||
原作者地址:https://cdn.jsdelivr.net/gh/vcheckzen/CDN@0.02/odscf/logi.js
|
||||
@@ -0,0 +1,13 @@
|
||||
## 说明
|
||||
|
||||
这是为 onedrive 云盘程序[OneManager](https://github.com/qkqpttgf/OneManager-php)写的一个简单的 css 主题,参考了 OneIndex 的主题样式,对应 OneManager 程序版本为[Feb 20, 2020 多盘版本](https://github.com/qkqpttgf/OneManager-php/tree/62f798d8bd0304ce5efc1eedb3e90e066c0d893d)
|
||||
|
||||
## 预览
|
||||
|
||||
[在线预览](https://pan.2bboy.com)
|
||||

|
||||

|
||||
|
||||
## 使用
|
||||
|
||||
向程序 theme 文件夹里添加 onemoe.php 文件,网站后台切换主题即可,更多细节请访问[我的博客](https://www.2bboy.com/archives/154.html)。
|
||||