{"theme":"#ffffff","size":"normal","time":{"color":"#555","display":"false"},"day":{"color":"#555","display":"false"},"devices":{"color":"#555","display":"false"},"topsites":{"display":"false"},"css":"\n.clock-bg {\n position: fixed;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n \n.clock-title {\n font-size: 64px;\n font-family: 'Covered By Your Grace', cursive;\n color: #F44336;\n}\n\n.margin-top {\n margin-top: 20px;\n text-align: center;\n}\n\n.flip-clock-divider .flip-clock-label {\n font-size: 16px;\n font-family: 'Covered By Your Grace', cursive;\n color: #F44336;\n}\n\n.flip-clock-wrapper ul {\n background: #F44336;\n}\n\n.flip-clock-wrapper ul li a div.up:after {\n background-color: #F44336;\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.flip-clock-wrapper ul li a div div.inn {\n color: #fff;\n text-shadow: 0 1px 1px #555;\n background-color: #F44336;\n}\n\n.session-clock, .break-clock {\n display: inline-block;\n width: auto;\n}\n\n.btn-edit {\n width: 64px;\n font-size: 36px;\n color: white;\n background: #333333;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);\n border: none;\n border-radius: 5px;\n margin: 5px;\n width: 130px;\n cursor: pointer;\n}\n\n.btn-main {\n width: 225px;\n font-size: 36px;\n color: white;\n background: #F44336;\n font-family: 'Covered By Your Grace', cursive;\n margin: 10px 0;\n}\n\n.btn-main:hover {\n color: white;\n}\n\n.btn-main:focus {\n color: white;\n outline: none;\n}\n\n.btn-edit:hover{\n color: white;\n}\n\n.btn-edit:focus{\n color:white;\n outline: none;\n}\n\n#credit{\n font-size: 32px;\n color: #F44336;\n font-family: 'Covered By Your Grace', cursive;\n}\n\n/* Get the bourbon mixin from http://bourbon.io */\n/* Reset */\n.flip-clock-wrapper * {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n -ms-box-sizing: border-box;\n -o-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n -ms-backface-visibility: hidden;\n -o-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n\n.flip-clock-wrapper a {\n cursor: pointer;\n text-decoration: none;\n color: #ccc; }\n\n.flip-clock-wrapper a:hover {\n color: #fff; }\n\n.flip-clock-wrapper ul {\n list-style: none; }\n\n.flip-clock-wrapper.clearfix:before,\n.flip-clock-wrapper.clearfix:after {\n content: \" \";\n display: table; }\n\n.flip-clock-wrapper.clearfix:after {\n clear: both; }\n\n.flip-clock-wrapper.clearfix {\n *zoom: 1; }\n\n/* Main */\n.flip-clock-wrapper {\n font: normal 11px \"Helvetica Neue\", Helvetica, sans-serif;\n -webkit-user-select: none; }\n\n.flip-clock-meridium {\n background: none !important;\n box-shadow: 0 0 0 !important;\n font-size: 36px !important; }\n\n.flip-clock-meridium a { color: #313333; }\n\n.flip-clock-wrapper {\n text-align: center;\n position: relative;\n width: 100%;\n margin: 1em;\n}\n\n.flip-clock-wrapper:before,\n.flip-clock-wrapper:after {\n content: \" \"; /* 1 */\n display: table; /* 2 */\n}\n.flip-clock-wrapper:after {\n clear: both;\n}\n\n/* Skeleton */\n.flip-clock-wrapper ul {\n position: relative;\n float: left;\n margin: 5px;\n width: 60px;\n height: 90px;\n font-size: 80px;\n font-weight: bold;\n line-height: 87px;\n border-radius: 6px;\n background: #000;\n}\n\n.flip-clock-wrapper ul li {\n z-index: 1;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n line-height: 87px;\n text-decoration: none !important;\n}\n\n.flip-clock-wrapper ul li:first-child {\n z-index: 2; }\n\n.flip-clock-wrapper ul li a {\n display: block;\n height: 100%;\n -webkit-perspective: 200px;\n -moz-perspective: 200px;\n perspective: 200px;\n margin: 0 !important;\n overflow: visible !important;\n cursor: default !important; }\n\n.flip-clock-wrapper ul li a div {\n z-index: 1;\n position: absolute;\n left: 0;\n width: 100%;\n height: 50%;\n font-size: 80px;\n overflow: hidden; \n outline: 1px solid transparent; }\n\n.flip-clock-wrapper ul li a div .shadow {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 2; }\n\n.flip-clock-wrapper ul li a div.up {\n -webkit-transform-origin: 50% 100%;\n -moz-transform-origin: 50% 100%;\n -ms-transform-origin: 50% 100%;\n -o-transform-origin: 50% 100%;\n transform-origin: 50% 100%;\n top: 0; }\n\n.flip-clock-wrapper ul li a div.up:after {\n content: \"\";\n position: absolute;\n top: 44px;\n left: 0;\n z-index: 5;\n width: 100%;\n height: 3px;\n background-color: #000;\n background-color: rgba(0, 0, 0, 0.4); }\n\n.flip-clock-wrapper ul li a div.down {\n -webkit-transform-origin: 50% 0;\n -moz-transform-origin: 50% 0;\n -ms-transform-origin: 50% 0;\n -o-transform-origin: 50% 0;\n transform-origin: 50% 0;\n bottom: 0;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n\n.flip-clock-wrapper ul li a div div.inn {\n position: absolute;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 200%;\n color: #ccc;\n text-shadow: 0 1px 2px #000;\n text-align: center;\n background-color: #333;\n border-radius: 6px;\n font-size: 70px; }\n\n.flip-clock-wrapper ul li a div.up div.inn {\n top: 0; }\n\n.flip-clock-wrapper ul li a div.down div.inn {\n bottom: 0; }\n\n/* PLAY */\n.flip-clock-wrapper ul.play li.flip-clock-before {\n z-index: 3; }\n\n.flip-clock-wrapper .flip { box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7); }\n\n.flip-clock-wrapper ul.play li.flip-clock-active {\n -webkit-animation: asd 0.5s 0.5s linear both;\n -moz-animation: asd 0.5s 0.5s linear both;\n animation: asd 0.5s 0.5s linear both;\n z-index: 5; }\n\n.flip-clock-divider {\n float: left;\n display: inline-block;\n position: relative;\n width: 20px;\n height: 100px; }\n\n.flip-clock-divider:first-child {\n width: 0; }\n\n.flip-clock-dot {\n display: block;\n background: #323434;\n width: 10px;\n height: 10px;\n position: absolute;\n border-radius: 50%;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);\n left: 5px; }\n\n.flip-clock-divider .flip-clock-label {\n position: absolute;\n top: -1.5em;\n right: -86px;\n color: black;\n text-shadow: none; }\n\n.flip-clock-divider.minutes .flip-clock-label {\n right: -88px; }\n\n.flip-clock-divider.seconds .flip-clock-label {\n right: -91px; }\n\n.flip-clock-dot.top {\n top: 30px; }\n\n.flip-clock-dot.bottom {\n bottom: 30px; }\n\n@-webkit-keyframes asd {\n 0% {\n z-index: 2; }\n\n 20% {\n z-index: 4; }\n\n 100% {\n z-index: 4; } }\n\n@-moz-keyframes asd {\n 0% {\n z-index: 2; }\n\n 20% {\n z-index: 4; }\n\n 100% {\n z-index: 4; } }\n\n@-o-keyframes asd {\n 0% {\n z-index: 2; }\n\n 20% {\n z-index: 4; }\n\n 100% {\n z-index: 4; } }\n\n@keyframes asd {\n 0% {\n z-index: 2; }\n\n 20% {\n z-index: 4; }\n\n 100% {\n z-index: 4; } }\n\n.flip-clock-wrapper ul.play li.flip-clock-active .down {\n z-index: 2;\n -webkit-animation: turn 0.5s 0.5s linear both;\n -moz-animation: turn 0.5s 0.5s linear both;\n animation: turn 0.5s 0.5s linear both; }\n\n@-webkit-keyframes turn {\n 0% {\n -webkit-transform: rotateX(90deg); }\n\n 100% {\n -webkit-transform: rotateX(0deg); } }\n\n@-moz-keyframes turn {\n 0% {\n -moz-transform: rotateX(90deg); }\n\n 100% {\n -moz-transform: rotateX(0deg); } }\n\n@-o-keyframes turn {\n 0% {\n -o-transform: rotateX(90deg); }\n\n 100% {\n -o-transform: rotateX(0deg); } }\n\n@keyframes turn {\n 0% {\n transform: rotateX(90deg); }\n\n 100% {\n transform: rotateX(0deg); } }\n\n.flip-clock-wrapper ul.play li.flip-clock-before .up {\n z-index: 2;\n -webkit-animation: turn2 0.5s linear both;\n -moz-animation: turn2 0.5s linear both;\n animation: turn2 0.5s linear both; }\n\n@-webkit-keyframes turn2 {\n 0% {\n -webkit-transform: rotateX(0deg); }\n\n 100% {\n -webkit-transform: rotateX(-90deg); } }\n\n@-moz-keyframes turn2 {\n 0% {\n -moz-transform: rotateX(0deg); }\n\n 100% {\n -moz-transform: rotateX(-90deg); } }\n\n@-o-keyframes turn2 {\n 0% {\n -o-transform: rotateX(0deg); }\n\n 100% {\n -o-transform: rotateX(-90deg); } }\n\n@keyframes turn2 {\n 0% {\n transform: rotateX(0deg); }\n\n 100% {\n transform: rotateX(-90deg); } }\n\n.flip-clock-wrapper ul li.flip-clock-active {\n z-index: 3; }\n\n/* SHADOW */\n.flip-clock-wrapper ul.play li.flip-clock-before .up .shadow {\n background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, black));\n background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;\n background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;\n -webkit-animation: show 0.5s linear both;\n -moz-animation: show 0.5s linear both;\n animation: show 0.5s linear both; }\n\n.flip-clock-wrapper ul.play li.flip-clock-active .up .shadow {\n background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, black));\n background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;\n background: -o-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: -ms-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, black 100%);\n background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;\n -webkit-animation: hide 0.5s 0.3s linear both;\n -moz-animation: hide 0.5s 0.3s linear both;\n animation: hide 0.5s 0.3s linear both; }\n\n/*DOWN*/\n.flip-clock-wrapper ul.play li.flip-clock-before .down .shadow {\n background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, black), color-stop(100%, rgba(0, 0, 0, 0.1)));\n background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;\n background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;\n -webkit-animation: show 0.5s linear both;\n -moz-animation: show 0.5s linear both;\n animation: show 0.5s linear both; }\n\n.flip-clock-wrapper ul.play li.flip-clock-active .down .shadow {\n background: -moz-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, black), color-stop(100%, rgba(0, 0, 0, 0.1)));\n background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;\n background: -o-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: -ms-linear-gradient(top, black 0%, rgba(0, 0, 0, 0.1) 100%);\n background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;\n -webkit-animation: hide 0.5s 0.3s linear both;\n -moz-animation: hide 0.5s 0.3s linear both;\n animation: hide 0.5s 0.2s linear both; }\n\n@-webkit-keyframes show {\n 0% {\n opacity: 0; }\n\n 100% {\n opacity: 1; } }\n\n@-moz-keyframes show {\n 0% {\n opacity: 0; }\n\n 100% {\n opacity: 1; } }\n\n@-o-keyframes show {\n 0% {\n opacity: 0; }\n\n 100% {\n opacity: 1; } }\n\n@keyframes show {\n 0% {\n opacity: 0; }\n\n 100% {\n opacity: 1; } }\n\n@-webkit-keyframes hide {\n 0% {\n opacity: 1; }\n\n 100% {\n opacity: 0; } }\n\n@-moz-keyframes hide {\n 0% {\n opacity: 1; }\n\n 100% {\n opacity: 0; } }\n\n@-o-keyframes hide {\n 0% {\n opacity: 1; }\n\n 100% {\n opacity: 0; } }\n\n@keyframes hide {\n 0% {\n opacity: 1; }\n\n 100% {\n opacity: 0; } }\n\n.flip-clock-label, .flip-clock-divider {\n display: none;\n}\n\n.flip-clock-wrapper {\n display: flex;\n justify-content: center;\n margin: 0;\n zoom: 2.8;\n}\n\n.buttons {\n display: flex;\n justify-content: space-between;\n}\n\n.buttons button#btn-blacklist {\n margin-right: 52px;\n}\n\n.blacklist {\n margin: 10px 57px 0 5px;\n}\n\n.blacklist textarea {\n opacity: 0;\n height: 0;\n}","version":"1.0.0","script":"\n// flipclock.js\nvar Base=function(){};Base.extend=function(a,b){\"use strict\";var c=Base.prototype.extend;Base._prototyping=!0;var d=new this;c.call(d,a),d.base=function(){},delete Base._prototyping;var e=d.constructor,f=d.constructor=function(){if(!Base._prototyping)if(this._constructing||this.constructor==f)this._constructing=!0,e.apply(this,arguments),delete this._constructing;else if(null!==arguments[0])return(arguments[0].extend||c).call(arguments[0],d)};return f.ancestor=this,f.extend=this.extend,f.forEach=this.forEach,f.implement=this.implement,f.prototype=d,f.toString=this.toString,f.valueOf=function(a){return\"object\"==a?f:e.valueOf()},c.call(f,b),\"function\"==typeof f.init&&f.init(),f},Base.prototype={extend:function(a,b){if(arguments.length>1){var c=this[a];if(c&&\"function\"==typeof b&&(!c.valueOf||c.valueOf()!=b.valueOf())&&/\\bbase\\b/.test(b)){var d=b.valueOf();b=function(){var a=this.base||Base.prototype.base;this.base=c;var b=d.apply(this,arguments);return this.base=a,b},b.valueOf=function(a){return\"object\"==a?b:d},b.toString=Base.toString}this[a]=b}else if(a){var e=Base.prototype.extend;Base._prototyping||\"function\"==typeof this||(e=this.extend||e);for(var f={toSource:null},g=[\"constructor\",\"toString\",\"valueOf\"],h=Base._prototyping?0:1;i=g[h++];)a[i]!=f[i]&&e.call(this,i,a[i]);for(var i in a)f[i]||e.call(this,i,a[i])}return this}},Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:\"1.1\",forEach:function(a,b,c){for(var d in a)void 0===this.prototype[d]&&b.call(c,a[d],d,a)},implement:function(){for(var a=0;a',''].join(\"\");d&&(e=\"\"),b=this.factory.localize(b);var f=['',''+(b?b:\"\")+\"\",e,\"\"],g=a(f.join(\"\"));return this.dividers.push(g),g},createList:function(a,b){\"object\"==typeof a&&(b=a,a=0);var c=new FlipClock.List(this.factory,a,b);return this.lists.push(c),c},reset:function(){this.factory.time=new FlipClock.Time(this.factory,this.factory.original?Math.round(this.factory.original):0,{minimumDigits:this.factory.minimumDigits}),this.flip(this.factory.original,!1)},appendDigitToClock:function(a){a.$el.append(!1)},addDigit:function(a){var b=this.createList(a,{classes:{active:this.factory.classes.active,before:this.factory.classes.before,flip:this.factory.classes.flip}});this.appendDigitToClock(b)},start:function(){},stop:function(){},autoIncrement:function(){this.factory.countdown?this.decrement():this.increment()},increment:function(){this.factory.time.addSecond()},decrement:function(){0==this.factory.time.getTimeSeconds()?this.factory.stop():this.factory.time.subSecond()},flip:function(b,c){var d=this;a.each(b,function(a,b){var e=d.lists[a];e?(c||b==e.digit||e.play(),e.select(b)):d.addDigit(b)})}})}(jQuery),function(a){\"use strict\";FlipClock.Factory=FlipClock.Base.extend({animationRate:1e3,autoStart:!0,callbacks:{destroy:!1,create:!1,init:!1,interval:!1,start:!1,stop:!1,reset:!1},classes:{active:\"flip-clock-active\",before:\"flip-clock-before\",divider:\"flip-clock-divider\",dot:\"flip-clock-dot\",label:\"flip-clock-label\",flip:\"flip\",play:\"play\",wrapper:\"flip-clock-wrapper\"},clockFace:\"HourlyCounter\",countdown:!1,defaultClockFace:\"HourlyCounter\",defaultLanguage:\"english\",$el:!1,face:!0,lang:!1,language:\"english\",minimumDigits:0,original:!1,running:!1,time:!1,timer:!1,$wrapper:!1,constructor:function(b,c,d){d||(d={}),this.lists=[],this.running=!1,this.base(d),this.$el=a(b).addClass(this.classes.wrapper),this.$wrapper=this.$el,this.original=c instanceof Date?c:c?Math.round(c):0,this.time=new FlipClock.Time(this,this.original,{minimumDigits:this.minimumDigits,animationRate:this.animationRate}),this.timer=new FlipClock.Timer(this,d),this.loadLanguage(this.language),this.loadClockFace(this.clockFace,d),this.autoStart&&this.start()},loadClockFace:function(a,b){var c,d=\"Face\",e=!1;return a=a.ucfirst()+d,this.face.stop&&(this.stop(),e=!0),this.$el.html(\"\"),this.time.minimumDigits=this.minimumDigits,c=FlipClock[a]?new FlipClock[a](this,b):new FlipClock[this.defaultClockFace+d](this,b),c.build(),this.face=c,e&&this.start(),this.face},loadLanguage:function(a){var b;return b=FlipClock.Lang[a.ucfirst()]?FlipClock.Lang[a.ucfirst()]:FlipClock.Lang[a]?FlipClock.Lang[a]:FlipClock.Lang[this.defaultLanguage],this.lang=b},localize:function(a,b){var c=this.lang;if(!a)return null;var d=a.toLowerCase();return\"object\"==typeof b&&(c=b),c&&c[d]?c[d]:a},start:function(a){var b=this;b.running||b.countdown&&!(b.countdown&&b.time.time>0)?b.log(\"Trying to start timer when countdown already at 0\"):(b.face.start(b.time),b.timer.start(function(){b.flip(),\"function\"==typeof a&&a()}))},stop:function(a){this.face.stop(),this.timer.stop(a);for(var b in this.lists)this.lists.hasOwnProperty(b)&&this.lists[b].stop()},reset:function(a){this.timer.reset(a),this.face.reset()},setTime:function(a){this.time.time=a,this.flip(!0)},getTime:function(){return this.time},setCountdown:function(a){var b=this.running;this.countdown=a?!0:!1,b&&(this.stop(),this.start())},flip:function(a){this.face.flip(!1,a)}})}(jQuery),function(a){\"use strict\";FlipClock.List=FlipClock.Base.extend({digit:0,classes:{active:\"flip-clock-active\",before:\"flip-clock-before\",flip:\"flip\"},factory:!1,$el:!1,$obj:!1,items:[],lastDigit:0,constructor:function(a,b){this.factory=a,this.digit=b,this.lastDigit=b,this.$el=this.createList(),this.$obj=this.$el,b>0&&this.select(b),this.factory.$el.append(this.$el)},select:function(a){if(\"undefined\"==typeof a?a=this.digit:this.digit=a,this.digit!=this.lastDigit){var b=this.$el.find(\".\"+this.classes.before).removeClass(this.classes.before);this.$el.find(\".\"+this.classes.active).removeClass(this.classes.active).addClass(this.classes.before),this.appendListItem(this.classes.active,this.digit),b.remove(),this.lastDigit=this.digit}},play:function(){this.$el.addClass(this.factory.classes.play)},stop:function(){var a=this;setTimeout(function(){a.$el.removeClass(a.factory.classes.play)},this.factory.timer.interval)},createListItem:function(a,b){return['
  • ','','
    ','
    ','
    '+(b?b:\"\")+\"
    \",\"
    \",'
    ','
    ','
    '+(b?b:\"\")+\"
    \",\"
    \",\"
    \",\"
  • \"].join(\"\")},appendListItem:function(a,b){var c=this.createListItem(a,b);this.$el.append(c)},createList:function(){var b=this.getPrevDigit()?this.getPrevDigit():this.digit,c=a(['\"].join(\"\"));return c},getNextDigit:function(){return 9==this.digit?0:this.digit+1},getPrevDigit:function(){return 0==this.digit?9:this.digit-1}})}(jQuery),function(a){\"use strict\";String.prototype.ucfirst=function(){return this.substr(0,1).toUpperCase()+this.substr(1)},a.fn.FlipClock=function(b,c){return new FlipClock(a(this),b,c)},a.fn.flipClock=function(b,c){return a.fn.FlipClock(b,c)}}(jQuery),function(a){\"use strict\";FlipClock.Time=FlipClock.Base.extend({time:0,factory:!1,minimumDigits:0,constructor:function(a,b,c){\"object\"!=typeof c&&(c={}),c.minimumDigits||(c.minimumDigits=a.minimumDigits),this.base(c),this.factory=a,b&&(this.time=b)},convertDigitsToArray:function(a){var b=[];a=a.toString();for(var c=0;cthis.minimumDigits&&(this.minimumDigits=c.length),this.minimumDigits>c.length)for(var d=c.length;d12?c-12:0===c?12:c,a.getMinutes()];return b===!0&&d.push(a.getSeconds()),this.digitize(d)},getSeconds:function(a){var b=this.getTimeSeconds();return a&&(60==b?b=0:b%=60),Math.ceil(b)},getWeeks:function(a){var b=this.getTimeSeconds()/60/60/24/7;return a&&(b%=52),Math.floor(b)},removeLeadingZeros:function(b,c){var d=0,e=[];return a.each(c,function(a){b>a?d+=parseInt(c[a],10):e.push(c[a])}),0===d?e:c},addSeconds:function(a){this.time instanceof Date?this.time.setSeconds(this.time.getSeconds()+a):this.time+=a},addSecond:function(){this.addSeconds(1)},subSeconds:function(a){this.time instanceof Date?this.time.setSeconds(this.time.getSeconds()-a):this.time-=a},subSecond:function(){this.subSeconds(1)},toString:function(){return this.getTimeSeconds().toString()}})}(jQuery),function(){\"use strict\";FlipClock.Timer=FlipClock.Base.extend({callbacks:{destroy:!1,create:!1,init:!1,interval:!1,start:!1,stop:!1,reset:!1},count:0,factory:!1,interval:1e3,animationRate:1e3,constructor:function(a,b){this.base(b),this.factory=a,this.callback(this.callbacks.init),this.callback(this.callbacks.create)},getElapsed:function(){return this.count*this.interval},getElapsedTime:function(){return new Date(this.time+this.getElapsed())},reset:function(a){clearInterval(this.timer),this.count=0,this._setInterval(a),this.callback(this.callbacks.reset)},start:function(a){this.factory.running=!0,this._createTimer(a),this.callback(this.callbacks.start)},stop:function(a){this.factory.running=!1,this._clearInterval(a),this.callback(this.callbacks.stop),this.callback(a)},_clearInterval:function(){clearInterval(this.timer)},_createTimer:function(a){this._setInterval(a)},_destroyTimer:function(a){this._clearInterval(),this.timer=!1,this.callback(a),this.callback(this.callbacks.destroy)},_interval:function(a){this.callback(this.callbacks.interval),this.callback(a),this.count++},_setInterval:function(a){var b=this;b._interval(a),b.timer=setInterval(function(){b._interval(a)},this.interval)}})}(jQuery),function(a){FlipClock.TwentyFourHourClockFace=FlipClock.Face.extend({constructor:function(a,b){this.base(a,b)},build:function(b){var c=this,d=this.factory.$el.find(\"ul\");this.factory.time.time||(this.factory.original=new Date,this.factory.time=new FlipClock.Time(this.factory,this.factory.original));var b=b?b:this.factory.time.getMilitaryTime(!1,this.showSeconds);b.length>d.length&&a.each(b,function(a,b){c.createList(b)}),this.createDivider(),this.createDivider(),a(this.dividers[0]).insertBefore(this.lists[this.lists.length-2].$el),a(this.dividers[1]).insertBefore(this.lists[this.lists.length-4].$el),this.base()},flip:function(a,b){this.autoIncrement(),a=a?a:this.factory.time.getMilitaryTime(!1,this.showSeconds),this.base(a,b)}})}(jQuery),function(a){FlipClock.CounterFace=FlipClock.Face.extend({shouldAutoIncrement:!1,constructor:function(a,b){\"object\"!=typeof b&&(b={}),a.autoStart=b.autoStart?!0:!1,b.autoStart&&(this.shouldAutoIncrement=!0),a.increment=function(){a.countdown=!1,a.setTime(a.getTime().getTimeSeconds()+1)},a.decrement=function(){a.countdown=!0;var b=a.getTime().getTimeSeconds();b>0&&a.setTime(b-1)},a.setValue=function(b){a.setTime(b)},a.setCounter=function(b){a.setTime(b)},this.base(a,b)},build:function(){var b=this,c=this.factory.$el.find(\"ul\"),d=this.factory.getTime().digitize([this.factory.getTime().time]);d.length>c.length&&a.each(d,function(a,c){var d=b.createList(c);d.select(c)}),a.each(this.lists,function(a,b){b.play()}),this.base()},flip:function(a,b){this.shouldAutoIncrement&&this.autoIncrement(),a||(a=this.factory.getTime().digitize([this.factory.getTime().time])),this.base(a,b)},reset:function(){this.factory.time=new FlipClock.Time(this.factory,this.factory.original?Math.round(this.factory.original):0),this.flip()}})}(jQuery),function(a){FlipClock.DailyCounterFace=FlipClock.Face.extend({showSeconds:!0,constructor:function(a,b){this.base(a,b)},build:function(b){var c=this,d=this.factory.$el.find(\"ul\"),e=0;b=b?b:this.factory.time.getDayCounter(this.showSeconds),b.length>d.length&&a.each(b,function(a,b){c.createList(b)}),this.showSeconds?a(this.createDivider(\"Seconds\")).insertBefore(this.lists[this.lists.length-2].$el):e=2,a(this.createDivider(\"Minutes\")).insertBefore(this.lists[this.lists.length-4+e].$el),a(this.createDivider(\"Hours\")).insertBefore(this.lists[this.lists.length-6+e].$el),a(this.createDivider(\"Days\",!0)).insertBefore(this.lists[0].$el),this.base()},flip:function(a,b){a||(a=this.factory.time.getDayCounter(this.showSeconds)),this.autoIncrement(),this.base(a,b)}})}(jQuery),function(a){FlipClock.HourlyCounterFace=FlipClock.Face.extend({constructor:function(a,b){this.base(a,b)},build:function(b,c){var d=this,e=this.factory.$el.find(\"ul\");c=c?c:this.factory.time.getHourCounter(),c.length>e.length&&a.each(c,function(a,b){d.createList(b)}),a(this.createDivider(\"Seconds\")).insertBefore(this.lists[this.lists.length-2].$el),a(this.createDivider(\"Minutes\")).insertBefore(this.lists[this.lists.length-4].$el),b||a(this.createDivider(\"Hours\",!0)).insertBefore(this.lists[0].$el),this.base()},flip:function(a,b){a||(a=this.factory.time.getHourCounter()),this.autoIncrement(),this.base(a,b)},appendDigitToClock:function(a){this.base(a),this.dividers[0].insertAfter(this.dividers[0].next())}})}(jQuery),function(){FlipClock.MinuteCounterFace=FlipClock.HourlyCounterFace.extend({clearExcessDigits:!1,constructor:function(a,b){this.base(a,b)},build:function(){this.base(!0,this.factory.time.getMinuteCounter())},flip:function(a,b){a||(a=this.factory.time.getMinuteCounter()),this.base(a,b)}})}(jQuery),function(a){FlipClock.TwelveHourClockFace=FlipClock.TwentyFourHourClockFace.extend({meridium:!1,meridiumText:\"AM\",build:function(){var b=this.factory.time.getTime(!1,this.showSeconds);this.base(b),this.meridiumText=this.getMeridium(),this.meridium=a(['\"].join(\"\")),this.meridium.insertAfter(this.lists[this.lists.length-1].$el)},flip:function(a,b){this.meridiumText!=this.getMeridium()&&(this.meridiumText=this.getMeridium(),this.meridium.find(\"a\").html(this.meridiumText)),this.base(this.factory.time.getTime(!1,this.showSeconds),b)},getMeridium:function(){return(new Date).getHours()>=12?\"PM\":\"AM\"},isPM:function(){return\"PM\"==this.getMeridium()?!0:!1},isAM:function(){return\"AM\"==this.getMeridium()?!0:!1}})}(jQuery),function(){FlipClock.Lang.Arabic={years:\"爻賳賵丕鬲\",months:\"卮賴賵乇\",days:\"兀賷丕賲\",hours:\"爻丕毓丕鬲\",minutes:\"丿賯丕卅賯\",seconds:\"孬賵丕賳賷\"},FlipClock.Lang.ar=FlipClock.Lang.Arabic,FlipClock.Lang[\"ar-ar\"]=FlipClock.Lang.Arabic,FlipClock.Lang.arabic=FlipClock.Lang.Arabic}(jQuery),function(){FlipClock.Lang.Danish={years:\"脜r\",months:\"M氓neder\",days:\"Dage\",hours:\"Timer\",minutes:\"Minutter\",seconds:\"Sekunder\"},FlipClock.Lang.da=FlipClock.Lang.Danish,FlipClock.Lang[\"da-dk\"]=FlipClock.Lang.Danish,FlipClock.Lang.danish=FlipClock.Lang.Danish}(jQuery),function(){FlipClock.Lang.German={years:\"Jahre\",months:\"Monate\",days:\"Tage\",hours:\"Stunden\",minutes:\"Minuten\",seconds:\"Sekunden\"},FlipClock.Lang.de=FlipClock.Lang.German,FlipClock.Lang[\"de-de\"]=FlipClock.Lang.German,FlipClock.Lang.german=FlipClock.Lang.German}(jQuery),function(){FlipClock.Lang.English={years:\"Years\",months:\"Months\",days:\"Days\",hours:\"Hours\",minutes:\"Minutes\",seconds:\"Seconds\"},FlipClock.Lang.en=FlipClock.Lang.English,FlipClock.Lang[\"en-us\"]=FlipClock.Lang.English,FlipClock.Lang.english=FlipClock.Lang.English}(jQuery),function(){FlipClock.Lang.Spanish={years:\"Años\",months:\"Meses\",days:\"DÍas\",hours:\"Horas\",minutes:\"Minutos\",seconds:\"Segundo\"},FlipClock.Lang.es=FlipClock.Lang.Spanish,FlipClock.Lang[\"es-es\"]=FlipClock.Lang.Spanish,FlipClock.Lang.spanish=FlipClock.Lang.Spanish}(jQuery),function(){FlipClock.Lang.Finnish={years:\"Vuotta\",months:\"Kuukautta\",days:\"P盲iv盲盲\",hours:\"Tuntia\",minutes:\"Minuuttia\",seconds:\"Sekuntia\"},FlipClock.Lang.fi=FlipClock.Lang.Finnish,FlipClock.Lang[\"fi-fi\"]=FlipClock.Lang.Finnish,FlipClock.Lang.finnish=FlipClock.Lang.Finnish}(jQuery),function(){FlipClock.Lang.French={years:\"Ans\",months:\"Mois\",days:\"Jours\",hours:\"Heures\",minutes:\"Minutes\",seconds:\"Secondes\"},FlipClock.Lang.fr=FlipClock.Lang.French,FlipClock.Lang[\"fr-ca\"]=FlipClock.Lang.French,FlipClock.Lang.french=FlipClock.Lang.French}(jQuery),function(){FlipClock.Lang.Italian={years:\"Anni\",months:\"Mesi\",days:\"Giorni\",hours:\"Ore\",minutes:\"Minuti\",seconds:\"Secondi\"},FlipClock.Lang.it=FlipClock.Lang.Italian,FlipClock.Lang[\"it-it\"]=FlipClock.Lang.Italian,FlipClock.Lang.italian=FlipClock.Lang.Italian}(jQuery),function(){FlipClock.Lang.Latvian={years:\"Gadi\",months:\"M膿ne拧i\",days:\"Dienas\",hours:\"Stundas\",minutes:\"Min奴tes\",seconds:\"Sekundes\"},FlipClock.Lang.lv=FlipClock.Lang.Latvian,FlipClock.Lang[\"lv-lv\"]=FlipClock.Lang.Latvian,FlipClock.Lang.latvian=FlipClock.Lang.Latvian}(jQuery),function(){FlipClock.Lang.Dutch={years:\"Jaren\",months:\"Maanden\",days:\"Dagen\",hours:\"Uren\",minutes:\"Minuten\",seconds:\"Seconden\"},FlipClock.Lang.nl=FlipClock.Lang.Dutch,FlipClock.Lang[\"nl-be\"]=FlipClock.Lang.Dutch,FlipClock.Lang.dutch=FlipClock.Lang.Dutch}(jQuery),function(){FlipClock.Lang.Norwegian={years:\"脜r\",months:\"M氓neder\",days:\"Dager\",hours:\"Timer\",minutes:\"Minutter\",seconds:\"Sekunder\"},FlipClock.Lang.no=FlipClock.Lang.Norwegian,FlipClock.Lang.nb=FlipClock.Lang.Norwegian,FlipClock.Lang[\"no-nb\"]=FlipClock.Lang.Norwegian,FlipClock.Lang.norwegian=FlipClock.Lang.Norwegian}(jQuery),function(){FlipClock.Lang.Portuguese={years:\"Anos\",months:\"Meses\",days:\"Dias\",hours:\"Horas\",minutes:\"Minutos\",seconds:\"Segundos\"},FlipClock.Lang.pt=FlipClock.Lang.Portuguese,FlipClock.Lang[\"pt-br\"]=FlipClock.Lang.Portuguese,FlipClock.Lang.portuguese=FlipClock.Lang.Portuguese}(jQuery),function(){FlipClock.Lang.Russian={years:\"谢械褌\",months:\"屑械褋褟褑械胁\",days:\"写薪械泄\",hours:\"褔邪褋芯胁\",minutes:\"屑懈薪褍褌\",seconds:\"褋械泻褍薪写\"},FlipClock.Lang.ru=FlipClock.Lang.Russian,FlipClock.Lang[\"ru-ru\"]=FlipClock.Lang.Russian,FlipClock.Lang.russian=FlipClock.Lang.Russian}(jQuery),function(){FlipClock.Lang.Swedish={years:\"脜r\",months:\"M氓nader\",days:\"Dagar\",hours:\"Timmar\",minutes:\"Minuter\",seconds:\"Sekunder\"},FlipClock.Lang.sv=FlipClock.Lang.Swedish,FlipClock.Lang[\"sv-se\"]=FlipClock.Lang.Swedish,FlipClock.Lang.swedish=FlipClock.Lang.Swedish}(jQuery);\n\n\n$( \".clock-bg\" ).empty();\nvar tmpl = '
    ';\n$( 'body' ).append( '
    ' + tmpl + '
    ' );\n\nvar startButton = $(\"#btn-start\");\nvar resetButton = $(\"#btn-reset\");\nvar blacklistButton = $(\"#btn-blacklist\");\n\nvar isSessionStop = true;\nvar resetSession = 1500;\nvar sessionTime = 1500;\n\nvar getLocation = function( href ) {\n var l = document.createElement(\"a\");\n l.href = href;\n return l;\n};\n\nvar storage = {\n sessionTime: 0,\n isSessionStop: true,\n blacklist: [ \"google.com\", \"http://ksria.com/simptab/\" ]\n};\nif ( !localStorage[\"simptab-script-focus\"] ) {\n localStorage[\"simptab-script-focus\"] = JSON.stringify( storage );\n} else {\n storage = JSON.parse( localStorage[\"simptab-script-focus\"] );\n}\n\nfunction saveStorage() {\n localStorage[\"simptab-script-focus\"] = JSON.stringify( storage );\n}\n\nvar sessionClock = $('.session-clock').FlipClock(sessionTime, {\n clockFace: 'MinuteCounter',\n\n countdown: true,\n autoStart: false,\n\n callbacks: {\n interval: function () {\n var sessionTime = sessionClock.getTime().time;\n storage.sessionTime = sessionTime;\n saveStorage();\n }\n }\n});\n\n$( \".blacklist textarea\" ).text( storage.blacklist.join( '\\n' ) );\n$( \".blacklist textarea\" ).on( \"change\", function( event ) {\n storage.blacklist = event.target.value.split( '\\n' );\n saveStorage();\n});\n\nif ( storage.sessionTime > 0 ) {\n sessionClock.setTime( storage.sessionTime );\n if ( storage.isSessionStop == false ) {\n sessionClock.start();\n isSessionStop = false;\n startButton.text(\"■\");\n }\n}\n\n$(\"#btn-reduce-session-minute\").click(function () {\n changeSessionTime(-60);\n});\n\n$(\"#btn-increase-session-minute\").click(function () {\n changeSessionTime(60);\n});\n\n$(\"#btn-reduce-session-second\").click(function () {\n changeSessionTime(-1);\n});\n\n$(\"#btn-increase-session-second\").click(function () {\n changeSessionTime(1);\n});\n\nfunction changeSessionTime(time) {\n if ((sessionTime + time >= 0) && (sessionTime + time <= 6000)) {\n stopAllClocks();\n sessionTime += time;\n sessionClock.setTime(sessionTime);\n }\n}\n\nstartButton.click(function () {\n if ( isSessionStop ) {\n new Notify().Render({ content: \"请注意启用后,在黑名单中的标签页会被自动关闭\", action: \"确定\", cancel: \"取消\", callback:function (type){\n if ( type != \"action\" ) return;\n isSessionStop = false;\n startButton.text(\"■\");\n sessionClock.start();\n storage.isSessionStop = isSessionStop;\n saveStorage();\n queryTabs();\n }});\n } else {\n isSessionStop = true;\n startButton.text(\"▶\");\n sessionClock.stop();\n storage.isSessionStop = isSessionStop;\n saveStorage();\n }\n});\n\nresetButton.click(function () {\n stopAllClocks();\n sessionTime = resetSession;\n isSessionStop = true;\n sessionClock.setTime(sessionTime);\n storage.sessionTime = 0;\n storage.isSessionStop = true;\n saveStorage();\n});\n\nblacklistButton.click(function ( event ) {\n if ( blacklistButton.text() == \"▼\" ) {\n $( \".blacklist textarea\" ).css({ \"opacity\": 1, \"height\": \"150px\" });\n blacklistButton.text( \"▲\" );\n } else {\n $( \".blacklist textarea\" ).css({ \"opacity\": 0, \"height\": 0 });\n blacklistButton.text( \"▼\" );\n }\n});\n\nfunction stopAllClocks() {\n sessionClock.stop();\n isSessionStop = true;\n startButton.text(\"▶\");\n}\n\nchrome.tabs.onCreated.addListener( function ( tab ) {\n blacklist( tab.id, tab.url );\n});\n\nchrome.tabs.onUpdated.addListener( function ( id, changeInfo, tab ) {\n changeInfo.status == \"loading\" && blacklist( id, changeInfo.url );\n});\n\nfunction queryTabs() {\n chrome.tabs.query({}, function( tabs ) {\n tabs.forEach( function( tab ) {\n blacklist( tab.id, tab.url );\n });\n })\n}\n\nfunction blacklist( tabId, url ) {\n if ( storage.sessionTime == 0 || storage.isSessionStop ) {\n // not black list\n } else {\n var isBlacklist = false;\n storage.blacklist.forEach( function( item ) {\n if ( item.startsWith( \"http\" ) ) {\n if ( url == item ) {\n isBlacklist = true;\n }\n } else {\n var host = getLocation( url ).hostname.replace( \"www.\", \"\" );\n if ( host.endsWith( item ) && item != \"\" ) {\n isBlacklist = true;\n }\n }\n });\n if ( isBlacklist ) {\n chrome.tabs.remove( tabId );\n new Notify().Render( \"当前打开的 URL 在黑名单中,已自动关闭。\" )\n }\n }\n}"}