diff --git a/web/app.min.css b/web/app.min.css new file mode 100644 index 0000000..60e5949 --- /dev/null +++ b/web/app.min.css @@ -0,0 +1,32 @@ +/** + * App.js v3.0.5 + * Instant mobile web app creation + * Copyright (c) 2012 Kik Interactive, http://kik.com + * Released under the MIT license + * + * iScroll v4.1.6 + * Copyright (c) 2011 Matteo Spinelli, http://cubiq.org + * Released under the MIT license + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +html,body,div,form,p,ul,li,span,label,img{margin:0;padding:0;outline:0}html,body{height:100%;width:100%}body{position:relative;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden}.app-android{font-family:"Roboto",sans-serif}.app-no-scrollbar ::-webkit-scrollbar{height:0 !important;width:0 !important}*{-webkit-tap-highlight-color:rgba(0,0,0,0) !important;tap-highlight-color:rgba(0,0,0,0) !important}.clear{clear:both}.app-android .app-ios-only,.app-ios .app-android-only{display:none}.app-clickblocker{z-index:9000;position:fixed;top:0;left:0;height:100%;width:100%;background-color:#FFF;opacity:0}.app-page{display:none;position:relative;height:100%;width:100%;overflow:hidden}.app-loaded .app-page{display:block}.app-ios-7 .app-page,.app-ios-8 .app-page{box-shadow:0 0 12px rgba(0,0,0,0.2)}.app-topbar{z-index:3000;position:relative;height:44px;width:100%;background-color:#000;color:#FFF;-webkit-box-shadow:inset 0 0 1px rgba(0,0,0,0.15);box-shadow:inset 0 0 1px rgba(0,0,0,0.15)}.app-android .app-topbar{height:56px;-webkit-box-shadow:0 1px 5px rgba(0,0,0,0.3);box-shadow:0 1px 5px rgba(0,0,0,0.3)}.app-topbar .app-button{position:absolute;bottom:0;padding:0 16px;height:100%;line-height:44px}.app-android .app-topbar .app-button{line-height:56px}.app-topbar .app-button.left{left:0}.app-topbar .app-button.right{right:0}.app-topbar .app-title{margin:0 auto;height:100%;width:100%;line-height:44px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-android .app-topbar .app-title{line-height:56px}.app-ios-statusbar .app-topbar{padding-top:20px}.app-android-statusbar .app-topbar{padding-top:24px}.app-android-statusbar .app-topbar:before{position:absolute;top:0;height:24px;width:100%;background-color:rgba(0,0,0,0.3);content:""}.app-ios-statusbar .app-topbar .app-button{height:44px}.app-android-statusbar .app-topbar .app-button{height:56px}.app-content{z-index:2000;position:relative;background-color:#FFF;overflow:auto;-webkit-box-shadow:0 0 12px rgba(0,0,0,0.2);box-shadow:0 0 12px rgba(0,0,0,0.2)}.app-android-2 .app-content{-webkit-box-shadow:none;box-shadow:none}.app-scrollhack>*{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.app-section{position:relative;margin:8px;border:1px solid #AAA}.app-list{list-style:none}.app-list>li,.app-list>li.app-button{padding-left:20px;padding-right:8px;height:43px;border-bottom:1px solid #AAA;line-height:43px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.app-android .app-list>li,.app-android .app-list>li.app-button{padding-top:2px;padding-bottom:2px}.app-section .app-list>li:last-child,.app-section .app-list>li.app-button:last-child{border-bottom:0}.app-list>label{display:block;padding-left:12px;height:24px;background-color:#000;color:#FFF;line-height:24px}.app-list>li+label{margin-top:-1px}.app-content .app-button{margin:0 auto;height:40px;border-bottom:1px solid #AAA;line-height:40px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.app-button:last-child{border-bottom:0}.app-content .app-button.green{background-color:#7F7}.app-content .app-button.red{background-color:#F77}.app-content .app-button.blue{background-color:#77F}.app-input{position:relative;display:block;padding:10px 12px;width:100%;background-color:transparent;border:0;border-bottom:1px solid #AAA;outline:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:20px;-webkit-appearance:none}.app-section .app-input:last-child{border-bottom:0}.app-input,.app-input *{color:inherit;font-family:inherit;font-size:inherit}input.app-input{height:40px}textarea.app-input{height:80px;resize:none}.app-input input,.app-input textarea{display:inline-block;margin:0;padding:0;width:100%;background-color:none;border:0;outline:0;line-height:inherit;resize:none;-webkit-appearance:none}.app-input input{height:20px}.app-input textarea{height:60px}.app-dialog-container{position:absolute;z-index:5000;top:0;left:0;margin:0;padding:0;height:100%;width:100%;background-color:rgba(0,0,0,0);overflow:hidden;-webkit-transition:background-color .425s cubic-bezier(0.4,0.6,0.05,1);transition:background-color .425s cubic-bezier(0.4,0.6,0.05,1)}.app-android-2 .app-dialog-container,.app-android-4 .app-dialog-container{position:fixed;background-color:rgba(0,0,0,0.8);opacity:.01;-webkit-transition:opacity .282s ease-in-out;transition:opacity .282s ease-in-out}.app-android-5 .app-dialog-container{-webkit-transition:none;transition:none}.app-dialog-container.enabled{background-color:rgba(0,0,0,0.8)}.app-android-2 .app-dialog-container.enabled,.app-android-4 .app-dialog-container.enabled{opacity:1}.app-android-5 .app-dialog-container.enabled{background-color:rgba(0,0,0,0.25)}.app-dialog{position:absolute;top:50%;left:0;margin:0 10%;padding:0;width:80%;background-color:#FFF;border-top:1px solid #FFF;-webkit-border-radius:8px;border-radius:8px;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.5);box-shadow:0 0 8px rgba(0,0,0,0.5);color:#777;overflow:hidden;-webkit-transform:translate3d(0,380px,0);transform:translate3d(0,380px,0);-webkit-transition:-webkit-transform .425s cubic-bezier(0.4,0.6,0.05,1);transition:transform .425s cubic-bezier(0.4,0.6,0.05,1)}@media(min-width:360px){.app-dialog{margin:0 15%;width:70%}}.app-android .app-dialog{-webkit-border-radius:4px;border-radius:4px}.app-android-2 .app-dialog{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.app-android-2 .app-dialog,.app-android-4 .app-dialog{top:auto;bottom:50%;-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0);-webkit-transition:none;transition:none}.app-android-5 .app-dialog{-webkit-transition-easing:ease-in-out;transition-easing:ease-in-out}.app-dialog-container.enabled .app-dialog{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.app-android-2 .app-dialog-container.enabled .app-dialog,.app-android-4 .app-dialog-container.enabled .app-dialog{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}.app-dialog-container.closing.closing-success .app-dialog{-webkit-transform:translate3d(0,-664px,0);transform:translate3d(0,-664px,0)}.app-android-2 .app-dialog-container.closing.closing-success .app-dialog,.app-android-4 .app-dialog-container.closing.closing-success .app-dialog{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}.app-dialog .title{position:relative;margin-bottom:8px;padding:16px 20px 0;font-size:18px;font-weight:300;text-align:center}.app-dialog .text{margin:20px 0;padding:0 20px 8px;font-size:16px;font-weight:400;text-align:center}.app-dialog .button{float:right;height:44px;width:50%;font-size:20px;font-weight:300;line-height:44px;text-align:center;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out}.app-dialog .button.cancel{background-color:#e3e4e7;color:#000}.app-dialog .button.ok{background-color:#2B9;color:#FFF}.app-dialog .button.first:before{clear:left}.app-dialog .button.last:after{clear:right}.app-dialog .button.first.last{width:100%}.app-ios .app-dialog .button.first{-webkit-border-radius:0 0 0 8px;border-radius:0 0 0 8px}.app-ios .app-dialog .button.last{-webkit-border-radius:0 0 8px 0;border-radius:0 0 8px 0}.app-ios .app-dialog .button.first.last{width:100%;-webkit-border-radius:0 0 8px 8px;border-radius:0 0 8px 8px}.app-dialog .button.active{opacity:.7}.app-dialog .button.active,.app-android-2 .app-dialog .button,.app-android-2 .app-dialog .button{-webkit-transition:none;transition:none}.app-topbar.teal{background-color:#2B9;color:#f3f4f5}.app-topbar.green{background-color:#3C7;color:#f3f4f5}.app-topbar.yellow{background-color:#EC1;color:#f3f4f5}.app-topbar.orange{background-color:#E82;color:#f3f4f5}.app-topbar.red{background-color:#dd4539;color:#f3f4f5}.app-topbar.blue{background-color:#4486f0;color:#f3f4f5}.app-topbar.dark-blue{background-color:#345;color:#f3f4f5}.app-topbar .app-title{font-size:17px;font-weight:500}.app-android .app-topbar .app-title{float:left;padding-left:15px;padding-right:8px;width:auto;font-size:19px;font-weight:700;text-align:left}.app-android .app-topbar .app-button.left ~ .app-title{padding-left:60px}.app-topbar .app-button{font-weight:300;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out}.app-android .app-topbar .app-button{padding:0 13px;font-weight:400;-webkit-transition:background-color .25s ease-out;transition:background-color .25s ease-out}.app-topbar .app-button.active{opacity:.65}.app-android .app-topbar .app-button.active{opacity:1;background-color:rgba(0,0,0,0.2)}.app-topbar .app-button.active,.app-android .app-topbar .app-button.active,.app-android-2 .app-topbar .app-button,.app-android-4 .app-topbar .app-button{-webkit-transition:none;transition:none}.app-topbar .app-button[data-back].left{padding:15px 0 15px 27px;height:14px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAoCAYAAADkDTpVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAxJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUQxQ0FCN0VGMjJGMTFFMjg0REFDNDBBRUVBRjJBNDkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUQxQ0FCN0RGMjJGMTFFMjg0REFDNDBBRUVBRjJBNDkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiBNYWNpbnRvc2giPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0iNTNBQzg4QkE2OTc3M0MxNDg4ODc1M0VDNzc3ODcwMDUiIHN0UmVmOmRvY3VtZW50SUQ9IjUzQUM4OEJBNjk3NzNDMTQ4ODg3NTNFQzc3Nzg3MDA1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dT5F6gAAAcNJREFUeNqslz8sA1Ecx+9UKi1ispkwMAgbs5XYTCJhlLB3uxrETsLGUgMbutaqJg0Jg5pqqqVCm1TaPt+X3ONp7n53fb/3kk/Su8v7fq/v3u/Pc4UQjsWRAQNg9/eONLDEtvgbnrpvS3wDdMT/4dkyWAUtETy8PuaaL4EcSIQ8T3HefBHURfg4Bq6p+Dz4JMTPQML0G8yCGiF+BZKmu2gKVAnxG5DW5/QiPg4qhPgdGOmeF1d8DJQJ8UcwGjQ3jric+ESIl/0XcEwM5F++J8TfwCSlQYkPgltC/B3MRK1A2IMUKBDiH34sOCYGcg9fE+INP4odEwMZfeeE+DdY6SV29AsXnBDibbDWa+TrFweCHlsmeUv92IsQz5hm3bj1wLxwx1yiDneJ1Ec+JUxa3I+stukFYdLkbFM90PKESZ0TaIp0RKqocVKFYggUCZMqJ9np6bpEmFQ46VovOM+EyQun4Ogl85UweeCUTMVERNEvcoq+YjqibSlw2hbFXETjdclpvBQL4IswyXFaR735bRAmR5zmV7Hs56ewsc89H+TBOmiHPG/aOkJtBhyhsjbPaJKdbnFJv8Uj7CEYBkmQVTd/BBgAAQDbZCXVLesAAAAASUVORK5CYII=);background-repeat:no-repeat;-webkit-background-size:12px 20px;background-size:12px 20px;background-position:8px center;line-height:14px}.app-android .app-topbar .app-button[data-back].left{padding:0 16px;height:56px;width:24px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjcyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj43MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgICA8cmRmOkJhZy8+CiAgICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTU6MDI6MTMgMjI6MDI6MzU8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMy4zLjE8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+ChTTdgYAAAF3SURBVHgB7dtBCsIwFIRh69o7eAhdiQdw53U9gFsP4dqt4LK+QANF6Dgp1FbyCyXCG2nz8aKQ1tWKFwIIIIAAAggggAACCCCAQNUCbdte0lE1wtDkO5xnjOkAqQ/1gQOSgbMYpHX/Yn/9vltKR3HeXWS2oj55aTYgA+cVsz83TXOfXGFpJxj4zsnLKo2POA5Lu+6fXA84ghkccISAKNE54AgBUaJzwBECokTngCMERInOAUcIiBKdA44QEKUaOqcR85elhBMBtdklPz9XMfaXNiXnHrVh9q84JTA5WwxUE05CKgbKsrWMxUCxhk+BcwVICNSGJCh0qYafeS1gVEECyRAwInQSSIaAEaGTQDIEjAidBJIhYEToJJAMASNCJ4FkCBgROgkkQ8CI/Esnjb6rYRh8jSSkCKk7I+lJ1/2cT7oWb7l+nXVBwNiZvM2JUzCVaaMDy43/a/TZP5DA6ePk9x0SOBmEEQEEEEAAAQQQQAABBBCoVOANecdGRmb5/CMAAAAASUVORK5CYII=);-webkit-background-size:24px 24px;background-size:24px 24px;background-position:center;color:transparent}.app-android .app-topbar>:last-child:after{content:"";clear:both}.app-page,.app-content{background-color:#efeff4}.app-section,.app-list>li,.app-list>li.app-button,.app-content .app-button,.app-input{border:0}.app-section{margin:16px;padding:8px;background:#FFF;border-bottom:1px solid rgba(0,0,0,0.1);-webkit-border-radius:6px;border-radius:6px}.app-ios-7 .app-section,.app-ios-8 .app-section{border-bottom:0}.app-section.app-button{margin:16px;padding:0}p.app-section{padding:12px 16px;color:#665}.app-content .app-section>*{margin:8px 0 0;-webkit-border-radius:4px;border-radius:4px}.app-content .app-section>:first-child{margin-top:0}.app-list>label{height:28px;background-color:#d5e5e6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#778;font-size:14px;font-weight:600;line-height:28px}.app-android .app-list>label{font-size:11px;font-weight:700;text-transform:uppercase}.app-list>li{background-color:#FFF;color:#444}.app-list>li,.app-list>li.app-button{border-top:1px solid rgba(0,0,0,0.05);-webkit-box-sizing:border-box;box-sizing:border-box}.app-android .app-list>li,.app-android .app-list>li.app-button{padding-top:0;padding-bottom:0;height:47px;line-height:47px}.app-list>li.app-button.active{border-top:1px solid rgba(0,0,0,0.0)}.app-list>li:first-child,.app-list>li.app-button:first-child,.app-list>label+li,.app-list>label+li.app-button,.app-list>label+li.app-button.active,.app-list>li.app-button.active+li,.app-list>li.app-button.active+li.app-button{border-top-color:transparent}.app-content .app-button{background-color:#FFF;color:#17B}.app-content .app-button.active{background-color:#DDD}.app-content .app-button.teal{background-color:#2B9;color:#f3f4f5}.app-content .app-button.teal.active{background-color:#197}.app-content .app-button.green{background-color:#3C7;color:#f3f4f5}.app-content .app-button.green.active{background-color:#2A6}.app-content .app-button.yellow{background-color:#EC1;color:#f3f4f5}.app-content .app-button.yellow.active{background-color:#DB0}.app-content .app-button.orange{background-color:#E82;color:#f3f4f5}.app-content .app-button.orange.active{background-color:#C50}.app-content .app-button.red{background-color:#dd4539;color:#f3f4f5}.app-content .app-button.red.active{background-color:#C43}.app-content .app-button.blue{background-color:#4486f0;color:#f3f4f5}.app-content .app-button.blue.active{background-color:#27A}.app-content .app-button.dark-blue{background-color:#345;color:#f3f4f5}.app-content .app-button.dark-blue.active{background-color:#234}input.app-input{height:44px;background:#FFF;line-height:24px;border-bottom:1px solid rgba(0,0,0,0.1)}.app-android input.app-input{height:48px;line-height:18px}.app-section input.app-input{border-bottom:0}.app-android .app-section input.app-input{height:40px;line-height:20px}.app-input[type="search"]{padding-left:34px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACjElEQVR42r3Wz2sTQRjG8e2maW1rTYIoaPEgHqz/gD+KFi8VRb0pVPTi2UPNQRRCEHpQkCKIp0ilQg/BVqQKUi8q1lRzERQ0x3pQVKJIxTaxpql+DzkMD+xkNo1d+NBudt5535md3VnPdmQyGfP/FrSjC+trOhDxmnxo4k70I4lxzOA18riPYRzFFolvSvJBPMU8/los4w3S8JtRRCfGUZJEK3KuKiigV4pwHzl/43gYkLSKMhZRQsVsZ7T9jN1ShFPyCCahHVbwEiM4gyM4gRQe4Tu04DnskCLqFjACTf4Vg4gHxPo4gCfQ2HyY0e/BvIziIzY7LtgIpqC37YLrLIxJ8AK2SbBLIW+ln29ordfBdryXFZ2Eh7CLuBdVo4gyTmuhGjyA30byOexq5B2CKLIyC7fqBZ6V0U8jagkJ299jtHmWVXxJAsZq1xot4DD+GP3NYqOtgJQUkFllAQMoG/3l9WnSXS4p9yy7ys3suAzoOWK2gJMS8AKJBpP7uCj9PagXtBdFI+AH+mvXwhbQjbzslFfqPYYJ5OQ23IEPD2HeA6dkXyihz6WDFJblNTpkPN+BiWHO5E8ZyCvXytfhiwRXkZa2Qf0cRBG6F+yXWGsRhwL292nsRBei8NGKDmzCZePbQL1DPMw9TGJFR1IzgxtI4yqm8Av6LaDnOfSEmYlzWNKZCKJtAtrnEJcirNvqPnwK6tTyyfbM+F2vF9DmOhPmLfmABSzJVlvBIooYRQIeJiyFFlzXhJ73YQjXMYqbSOEYuqXtBtyTxLomtjrv8a7taswiJiy3bxYxr8mHLmYfWcua6JHQ5hcCP2BN3Eb7/8yva2LSSH4XsbVKbm5413AeCePamhYRRYv52z/AKK4/BRObOQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:12px center;-webkit-background-size:16px 16px;background-size:16px 16px}.app-input[type="search"].no-icon,.app-android .app-input[type="search"].no-icon-android,.app-ios .app-input[type="search"].no-icon-ios{padding-left:12px;background-image:none} \ No newline at end of file diff --git a/web/app.min.js b/web/app.min.js new file mode 100644 index 0000000..e8ce5ed --- /dev/null +++ b/web/app.min.js @@ -0,0 +1,32 @@ +/** + * App.js v3.0.5 + * Instant mobile web app creation + * Copyright (c) 2012 Kik Interactive, http://kik.com + * Released under the MIT license + * + * iScroll v4.1.6 + * Copyright (c) 2011 Matteo Spinelli, http://cubiq.org + * Released under the MIT license + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +var Swapper=function(f,d){function e(h,i,c,b){e._swapper(h,i,c,b)}if(f&&f.fn){f.extend(f.fn,{swapper:function(g,c,b){g=f(g)[0];this.forEach(function(h){e._swapper(h,g,c,b)});return this}})}if(d&&d.fn){d.fn.swapper=function(g,c,b){g=d(g)[0];this.each(function(){e._swapper(this,g,c,b)});return this}}return e}(window.Zepto,window.jQuery);Swapper._os=function(i,k){var l,h,g;if(g=/\bCPU.*OS (\d+(_\d+)?)/i.exec(i)){l="ios";h=g[1].replace("_",".")}else{if(g=/\bAndroid (\d+(\.\d+)?)/.exec(i)){l="android";h=g[1]}}var j={name:l,version:h&&k(h)};j[l]=true;return j}(navigator.userAgent,parseFloat);Swapper._isNode=function(d,c){return function(b){if(!b){return false}try{return(b instanceof d)||(b instanceof c)}catch(e){}if(typeof b!=="object"){return false}if(typeof b.nodeType!=="number"){return false}if(typeof b.nodeName!=="string"){return false}return true}}(Node,HTMLElement);Swapper._isInDOM=function(b){return function(e,d){if(!d&&!b(e)){throw TypeError("element must be a DOM node, got "+e)}while(e=e.parentNode){if(e===document){return true}}return false}}(Swapper._isNode);Swapper._insertBefore=function(){return function(d,c){c.parentNode.insertBefore(d,c)}}();Swapper._insertAfter=function(){return function(e,f){var d=f.parentNode;if(d.lastchild===f){d.appendChild(e)}else{d.insertBefore(e,f.nextSibling)}}}();Swapper._removeNode=function(){return function(b){if(b.parentNode){b.parentNode.removeChild(b)}}}();Swapper._setTransform=function(){return function(c,d){c.style["-webkit-transform"]=d;c.style["-moz-transform"]=d;c.style["-ms-transform"]=d;c.style["-o-transform"]=d;c.style.transform=d}}();Swapper._setTransition=function(){return function(d,c){if(c){d.style["-webkit-transition"]="-webkit-"+c;d.style["-moz-transition"]="-moz-"+c;d.style["-ms-transition"]="-ms-"+c;d.style["-o-transition"]="-o-"+c;d.style.transition=c}else{d.style["-webkit-transition"]="";d.style["-moz-transition"]="";d.style["-ms-transition"]="";d.style["-o-transition"]="";d.style.transition=""}}}();Swapper._getStyles=function(b){return function(g,f){var e;if(f){e=g.style}else{e=b.defaultView.getComputedStyle(g,null)}return{"-webkit-transition":e["-webkit-transition"],"-moz-transition":e["-moz-transition"],"-ms-transition":e["-ms-transition"],"-o-transition":e["-o-transition"],transition:e.transition,display:e.display,opacity:e.opacity,top:e.top,left:e.left,height:e.height,width:e.width,position:e.position}}}(document);Swapper._easings={linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out","step-start":"step-start","step-end":"step-end"};Swapper._transitions={fade:[{fade:true},{fade:true}],"fade-on":[{fade:true},{}],"fade-off":[{},{fade:true},true],"scale-in":[{transform:"scale(0.01)"},{}],"scale-out":[{},{transform:"scale(0.01)"},true],"rotate-left":[{transform:"rotateY(-180deg) perspective(360px)",fade:true},{transform:"rotateY( 180deg) perspective(360px)",fade:true}],"rotate-right":[{transform:"rotateY( 180deg) perspective(360px)",fade:true},{transform:"rotateY(-180deg) perspective(360px)",fade:true}],"cube-left":[{transform:"translate3d( 50%,0,0) rotateY(-90deg) perspective(360px)"},{transform:"translate3d(-50%,0,0) rotateY( 90deg) perspective(360px)"}],"cube-right":[{transform:"translate3d(-50%,0,0) rotateY( 90deg) perspective(360px)"},{transform:"translate3d( 50%,0,0) rotateY(-90deg) perspective(360px)"}],"swap-left":[{transform:"translate3d( 65%,0,0) rotateY( 90deg) perspective(360px)"},{transform:"translate3d(-65%,0,0) rotateY(-90deg) perspective(360px)"}],"swap-right":[{transform:"translate3d(-65%,0,0) rotateY(-90deg) perspective(360px)"},{transform:"translate3d( 65%,0,0) rotateY( 90deg) perspective(360px)"}],"explode-in":[{fade:true,transform:"scale(1.25)"},{}],"explode-out":[{},{fade:true,transform:"scale(1.25)"},true],"implode-in":[{},{fade:true,transform:"scale(0.60)"},true],"implode-out":[{fade:true,transform:"scale(0.80)"},{}],"slide-left":[{transform:"translate3d( 100%,0,0)"},{transform:"translate3d(-100%,0,0)"}],"slide-right":[{transform:"translate3d(-100%,0,0)"},{transform:"translate3d( 100%,0,0)"}],"slide-up":[{transform:"translate3d(0, 100%,0)"},{transform:"translate3d(0,-100%,0)"}],"slide-down":[{transform:"translate3d(0,-100%,0)"},{transform:"translate3d(0, 100%,0)"}],"slideon-left":[{transform:"translate3d(-100%,0,0)"},{}],"slideoff-left":[{},{transform:"translate3d(-100%,0,0)"},true],"slideon-right":[{transform:"translate3d(100%,0,0)"},{}],"slideoff-right":[{},{transform:"translate3d(100%,0,0)"},true],"slideon-up":[{transform:"translate3d(0,-100%,0)"},{}],"slideoff-up":[{},{transform:"translate3d(0,-100%,0)"},true],"slideon-down":[{transform:"translate3d(0,100%,0)"},{}],"slideoff-down":[{},{transform:"translate3d(0,100%,0)"},true],"slideon-left-ios":[{transform:"translate3d(100%,0,0)"},{transform:"translate3d(-30%,0,0)"}],"slideoff-right-ios":[{transform:"translate3d(-30%,0,0)"},{transform:"translate3d(100%,0,0)"},true],"glideon-right":[{transform:"translate3d(110%,0,0)"},{transform:"translate3d(-20%,0,0)"}],"glideoff-right":[{transform:"translate3d(-20%,0,0)"},{transform:"translate3d(110%,0,0)"},true],"glideon-left":[{transform:"translate3d(-110%,0,0)"},{transform:"translate3d(20%,0,0)"}],"glideoff-left":[{transform:"translate3d(20%,0,0)"},{transform:"translate3d(-110%,0,0)"},true],"glideon-down":[{transform:"translate3d(0,110%,0)"},{transform:"translate3d(0,-20%,0)"}],"glideoff-down":[{transform:"translate3d(0,-20%,0)"},{transform:"translate3d(0,110%,0)"},true],"glideon-up":[{transform:"translate3d(0,-110%,0)"},{transform:"translate3d(0,20%,0)"}],"glideoff-up":[{transform:"translate3d(0,20%,0)"},{transform:"translate3d(0,-110%,0)"},true],"android-l-in":[{transform:"translate3d(0,6%,0)",fade:true},{}],"android-l-out":[{},{transform:"translate3d(0,6%,0)",fade:true},true]};Swapper._validate=function(j,i,k){return{element:l,options:g,callback:h};function l(b){if(!j(b)){throw TypeError("element must be a DOM node, got "+b)}}function g(b){switch(typeof b){case"string":b={transition:b};break;case"undefined":b={};break;case"object":break;default:throw TypeError("options must be an object if defined, got "+b)}switch(typeof b.transition){case"string":if(!(b.transition in i)&&(b.transition!=="instant")){throw TypeError(b.transition+" is not a valid transition")}break;case"undefined":break;default:throw TypeError("transition must be a string if defined, got "+b.transition)}switch(typeof b.duration){case"number":if(b.duration<0){throw TypeError("duration must be a non-negative integer, got "+b.duration)}break;case"undefined":break;default:throw TypeError("duration must be a number if defined, got "+b.duration)}switch(typeof b.easing){case"string":if(!(b.easing in k)&&(b.easing.substr(0,13)!=="cubic-bezier(")){throw TypeError(b.easing+" is not a valid easing")}break;case"undefined":break;default:throw TypeError("easing must be a string if defined, got "+b.easing)}return b}function h(b){switch(typeof b){case"undefined":b=function(){};break;case"function":break;default:throw TypeError("callback must be a function if defined, got "+b)}return b}}(Swapper._isNode,Swapper._transitions,Swapper._easings);Swapper._swapper=function(Z,I,ae,af,U,H,ad,ac,aa,O,Y,S,X,N){var aj="translate3d(0,0,0) scale(1)",M="fade",F="ease-in-out";var T=(Z.ios&&(Math.floor(Z.version)===5));function Q(d,e,c,b){S.element(d);S.element(e);if(typeof c==="function"){b=c;c={}}c=S.options(c);b=S.callback(b);if(d._swapper){throw Error("elem1 is currently being swapped")}else{if(e._swapper){throw Error("elem2 is currently being swapped")}}if(!ae(d,true)){throw Error("elem1 must be in the DOM to be swapped")}d._swapper=true;e._swapper=true;H(e);V(d,e,c,function(){d._swapper=false;e._swapper=false;b()})}function V(c,d,b,e){if(b.transition==="instant"){U(d,c);H(c);e();return}var f=O[b.transition||M],g=b.easing||F,h=b.duration||300;if(g.substr(0,13)!=="cubic-bezier("){g=Y[g]}U(d,c);var i=aa(c),j=aa(d),k=aa(c,true),l=aa(d,true);P(c,d,i,j);if(f[2]){af(d,c)}d.style.opacity="0";K(c,d);setTimeout(function(){d.style.opacity=j.opacity;ai(c,d,f);setTimeout(function(){W(c,d,h,g);setTimeout(function(){G(c,d,f);R(c,d,i,j,f,h,function(){H(c);L(c,d,h,g);setTimeout(function(){J(c,d,k,l,f);ag(c,d,k,l);setTimeout(function(){ah(c,d,k,l);e()},0)},0)})},0)},50)},0)}function P(e,f,c,d){var b=e.getBoundingClientRect();if(c.display!=="none"){if(T){f.style.position="absolute"}else{f.style.position="fixed"}f.style.top=b.top+"px";f.style.left=b.left+"px"}f.style.height=d.height||c.height;f.style.width=d.width||c.width}function ag(d,e,b,c){e.style.position=c.position;e.style.top=c.top;e.style.left=c.left;e.style.height=c.height;e.style.width=c.width}function ai(c,d,b){ad(c,aj);ad(d,b[0].transform||aj);if(b[0].fade){d.style.opacity="0"}if(b[1].fade){c.style.opacity="1"}}function G(c,d,b){ad(c,b[1].transform||aj);ad(d,aj);if(b[0].fade){d.style.opacity="1"}if(b[1].fade){c.style.opacity="0"}}function J(e,f,c,d,b){ad(e,"");ad(f,"");if(b[0].fade){f.style.opacity=d.opacity}if(b[1].fade){e.style.opacity=c.opacity}}function W(e,f,d,b){var c="transform "+(d/1000)+"s "+b+",opacity "+(d/1000)+"s "+b;ac(e,c);ac(f,c)}function L(d,e,c,b){ac(d,"");ac(e,"")}function K(b,c){ac(b,"");ac(c,"")}function ah(d,e,b,c){d.style["-webkit-transition"]=b["-webkit-transition"];d.style["-moz-transition"]=b["-moz-transition"];d.style["-ms-transition"]=b["-ms-transition"];d.style["-o-transition"]=b["-o-transition"];d.style.transition=b.transition;e.style["-webkit-transition"]=c["-webkit-transition"];e.style["-moz-transition"]=c["-moz-transition"];e.style["-ms-transition"]=c["-ms-transition"];e.style["-o-transition"]=c["-o-transition"];e.style.transition=c.transition}function ab(c,b){if(c.display==="none"){return false}if(b.fade){return true}if(!b.transform){return false}else{if(b.transform===aj){return false}else{return true}}}function R(b,e,k,m,h,j,f){var l;if(ab(m,h[0])){l=e;c()}else{if(ab(k,h[1])){l=b;c()}else{setTimeout(g,j)}}function c(){l.addEventListener("webkitTransitionEnd",g,false);l.addEventListener("transitionend",g,false);l.addEventListener("oTransitionEnd",g,false);l.addEventListener("otransitionend",g,false);l.addEventListener("MSTransitionEnd",g,false);l.addEventListener("transitionend",g,false)}function d(){l.removeEventListener("webkitTransitionEnd",g);l.removeEventListener("transitionend",g);l.removeEventListener("oTransitionEnd",g);l.removeEventListener("otransitionend",g);l.removeEventListener("MSTransitionEnd",g);l.removeEventListener("transitionend",g)}var i=false;function g(n){if(i||!n||!n.target||(n.target!==l)){return}i=true;if(l){d()}f()}}return Q}(Swapper._os,Swapper._isNode,Swapper._isInDOM,Swapper._insertBefore,Swapper._insertAfter,Swapper._removeNode,Swapper._setTransform,Swapper._setTransition,Swapper._getStyles,Swapper._transitions,Swapper._easings,Swapper._validate,window,document);var Clickable=function(f,d){function e(){e._enableClicking.apply(this,arguments)}e.touchable=function(){return e._os.touchable};e.sticky=function(){e._enableStickyClick.apply(this,arguments)};if(d&&d.fn){d.fn.clickable=function(b){this.each(function(){e._enableClicking(this,b)});return this};d.fn.stickyClick=function(b){this.each(function(){e._enableStickyClick(this,b)});return this}}if(f&&f.fn){f.extend(f.fn,{clickable:function(b){this.forEach(function(c){e._enableClicking(c,b)});return this},stickyClick:function(b){this.forEach(function(c){e._enableStickyClick(c,b)});return this}})}return e}(window.Zepto,window.jQuery);Clickable._os=function(i,k){var l,h,g;if(g=/\bCPU.*OS (\d+(_\d+)?)/i.exec(i)){l="ios";h=g[1].replace("_",".")}else{if(g=/\bAndroid (\d+(\.\d+)?)/.exec(i)){l="android";h=g[1]}}var j={name:l,version:h&&k(h),touchable:!!l};j[l]=true;return j}(navigator.userAgent,parseFloat);Clickable._trimString=function(d){var c=/^\s+|\s+$/g;return function(b){return d(b).replace(c,"")}}(String);Clickable._isDOMNode=function(d,c){return function(b){if(!b){return false}try{return(b instanceof d)||(b instanceof c)}catch(e){}if(typeof b!=="object"){return false}if(typeof b.nodeType!=="number"){return false}if(typeof b.nodeName!=="string"){return false}return true}}(Node,HTMLElement);Clickable._isInDOM=function(){return function(b){while(b=b.parentNode){if(b===document){return true}}return false}}();Clickable._bindEvents=function(){return function(f,d){for(var e in d){if(f.addEventListener){f.addEventListener(e,d[e],false)}else{if(f.attachEvent){f.attachEvent("on"+e,d[e])}}}}}();Clickable._unbindEvents=function(){return function(f,d){for(var e in d){if(f.removeEventListener){f.removeEventListener(e,d[e])}}}}();Clickable._addClass=function(){return function(c,d){c.className+=" "+d}}();Clickable._removeClass=function(b){return function(e,d){e.className=b(e.className.replace(new RegExp("\\b"+d+"\\b"),""))}}(Clickable._trimString);Clickable._enableClicking=function(y,r,F,A,D,v,s){var x="active",t="data-clickable-class",z=40;var q=false,u=!!y.ios;function E(f,c){if(!r(f)){throw TypeError("element "+f+" must be a DOM element")}if(f._clickable){return}f._clickable=true;switch(typeof c){case"undefined":c=x;break;case"string":break;default:throw TypeError("active class "+c+" must be a string")}var S=false,Z=false,o,R,j,h,V;f.setAttribute(t,c);f.style["-webkit-tap-highlight-color"]="rgba(255,255,255,0)";p();return;function e(H,G){S=true;j=+new Date();o=H;R=G;h=w(f);if(h){V=h.scrollTop;h.addEventListener("scroll",aa,true)}}function l(){if(h){h.removeEventListener("scroll",aa)}h=null;V=null;o=null;R=null;S=false}function aa(){Y()}function b(){return S}function T(){v(f,c)}function X(){s(f,c)}function p(){A(f,{click:k});if(!y.touchable){A(f,{mousedown:W,mousemove:U,mouseout:U,mouseup:g});return}if(y.ios){A(f,{DOMNodeInsertedIntoDocument:d,DOMNodeRemovedFromDocument:i});if(F(f)){d()}}else{d()}}function d(){A(f,{touchstart:n,touchmove:m,touchcancel:Y,touchend:Q})}function i(){D(f,{touchstart:n,touchmove:m,touchcancel:Y,touchend:Q})}function k(G){G=G||window.event;if(!f.disabled&&Z){Z=false;setTimeout(function(){q=false},0)}else{if(G.stopImmediatePropagation){G.stopImmediatePropagation()}G.preventDefault();G.stopPropagation();G.cancelBubble=true;G.returnValue=false;return false}}function W(G){Z=false;if(f.disabled||!B(G.target,f)){G.preventDefault();l();return}e(G.clientX,G.clientY);T()}function U(G){G.preventDefault();l();Z=false;X()}function g(G){if(f.disabled){G.preventDefault();l();Z=false;return}if(!b()){G.preventDefault();Z=false}else{Z=true}l();X()}function n(H){Z=false;if(q||f.disabled||(H.touches.length!==1)||!B(H.target,f)){l();return}q=true;var G=H.changedTouches[0];e(G.clientX,G.clientY);if(h){if(h._isScrolling||(V<0)||(h.scrollHeightz){Z=true;C(f,M,G)}else{T();setTimeout(function(){X();Z=true;C(f,M,G)},1)}}}function B(b,c){do{if(b===c){return true}else{if(b._clickable){return false}}}while(b=b.parentNode);return false}function C(c,e,b){var d=document.createEvent("MouseEvents");d.initMouseEvent("click",true,true,window,1,e||0,b||0,e||0,b||0,false,false,false,false,0,null);c.dispatchEvent(d)}function w(b){if(!y.ios||(y.version<5)){return}while(b=b.parentNode){if(b._scrollable){if(b._iScroll){return}return b}}}return E}(Clickable._os,Clickable._isDOMNode,Clickable._isInDOM,Clickable._bindEvents,Clickable._unbindEvents,Clickable._addClass,Clickable._removeClass);Clickable._enableStickyClick=function(h,l,i){var k="data-clickable-class";function j(b,c,d){if(!l(b)){throw TypeError("button must be a DOM element, got "+b)}switch(typeof c){case"string":break;case"function":d=c;c=undefined;break;default:throw TypeError("button active class must be a string if defined, got "+c)}if(typeof d!=="function"){throw TypeError("sticky click handler must be a function, got "+d)}i(b,c);b.addEventListener("click",g(b,d),false)}function g(c,d){var b=false,e=c.getAttribute(k);return function(){if(b){return}b=true;var p=false,q;c.disabled=true;c.className+=" "+e;try{q=d.call(c,f)}catch(o){if(window.console&&window.console.error){if((typeof o==="object")&&o.stack){window.console.error(o.stack)}else{window.console.error(o+"")}}f()}if(q===false){f()}function f(){if(p){return}p=true;b=false;if(c.disabled){c.disabled=false;c.className=h(c.className.replace(new RegExp("\\b"+e+"\\b","g"),""))}}}}return j}(Clickable._trimString,Clickable._isDOMNode,Clickable._enableClicking);var iScroll=function(u,f){function C(b){if(""===v){return b}b=b.charAt(0).toUpperCase()+b.substr(1);return v+b}var t=Math,s=f.createElement("div").style,v;a:{for(var z=["t","webkitT","MozT","msT","OT"],h,j=0,x=z.length;jb?(this.options.fixedScrollbar||(b=this[d+"ScrollbarIndicatorSize"]+t.round(3*b),8>b&&(b=8),this[d+"ScrollbarIndicator"].style["h"==d?"width":"height"]=b+"px"),b=0):b>this[d+"ScrollbarMaxScroll"]&&(this.options.fixedScrollbar?b=this[d+"ScrollbarMaxScroll"]:(b=this[d+"ScrollbarIndicatorSize"]-t.round(3*(b-this[d+"ScrollbarMaxScroll"])),8>b&&(b=8),this[d+"ScrollbarIndicator"].style["h"==d?"width":"height"]=b+"px",b=this[d+"ScrollbarMaxScroll"]+(this[d+"ScrollbarIndicatorSize"]-b))),this[d+"ScrollbarWrapper"].style[A]="0",this[d+"ScrollbarWrapper"].style.opacity=c&&this.options.hideScrollbar?"0":"1",this[d+"ScrollbarIndicator"].style[B]="translate("+("h"==d?b+"px,0)":"0,"+b+"px)")+H)},_start:function(e){var d=w?e.touches[0]:e,b,c;if(this.enabled){this.options.onBeforeScrollStart&&this.options.onBeforeScrollStart.call(this,e);(this.options.useTransition||this.options.zoom)&&this._transitionTime(0);this.zoomed=this.animating=this.moved=!1;this.dirY=this.dirX=this.absDistY=this.absDistX=this.distY=this.distX=0;this.options.zoom&&(w&&1this.options.zoomMax&&(e=2*this.options.zoomMax*Math.pow(0.5,this.options.zoomMax/e)),this.lastScale=e/this.scale,b=this.originX-this.originX*this.lastScale+this.x,c=this.originY-this.originY*this.lastScale+this.y,this.scroller.style[B]="translate("+b+"px,"+c+"px) scale("+e+")"+H,this.options.onZoom&&this.options.onZoom.call(this,g)}else{this.pointX=e.pageX;this.pointY=e.pageY;if(0this.minScrollY||c=this.minScrollY||0<=this.maxScrollY?this.minScrollY:this.maxScrollY}this.distX+=i;this.distY+=k;this.absDistX=t.abs(this.distX);this.absDistY=t.abs(this.distY);6>this.absDistX&&6>this.absDistY||(this.options.lockDirection&&(this.absDistX>this.absDistY+5?(c=this.y,k=0):this.absDistY>this.absDistX+5&&(b=this.x,i=0)),this.moved=!0,this._pos(b,c),this.dirX=0i?1:0,this.dirY=0k?1:0,300g&&Q.options.momentum){e=P?Q._momentum(P-Q.startX,g,-Q.x,Q.scrollerW-Q.wrapperW+Q.x,Q.options.bounce?Q.wrapperW:0):e;i=k?Q._momentum(k-Q.startY,g,-Q.y,0>Q.maxScrollY?Q.scrollerH-Q.wrapperH+Q.y-Q.minScrollY:0,Q.options.bounce?Q.wrapperH:0):i;P=Q.x+e.dist;k=Q.y+i.dist;if(0Q.minScrollY&&k>Q.minScrollY||Q.y=this.minScrollY||0d.options.zoomMax&&(c=d.options.zoomMax),c!=d.scale){!d.wheelZoomCount&&d.options.onZoomStart&&d.options.onZoomStart.call(d,e),d.wheelZoomCount++,d.zoom(e.pageX,e.pageY,c,400),setTimeout(function(){d.wheelZoomCount--;!d.wheelZoomCount&&d.options.onZoomEnd&&d.options.onZoomEnd.call(d,e)},400)}}else{b=d.x+b,c=d.y+c,0d.minScrollY?c=d.minScrollY:cd.maxScrollY&&d.scrollTo(b,c,0)}},_mouseout:function(c){var b=c.relatedTarget;if(b){for(;b=b.parentNode;){if(b==this.wrapper){return}}}this._end(c)},_transitionEnd:function(b){b.target==this.scroller&&(this._unbind(O),this._startAni())},_startAni:function(){var g=this,e=g.x,i=g.y,k=Date.now(),b,c,d;g.animating||(g.steps.length?(b=g.steps.shift(),b.x==e&&b.y==i&&(b.time=0),g.animating=!0,g.moved=!0,g.options.useTransition)?(g._transitionTime(b.time),g._pos(b.x,b.y),g.animating=!1,b.time?g._bind(O):g._resetPos(0)):(d=function(){var P=Date.now(),Q;if(P>=k+b.time){g._pos(b.x,b.y);g.animating=false;g.options.onAnimationEnd&&g.options.onAnimationEnd.call(g);g._startAni()}else{P=(P-k)/b.time-1;c=t.sqrt(1-P*P);P=(b.x-e)*c+e;Q=(b.y-i)*c+i;g._pos(P,Q);if(g.animating){g.aniTime=L(d)}}},d()):g._resetPos(400))},_transitionTime:function(b){b+="ms";this.scroller.style[K]=b;this.hScrollbar&&(this.hScrollbarIndicator.style[K]=b);this.vScrollbar&&(this.vScrollbarIndicator.style[K]=b)},_momentum:function(g,e,i,b,c){var e=t.abs(g)/e,d=e*e/0.0012;0i?(i+=c/(6/(0.0006*(d/e))),e=e*i/d,d=i):0>g&&d>b&&(b+=c/(6/(0.0006*(d/e))),e=e*b/d,d=b);return{dist:d*(0>g?-1:1),time:t.round(e/0.0006)}},_offset:function(d){for(var c=-d.offsetLeft,b=-d.offsetTop;d=d.offsetParent;){c-=d.offsetLeft,b-=d.offsetTop}d!=this.wrapper&&(c*=this.scale,b*=this.scale);return{left:c,top:b}},_snap:function(g,e){var b,c,d;d=this.pagesX.length-1;b=0;for(c=this.pagesX.length;b=this.pagesX[b]){d=b;break}}d==this.currPageX&&(0this.dirX)&&d--;g=this.pagesX[d];c=(c=t.abs(g-this.pagesX[this.currPageX]))?500*(t.abs(this.x-g)/c):0;this.currPageX=d;d=this.pagesY.length-1;for(b=0;b=this.pagesY[b]){d=b;break}}d==this.currPageY&&(0this.dirY)&&d--;e=this.pagesY[d];b=(b=t.abs(e-this.pagesY[this.currPageY]))?500*(t.abs(this.y-e)/b):0;this.currPageY=d;d=t.round(t.max(c,b))||200;return{x:g,y:e,time:d}},_bind:function(d,c,b){(c||this.scroller).addEventListener(d,this,!!b)},_unbind:function(d,c,b){(c||this.scroller).removeEventListener(d,this,!!b)},destroy:function(){this.scroller.style[B]="";this.vScrollbar=this.hScrollbar=!1;this._scrollbar("h");this._scrollbar("v");this._unbind(F,u);this._unbind(M);this._unbind(n);this._unbind(p);this._unbind(q);this.options.hasTouch||(this._unbind("mouseout",this.wrapper),this._unbind(N));this.options.useTransition&&this._unbind(O);this.options.checkDOMChanges&&clearInterval(this.checkDOMTime);this.options.onDestroy&&this.options.onDestroy.call(this)},refresh:function(){var e,d,b,c=0;d=0;this.scalethis.maxScrollX;this.vScroll=this.options.vScroll&&(!this.options.bounceLock&&!this.hScroll||this.scrollerH>this.wrapperH);this.hScrollbar=this.hScroll&&this.options.hScrollbar;this.vScrollbar=this.vScroll&&this.options.vScrollbar&&this.scrollerH>this.wrapperH;e=this._offset(this.wrapper);this.wrapperOffsetLeft=-e.left;this.wrapperOffsetTop=-e.top;if("string"==typeof this.options.snap){this.pagesX=[];this.pagesY=[];b=this.scroller.querySelectorAll(this.options.snap);e=0;for(d=b.length;e=this.maxScrollX;){this.pagesX[d]=c,c-=this.wrapperW,d++}this.maxScrollX%this.wrapperW&&(this.pagesX[this.pagesX.length]=this.maxScrollX-this.pagesX[this.pagesX.length-1]+this.pagesX[this.pagesX.length-1]);d=c=0;for(this.pagesY=[];c>=this.maxScrollY;){this.pagesY[d]=c,c-=this.wrapperH,d++}this.maxScrollY%this.wrapperH&&(this.pagesY[this.pagesY.length]=this.maxScrollY-this.pagesY[this.pagesY.length-1]+this.pagesY[this.pagesY.length-1])}}this._scrollbar("h");this._scrollbar("v");this.zoomed||(this.scroller.style[K]="0",this._resetPos(200))},scrollTo:function(g,e,b,c){var d=g;this.stop();d.length||(d=[{x:g,y:e,time:b,relative:c}]);g=0;for(e=d.length;gthis.minScrollY?this.minScrollY:b.topd?0:d>this.pagesX.length-1?this.pagesX.length-1:d,c=0>c?0:c>this.pagesY.length-1?this.pagesY.length-1:c,this.currPageX=d,this.currPageY=c,d=this.pagesX[d],c=this.pagesY[c]}else{if(d*=-this.wrapperW,c*=-this.wrapperH,dthis.minScrollY?this.minScrollY:this.y5){x=true}s=false;c()}}function r(){if(!s&&x){w()}}}}(Scrollable._os);Scrollable._enableScrolling=function(C,t,x,D,E,s,v,u){var y=z();return r;function z(){if((C.ios&&(C.version>=5))||(C.android&&(C.version>=4))){return true}else{return false}}function r(b,c){if(!t(b)){throw b+" is not a DOM element"}if(b._scrollable){return}b._scrollable=true;var d;b._scrollTop=function(f,e){if(typeof f==="undefined"){return d?Math.max(parseInt(-d.y),0):b.scrollTop}if(!d&&(!C.mobile||y)){b.scrollTop=f;e&&e();return}x(function(){d.scrollTo(d.x,Math.min(-f,0),1);e&&e()})};b._scrollLeft=function(e){if(typeof e==="undefined"){return d?Math.max(parseInt(-d.x),0):b.scrollLeft}if(!d&&(!C.mobile||y)){b.scrollLeft=e;return}x(function(){d.scrollTo(Math.min(-e,0),d.y,1)})};b.style.overflow="scroll";if(!c){if(!C.mobile){return}if(y){b.style["-webkit-overflow-scrolling"]="touch";if(C.ios){E(b)}return}}F(b,function(e){d=e})}function F(c,b){c._iScroll=true;w(c);var d=B(c);x(function(){var e=new s(c,{checkDOMChanges:true,useTransform:true,useTransition:true,hScrollbar:false,vScrollbar:false,bounce:!!C.ios,onScrollMove:d,onBeforeScrollEnd:d,onScrollEnd:function(){c._iScrolling=false;d()},onBeforeScrollStart:A,onScrollStart:function(){c._iScrolling=true}});c._iScroll=e;b(e)})}function w(c){var b=u.createElement("div"),d=Array.prototype.slice.call(c.childNodes||[]);D(d,function(e){var f=c.removeChild(e);b.appendChild(f)});c.appendChild(b);c.style.position="relative";b.style["min-height"]="100%";b.style["min-width"]="100%"}function B(c){var d,b;return function(){var e=c._scrollTop(),f=c._scrollLeft();if((e===d)&&(f===b)){return}d=e;b=f;G(c)}}function G(b){if(b.dispatchEvent){var c=u.createEvent("MouseEvents");c.initMouseEvent("scroll",false,false,v,0,0,0,0,0,false,false,false,false,0,null);b.dispatchEvent(c)}}function A(b){var c=b.target;while(c.nodeType!==1){c=c.parentNode}if((c.tagName!=="SELECT")&&(c.tagName!=="INPUT")&&(c.tagName!=="TEXTAREA")){b.preventDefault()}}}(Scrollable._os,Scrollable._isDOMNode,Scrollable._onReady,Scrollable._forEachInArray,Scrollable._scrollWatcher,iScroll,window,document);Scrollable._getScrollableNode=function(c){return function(b){if(c(b)&&b._iScroll){return b.childNodes[0]}else{return b}}}(Scrollable._isDOMNode);Scrollable._enableInfiniteScrolling=function(v,q,w,u,t,p,y,o){var x=320;return s;function s(f,V,g){if(w(f)){if(f.length){var O=f.length-1;for(var N=0;N=4)){o.addEventListener("touchstart",function(w){if(w.target===o){w.preventDefault()}},false)}var r=j.createElement("div");r.className="app-dialog";if(p.theme){r.className+=" "+p.theme}o.appendChild(r);if(p.title){var u=j.createElement("div");u.className="title";u.textContent=p.title;r.appendChild(u)}if(p.text||p.rawText){var t=j.createElement("div");t.className="text";if(e.isNode(p.text)){t.appendChild(p.text)}else{if(p.rawText){t.innerHTML=p.rawText}else{t.textContent=p.text}}r.appendChild(t)}if(p.rawHTML){r.appendChild(p.rawHTML)}if(p.okButton){var q=j.createElement("div");q.className="button ok last";if(!p.cancelButton){q.className+=" first"}q.setAttribute("data-button","ok");q.textContent=p.okButton;m(q);q.addEventListener("click",s,false);r.appendChild(q)}if(p.cancelButton){var q=j.createElement("div");q.className="button cancel first";if(!p.okButton){q.className+=" last"}q.setAttribute("data-button","cancel");q.textContent=p.cancelButton;m(q);q.addEventListener("click",s,false);r.appendChild(q)}function s(){var w=this.getAttribute("data-button");if(w==="cancel"){w=false}v(w)}return o}function k(q,u,s){if(l&&!s){l.push([q,u]);return}l=l||[];var t=false,r=n(q,p),o=r.firstChild;i=p;e.ready(function(){j.body.appendChild(r);setTimeout(function(){r.className+=" enabled";j.body.className+=" "+g},50)});function p(v){if(t){return}t=true;i=null;r.className=r.className.replace(/\benabled\b/g,"")+" closing";if(v){r.className+=" closing-success"}else{r.className+=" closing-fail"}j.body.className=j.body.className.replace(new RegExp("\\b"+g+"\\b","g"),"");setTimeout(function(){b();u(v)},0);setTimeout(function(){try{r.parentNode.removeChild(r)}catch(w){}},600);return true}}function c(o){if(i){return i(o||false)}}function h(){return !!i}function b(){if(!l){return}if(!l.length){l=null;return}var o=l.shift();o.push(true);k.apply(f,o)}}(window,document,Clickable,App,App._Utils);App._Form=function(e,b,d,f){d.form=function(g,h){if(f.isjQueryElem(g)){g.each(function(){d.form(this,h)});return}if(!f.isNode(g)){throw TypeError("form must be a DOM node, got "+g)}if(typeof h!=="function"){throw TypeError("callback must be a function, got "+h)}c(g,h)};return{};function c(j,m){var l=(j.nodeName==="FORM"),h=false,i;if(l){var k=b.createElement("input");k.style.display="none";k.type="submit";j.appendChild(k);j.addEventListener("submit",function(n){n.preventDefault();g()},false);i=j.querySelectorAll(".app-submit")}else{i=[j]}f.forEach(i,function(n){if(n.nodeName==="TEXTAREA"){isText=true}else{if(n.nodeName!=="INPUT"){isText=false}else{switch((n.type||"").toLowerCase()){case"button":case"submit":case"reset":case"hidden":isText=false;break;default:isText=true;break}}}if(isText){n.addEventListener("keydown",function(o){if(o.which===13){o.preventDefault();g()}},false)}else{n.addEventListener("click",function(o){o.preventDefault();g()},false)}});function g(){if(h){return}h=true;j.disabled=true;var p={},o=l?j.querySelectorAll("[name]"):[j],n=false;if(l){f.forEach(j.querySelectorAll("[name]"),function(q){p[q.name]=q.value})}else{p.value=j.value;if(j.name){p[j.name]=j.value}}f.forEach(o,function(q){q.disabled=true;if(q.blur){q.blur()}});if(l&&j.blur){j.blur()}m.call(this,p,function(){if(n){return}n=true;f.forEach(o,function(q){q.disabled=false});h=false;j.disabled=false})}}}(window,document,App,App._Utils);App._Scroll=function(d,c,m){var p={APP_CONTENT:"app-content",APP_SCROLLABLE:"app-scrollable",APP_SCROLLHACK:"app-scrollhack",NO_SCROLL:"data-no-scroll",SCROLLABLE:"data-scrollable",LAST_SCROLL:"data-last-scroll",SCROLL_STYLE:"data-scroll-style",TOUCH_SCROLL:"-webkit-overflow-scrolling"},h="__appjsPageManager";c.infiniteScroll=function(v,t,w){if(m.isjQueryElem(v)){if(v.length){var s=v.length-1;for(var u=0;u=5&&!i.os.faked&&(typeof kik!=="object"||kik===null||!kik.enabled)){h()}return;function h(){k.addEventListener("touchstart",function(m){var l=c(m);if(l&&!l._iScroll){if((l.scrollHeight-l.clientHeight>1)&&((l.scrollTop<=0)||(l.scrollTop+l.clientHeight>=l.scrollHeight))){e(m)}}});k.addEventListener("touchmove",function(m){var l=c(m);if(!l){m.preventDefault()}else{if(l._iScroll){m.preventDefault()}else{if(m.changedTouches){if(m.changedTouches.length===1){b(m)}j(m)}}}});k.addEventListener("touchcancel",function(l){f(l)});k.addEventListener("touchend",function(l){f(l)})}function c(m){var l=m.target;if(l){do{if(l._scrollable){break}}while(l=l.parentNode)}return l}function b(o){var n=c(o),p=o.changedTouches[0],m=g[p.identifier],l=p.pageY;if(n&&typeof m!=="undefined"){if(n.scrollTop<=0){if(m>l){delete g[p.identifier]}else{o.preventDefault()}}else{if(n.scrollTop+n.clientHeight>=n.scrollHeight){if(m13){W=W.substr(0,12)+".."}Y.textContent=W}function i(){if(Q){return}Q=true;if(K.os.android){e.body.className+=" "+S}else{e.body.className+=" "+z}K.ready(function(){setTimeout(C,6)})}}(window,document,Clickable,Scrollable,App,App._Utils,App._Events,App._Metrics,App._Scroll);App._Stack=function(k,o,q,c,x,r){var e="__APP_JS_STACK__"+k.location.pathname,i="__APP_JS_TIME__"+k.location.pathname;var j=[];q.getStack=function(){return b()};q.getPage=function(y){var z=j.length-1;switch(typeof y){case"undefined":y=z;break;case"number":if(Math.abs(y)>z){throw TypeError("absolute index cannot be greater than stack size, got "+y)}if(y<0){y=z+y}break;default:throw TypeError("page index must be a number if defined, got "+y)}return g(y)};q.removeFromStack=function(A,z){var y=j.length-1;switch(typeof A){case"undefined":A=0;break;case"number":if(Math.abs(A)>y){throw TypeError("absolute start index cannot be greater than stack size, got "+A)}if(A<0){A=y+A}break;default:throw TypeError("start index must be a number if defined, got "+A)}switch(typeof z){case"undefined":z=y;break;case"number":if(Math.abs(z)>y){throw TypeError("absolute end index cannot be greater than stack size, got "+z)}if(z<0){z=y+z}break;default:throw TypeError("end index must be a number if defined, got "+z)}if(A>z){throw TypeError("start index cannot be greater than end index")}l(A,z)};q.addToStack=function(z,y){var A=j.length-1;switch(typeof z){case"undefined":z=0;break;case"number":if(Math.abs(z)>A){throw TypeError("absolute index cannot be greater than stack size, got "+z)}if(z<0){z=A+z}break;default:throw TypeError("index must be a number if defined, got "+z)}if(!c.isArray(y)){throw TypeError("added pages must be an array, got "+y)}y=y.slice();c.forEach(y,function(C,B){if(typeof C==="string"){C=[C,{}]}else{if(c.isArray(C)){C=C.slice()}else{throw TypeError("page description must be an array (page name, arguments), got "+C)}}if(typeof C[0]!=="string"){throw TypeError("page name must be a string, got "+C[0])}switch(typeof C[1]){case"undefined":C[1]={};case"object":break;default:throw TypeError("page arguments must be an object if defined, got "+C[1])}switch(typeof C[2]){case"undefined":C[2]={};case"object":break;default:throw TypeError("page options must be an object if defined, got "+C[2])}y[B]=C});w(z,y)};q.saveStack=function(){n()};q.destroyStack=function(){s()};q.restore=m();return{get:b,getCurrent:t,getPage:g,pop:v,push:h,size:d,save:n,destroy:s};function n(){try{var z=[];for(var A=0,y=j.length;A=C.maxAge){throw TypeError("restore content is too old")}if(!r.has(B[0])){throw TypeError(B[0]+" is not a known page")}c.forEach(y,function(F){if(!r.has(F[0])){throw TypeError(F[0]+" is not a known page")}});try{p(0,y,true)}catch(D){u(0,j.length);throw Error("failed to restore stack")}n();try{q.load(B[0],B[1],B[2],E)}catch(D){u(0,j.length);throw Error("failed to restore stack")}}}}(window,document,App,App._Utils,App._Scroll,App._Pages);App._Transitions=function(n,w,A,x,e,D,y,t){var c="app-transition",h="slide-left",z="android-l-in",f="fade-on",u="instant",v={instant:"instant",fade:"fade","fade-on":"fade-off","fade-off":"fade-on","scale-in":"scale-out","scale-out":"scale-in","rotate-left":"rotate-right","rotate-right":"rotate-left","cube-left":"cube-right","cube-right":"cube-left","swap-left":"swap-right","swap-right":"swap-left","explode-in":"explode-out","explode-out":"explode-in","implode-in":"implode-out","implode-out":"implode-in","slide-left":"slide-right","slide-right":"slide-left","slide-up":"slide-down","slide-down":"slide-up","slideon-left":"slideoff-left","slideon-right":"slideoff-right","slideon-up":"slideoff-up","slideon-down":"slideoff-down","slideoff-left":"slideon-left","slideoff-right":"slideon-right","slideoff-up":"slideon-up","slideoff-down":"slideon-down","slideon-left-ios":"slideoff-right-ios","glideon-right":"glideoff-right","glideoff-right":"slideon-right","glideon-left":"glideoff-left","glideoff-left":"slideon-left","glideon-down":"glideoff-down","glideoff-down":"slideon-down","glideon-up":"glideoff-up","glideoff-up":"slideon-up","android-l-in":"android-l-out","android-l-out":"android-l-in"},b=10;var o=false,m,q,d;if(e.os.ios){k(h)}else{if(e.os.android){if(e.os.version>=4){k(z)}else{if((e.os.version<2.3)||/LT15a/i.test(navigator.userAgent)){k(u)}else{k(f)}}}}r();x.setDefaultTransition=function(F){if(typeof F==="object"){switch(e.os.name){case"android":if((e.os.version<4)&&F.androidFallback){F=F.androidFallback}else{F=F.android}break;case"ios":if((e.os.version<5)&&F.iosFallback){F=F.iosFallback}else{F=F.ios}break;default:F=F.fallback;break}if(!F){return}}if(typeof F!=="string"){throw TypeError("transition must be a string if defined, got "+F)}if(!(F in v)){throw TypeError("invalid transition type, got "+F)}k(F)};x.getDefaultTransition=function(){return m};x.getReverseTransition=function(){return q};x.enableDragTransition=function(){j()};return{REVERSE_TRANSITION:v,run:i,enableDrag:p,disableDrag:l};function k(F){m=F;q=v[m]}function g(F){if(!e.os.ios){return false}else{if(F==="slide-left"){return true}else{if(F==="slide-right"){return true}else{return false}}}}function i(K,J,H,L,G){if(!H.transition){H.transition=(G?q:m)}var F=(e.os.ios&&(e.os.version>=7)&&{"slideon-down":1,"slideoff-down":1}[H.transition]);if(!H.duration){if(!e.os.ios){H.duration=180}else{if(e.os.version<7){H.duration=325}else{if(F){H.duration=475}else{H.duration=425}}}}if(!H.easing){if(e.os.ios){if(F){H.easing="cubic-bezier(0.4,0.6,0.05,1)"}else{if(H.transition==="slideon-left-ios"||H.transition==="slideoff-right-ios"){if(e.os.version<7){H.easing="ease-in-out"}else{H.easing="cubic-bezier(0.4,0.6,0.2,1)"}}}}else{if(e.os.android){if(H.transition==="android-l-in"){H.easing="ease-out"}else{if(H.transition==="android-l-out"){H.easing="ease-in"}}}}}w.body.className+=" "+c;if(H.transition==="instant"){A(K,J,H,function(){setTimeout(I,0)})}else{if(g(H.transition)){s(K,J,H,I)}else{A(K,J,H,I)}}function I(){w.body.className=w.body.className.replace(new RegExp("\\b"+c+"\\b"),"");L()}}function s(I,H,O,N){var K=(O.transition==="slide-left"),F=K?H:I,L=B(H,I,K);if(!L){A(I,H,O,N);return}var M=F.style.position,J=F.style.zIndex,G=F.style.background;F.style.position="fixed";F.style.zIndex="4000";F.style.background="none";if(K){I.parentNode.insertBefore(H,I)}else{if(I.nextSibling){I.parentNode.insertBefore(H,I.nextSibling)}else{I.parentNode.appendChild(H)}}if(x._Pages){x._Pages.fixContent(I);x._Pages.fixContent(H)}if(e.os.version<7){O.easing="ease-in-out"}else{O.easing="cubic-bezier(0.4,0.6,0.2,1)"}e.animate(L,O.duration,O.easing,function(){I.parentNode.removeChild(I);F.style.position=M;F.style.zIndex=J;F.style.background=G;N()})}function B(J,L,O){var H=L.querySelector(".app-topbar"),P=L.querySelector(".app-topbar .app-title"),G=L.querySelector(".app-topbar .left.app-button"),M=L.querySelector(".app-content"),I=J.querySelector(".app-topbar"),F=J.querySelector(".app-topbar .app-title"),Q=J.querySelector(".app-topbar .left.app-button"),K=J.querySelector(".app-content"),N=[];if(!H||!I||!M||!K||!e.isVisible(H)||!e.isVisible(I)){return}if(G&&(G.getAttribute("data-noslide")!==null)){G=undefined}if(Q&&(Q.getAttribute("data-noslide")!==null)){Q=undefined}if(O){N.push({opacityStart:0,opacityEnd:1,elem:I})}else{N.push({opacityStart:1,opacityEnd:0,elem:H})}if(P){N.push({transitionStart:"translate3d(0,0,0)",transitionEnd:"translate3d("+C(Q,O)+"px,0,0)",elem:P})}if(F){N.push({transitionStart:"translate3d("+C(G,!O)+"px,0,0)",transitionEnd:"translate3d(0,0,0)",elem:F})}if(e.os.version>=5){if(G){N.push({transitionStart:"translate3d(0,0,0)",transitionEnd:"translate3d("+E(G,Q,!O)+"px,0,0)",elem:G})}if(Q){N.push({transitionStart:"translate3d("+E(Q,G,O)+"px,0,0)",transitionEnd:"translate3d(0,0,0)",elem:Q})}}if(e.os.version<7){N.push({transitionStart:"translate3d(0,0,0)",transitionEnd:"translate3d("+(O?-100:100)+"%,0,0)",elem:M},{transitionStart:"translate3d("+(O?100:-100)+"%,0,0)",transitionEnd:"translate3d(0,0,0)",elem:K})}else{N.push({transitionStart:"translate3d(0,0,0)",transitionEnd:"translate3d("+(O?-30:100)+"%,0,0)",elem:M},{transitionStart:"translate3d("+(O?100:-30)+"%,0,0)",transitionEnd:"translate3d(0,0,0)",elem:K})}return N}function E(I,H,G){var J=I.textContent.length*(e.os.version<7?10:12),F=H?(H.textContent.length*15):0;if(!G){return(F-n.innerWidth)/2}else{return(n.innerWidth-J)/2}}function C(F,G){var H=0;if(F&&(e.os.version>=5)){H=F.textContent.length*(e.os.version<7?10:12)}if(!G){return(n.innerWidth/2)}else{return(H-n.innerWidth)/2}}function j(){o=true}function r(){var H=w.querySelectorAll("meta");for(var G=0,F=H.length;Gb)){return}if(!y.fire(aa[2],aa[3],y.EVENTS.BEFORE_BACK)){return}ai.preventDefault();x._Navigation.enqueue(function(ak){N=ak},true);w.body.className+=" "+c;L=ac={x:aj.pageX,y:aj.pageY};Q.style.webkitTransition="all 0s linear";if(Z){Z.style.webkitTransition="all 0s linear"}if(H){H.style.webkitTransition="all 0s linear"}ab.style.webkitTransition="all 0s linear";M.style.webkitTransition="all 0s linear";if(ae){ae.style.webkitTransition="all 0s linear"}if(V){V.style.webkitTransition="all 0s linear"}T.style.webkitTransition="all 0s linear"}function ad(aj){if(L&&aj.touches&&aj.touches[0]&&!U){if(ac){ag=(ac.x=0;y--){if(w[y]===C){x=y;break}}if(x===-1){throw Error(C+" is not currently in the stack, cannot go back to it")}if(x!==w.length-2){o.removeFromStack(x+1)}}var A=w.length,z=false;var v=r(function(K){if(k.size()<2){K();B();return}var J=k.getCurrent();if(!p.fire(J[2],J[3],p.EVENTS.BEFORE_BACK)){z=true;K();B();return}else{k.pop()}var H=k.getCurrent(),D=H[0],G=H[3],E=J[4];p.fire(J[2],J[3],p.EVENTS.BACK);p.fixContent(G);p.startDestruction(J[0],J[2],J[3],J[1]);u.restoreScrollPosition(G);var I={};for(var F in E){if(F==="transition"){I[F]=d.REVERSE_TRANSITION[E[F]]||E[F]}else{I[F]=E[F]}}j(function(L){d.run(e,G,I,function(){p.fixContent(G);u.restoreScrollStyle(G);L();J[2].showing=false;p.fire(J[2],J[3],p.EVENTS.HIDE);H[2].showing=true;p.fire(H[2],G,p.EVENTS.SHOW);setTimeout(function(){p.finishDestruction(J[0],J[2],J[3],J[1]);K();B()},0)},true);p.fixContent(G);p.fire(H[2],G,p.EVENTS.LAYOUT)});m=D;e=G});if(z||(v&&(A<2))){return false}}function q(v,y,x,w,A){var z=false;h(v,y,x,w,function(B){B.restorable=false;B.reply=function(){if(!z){z=true;if(!B._appNoBack){c(undefined,function(){})}A.apply(o,arguments)}}})}function j(v){var x=false;var w=l.createElement("div");w.className="app-clickblocker";l.body.appendChild(w);w.addEventListener("touchstart",function(y){y.preventDefault()},false);v(function(){if(x){return}x=true;l.body.removeChild(w)})}}(window,document,App,App._Dialog,App._Scroll,App._Pages,App._Stack,App._Transitions);(function(b,c,d){if(c.platform!=="android"||c.platformVersion<5){return}d.ready(function(){setTimeout(function(){var e=[].slice.call(b.body.childNodes);e.forEach(function(f){b.body.removeChild(f)});e.forEach(function(f){b.body.appendChild(f)})},200)})})(document,App,App._Utils); \ No newline at end of file diff --git a/web/data.js b/web/data.js new file mode 100644 index 0000000..cf9fdf2 --- /dev/null +++ b/web/data.js @@ -0,0 +1,601 @@ +let noun = ['愛情', + '戀愛', + '電影', + '飛鳥', + '火神', + '城市', + '名字', + '規則', + '我', + '我們', + '你', + '你們', + '他', + '她', + '貓', + '狗', + '魚', + '雨', + '細雨', + '大雨', + '太陽', + '雲', + '太空', + '宇宙', + '天空', + '雪', + '海灣', + '眼淚', + '感動', + '情書', + '明天', + '昨天', + '今天', + '距離', + '靈魂', + '答案', + '少年', + '風景', + '浪子', + '大海', + '戒指', + '唯一', + '綠色', + '紅色', + '藍色', + '橘色', + '紫色', + '黃色', + '朋友', + '情人', + '男人', + '女人', + '玫瑰花', + '歌聲', + '北方', + '東方', + '南方', + '西方', + '手掌心', + '寶貝', + '聲音', + '貓叫聲', + '狗叫聲', + '鳥叫聲', + '魔鬼', + '天堂', + '寂寞', + '夜晚', + '理由', + '悲傷', + '幸福', + '喜劇', + '魔女', + '泡沫', + '天使', + '懸崖', + '關鍵字', + '命運', + '十字路口', + '獅子', + '獅子王', + '台北', + '台灣', + '和弦', + '鋼琴', + '小提琴', + '牛肉', + '拉麵', + '蛋餅', + '胡椒', + '咖哩', + '烤箱', + '回憶', + '糖果', + '巧克力', + '咖啡', + '瞬間', + '過客', + '酒吧', + '氣球', + '公園', + '離別', + '道別', + '飛機', + '機場', + '一切', + '回答', + '恐龍', + '蘋果', + '葡萄王', + '伯母', + '叔叔', + '阿姨', + '阿嬤', + '媽媽', + '爸爸', + '嬰兒', + '秋天', + '夏天', + '春天', + '冬天', + '浴缸', + '海灘', + '美麗', + '腳踏車', + '黑板', + '積木', + '麵包', + '書店', + '日常', + '蛋糕', + '事實', + '偶然', + '小鳥', + '聖誕節', + '端午節', + '中秋節', + '教堂', + '餅乾', + '日子', + '書桌', + '晚餐', + '早餐', + '眼睛', + '鼻子', + '嘴巴', + '嘴唇', + '肚子', + '農夫', + '少女', + '姑娘', + '旅館', + '醫院', + '冰淇淋', + '風箏', + '騙子', + '檸檬', + '郵差', + '片刻', + '喧鬧聲', + '筆記本', + '遊樂園', + '野餐', + '爆米花', + '海洋', + '病毒', + '床', + '動物園', + '情人節', + '灰姑娘', + '丈母娘', + '印度洋', + '太平洋', + '蜘蛛網', + '雕像', + '麻辣燙', + '口香糖', + '大西洋', + '雙人床', + '機車', + '行李箱', + '手槍', + '太空艙', + '焦糖', + '棉花糖', + '老闆娘', + '番茄醬', + '捉迷藏', + '董事長', + '保險套', + '啤酒', + '空姐', + '拖鞋', + '乳液', + '番茄', + '世界', + '微波爐', + '未婚夫', + '未婚妻', + '牛仔褲', + '休止符', + '音符', + '五線譜', + '林森北路', + '台北車站', + '高速公路', +]; + +let around = ['戀愛中的ooo', + '進擊的ooo', + '百分百ooo', + 'ooo之吻', + 'ooo女孩', + 'ooo男孩', + 'ooo大嬸', + 'ooo大叔', + 'ooo大神', + 'ooo大魔咒', + 'ooo的冒險', + '世紀ooo', + '搖滾ooo', + '超人氣ooo', + 'ooo白皮書', + 'ooo宿舍', + 'ooo角落', + '極速ooo', + '雪地裡的ooo', + '草原中的ooo', + '高原上的ooo', + '地底下的ooo', + 'ooo花園', + 'ooo之戀', + '我的秘密ooo', + '愛之ooo', + 'ooo日記', + '原味的ooo', + 'ooo天使', + 'ooo事務所', + 'ooo傳說', + 'ooo之舞', + 'ooo任務', + 'ooo天王', + 'ooo在身邊', + 'ooo愛上xxx', + '當ooo遇見xxx', + '我只在乎ooo', + 'ooo變xxx', + '失戀ooo', + '惡作劇之ooo', + 'ooo宅急便', + '愛情ooo', + '東方ooo', + 'ooo情人', + '我要成為ooo', + '終極ooo', + 'ooo,要不要?', + '發現ooo', + '幸福ooo', + '看見ooo', + 'ooo的抉擇', + '我的億萬ooo', + '爵士ooo', + '就是要ooo', + '這不是ooo', + 'ooo日記', + '戀愛就像ooo', + 'ooo愛上你', + '前男友的ooo', + '前女友的ooo', + 'ooo戀人', + '你是ooo,我是xxx', + '原來愛就是ooo', + '我租了一個ooo', + 'ooo向前走', + '沒有名字的ooo', + '兩個ooo', + '三個ooo', + 'ooo夏令營', + 'ooo365', + '二號出口的ooo', + '三號出口的ooo', + '喜歡,ooo', + '一百種ooo', + '一百萬種ooo', + '我的寶貝ooo', + '你的ooo對我說', + '小ooo', + '孤獨的ooo', + 'ooo的床邊故事', + '迷人的ooo', + 'xxx', + '當你和ooo一起出現', + '小時候的ooo', + 'ooo的瓦解', + 'ooo的辛苦', + 'ooo空間', + 'ooo,謝謝', + 'ooo的狂野', + '想像中的ooo', + '遺失的ooo', + '消失的ooo', + '城市裡的ooo', + '鳥鳥的ooo', + '廁所裡的ooo', + '我最愛的ooo', + '你最愛的ooo', + '怎麼了,ooo?', + '你說過的ooo', + '刻在我心底的ooo', + '你教我的ooo', + '藍色的ooo', + '紅色的ooo', + '黃色的ooo', + '綠色的ooo', + '粉紅色的ooo', + '灰色的ooo', + '紫色的ooo', + 'ooo與我無關', + '台灣的ooo', + '去你的ooo', + '來一個ooo', + '我把ooo弄丟了', + 'ooo好神奇', + '你才ooo,你全家都ooo', + '失眠的ooo', + '明天的ooo', + '愛的ooo', + '我的ooo', + '你的ooo', + '妳的ooo', + '近距離愛上ooo', + '可不可以,你也剛好喜歡ooo', + '很久以後的ooo', + '囂張的ooo', + '最美的ooo', + '哇!ooo!', + '如果能再擁有ooo', + 'ooo是科學', + 'ooo是假的', + 'ooo是幻覺', + 'ooo最討厭了', + '十點半的ooo', + '午夜的ooo', + '我看見ooo', + '我看不見ooo', + 'Why?ooo?', + '有一種ooo叫做xxx', + 'ooo與xxx', + 'ooo與xxx的故事', + '沙漠中的ooo', + '我想要ooo', + 'oooxxx', + '那女孩的ooo', + '說好的ooo呢?', + '沒有ooo的日子', + '有一種ooo', + '最後一次ooo', + 'ooo', + '來個ooo', + '你也有ooo', + '對的ooo', + '錯的ooo', + '如果我沒有ooo', + '在青春迷失的ooo', + '鄉下的ooo', + '流浪ooo', + 'ooo的約定', + 'ooo的證明', + 'ooo的回憶', + 'ooo之夢', + 'ooo怎麼了嗎?', + '好多ooo', + 'ooo專賣店', + 'ooo是什麼?', + 'ooo就是一切', + 'ooo來了!', + '生氣的ooo', + '誰都不准搶走我的ooo', + 'ooo病毒', + 'ooo派對', + 'ooo又來了', + '我愛ooo', + '伯母的ooo', + '爺爺的ooo', + '爸爸的ooo', + '媽媽的ooo', + '黑暗的ooo', + 'ooo在你後面', + 'ooo在你身旁', + '火熱的ooo', + '性感的ooo', + '在ooo與xxx之間', + 'ooo與xxx的雙聲道', + '打破ooo', + '發亮的ooo', + 'ooo拿來', + '但是我沒有ooo', + 'ooo之歌', + '不變的ooo', + '聖誕節的ooo', + '情人節的ooo', + '愛乾淨的ooo', + 'ooo好好玩', + 'ooo好舒服', + '涼快的ooo', + '姊姊的ooo', + '妹妹的ooo', + '哥哥的ooo', + '弟弟的ooo', + '危險ooo', + '危險的ooo', + 'ooo百貨', + 'ooo的狂想', + 'ooo的即興', + 'ooo狂想曲', + 'ooo奏鳴曲', + '骯髒的ooo', + 'ooo的旅行', + '宇宙的ooo', + '興奮的ooo', + '激動的ooo', + '再見,ooo!', + 'ooo?門都沒有!', + 'ooo!', + 'ooo?', + '巨大的ooo', + '想起ooo', + 'ooo怎麼樣', + 'ooo說來話長', + 'ooo的安全感', + '下一站,ooo', + '超自然ooo', + 'ooo大挑戰', + '快樂的ooo', + '溫柔的ooo', + 'ooo知道了', + '勇敢的ooo', + '不幸的ooo', + '可怕的ooo', + 'ooo的可怕', + 'ooo的痛', + 'ooo的困惑', + 'ooo的絕望', + '該死的ooo', + '聰明的ooo', + '我的今天很ooo', + 'ooo的xxx', + 'ooo又不是xxx', + 'ooo沒有xxx', + '心中的ooo', + 'ooo在我心中', + 'ooo狂熱', + '這就是ooo', + '我有八百萬個ooo', + '我買不到ooo', + '我看不見ooo', + '我找不到ooo和xxx', + 'ooo又不是我的', + 'ooo的笑話', + 'ooo與xxx的笑話', + '超能力ooo', + '春天的ooo', + '夏天的ooo', + '秋天的ooo', + '冬天的ooo', + 'ooo的春天', + 'ooo的夏天', + 'ooo的秋天', + 'ooo的冬天', + '我的寶貝ooo', + 'ooo俱樂部', + '只在回憶中的ooo', + '我失去了ooo', + 'ooo的一天', + 'ooo的名字' +]; + +let tips = [ + "寫一首很圓滑(Legato)的曲子吧!", + "寫一首使用很多斷奏(Staccato)的曲子吧!", + "主旋律不一定要在最高音阿!用低音來當主旋律如何?", + "主旋律不一定要在最高音阿!用中音的聲部來當主旋律如何?", + "試試看寫一首雙旋律並行的曲子,聽過巴赫的《創意曲》嗎?", + "寫一首 3/4 拍的曲子吧!碰恰恰碰恰恰~", + "寫一首 5 拍子的曲子吧!聽過 Dave Brubeck 的《Take Five》嗎?", + "寫一首 7 拍子的曲子吧!", + "寫一首 9/8 拍子的曲子吧!", + "寫一個完全沒有拍子的段落吧!", + "要不要試試看寫一首速度超快的曲子?", + "試試看寫一首速度很慢的曲子吧!", + "選一個你從來沒有用過的樂器,用它來當作主旋律試試看!", + "用一個你從來沒有用過的調式來寫曲子吧!", + "試試看不斷重複同一個旋律,但是配上不同和聲吧!", + "拿起你身旁的任何產品,用上面的條碼/序號來當作主旋律!", + "寫一首只有兩個和弦不斷來回切換的歌。", + "取樣你身邊物品的聲音,把它當作主角來做一首曲子!", + "試試看寫一首旋律音一直往上走的歌?", + "試試看寫一首旋律音一直往下走的歌?", + "寫一個音域超高的段落如何?", + "寫一個音域超低的段落如何?", + "試試看寫一個全部只用大(major)和弦的段落?", + "試試看寫一個全部只用小(minor)和弦的段落?", + "試試看寫一個全部只用屬(dominant)和弦的段落?", + "試試看寫一個全部只用 7sus 和弦的段落?", + "寫一首全部只用打擊樂器的曲子吧!", + "寫一首全部只用弦樂器的曲子吧!", + "寫一首全部只用管樂器的曲子吧!", + "寫一首全部只用合成器的曲子吧!", + "寫一首全部只用人聲的曲子吧!", + "寫一首充滿民族樂器的曲子吧!", + "寫一首全部只用你自己取樣的樂器的曲子吧!", + "試試看寫一首充滿二度音程的曲子?", + "試試看寫一首充滿三度音程的曲子?", + "試試看寫一首充滿完全四度和五度音程的曲子?", + "試試看寫一首日本風的曲子?", + "試試看寫一首中國風的曲子?", + "試試看寫一首西班牙風的曲子?", + "試試看寫一首印度風的曲子?", + "試試看寫一首拉丁風的曲子?", + "找一首別人的曲子,把它的主旋律音順序反過來,當作你的主旋律。", + "找一首別人的曲子,用它的主旋律節奏,當作你的主旋律節奏。", + "這次試試看先決定和弦,再寫主旋律如何?", + "到 YouTube 取樣一小段影片當作素材如何?(當然要注意版權問題)", + "如果一直沒有靈感就起身走走吧!", + "去洗個熱水澡可能就會有靈感了!", + "先去吃個零食,回來可能會更有靈感?", + "找一首你喜歡的歌,使用跟它一模一樣的曲式。", + "從副歌開始如何?", + "不要有前奏,直接開始如何?", + "最前面加個前奏好像會不錯?", + "最後面加個尾奏好像會不錯?", + "不一定要每四小節一句呀!寫一個五小節的句子如何?", + "不一定要每四小節一句呀!寫一個三小節的句子如何?", + "試試看寫一首一分鐘以內的曲子吧!", + "你試過用淡入(fade in)的方式開始一首曲子嗎?", + "你試過用淡出(fade out)的方式結束一首曲子嗎?", + "用某些「自然環境音效」當開頭好像也不錯?", + "除了一般樂器的聲音之外,加點特殊音效吧!", + "試試看先想歌詞,然後用歌詞的自然語調決定旋律。", + "不一定要從最前面開始寫呀!從曲子最精采的那一段開始寫如何?", + "試試看寫一個只用三個樂器的曲子吧!", + "段落連接處來點過門吧!", + "亂數產生器很好用:用亂數決定你的主旋律吧!", + "亂數產生器很好用:用亂數決定你的和弦吧!", + "試試看只用兩個動機(音樂小片段、想法),就發展成一整首曲子。", + "打開你的編曲軟體/合成器/音源器,把每一個音色都試一遍,有什麼音色適合當作下一首曲子的主角呢?", + "記得天底下沒有什麼是原創的,找一些你喜歡的作品,把它的其中一些元素偷過來吧!", + "隨便找幾首古典音樂,把其中的一些小片段重組、拼在一起?", + "「輸入」是很重要的,如果你不想寫出某種音樂,那就儘量避免讓自己聽到那種音樂。", + "「輸入」是很重要的,想寫出某種音樂,就儘量讓自己多聽到那種音樂。", + "不要急著開始寫,先計畫一下大綱。你的曲子要多長、要有幾段、哪一段是最高潮呢?", + "只參考一個人是「抄襲」,參考一百個人,然後把他們混在一起就是「創新和研究」。", + "用過純文字編輯器作曲嗎?試試看不要碰樂器,把你的和弦跟旋律用純文字方式記錄下來,完全用頭腦想像聲音來作曲。", + "去聽聽看一個你從來不聽的音樂類型吧!", + "去分析一個你不愛聽,但卻很受歡迎的曲子。這首曲子到底好在哪裡?", + "到 Google 搜尋「MIDI Files」,下載幾首放到編曲軟體去研究看看吧!", + "到 imslp.org 下載一首古典音樂的樂譜研究看看吧!", + "去隨便看一部好和弦的影片,然後用影片裡面提到的技巧當主軸來作曲。", + "音感更好的話作曲編曲都會更方便喔!找一個音感訓練軟體或網站開始練習吧。", + "你有沒有認真看過你的編曲軟體/打譜軟體的說明書?", + "你知道你常用的編曲軟體/打譜軟體的所有快速鍵嗎?那會增加你的工作效率喔!現在就背兩個起來吧!", + "不要再買了,你不需要最新最好的樂器也能做出好音樂的。", + "硬碟裡躺著一堆未完成的作品嗎?把其中一個挖出來然後完成它吧!", + "找一首你喜歡的古典音樂,把它改成爵士版如何?", + "找一首你喜歡的古典音樂,把它改成搖滾版如何?", + "找一首你喜歡的鋼琴獨奏曲,把它改成管弦樂版如何?", + "用另一個喇叭播放你的作品試試看,也許你會發現之前沒聽到的問題。", + "多練點琴吧~", + "你上一次看樂理/作曲相關的書籍是什麼時候?", + "卡住的話,把你的曲子拿給其他人聽聽看吧!", + "考慮一下 CP 值,如何可以用最簡單的方式產生效果好的音樂?", + "不要太在意「樂理規則」:是作品造就了規則,而不是規則造就了作品。", + "給自己一點時間限制吧!人類在時間不夠時的潛能是很厲害的阿!", + "寫不出好東西嗎?很可能是因為你的爛東西寫得不夠多,試試看寫出爛東西吧!", + "有任何音樂想法時,記得趕快拿手機的語音備忘錄 app 錄下來。", + "試試看把東西用在「不該用的地方」。", + "記得做音樂之餘也要記得運動喔!", + "建模板:把常用的音色載入好,存檔成為一個模板,以後每次打開編曲軟體就可以直接開始創作了!", + "參考別人的作品並不可恥,不要整個照抄就好,學習一些你喜歡的元素放到自己的作品中吧!", + "不要被社群媒體的數字迷惑:點閱/按讚數最多的作品,不見得是最好的作品。", + "多花一點錢在投資自己上,少一點在投資設備上。", + "自己一個人做音樂卡住的話,試試看找別人合作吧!", + "沒有人每天都狀況好的,今天如果真的沒有做音樂的感覺,就先去做別的事情吧!", + "你的工作桌面堆滿東西嗎?把空間清出來,工作會更有效率喔!", + "建立一個「創作靈感播放清單」,聽到喜歡的、以後可能會想要參考的音樂時,趕快把它放入清單中。", + "在編曲軟體裡把每一軌好好取名字吧!誰知道「Audio Track 05」是什麼東西阿?", + "你的工作硬碟有備份嗎?沒有?這樣你晚上也睡得著?", + "備份備份,至少三份:電腦、外接硬碟、雲端都有的才是真備份阿!", + "什麼都是假的,存檔了才是真的。記得時時 Ctrl+S/Command+S!", + "拜託一定要記得備份!", + "寫曲子的初期,不要太在意細節,先把整首曲子的流程設定好更重要喔!", + "不要邊做音樂邊滑社群網站!專心阿!", + "不要坐在椅子上太久阿!站起來動一動吧!", + "你用過雙螢幕工作嗎?沒有的話,你一定要試試看,那會大大增加工作效率喔!", + "不要照著 SOP 做音樂:發現自己「每次都這麼做」的時候,故意不要這樣做吧!", + "少即是多:加入更多東西並不一定會讓你的音樂聽起來更龐大。", + "低音聽起來很髒嗎?選一個樂器當作你的「Bass」,然後禁止其他的樂器侵犯神聖的低音區域!", + "一開始就把曲子寫好,不要期待編曲、錄音、混音的人可以拯救一個爛作品。", + "連續混音太久耳朵會疲勞、影響判斷。一旦開始混音就儘量迅速完成吧!", + "如果你說不出自己一年前作品的缺點,那麼你要反省一下這一年是不是有學到東西。" +] diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..adbe3cb --- /dev/null +++ b/web/index.html @@ -0,0 +1,185 @@ + + + + + NiceIdea 音樂靈感隨機產生器 v1.1 + + + + + + + +
+
+
主選單
+
+
+
+
NiceIdea 音樂靈感隨機產生器 v1.1 - 網頁版 by Wiwi
+
+
+
    +
    給我一些隨便的【音】
    +
    給我一些隨便的【和弦】
    +
    給我一個隨便的【調號/拍號/調式/速度】
    +
    給我一個隨便的【歌名】
    +
    給我一個隨便的【點子】
    +
+
+
+
+
+
+
+
[隨機音符產生器]
+
+
+
+ 選擇要抽的音: +
    +
  • C
  • +
  • Db
  • +
  • D
  • +
  • Eb
  • +
  • E
  • +
  • F
  • +
  • F#
  • +
  • G
  • +
  • Ab
  • +
  • A
  • +
  • Bb
  • +
  • B
  • +
+
+
+ 要產生幾個音? + +
+
+
產生!
+
+
+

結果:

+ +
+
+
+
+
+
+
[隨機和弦產生器]
+
+
+
+ 選擇要抽的和弦類型: +
    +
  • major
  • +
  • minor
  • +
  • augmented
  • +
  • diminished
  • +
  • sus2
  • +
  • maj7
  • +
  • m7
  • +
  • 7
  • +
  • 7sus
  • +
  • m7(b5)
  • +
  • dim7
  • +
+
+
+ 要產生幾個和弦? + +
+
+
產生!
+
+
+

結果:

+ +
+
+
+
+
+
+
[各種東西產生器]
+
+
+
+
給我一個【調號】
+
+
+
+
給我一個【拍號】
+
+
+
+
給我一個【調式】
+
+
+
+
給我一個【速度】
+
+
+
+
+
+
+
+
[歌名產生器]
+
+
+
+
來個歌名吧!
+
+ +
+
+ +
+
+
+
+
+
[歌名產生器]
+
+
+
+
來個點子吧!
+ + + +
+ +
+
+ + + + + + + + + + diff --git a/web/niceidea.js b/web/niceidea.js new file mode 100644 index 0000000..94ed99e --- /dev/null +++ b/web/niceidea.js @@ -0,0 +1,142 @@ +function randomNotes() { + let choices = []; + let result = []; + let howmany = 8 + if (document.getElementById("howmanyNotes").value != "" && document.getElementById("howmanyNotes").value > 0) { + howmany = document.getElementById("howmanyNotes").value; + } + let allCheckBoxes = document.getElementById("notesList").getElementsByTagName("input"); + for (let i = 0; i < allCheckBoxes.length; i++) { + if (allCheckBoxes[i].checked) { + choices.push(allCheckBoxes[i].value) + } + } + for (let i = 0; i < howmany; i++) { + result.push(choices[Math.floor(Math.random() * choices.length)]) + } + document.getElementById("notesResult").innerHTML = result; +} + +function randomChords() { + let types = []; + let choices = []; + let result = []; + let howmany = 4; + if (document.getElementById("howmanyChords").value != "" && document.getElementById("howmanyChords").value > 0) { + howmany = document.getElementById("howmanyChords").value; + } + let allCheckBoxes = document.getElementById("chordList").getElementsByTagName("input"); + for (let i = 0; i < allCheckBoxes.length; i++) { + if (allCheckBoxes[i].checked) { + types.push(allCheckBoxes[i].value) + } + } + + // 所有和弦名單 + let major = ["C", "Db", "D", "Eb", "E", "F", "F#", "G", "Ab", "A", "Bb", "B"]; + let minor = ["Cm", "C#m", "Dm", "Ebm", "Em", "Fm", "F#m", "Gm", "G#m", "Am", "Bbm", "Bm"]; + let augmented = ["C+", "Db+", "D+", "Eb+", "E+", "F+", "Gb+", "G+", "Ab+", "A+", "Bb+", "B+"]; + let diminished = ["Cdim", "C#dim", "Ddim", "D#dim", "Edim", "Fdim", "F#dim", "Gdim", "G#dim", "Adim", "A#dim", "Bdim"]; + let sus2 = ["Csus2", "Dbsus2", "Dsus2", "Ebsus2", "Esus2", "Fsus2", "F#sus2", "Gsus2", "Absus2", "Asus2", "Bbsus2", "Bsus2"]; + let maj7 = ["Cmaj7", "Dbmaj7", "Dmaj7", "Ebmaj7", "Emaj7", "Fmaj7", "Gbmaj7", "Gmaj7", "Abmaj7", "Amaj7", "Bbmaj7", "Bmaj7"]; + let m7 = ["Cm7", "C#m7", "Dm7", "Ebm7", "Em7", "Fm7", "F#m7", "Gm7", "G#m7", "Am7", "Bbm7", "Bm7"]; + let dom7 = ["C7", "Db7", "D7", "Eb7", "E7", "F7", "F#7", "G7", "Ab7", "A7", "Bb7", "B7"]; + let dom7sus = ["C7sus", "C#7sus", "D7sus", "Eb7sus", "E7sus", "F7sus", "F#7sus", "G7sus", "Ab7sus", "A7sus", "Bb7sus", "B7sus"]; + let m7b5 = ["Cm7(b5)", "C#m7(b5)", "Dm7(b5)", "D#m7(b5)", "Em7(b5)", "Fm7(b5)", "F#m7(b5)", "Gm7(b5)", "G#m7(b5)", "Am7(b5)", "A#m7(b5)", "Bm7(b5)"]; + let dim7 = ["Cdim7", "C#dim7", "Ddim7", "D#dim7", "Edim7", "Fdim7", "F#dim7", "Gdim7", "G#dim7", "Adim7", "A#dim7", "Bdim7"]; + + // 把選擇的和弦放入候選名單 + if (types.includes("major")) { + choices = choices.concat(major); + } + if (types.includes("minor")) { + choices = choices.concat(minor); + } + if (types.includes("augmented")) { + choices = choices.concat(augmented); + } + if (types.includes("diminished")) { + choices = choices.concat(diminished); + } + if (types.includes("sus2")) { + choices = choices.concat(sus2); + } + if (types.includes("maj7")) { + choices = choices.concat(maj7); + } + if (types.includes("m7")) { + choices = choices.concat(m7); + } + if (types.includes("7")) { + choices = choices.concat(dom7); + } + if (types.includes("7sus")) { + choices = choices.concat(dom7sus); + } + if (types.includes("m7(b5)")) { + choices = choices.concat(m7b5); + } + if (types.includes("dim7")) { + choices = choices.concat(dim7); + } + // + + for (let i = 0; i < howmany; i++) { + result.push(choices[Math.floor(Math.random() * choices.length)]) + } + document.getElementById("chordsResult").innerHTML = result; +} + +function randomKeys() { + let keys = [ + "C 大調 / A 小調 (沒有升降記號)", + "G 大調 / E 小調 (1 個升記號)", + "D 大調 / B 小調 (2 個升記號)", + "A 大調 / F# 小調 (3 個升記號)", + "E 大調 / C# 小調 (4 個升記號)", + "B 大調 / G# 小調 (5 個升記號)", + "F# 大調 / D# 小調 (6 個升記號)", + "C# 大調 / A# 小調 (7 個升記號)", + "F 大調 / D 小調 (1 個降記號)", + "Bb 大調 / G 小調 (2 個降記號)", + "Eb 大調 / C 小調 (3 個降記號)", + "Ab 大調 / F 小調 (4 個降記號)", + "Db 大調 / Bb 小調 (5 個降記號)", + "Gb 大調 / Eb 小調 (6 個降記號)", + "Cb 大調 / Ab 小調 (7 個降記號)", + ]; + document.getElementById("keysResult").innerHTML = "🎼 " + keys[Math.floor(Math.random() * keys.length)]; + +} + +function randomMeter() { + let meters = [ + "2/4", "3/4", "4/4", "5/4", "6/4", "7/4", "3/8", "5/8", "6/8", "7/8", "9/8", "11/8", "12/8", "13/8", "15/8", "2/2", "3/2" + ]; + document.getElementById("meterResult").innerHTML = "⏱ " + meters[Math.floor(Math.random() * meters.length)]; + +} + + +function randomMode() { + let modes = [ + "Ionian", "Dorian", "Phrygian", "Lydian", "Mixolydian", "Aeolian", "Locrian" + ]; + document.getElementById("modeResult").innerHTML = "🎹 " + modes[Math.floor(Math.random() * modes.length)]; +} + +function randomTempo() { + document.getElementById("tempoResult").innerHTML = "🎲 " + Math.floor((Math.random() * 210) + 30) + " BPM"; +} + +function randomTitle() { + let result = around[Math.floor(Math.random() * around.length)]; + result = result.replace("ooo", noun[Math.floor(Math.random() * noun.length)]); + result = result.replace("xxx", noun[Math.floor(Math.random() * noun.length)]); + document.getElementById("titleResult").innerHTML = "🤔 " + result; +} + +function randomIdea() { + + document.getElementById("ideaResult").innerHTML = "💡 " + tips[Math.floor(Math.random() * tips.length)] +} diff --git a/web/zepto.js b/web/zepto.js new file mode 100644 index 0000000..428f84a --- /dev/null +++ b/web/zepto.js @@ -0,0 +1,2 @@ +/* Zepto v1.0rc1 - polyfill zepto event detect fx ajax form touch - zeptojs.com/license */ +(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e0?[].concat.apply([],a):a}function H(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function I(a){return a in i?i[a]:i[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function J(a,b){return typeof b=="number"&&!k[H(a)]?b+"px":b}function K(a){var b,c;return h[a]||(b=g.createElement(a),g.body.appendChild(b),c=j(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),h[a]=c),h[a]}function L(b,d){return d===a?c(b):c(b).filter(d)}function M(a,b,c,d){return A(b)?b.call(a,c,d):b}function N(a,b,d){var e=a%2?b:b.parentNode;e?e.insertBefore(d,a?a==1?e.firstChild:a==2?b:null:b.nextSibling):c(d).remove()}function O(a,b){b(a);for(var c in a.childNodes)O(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=window.document,h={},i={},j=g.defaultView.getComputedStyle,k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,m=[1,3,8,9,11],n=["after","prepend","before","append"],o=g.createElement("table"),p=g.createElement("tr"),q={tr:g.createElement("tbody"),tbody:o,thead:o,tfoot:o,td:p,th:p,"*":g.createElement("div")},r=/complete|loaded|interactive/,s=/^\.([\w-]+)$/,t=/^#([\w-]+)$/,u=/^[\w-]+$/,v={}.toString,w={},x,y,z=g.createElement("div");return w.matches=function(a,b){if(!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=z).appendChild(a),d=~w.qsa(e,b).indexOf(a),f&&z.removeChild(a),d},x=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},y=function(a){return a.filter(function(b,c){return a.indexOf(b)==c})},w.fragment=function(b,d){d===a&&(d=l.test(b)&&RegExp.$1),d in q||(d="*");var e=q[d];return e.innerHTML=""+b,c.each(f.call(e.childNodes),function(){e.removeChild(this)})},w.Z=function(a,b){return a=a||[],a.__proto__=arguments.callee.prototype,a.selector=b||"",a},w.isZ=function(a){return a instanceof w.Z},w.init=function(b,d){if(!b)return w.Z();if(A(b))return c(g).ready(b);if(w.isZ(b))return b;var e;if(D(b))e=F(b);else if(C(b))e=[c.extend({},b)],b=null;else if(m.indexOf(b.nodeType)>=0||b===window)e=[b],b=null;else if(l.test(b))e=w.fragment(b.trim(),RegExp.$1),b=null;else{if(d!==a)return c(d).find(b);e=w.qsa(g,b)}return w.Z(e,b)},c=function(a,b){return w.init(a,b)},c.extend=function(c){return f.call(arguments,1).forEach(function(d){for(b in d)d[b]!==a&&(c[b]=d[b])}),c},w.qsa=function(a,b){var c;return a===g&&t.test(b)?(c=a.getElementById(RegExp.$1))?[c]:e:a.nodeType!==1&&a.nodeType!==9?e:f.call(s.test(b)?a.getElementsByClassName(RegExp.$1):u.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))},c.isFunction=A,c.isObject=B,c.isArray=D,c.isPlainObject=C,c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.trim=function(a){return a.trim()},c.uuid=0,c.map=function(a,b){var c,d=[],e,f;if(E(a))for(e=0;e0&&w.matches(this[0],a)},not:function(b){var d=[];if(A(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):E(b)&&A(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!B(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!B(a)?a:c(a)},find:function(a){var b;return this.length==1?b=w.qsa(this[0],a):b=this.map(function(){return w.qsa(this,a)}),c(b)},closest:function(a,b){var d=this[0];while(d&&!w.matches(d,a))d=d!==b&&d!==g&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&a!==g&&b.indexOf(a)<0)return b.push(a),a});return L(b,a)},parent:function(a){return L(y(this.pluck("parentNode")),a)},children:function(a){return L(this.map(function(){return f.call(this.children)}),a)},siblings:function(a){return L(this.map(function(a,b){return f.call(b.parentNode.children).filter(function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return this.map(function(){return this[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),j(this,"").getPropertyValue("display")=="none"&&(this.style.display=K(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){return this.each(function(){c(this).wrapAll(c(a)[0].cloneNode(!1))})},wrapAll:function(a){return this[0]&&(c(this[0]).before(a=c(a)),a.append(this)),this},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return c(this.map(function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(b){return(b===a?this.css("display")=="none":b)?this.show():this.hide()},prev:function(){return c(this.pluck("previousElementSibling"))},next:function(){return c(this.pluck("nextElementSibling"))},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var d=this.innerHTML;c(this).empty().append(M(this,b,a,d))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(B(c))for(b in c)this.setAttribute(b,c[b]);else this.setAttribute(c,M(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&this.removeAttribute(a)})},prop:function(b,c){return c===a?this[0]?this[0][b]:a:this.each(function(a){this[b]=M(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+H(b),c);return d!==null?d:a},val:function(b){return b===a?this.length>0?this[0].value:a:this.each(function(a){this.value=M(this,b,a,this.value)})},offset:function(){if(this.length==0)return null;var a=this[0].getBoundingClientRect();return{left:a.left+window.pageXOffset,top:a.top+window.pageYOffset,width:a.width,height:a.height}},css:function(c,d){if(d===a&&typeof c=="string")return this.length==0?a:this[0].style[x(c)]||j(this[0],"").getPropertyValue(c);var e="";for(b in c)typeof c[b]=="string"&&c[b]==""?this.each(function(){this.style.removeProperty(H(b))}):e+=H(b)+":"+J(b,c[b])+";";return typeof c=="string"&&(d==""?this.each(function(){this.style.removeProperty(H(c))}):e=H(c)+":"+J(c,d)),this.each(function(){this.style.cssText+=";"+e})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return this.length<1?!1:I(a).test(this[0].className)},addClass:function(a){return this.each(function(b){d=[];var e=this.className,f=M(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&(this.className+=(e?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return this.className="";d=this.className,M(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(I(a)," ")}),this.className=d.trim()})},toggleClass:function(b,d){return this.each(function(e){var f=M(this,b,e,this.className);(d===a?!c(this).hasClass(f):d)?c(this).addClass(f):c(this).removeClass(f)})}},["width","height"].forEach(function(b){c.fn[b]=function(d){var e,f=b.replace(/./,function(a){return a[0].toUpperCase()});return d===a?this[0]==window?window["inner"+f]:this[0]==g?g.documentElement["offset"+f]:(e=this.offset())&&e[b]:this.each(function(a){var e=c(this);e.css(b,M(this,d,a,e[b]()))})}}),n.forEach(function(a,b){c.fn[a]=function(){var a=c.map(arguments,function(a){return B(a)?a:w.fragment(a)});if(a.length<1)return this;var d=this.length,e=d>1,f=b<2;return this.each(function(c,g){for(var h=0;h0&&this.bind(o,n),setTimeout(function(){m.css(i),e<=0&&setTimeout(function(){m.each(function(){n.call(this)})},0)},0),this},i=null}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.defaultPrevented}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c){var d=c.context,e="success";c.success.call(d,a,e,b),triggerGlobal(c,d,"ajaxSuccess",[b,c,a]),ajaxComplete(e,b,c)}function ajaxError(a,b,c,d){var e=d.context;d.error.call(e,c,b,a),triggerGlobal(d,e,"ajaxError",[c,d,a]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){isObject(a.data)&&(a.data=$.param(a.data)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data))}function serialize(a,b,c,d){var e=$.isArray(b);$.each(b,function(b,f){d&&(b=c?d:d+"["+(e?"":b)+"]"),!d&&e?a.add(f.name,f.value):(c?$.isArray(f):isObject(f))?serialize(a,f,c,b):a.add(b,f)})}var jsonpID=0,isObject=$.isObject,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a){var b="jsonp"+ ++jsonpID,c=document.createElement("script"),d=function(){$(c).remove(),b in window&&(window[b]=empty),ajaxComplete("abort",e,a)},e={abort:d},f;return a.error&&(c.onerror=function(){e.abort(),a.error()}),window[b]=function(d){clearTimeout(f),$(c).remove(),delete window[b],ajaxSuccess(d,e,a)},serializeData(a),c.src=a.url.replace(/=\?/,"="+b),$("head").append(c),a.timeout>0&&(f=setTimeout(function(){e.abort(),ajaxComplete("timeout",e,a)},a.timeout)),e},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0},$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host);var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,"callback=?")),$.ajaxJSONP(settings);settings.url||(settings.url=window.location.toString()),serializeData(settings);var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=$.ajaxSettings.xhr(),abortTimeout;settings.crossDomain||(baseHeaders["X-Requested-With"]="XMLHttpRequest"),mime&&(baseHeaders.Accept=mime,mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime));if(settings.contentType||settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{}),xhr.onreadystatechange=function(){if(xhr.readyState==4){clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:JSON.parse(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings):ajaxSuccess(result,xhr,settings)}else ajaxError(null,"error",xhr,settings)}};var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);return ajaxBeforeSend(xhr,settings)===!1?(xhr.abort(),!1):(settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr)},$.get=function(a,b){return $.ajax({url:a,success:b})},$.post=function(a,b,c,d){return $.isFunction(b)&&(d=d||c,c=b,b=null),$.ajax({type:"POST",url:a,data:b,success:c,dataType:d})},$.getJSON=function(a,b){return $.ajax({url:a,success:b,dataType:"json"})},$.fn.load=function(a,b){if(!this.length)return this;var c=this,d=a.split(/\s/),e;return d.length>1&&(a=d[0],e=d[1]),$.get(a,function(a){c.html(e?$(document.createElement("div")).html(a.replace(rscript,"")).find(e).html():a),b&&b.call(c)}),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace("%20","+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a){function d(a){return"tagName"in a?a:a.parentNode}function e(a,b,c,d){var e=Math.abs(a-b),f=Math.abs(c-d);return e>=f?a-b>0?"Left":"Right":c-d>0?"Up":"Down"}function h(){g=null,b.last&&(b.el.trigger("longTap"),b={})}function i(){g&&clearTimeout(g),g=null}var b={},c,f=750,g;a(document).ready(function(){var j,k;a(document.body).bind("touchstart",function(e){j=Date.now(),k=j-(b.last||j),b.el=a(d(e.touches[0].target)),c&&clearTimeout(c),b.x1=e.touches[0].pageX,b.y1=e.touches[0].pageY,k>0&&k<=250&&(b.isDoubleTap=!0),b.last=j,g=setTimeout(h,f)}).bind("touchmove",function(a){i(),b.x2=a.touches[0].pageX,b.y2=a.touches[0].pageY}).bind("touchend",function(a){i(),b.isDoubleTap?(b.el.trigger("doubleTap"),b={}):b.x2&&Math.abs(b.x1-b.x2)>30||b.y2&&Math.abs(b.y1-b.y2)>30?(b.el.trigger("swipe")&&b.el.trigger("swipe"+e(b.x1,b.x2,b.y1,b.y2)),b={}):"last"in b&&(b.el.trigger("tap"),c=setTimeout(function(){c=null,b.el.trigger("singleTap"),b={}},250))}).bind("touchcancel",function(){c&&clearTimeout(c),g&&clearTimeout(g),g=c=null,b={}})}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(b){a.fn[b]=function(a){return this.bind(b,a)}})}(Zepto); \ No newline at end of file