Last active
February 7, 2018 07:49
-
-
Save andreasvirkus/5775d57375a48e2a3e21b3432742e53a to your computer and use it in GitHub Desktop.
jAlert confirm example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$(document).ready(function () { | |
$.jAlert({ | |
'type': 'confirm', | |
'confirmQuestion': 'Do you want to add this?', | |
'onConfirm': function(e, btn){ | |
e.preventDefault(); | |
//do something here | |
btn.parents('.jAlert').closeAlert(); | |
return false; | |
}, | |
'onDeny': function(e, btn){ | |
e.preventDefault(); | |
//do something here | |
btn.parents('.jAlert').closeAlert(); | |
return false; | |
} | |
}); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Optional: Overwrites javascript's built-in alert function */ | |
function alert(title, msg){ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = ''; | |
} | |
$.jAlert({ | |
'title': title, | |
'content': msg | |
}); | |
} | |
/* Optional: Overwrites javascript's built-in confirm function (DANGER: operates differently - returns true every time and doesn't stop execution!) - You must provide a callback */ | |
function confirm(confirmCallback, denyCallback) | |
{ | |
$.jAlert({'type': 'confirm', 'onConfirm': confirmCallback, 'onDeny': denyCallback }); | |
} | |
/* Optional Alert shortcuts based on color */ | |
function showAlert(title, msg, theme) | |
{ | |
$.jAlert({ | |
'title': title, | |
'content': msg, | |
'theme': theme | |
}); | |
} | |
function successAlert(title, msg) | |
{ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = 'Success'; | |
} | |
showAlert(title, msg, 'green'); | |
} | |
function errorAlert(title, msg) | |
{ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = 'Error'; | |
} | |
showAlert(title, msg, 'red'); | |
} | |
function infoAlert(title, msg) | |
{ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = 'Info'; | |
} | |
showAlert(title, msg, 'blue'); | |
} | |
function warningAlert(title, msg) | |
{ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = 'Warning'; | |
} | |
showAlert(title, msg, 'yellow'); | |
} | |
function blackAlert(title, msg) | |
{ | |
if( typeof msg == 'undefined' ) | |
{ | |
msg = title; | |
title = 'Warning'; | |
} | |
showAlert(title, msg, 'black'); | |
} | |
function imageAlert(img, imgWidth) | |
{ | |
if( typeof imgWidth == 'auto' ) | |
{ | |
iframeHeight = false; | |
} | |
$.jAlert({ | |
'image': img, | |
'imageWidth': imgWidth | |
}); | |
} | |
function videoAlert(video) | |
{ | |
$.jAlert({ | |
'video': video | |
}); | |
} | |
function iframeAlert(iframe, iframeHeight) | |
{ | |
if( typeof iframeHeight == 'undefined' ) | |
{ | |
iframeHeight = false; | |
} | |
$.jAlert({ | |
'iframe': iframe, | |
'iframeHeight': iframeHeight | |
}); | |
} | |
function ajaxAlert(url, onOpen) | |
{ | |
if( typeof onOpen == 'undefined' ) | |
{ | |
onOpen = function(alert){ //on open call back. Fires just after the alert has finished rendering | |
return false; | |
}; | |
} | |
$.jAlert({ | |
'ajax': url, | |
'onOpen': onOpen | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@charset "UTF-8"; | |
/* | |
jAlert version 4.5.1 | |
Made with love by Versatility Werks (http://flwebsites.biz) | |
MIT Licensed | |
*/ | |
/* Resets */ | |
html,body | |
{ | |
min-height: 100%; | |
} | |
/* | |
WRAPPER | |
*/ | |
.ja_wrap | |
{ | |
padding: 0px; | |
margin: 0px; | |
text-align: center; | |
position: fixed; | |
z-index: 99999; | |
overflow-y: auto; | |
width: 100%; | |
height: 100%; | |
top: 0px; | |
left: 0px; | |
-moz-user-select: -moz-none; | |
-khtml-user-select: none; | |
-webkit-user-select: none; | |
-o-user-select: none; | |
user-select: none; | |
} | |
.ja_wrap.ja_wrap_white | |
{ | |
background: rgba(255,255,255,.75); | |
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1, StartColorStr='#BFFFFFFF', EndColorStr='#BFFFFFFF')"; | |
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#BFFFFFFF', EndColorStr='#BFFFFFFF'); | |
zoom: 1!important; | |
} | |
.ja_wrap.ja_wrap_black | |
{ | |
background: rgba(0,0,0,.75); | |
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1, StartColorStr='#BF000000', EndColorStr='#BF000000')"; | |
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#BF000000', EndColorStr='#BF000000'); | |
zoom: 1!important; | |
} | |
body.ja_blur > *:not(.ja_wrap) | |
{ | |
-webkit-filter: blur(5px) grayscale(.7); | |
filter: blur(5px) grayscale(.7); | |
} | |
/* | |
jAlert | |
*/ | |
.jAlert | |
{ | |
font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | |
text-align: left; | |
word-wrap: break-word; | |
background: white; | |
border-radius: 5px; | |
max-width: 96%; | |
margin: 2% auto; | |
margin-top: 100px; | |
margin-bottom: 100px; | |
display: inline-block; | |
-webkit-box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.75); | |
-moz-box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.75); | |
box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.75); | |
} | |
/* | |
INSIDE WRAPPER (RELATIVE IN CASE THERE IS POSITION: ABSOLUTE CONTENT WITHIN | |
*/ | |
.jAlert > div{ | |
position: relative; | |
} | |
.jAlert.ja_setheight > div | |
{ | |
height: 100%; | |
} | |
/* | |
SIZES | |
*/ | |
.ja_xsm{ width: 250px; } | |
.ja_sm{ width: 350px; } | |
.ja_md{ width: 550px; } | |
.ja_lg{ width: 850px; } | |
.ja_xlg{ width: 1200px; } | |
.ja_full{ width: 100%; } | |
.ja_auto{ width: auto; } | |
/* | |
CLOSE BTN | |
*/ | |
.ja_close{ | |
position: absolute; | |
top: 3px; | |
right: 3px; | |
border-radius: 5px; | |
background: #F3F3F3; | |
color: #555; | |
padding: 5px 10px 5px 10px; | |
cursor: pointer; | |
font-weight: bold; | |
z-index: 99999; | |
} | |
.ja_close_round, .ja_close_round_white { | |
border-radius: 50%; | |
background: #e0e0e0; | |
color: #232323; | |
padding: 5px 7px; | |
right: 10px; | |
top: 6px; | |
border: 0px; | |
line-height: 13px; | |
font-size: 18px; | |
} | |
.ja_default .ja_close_round, .ja_default .ja_close_round_white | |
{ | |
color: #FFF; | |
background: rgba(0, 0, 0, 0.3) none repeat scroll 0% 0%; | |
} | |
.ja_close_alt | |
{ | |
border-radius: 50%; | |
background: #D51C1C; | |
color: rgb(255, 255, 255); | |
top: -16px; | |
right: -18px; | |
border: 1px solid rgb(55, 55, 55); | |
padding: 3px 8px 1px 7px; | |
} | |
.ja_close:hover{ | |
background: #d4d4d4; | |
} | |
.ja_close_alt:hover{ | |
background: #DF2020; | |
} | |
.ja_close_round:hover, .ja_close_round:active | |
{ | |
color: #FFF; | |
background: rgba(0,0,0,.5); | |
} | |
.ja_close_round_white:hover, .ja_close_round_white:active | |
{ | |
background: white; | |
} | |
/* | |
TITLE | |
*/ | |
.ja_noTitle .ja_body | |
{ | |
border-radius: 5px; | |
} | |
.ja_noTitle .ja_close_round | |
{ | |
right: -11px; | |
top: -11px; | |
background: rgba(0, 0, 0, 0.7) none repeat scroll 0% 0%; | |
} | |
.ja_noTitle .ja_close_round:hover | |
{ | |
background: black; | |
} | |
.ja_noTitle .ja_close_round_white | |
{ | |
background: #e0e0e0; | |
color: #232323; | |
} | |
.ja_noTitle .ja_close_round_white:hover | |
{ | |
background: white; | |
} | |
.ja_title | |
{ | |
width: 100%; | |
border-top-left-radius: 5px; | |
border-top-right-radius: 5px; | |
} | |
.ja_title > div | |
{ | |
color: #505050; | |
font-size: 18px; | |
font-weight: bold; | |
padding: 10px 20px 10px 20px; | |
} | |
/* | |
THEMES | |
*/ | |
.ja_default | |
{ | |
background: #E0E0E0; | |
} | |
.ja_green | |
{ | |
background: #00B700; | |
} | |
.ja_dark_green | |
{ | |
background: #006D00; | |
} | |
.ja_yellow | |
{ | |
background: #FFFF54; | |
} | |
.ja_gray | |
{ | |
background: #616161; | |
} | |
.ja_dark_gray | |
{ | |
background: #424242; | |
} | |
.ja_brown | |
{ | |
background: #633824; | |
} | |
.ja_black | |
{ | |
background: #232323; | |
} | |
.ja_blue | |
{ | |
background: #008FE4; | |
} | |
.ja_dark_blue | |
{ | |
background: #024986; | |
} | |
.ja_red | |
{ | |
background: #DE0E0E; | |
} | |
.ja_dark_red | |
{ | |
background: #A20000; | |
} | |
.ja_default > div | |
{ | |
color: #505050 !important; | |
} | |
.ja_yellow .ja_title > div | |
{ | |
color: #636300 !important; | |
} | |
.ja_green .ja_title > div, | |
.ja_dark_green .ja_title > div, | |
.ja_gray .ja_title > div, | |
.ja_brown .ja_title > div, | |
.ja_dark_gray .ja_title > div, | |
.ja_black .ja_title > div, | |
.ja_blue .ja_title > div, | |
.ja_dark_blue .ja_title > div, | |
.ja_red .ja_title > div, | |
.ja_dark_red .ja_title > div | |
{ | |
color: white !important; | |
} | |
/* | |
CONTENT WRAP | |
*/ | |
.ja_body | |
{ | |
background: white; | |
color: #616161; | |
padding: 20px; | |
-moz-user-select: text; | |
-khtml-user-select: text; | |
-webkit-user-select: text; | |
-o-user-select: text; | |
user-select: text; | |
border-bottom-left-radius: 5px; | |
border-bottom-right-radius: 5px; | |
} | |
.ja_setheight .ja_body | |
{ | |
height: 100%; | |
height: calc(100% - 40px); | |
} | |
/* | |
CONTENT | |
*/ | |
.ja_media_wrap | |
{ | |
position: relative; | |
text-align: center; | |
} | |
.ja_iframe | |
{ | |
width: 100%; | |
border: 0px; | |
display: none; | |
border: 0px; | |
} | |
.ja_video | |
{ | |
width: 100%; | |
height: 0px; | |
padding-bottom: 65%; | |
position: relative; | |
display: none; | |
} | |
.ja_video iframe | |
{ | |
position: absolute; | |
top: 0px; | |
left: 0px; | |
width: 100%; | |
height: 100%; | |
border: 0px; | |
} | |
.ja_img | |
{ | |
max-width: 100%; | |
display: inline-block; | |
display: none; | |
} | |
/** | |
Full Screen | |
*/ | |
.ja_fullscreen | |
{ | |
width: 100%; | |
height: 100%; | |
max-height: 100%; | |
max-width: 100%; | |
min-width: 100%; | |
min-height: 100%; | |
border-radius: 0px; | |
margin-top: 0px !important; | |
} | |
.ja_fullscreen .ja_title | |
{ | |
border-top-left-radius: 0px; | |
border-top-right-radius: 0px; | |
} | |
.ja_fullscreen .ja_body | |
{ | |
height: 100%; | |
} | |
.ja_fullscreen .ja_close_round | |
{ | |
right: 5px; | |
top: 5px; | |
} | |
/* | |
BTNS | |
*/ | |
.ja_btn_wrap | |
{ | |
text-align: center; | |
position: relative; | |
display: block; | |
margin-top: 10px; | |
margin-bottom: -10px; | |
} | |
.ja_btn_wrap.optBack | |
{ | |
background: #f3f3f3; | |
margin-top: 25px; | |
margin: 25px -20px -20px -20px; | |
padding: 5px 0px; | |
border-bottom-left-radius: 5px; | |
border-bottom-right-radius: 5px; | |
} | |
.ja_btn, .ja_btn:link, .ja_btn:visited, .ja_btn:active | |
{ | |
margin-top: 3px; | |
padding: 3px 10px; | |
display: inline-block; | |
text-decoration: none; | |
border-radius: 5px; | |
} | |
@media (max-width: 450px) | |
{ | |
.ja_btn | |
{ | |
width: 90%; | |
} | |
} | |
.ja_btn:hover | |
{ | |
text-decoration: none; | |
} | |
.ja_btn_default, .ja_btn_default:link, .ja_btn_default:visited | |
{ | |
color: #575757; | |
background: #f3f3f3; | |
} | |
.ja_btn_default:hover | |
{ | |
background: #FBFBFB; | |
} | |
.ja_btn_default:active | |
{ | |
background: #EEE; | |
} | |
.ja_btn_green, .ja_btn_green:link, .ja_btn_green:visited | |
{ | |
background: #00A000; | |
color: white; | |
} | |
.ja_btn_green:hover | |
{ | |
background: #2EB71F; | |
} | |
.ja_btn_green:active | |
{ | |
background: #259818; | |
} | |
.ja_btn_red, .ja_btn_red:link, .ja_btn_red:visited | |
{ | |
background: #B90808; | |
color: white; | |
} | |
.ja_btn_red:hover | |
{ | |
background: #D62828; | |
} | |
.ja_btn_red:active | |
{ | |
background: #9F2020; | |
} | |
.ja_btn_black, .ja_btn_black:link, .ja_btn_black:visited | |
{ | |
background: #535353; | |
color: white; | |
} | |
.ja_btn_black:hover | |
{ | |
background: #666666; | |
} | |
.ja_btn_black:active | |
{ | |
background: #444444; | |
} | |
.ja_btn_blue, .ja_btn_blue:link, .ja_btn_blue:visited | |
{ | |
background: #0877B9; | |
color: white; | |
} | |
.ja_btn_blue:hover | |
{ | |
background: #0896E9; | |
} | |
.ja_btn_blue:active | |
{ | |
background: #056FAD; | |
} | |
/* | |
LOADER | |
*/ | |
@-moz-keyframes ja-loader { | |
0% { | |
-moz-transform: rotate(0deg); | |
transform: rotate(0deg); | |
} | |
100% { | |
-moz-transform: rotate(360deg); | |
transform: rotate(360deg); | |
} | |
} | |
@-webkit-keyframes ja-loader { | |
0% { | |
-webkit-transform: rotate(0deg); | |
transform: rotate(0deg); | |
} | |
100% { | |
-webkit-transform: rotate(360deg); | |
transform: rotate(360deg); | |
} | |
} | |
@keyframes ja-loader { | |
0% { | |
-moz-transform: rotate(0deg); | |
-ms-transform: rotate(0deg); | |
-webkit-transform: rotate(0deg); | |
transform: rotate(0deg); | |
} | |
100% { | |
-moz-transform: rotate(360deg); | |
-ms-transform: rotate(360deg); | |
-webkit-transform: rotate(360deg); | |
transform: rotate(360deg); | |
} | |
} | |
/* :not(:required) hides this rule from IE9 and below */ | |
.ja_loader:not(:required) { | |
-moz-animation: ja-loader 1500ms infinite linear; | |
-webkit-animation: ja-loader 1500ms infinite linear; | |
animation: ja-loader 1500ms infinite linear; | |
-moz-border-radius: 0.5em; | |
-webkit-border-radius: 0.5em; | |
border-radius: 0.5em; | |
-moz-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0; | |
-webkit-box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0; | |
box-shadow: rgba(0, 0, 51, 0.3) 1.5em 0 0 0, rgba(0, 0, 51, 0.3) 1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) 0 1.5em 0 0, rgba(0, 0, 51, 0.3) -1.1em 1.1em 0 0, rgba(0, 0, 51, 0.3) -1.5em 0 0 0, rgba(0, 0, 51, 0.3) -1.1em -1.1em 0 0, rgba(0, 0, 51, 0.3) 0 -1.5em 0 0, rgba(0, 0, 51, 0.3) 1.1em -1.1em 0 0; | |
display: inline-block; | |
font-size: 10px; | |
width: 1em; | |
height: 1em; | |
margin: 1.5em; | |
overflow: hidden; | |
text-indent: 100%; | |
} | |
/*!Animate.css - http://daneden.me/animate Licensed under the MIT license -http://opensource.org/licenses/MIT Copyright (c) 2015 Daniel Eden*/ | |
.animated{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:.5s;animation-duration:.5s}.animated.bounceIn,.animated.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s}.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{11.1%{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-0.78125deg) skewY(-0.78125deg);transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{-webkit-transform:skewX(0.390625deg) skewY(0.390625deg);transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{-webkit-transform:skewX(-0.1953125deg) skewY(-0.1953125deg);transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}100%{-webkit-transform:none;transform:none}}@keyframes jello{11.1%{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-0.78125deg) skewY(-0.78125deg);transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{-webkit-transform:skewX(0.390625deg) skewY(0.390625deg);transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{-webkit-transform:skewX(-0.1953125deg) skewY(-0.1953125deg);transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}100%{-webkit-transform:none;transform:none}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}100%{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} | |
/* | |
No padding option | |
*/ | |
.ja_no_pad .ja_body | |
{ | |
padding: 0px; | |
} | |
.ja_no_pad .ja_loader | |
{ | |
margin: 40px 0px; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
* | |
jAlert version 4.5.1 | |
Made with love by Versatility Werks (http://flwebsites.biz) | |
MIT Licensed | |
* | |
* | |
*/ | |
;(function($) { | |
if(!Date.now) | |
Date.now = function(){ | |
return +new Date(); | |
}; | |
$.fn.jAlert = function(options) { | |
//remove focus from current element so you can't just hit enter a bunch to popup the same alert over and over again | |
$('body').focus(); | |
$('body').blur(); | |
var themes = ['default', 'green', 'dark_green', 'red', 'dark_red', 'black', 'brown', 'gray', 'dark_gray', 'blue', 'dark_blue', 'yellow'], | |
sizes = ['xsm', 'sm', 'md', 'lg', 'xlg', 'full', 'auto'], | |
sizeAliases = {'xsmall': 'xsm', 'small':'sm','medium':'md','large':'lg','xlarge':'xlg'}, | |
backgroundColors = ['white', 'black'], | |
styles = [], //array of styles that gets joined together with a space between in a style tag on the jalert div | |
classes = ['animated'], //array of classes that get joined together with a space between on the jalert div | |
backgroundClasses = []; //array of classes that get joined together with a space between on the jalert background div | |
/* Block Multiple Instances by running jAlert for each one */ | |
if (this.length > 1){ | |
this.each(function() { | |
$.fn.jAlert(options); | |
}); | |
return this; | |
} | |
/* If this is an existing jAlert, return it so you can access public methods and properties */ | |
if( typeof $(this)[0] != 'undefined' ) | |
{ | |
if( $(this)[0]['jAlert'] != 'undefined' ) | |
{ | |
return $(this)[0]['jAlert']; | |
} | |
} | |
/** | |
* Use the defaults object to find any accidentally lowercased keys from the options object and convert them. | |
*/ | |
$.each($.fn.jAlert.defaults, function(key, val){ | |
var lowerKey = key.toLowerCase(); | |
if( typeof options[lowerKey] !== 'undefined' ) | |
{ | |
options[key] = options[lowerKey]; | |
} | |
}); | |
/* Combine user options with default */ | |
options = $.extend({}, $.fn.jAlert.defaults, options); | |
/* If they didn't set an id, just create a random one */ | |
if( !options.id ) | |
{ | |
var unique = Date.now().toString() + Math.floor(Math.random() * 100000); | |
var alert_id = 'ja_' + unique; | |
} | |
else | |
{ | |
var alert_id = options.id; | |
} | |
/** | |
* This is the alert object with the public properties/methods you can call | |
* @type {{set: alert.set, __set: alert.__set, get: alert.get, __get: alert.__get, centerAlert: alert.centerAlert, animateAlert: alert.animateAlert, closeAlert: alert.closeAlert, showAlert: alert.showAlert}} | |
*/ | |
var alert = { | |
set: function(key, val) | |
{ | |
alert[key] = val; | |
return alert; | |
}, | |
__set: function(key, val) | |
{ | |
return alert.set(key, val); | |
}, | |
get: function(key) | |
{ | |
return alert[key]; | |
}, | |
__get: function(key) | |
{ | |
return alert.get(key); | |
}, | |
centerAlert: function() | |
{ | |
var viewportHeight = $(window).height(), | |
alertHeight = alert.instance.height(), | |
diff = viewportHeight - alertHeight; | |
var margin = diff / 2; | |
margin = margin > 200 ? margin - 100 : margin; | |
margin = margin <= 0 ? 0 : margin; | |
margin = margin - 1; //make up for border if any - just brings it up a bit anyway. | |
alert.instance.css('margin-top', margin+'px'); | |
alert.instance.css('margin-bottom', '0px'); | |
$('body').css('overflow', 'hidden'); | |
if( diff > 5 ) | |
{ | |
alert.instance.parents('.ja_wrap').css('position', 'fixed'); | |
} | |
else | |
{ | |
alert.instance.parents('.ja_wrap').css('position', 'absolute'); | |
/* Scroll to alert */ | |
$('html, body').animate({ | |
scrollTop: top - 50 | |
}, 200); | |
} | |
return alert; | |
}, | |
animateAlert: function(which){ | |
if( which == 'hide' ) | |
{ | |
if( alert.instance.jAlert().blurBackground ) | |
{ | |
$('body').removeClass('ja_blur'); | |
} | |
alert.instance.removeClass(alert.showAnimation).addClass(alert.hideAnimation); | |
} | |
else | |
{ | |
if( alert.instance.jAlert().blurBackground ) | |
{ | |
$('body').addClass('ja_blur'); | |
} | |
alert.centerAlert(); | |
alert.instance.addClass(alert.showAnimation).removeClass(alert.hideAnimation).show(); | |
} | |
return alert; | |
}, | |
/* Hides an alert and optionally removes it */ | |
closeAlert: function(remove, onClose) | |
{ | |
if( remove != false ) | |
{ | |
remove = true; | |
} | |
if(alert.instance) | |
{ | |
alert.instance.unbind('DOMSubtreeModified'); | |
alert.animateAlert('hide'); | |
window.setTimeout(function() | |
{ | |
var alertWrap = alert.instance.parents('.ja_wrap'); | |
if( remove ) | |
{ | |
alertWrap.remove(); | |
} | |
else | |
{ | |
alertWrap.hide(); | |
} | |
if(typeof onClose == 'function') | |
{ | |
onClose(alert.instance); | |
} | |
else if(typeof alert.onClose == 'function') | |
{ | |
alert.onClose(alert.instance); | |
} | |
if( $('.jAlert:visible').length > 0 ) | |
{ | |
$('.jAlert:visible:last').jAlert().centerAlert(); | |
} | |
else | |
{ | |
$('body').css('overflow', 'auto'); | |
} | |
}, alert.animationTimeout); | |
} | |
return alert; | |
}, | |
/* Shows an alert that already exists */ | |
showAlert: function(replaceOthers, removeOthers, onOpen, onClose){ | |
if( replaceOthers != false ) | |
{ | |
replaceOthers = true; | |
} | |
if( removeOthers !== false ) | |
{ | |
removeOthers = true; | |
} | |
if( replaceOthers ) | |
{ | |
$('.jAlert:visible').jAlert().closeAlert(removeOthers); | |
} | |
/* Put this one above the last one by moving to end of dom */ | |
var wrap = alert.instance.parents('.ja_wrap'); | |
$('body').append(wrap); | |
alert.animateAlert('show'); | |
if( typeof onClose == 'function' ) | |
{ | |
alert.onClose = onClose; | |
} | |
window.setTimeout(function(){ | |
if(typeof onOpen == 'function') | |
{ | |
onOpen(alert.instance); | |
} | |
}, alert.animationTimeout); | |
return alert; | |
} | |
}; | |
/** | |
* Add all options to the alert object as properties | |
*/ | |
$.each(options, function(key, val){ | |
alert.set(key, val); | |
}); | |
/** | |
* Add this instance's unique ID to the alert object | |
*/ | |
alert.set('id', alert_id); | |
/** | |
* If content is a selector (id only) and the element exists, grab it's content | |
*/ | |
if( alert.content && alert.content.indexOf('#') === 0 ) | |
{ | |
if( $(alert.content).length > 0 ) | |
{ | |
alert.content = $(alert.content).html(); | |
} | |
} | |
/** | |
* Automatically convert a youtube video's URL to the embed version | |
*/ | |
if( alert.video && alert.video.indexOf('youtube.com/watch?v=') > -1 && alert.video.indexOf('embed') === -1 ) | |
{ | |
alert.video = alert.video.replace('watch?v=', 'embed/'); | |
} | |
/** | |
* If this is a confirm popup, set the buttons, content, etc | |
*/ | |
if( alert.type == 'confirm' ) | |
{ | |
if( !alert.content ) | |
{ | |
alert.content = alert.confirmQuestion; | |
} | |
alert.btns = [ | |
{ 'text': alert.confirmBtnText, 'theme': 'green', 'class': 'confirmBtn', 'closeAlert': true, 'onClick': alert.onConfirm }, | |
{ 'text': alert.denyBtnText, 'theme': 'red', 'class': 'denyBtn', 'closeAlert': true, 'onClick': alert.onDeny } | |
]; | |
alert.autofocus = alert.confirmAutofocus; | |
} | |
/* If used the alias color, swap to theme */ | |
if( alert.color ) | |
{ | |
alert.theme = alert.color; | |
} | |
/** | |
* Make sure theme is a real class | |
*/ | |
if( $.inArray(alert.theme, themes) == -1 ) | |
{ | |
console.log('jAlert Config Error: Invalid theme selection.'); | |
return false; | |
} | |
/** | |
* Push the theme to the classes array | |
*/ | |
classes.push('ja_'+alert.theme); | |
/* If they set custom classes */ | |
if( alert['class'] ) | |
{ | |
classes.push(alert['class']); | |
} | |
if( alert.classes ) | |
{ | |
classes.push(alert.classes); | |
} | |
//if fullscreen, add class | |
if( alert.fullscreen ) | |
{ | |
classes.push('ja_fullscreen'); | |
} | |
//if no padding on the content | |
if( alert.noPadContent ) | |
{ | |
classes.push('ja_no_pad'); | |
} | |
/* If no title, add class */ | |
if( !alert.title ) | |
{ | |
classes.push( 'ja_noTitle' ); | |
} | |
/* If used the alias width, swap to size */ | |
if( alert.width ) | |
{ | |
alert.size = alert.width; | |
} | |
/* if it's set and it's not in the array of sizes OR it's an object and it's missing width/height */ | |
if( alert.size && ((typeof alert.size == 'object' && (typeof alert.size.width == 'undefined' || typeof alert.size.height == 'undefined'))) ) { | |
console.log('jAlert Config Error: Invalid size selection (try a preset or make sure you\'re including height and width in your size object).'); | |
return false; | |
} | |
/* If it's not set, set to md */ | |
else if( !alert.size ) | |
{ | |
classes.push('ja_sm'); | |
} | |
/* If it's set and it's an object */ | |
else if( typeof alert.size == 'object' ) | |
{ | |
styles.push('width: '+alert.size.width+';'); | |
styles.push('height: '+alert.size.height+';'); | |
classes.push('ja_setheight'); | |
} | |
/* If it's set and it's not an object */ | |
else | |
{ | |
//swap alias for actual size class | |
if( typeof sizeAliases[alert.size] !== 'undefined' ) | |
{ | |
alert.size = sizeAliases[alert.size]; | |
} | |
//if it's one of the sizes, set the class | |
if( $.inArray(alert.size, sizes) > -1 ) | |
{ | |
classes.push('ja_'+alert.size); | |
} | |
//otherwise, we assume they provided a px or % width | |
else | |
{ | |
styles.push('width: '+alert.size+';'); | |
} | |
} | |
/* Add background color class */ | |
if( $.inArray(alert.backgroundColor, backgroundColors) == -1 ) | |
{ | |
console.log('jAlert Config Error: Invalid background color selection.'); | |
return false; | |
} | |
backgroundClasses.push('ja_wrap_'+alert.backgroundColor); | |
alert.onOpen = [ alert.onOpen ]; | |
var onload = "onload='$.fn.jAlert.mediaLoaded($(this))'", | |
loader = "<div class='ja_loader'>Loading...</div>"; | |
/** | |
* Picture is now an alias for image | |
*/ | |
if( alert.picture ) | |
{ | |
alert.image = alert.picture; | |
} | |
/* Creates content */ | |
if( alert.image ) | |
{ | |
alert.content = "<div class='ja_media_wrap'>"+ | |
loader+ | |
"<img src='"+alert.image+"' class='ja_img' "+onload+"'"; | |
if( alert.imageWidth ) | |
{ | |
alert.content += " style='width: "+alert.imageWidth+"'"; | |
} | |
alert.content += ">"+ | |
"</div>"; | |
} | |
else if( alert.video ) | |
{ | |
alert.content = "<div class='ja_media_wrap'>"+ | |
loader+ | |
"<div class='ja_video'>"+ | |
"</div>"+ | |
"</div>"; | |
/* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */ | |
alert.onOpen.unshift( function(elem){ | |
var iframe = document.createElement("iframe"); | |
iframe.src = elem.jAlert().video; | |
if(iframe.addEventListener) | |
{ | |
iframe.addEventListener('load', function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}, true) | |
} | |
else if (iframe.attachEvent){ | |
iframe.attachEvent("onload", function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}); | |
} else { | |
iframe.onload = function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}; | |
} | |
elem.find('.ja_video').append(iframe); | |
}); | |
} | |
else if( alert.iframe ) | |
{ | |
if( !alert.iframeHeight ) | |
{ | |
alert.iframeHeight = $(window).height() +'px'; | |
} | |
alert.content = "<div class='ja_media_wrap'>"+ | |
loader+ | |
"</div>"; | |
/* Add to the onOpen callbacks array to append the iframe and attach the onload callback in a crossbrowser compatible way (IE is a bizitch). */ | |
alert.onOpen.unshift( function(elem){ | |
var iframe = document.createElement("iframe"); | |
iframe.src = elem.jAlert().iframe; | |
iframe.className = 'ja_iframe'; | |
if(iframe.addEventListener) | |
{ | |
iframe.addEventListener('load', function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}, true) | |
} | |
else if (iframe.attachEvent){ | |
iframe.attachEvent("onload", function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}); | |
} else { | |
iframe.onload = function(){ | |
$.fn.jAlert.mediaLoaded($(this)); | |
}; | |
} | |
elem.find('.ja_media_wrap').append(iframe); | |
}); | |
} | |
else if( alert.ajax ) | |
{ | |
alert.content = "<div class='ja_media_wrap'>"+ | |
loader+ | |
"</div>"; | |
/* Store as another var */ | |
onAjaxCallbacks = alert.onOpen; | |
/* Overwrite the onOpen to be the ajax call */ | |
alert.onOpen = [function(elem){ | |
$.ajax(elem.jAlert().ajax, { | |
async: true, | |
complete: function(jqXHR, textStatus) | |
{ | |
elem.find('.ja_media_wrap').replaceWith(jqXHR.responseText); | |
/* Run onOpen callbacks here */ | |
$.each(onAjaxCallbacks, function(index, onAjax){ | |
onAjax(elem); | |
}); | |
}, | |
error: function(jqXHR, textStatus, errorThrown) | |
{ | |
alert.onAjaxFail(elem, 'Error getting content: Code: '+jqXHR.status+ ' : Msg: '+jqXHR.statusText); | |
} | |
}); | |
}]; | |
} | |
var getBtnHTML = function(btn){ | |
if(typeof btn.href == 'undefined'){ btn.href = ''; } | |
if(typeof btn['class'] == 'undefined'){ btn['class'] = ''; } | |
if(typeof btn.theme == 'undefined'){ btn['class'] += ' ja_btn_default'; }else{ btn['class'] += ' ja_btn_'+btn.theme; } | |
if(typeof btn.text == 'undefined'){ btn.text = ''; } | |
if(typeof btn.id == 'undefined'){ var unique = Date.now().toString() + Math.floor(Math.random() * 100000); btn.id = 'ja_btn_' + unique; } | |
if(typeof btn.target == 'undefined'){ btn.target = '_self'; } | |
if(typeof btn.closeAlert == 'undefined'){ btn.closeAlert = true; } | |
$('body').off('click', '#'+btn.id); //remove handler before adding it to remove dupe handlers | |
/* Attach on click handler */ | |
$('body').on('click', '#'+btn.id, function(e){ | |
var button = $(this); | |
if( btn.closeAlert ) | |
{ | |
button.parents('.jAlert').jAlert().closeAlert(); | |
} | |
var callbackResponse = true; | |
if( typeof btn.onClick == 'function' ) | |
{ | |
callbackResponse = btn.onClick(e, button); | |
} | |
if( !callbackResponse || btn.closeAlert ) | |
{ | |
e.preventDefault(); | |
return false; | |
} | |
return callbackResponse; | |
}); | |
return "<a href='"+btn.href+"' id='"+btn.id+"' target='"+btn.target+"' class='ja_btn "+btn['class']+"'>"+btn.text+"</a> "; | |
}; | |
/* Adds a new alert to the dom */ | |
var addAlert = function(content){ | |
var html = ''; | |
html += '<div class="ja_wrap '+backgroundClasses.join(' ')+'">'+ | |
'<div class="jAlert '+classes.join(' ')+ '" style="' +styles.join(' ')+ '" id="' +alert.id+ '">'+ | |
'<div>'; | |
if( alert.closeBtn ) | |
{ | |
html += "<div class='closejAlert ja_close"; | |
if( alert.closeBtnAlt ) | |
{ | |
html += ' ja_close_alt'; | |
} | |
else if( alert.closeBtnRoundWhite ) | |
{ | |
html += ' ja_close_round_white'; | |
} | |
else if( alert.closeBtnRound ) | |
{ | |
html += ' ja_close_round'; | |
} | |
html += "'>×</div>"; //closejAlert has a close handler attached, ja_close is for styling | |
} | |
if( alert.title ) | |
{ | |
html += "<div class='ja_title'><div>"+alert.title+"</div></div>"; | |
} | |
html += '<div class="ja_body">'+content; | |
if( alert.btns ) | |
{ | |
html += '<div class="ja_btn_wrap '; | |
if( alert.btnBackground ) | |
{ | |
html += 'optBack'; | |
} | |
html += '">'; | |
} | |
if( typeof alert.btns[0] == 'object' ) | |
{ | |
$.each(alert.btns, function(index, btn){ | |
if( typeof btn == 'object' ) | |
{ | |
html += getBtnHTML(btn); | |
} | |
}); | |
} | |
else if( typeof alert.btns == 'object' ) | |
{ | |
html += getBtnHTML(alert.btns); | |
} | |
else if( alert.btns ) | |
{ | |
console.log('jAlert Config Error: Incorrect value for btns (must be object or array of objects): '+alert.btns); | |
} | |
if( alert.btns ) | |
{ | |
html += '</div>'; | |
} | |
html += '</div>'+ | |
'</div>'+ | |
'</div>'+ | |
'</div>'; | |
var alertHTML = $(html); | |
if( alert.replaceOtherAlerts ) | |
{ | |
var alerts = $('.jAlert:visible'); | |
alerts.each(function(){ | |
$(this).jAlert().closeAlert(); | |
}); | |
} | |
$('body').append(alertHTML); | |
//cache instance | |
alert.instance = $('#'+alert.id); | |
//attach alert object to dom element | |
alert.instance[0]['jAlert'] = alert; | |
//doing this now will prevent it from happening mid-animation | |
$('body').css('overflow', 'hidden'); | |
//show the new alert | |
alert.animateAlert('show'); | |
//add close button handler | |
if( alert.closeBtn ){ | |
alert.instance.on('click', '.closejAlert', function(e){ | |
e.preventDefault(); | |
$(this).parents('.jAlert:first').jAlert().closeAlert(); | |
return false; | |
}); | |
} | |
/* Bind mouseup handler to document if this alert has closeOnClick enabled */ | |
if( alert.closeOnClick ){ | |
/* Unbind if already exists */ | |
$(document).off('mouseup touchstart', $.fn.jAlert.onMouseUp); | |
/* Bind mouseup */ | |
$(document).on('mouseup touchstart', $.fn.jAlert.onMouseUp); | |
} | |
/* Bind on keydown handler to document and if esc was pressed, find all visible jAlerts with that close option enabled and close them */ | |
if( alert.closeOnEsc ){ | |
/* Unbind if already exists */ | |
$(document).off('keydown', $.fn.jAlert.onEscKeyDown); | |
/* Bind keydown */ | |
$(document).on('keydown', $.fn.jAlert.onEscKeyDown); | |
} | |
/* If there are onOpen callbacks, run them. */ | |
if( alert.onOpen ) | |
{ | |
$.each(alert.onOpen, function(index, onOpen){ | |
onOpen(alert.instance); | |
}); | |
} | |
/* If the alert has an element that should be focused by default */ | |
if( alert.autofocus ) | |
{ | |
alert.instance.find(alert.autofocus).focus(); | |
} | |
else | |
{ | |
alert.instance.focus(); | |
} | |
alert.instance.bind("DOMSubtreeModified", function(){ | |
alert.centerAlert(); | |
}); | |
return alert.instance; | |
}; | |
/* Shows an alert based on content type */ | |
this.initialize = function(){ | |
if( !alert.content && !alert.image && !alert.video && !alert.iframe && !alert.ajax ) | |
{ | |
console.log('jAlert potential error: No content defined'); | |
return addAlert(''); | |
} | |
else | |
{ | |
if( !alert.content ) | |
{ | |
alert.content = ''; | |
} | |
return addAlert(alert.content); | |
} | |
}; | |
//initialize | |
this.initialize(); | |
//return the object so you can chain public methods/properties | |
return alert; | |
/* END OF PLUGIN */ | |
}; | |
/* Default alert */ | |
$.fn.jAlert.defaults = { | |
'title': false, //title for the popup (false = don't show) | |
'content': false, //html for the popup (replaced if you use image, ajax, or iframe) | |
'noPadContent': false, //remove padding from the body | |
'fullscreen': false, //make the jAlert completely fullscreen | |
'image': false, //adds a centered img tag | |
'imageWidth': 'auto', //defaults to max-width: 100%; width: auto; | |
'video': false, //adds a responsive iframe video - value is the "src" of the iframe | |
'ajax': false, //uses ajax call to get contents | |
'onAjaxFail': function(alert, errorThrown){ //callback for when ajax fails | |
alert.jAlert().closeAlert(); | |
errorAlert(errorThrown); | |
}, | |
'iframe': false, //uses iframe as content | |
'iframeHeight': false, //string. height of the iframe within the popup (false = 90% of viewport height) | |
'class': '', //adds a class to the jAlert (add as many as you want space delimited) | |
'classes': '', //add classes to the jAlert (space delimited) | |
'id': false, //adds an ID to the jAlert | |
'showAnimation': 'fadeInUp', | |
'hideAnimation': 'fadeOutDown', | |
'animationTimeout': 600, //approx duration of animation to wait until onClose | |
'theme': 'default', // red, green, blue, black, default | |
'backgroundColor': 'black', //white, black | |
'blurBackground': false, //blurs background elements | |
'size': false, //false = css default, xsm, sm, md, lg, xlg, full, { height: 200, width: 200 } | |
'replaceOtherAlerts': false, //if there's already an open jAlert, remove it first | |
'closeOnClick': false, //close the alert when you click anywhere | |
'closeOnEsc': true, //close the alert when you click the escape key | |
'closeBtn': true, //adds a button to the top right of the alert that allows you to close it | |
'closeBtnAlt': false, //alternative close button | |
'closeBtnRound': true, //alternative round close button | |
'closeBtnRoundWhite': false, //alternative round close button (in white) | |
'btns': false, //adds buttons to the popup at the bottom. Pass an object for a single button, or an object of objects for many | |
/* | |
Variety of buttons you could create (also, an example of how to pass the object | |
'btns': [ | |
{'text':'Open in new window', 'closeAlert':false, 'href': 'http://google.com', 'target':'_new'}, | |
{'text':'Cool, close this alert', 'theme': 'blue', 'closeAlert':true}, | |
{'text':'Buy Now', 'closeAlert':true, 'theme': 'green', 'onClick': function(){ console.log('You bought it!'); } }, | |
{'text':'I do not want it', 'closeAlert': true, 'theme': 'red', 'onClick': function(){ console.log('Did not want it'); } }, | |
{'text':'DOA', 'closeAlert': true, 'theme': 'black', 'onClick': function(){ console.log('Dead on arrival'); } } | |
] | |
*/ | |
'btnBackground': true, //adds optional background to btns | |
'autofocus': false, //pass a selector to autofocus on it | |
'onOpen': function(alert){ //on open call back. Fires just after the alert has finished rendering | |
return false; | |
}, | |
'onClose': function(alert){ //fires when you close the alert | |
return false; | |
}, | |
'type': 'modal', //modal, confirm, tooltip | |
/* The following only applies when type == 'confirm' */ | |
'confirmQuestion': 'Are you sure?', | |
'confirmBtnText': 'Yes', | |
'denyBtnText': 'No', | |
'confirmAutofocus': '.confirmBtn', //confirmBtn or denyBtn | |
'onConfirm': function(e, btn){ | |
e.preventDefault(); | |
console.log('confirmed'); | |
return false; | |
}, | |
'onDeny': function(e, btn){ | |
e.preventDefault(); | |
//console.log('denied'); | |
return false; | |
} | |
}; | |
/** Mouseup on document */ | |
$.fn.jAlert.onMouseUp = function(e){ | |
//cross browser | |
var target = e.target ? e.target : e.srcElement; | |
/* Find top visible jAlert and see if it has closeOnClick enabled */ | |
var lastVisibleAlert = $('.jAlert:visible:last'); | |
if( lastVisibleAlert.length > 0 && lastVisibleAlert.jAlert().closeOnClick ) | |
{ | |
//close only if clicked outside | |
if( !$(target).is('.jAlert *') ) | |
{ | |
lastVisibleAlert.jAlert().closeAlert(); | |
} | |
} | |
}; | |
/* Keydown on document (escape key) */ | |
$.fn.jAlert.onEscKeyDown = function(e){ | |
/* Escape = 27 */ | |
if(e.keyCode === 27){ | |
/* Find top visible jAlert and see if it has closeOnClick enabled */ | |
var lastVisibleAlert = $('.jAlert:visible:last'); | |
if( lastVisibleAlert.length > 0 && lastVisibleAlert.jAlert().closeOnEsc ) | |
{ | |
lastVisibleAlert.jAlert().closeAlert(); | |
} | |
} | |
}; | |
$.fn.attachjAlert = function(e){ | |
e.preventDefault(); | |
$.jAlert($(this).data()); | |
return false; | |
}; | |
/* If you're not using the DOM (aka, you're not hiding or showing a specific alert, you can just use $.jAlert */ | |
$.jAlert = function(options){ | |
/** | |
* If you pass "current" to $.jAlert('current'); it should return the top-most visible jAlert | |
*/ | |
if( options == 'current' ) | |
{ | |
var latest = $('.jAlert:visible:last'); | |
if( latest.length > 0 ) | |
{ | |
return latest.jAlert(); | |
} | |
return false; | |
} | |
/** | |
* Attaches the on-click handler to data-attributes | |
*/ | |
if( options == 'attach' ) | |
{ | |
/* If there are data attributes for showing jAlerts, add the click handler */ | |
$('[data-jAlert]').off('click', $.fn.attachjAlert); | |
$('[data-jAlert]').on('click', $.fn.attachjAlert); | |
$('[data-jalert]').off('click', $.fn.attachjAlert); | |
$('[data-jalert]').on('click', $.fn.attachjAlert); | |
return false; | |
} | |
return $.fn.jAlert(options); | |
}; | |
/* Alert on click function - attach to existing dom */ | |
$.fn.alertOnClick = function(options) | |
{ | |
$(this).on('click', function(e){ | |
e.preventDefault(); | |
$.jAlert(options); | |
return false; | |
}); | |
}; | |
/* Alert on click function - global, works for changing dom */ | |
$.alertOnClick = function(selector, options) | |
{ | |
$('body').on('click', selector, function(e){ | |
e.preventDefault(); | |
$.jAlert(options); | |
return false; | |
}); | |
}; | |
$.fn.closeAlert = function(remove, onClose){ | |
$(this).jAlert().closeAlert(remove, onClose); | |
}; | |
/* Slowed window resize function */ | |
var $jAlertResizeTimeout; | |
$(window).resize(function () { | |
window.clearTimeout($jAlertResizeTimeout); | |
$jAlertResizeTimeout = window.setTimeout(function(){ | |
$('.jAlert:visible').each(function(){ | |
$(this).jAlert().centerAlert(); | |
}); | |
}, 200); | |
}); | |
/* Onload callback for iframe, img, etc */ | |
$.fn.jAlert.mediaLoaded = function(elem){ | |
var wrap = elem.parents('.ja_media_wrap'), | |
vid_wrap = wrap.find('.ja_video'), | |
alert = elem.parents('.jAlert:first'), | |
jalert = alert.jAlert(); | |
wrap.find('.ja_loader').remove(); | |
if( vid_wrap.length > 0 ) | |
{ | |
vid_wrap.fadeIn('fast'); | |
} | |
else | |
{ | |
elem.fadeIn('fast'); | |
} | |
//if iframe, add height after load and set display: block | |
if( typeof jalert.iframeHeight !== 'undefined' && jalert.iframeHeight ) | |
{ | |
elem.css('display', 'block'); | |
elem.height(jalert.iframeHeight); | |
} | |
jalert.centerAlert(); | |
}; | |
/* END OF ON JQUERY LOAD */ | |
})(jQuery); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment