From b7aab3abb31070e7eaaee22b1f564f39bcb765f5 Mon Sep 17 00:00:00 2001 From: ouqiang Date: Thu, 6 Apr 2017 14:58:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0semantic-ui=20admin=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/web.go | 7 +- modules/app/app.go | 15 +- public/resource/css/framework.css | 17470 ++++++++++++++++ public/resource/css/jquery.tagsinput.css | 22 + public/resource/css/main.css | 418 + public/resource/css/switch.css | 65 + public/resource/fonts/basic.icons.eot | Bin 0 -> 40166 bytes public/resource/fonts/basic.icons.svg | 450 + public/resource/fonts/basic.icons.ttf | Bin 0 -> 39924 bytes public/resource/fonts/basic.icons.woff | Bin 0 -> 24676 bytes public/resource/fonts/icons.eot | Bin 0 -> 37405 bytes public/resource/fonts/icons.otf | Bin 0 -> 61896 bytes public/resource/fonts/icons.svg | 399 + public/resource/fonts/icons.ttf | Bin 0 -> 79076 bytes public/resource/fonts/icons.woff | Bin 0 -> 43572 bytes public/resource/images/arrow-white-l2r.png | Bin 0 -> 225 bytes public/resource/images/avatar-default.gif | Bin 0 -> 4742 bytes public/resource/images/bg-uniform.png | Bin 0 -> 12563 bytes public/resource/images/devicedomo01.jpg | Bin 0 -> 214738 bytes public/resource/images/gopher-avatar.png | Bin 0 -> 6040 bytes public/resource/images/icon-sprite.png | Bin 0 -> 2814 bytes public/resource/images/icon_search.png | Bin 0 -> 416 bytes public/resource/images/icon_weibo.png | Bin 0 -> 530 bytes .../resource/images/loader-large-inverted.gif | Bin 0 -> 10168 bytes public/resource/images/loader-large.gif | Bin 0 -> 8492 bytes .../images/loader-medium-inverted.gif | Bin 0 -> 5384 bytes public/resource/images/loader-medium.gif | Bin 0 -> 4472 bytes .../resource/images/loader-mini-inverted.gif | Bin 0 -> 2722 bytes public/resource/images/loader-mini.gif | Bin 0 -> 2548 bytes .../resource/images/loader-small-inverted.gif | Bin 0 -> 4241 bytes public/resource/images/loader-small.gif | Bin 0 -> 3447 bytes public/resource/images/logo.png | Bin 0 -> 4347 bytes public/resource/images/logo_footer.png | Bin 0 -> 1965 bytes public/resource/images/navbar_bg.png | Bin 0 -> 236 bytes public/resource/images/photo.jpg | Bin 0 -> 98430 bytes public/resource/images/yeelink-avatar.jpg | Bin 0 -> 23661 bytes public/resource/javascript/ZeroClipboard.swf | Bin 0 -> 1071 bytes public/resource/javascript/alert.js | 78 + public/resource/javascript/framework.js | 11647 +++++++++++ public/resource/javascript/jquery.min.js | 5 + .../resource/javascript/jquery.tagsinput.js | 354 + .../resource/javascript/jquery.zclip.min.js | 1 + public/resource/javascript/new_action.js | 63 + public/resource/javascript/semantic.js | 11715 +++++++++++ public/resource/javascript/semantic.min.js | 16 + .../resource/javascript/user_new_devices.js | 60 + 46 files changed, 42774 insertions(+), 11 deletions(-) create mode 100644 public/resource/css/framework.css create mode 100644 public/resource/css/jquery.tagsinput.css create mode 100644 public/resource/css/main.css create mode 100644 public/resource/css/switch.css create mode 100644 public/resource/fonts/basic.icons.eot create mode 100644 public/resource/fonts/basic.icons.svg create mode 100644 public/resource/fonts/basic.icons.ttf create mode 100644 public/resource/fonts/basic.icons.woff create mode 100644 public/resource/fonts/icons.eot create mode 100644 public/resource/fonts/icons.otf create mode 100644 public/resource/fonts/icons.svg create mode 100644 public/resource/fonts/icons.ttf create mode 100644 public/resource/fonts/icons.woff create mode 100644 public/resource/images/arrow-white-l2r.png create mode 100644 public/resource/images/avatar-default.gif create mode 100644 public/resource/images/bg-uniform.png create mode 100644 public/resource/images/devicedomo01.jpg create mode 100644 public/resource/images/gopher-avatar.png create mode 100644 public/resource/images/icon-sprite.png create mode 100644 public/resource/images/icon_search.png create mode 100644 public/resource/images/icon_weibo.png create mode 100644 public/resource/images/loader-large-inverted.gif create mode 100644 public/resource/images/loader-large.gif create mode 100644 public/resource/images/loader-medium-inverted.gif create mode 100644 public/resource/images/loader-medium.gif create mode 100644 public/resource/images/loader-mini-inverted.gif create mode 100644 public/resource/images/loader-mini.gif create mode 100644 public/resource/images/loader-small-inverted.gif create mode 100644 public/resource/images/loader-small.gif create mode 100644 public/resource/images/logo.png create mode 100644 public/resource/images/logo_footer.png create mode 100644 public/resource/images/navbar_bg.png create mode 100644 public/resource/images/photo.jpg create mode 100644 public/resource/images/yeelink-avatar.jpg create mode 100644 public/resource/javascript/ZeroClipboard.swf create mode 100644 public/resource/javascript/alert.js create mode 100644 public/resource/javascript/framework.js create mode 100644 public/resource/javascript/jquery.min.js create mode 100644 public/resource/javascript/jquery.tagsinput.js create mode 100644 public/resource/javascript/jquery.zclip.min.js create mode 100644 public/resource/javascript/new_action.js create mode 100644 public/resource/javascript/semantic.js create mode 100644 public/resource/javascript/semantic.min.js create mode 100644 public/resource/javascript/user_new_devices.js diff --git a/cmd/web.go b/cmd/web.go index e8ffe65..3379eb0 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -44,7 +44,7 @@ var CmdWeb = cli.Command{ cli.StringFlag{ Name: "d", Value: "false", - Usage: "-d=true, run app as daemon", + Usage: "-d=true, run app as daemon, not support windows", }, }, } @@ -131,6 +131,10 @@ func catchSignal() { } func becomeDaemon(ctx *cli.Context) { + // 不支持windows + if app.IsWindows { + return + } var daemond string = "false" if ctx.IsSet("d") { daemond = ctx.String("d") @@ -139,7 +143,6 @@ func becomeDaemon(ctx *cli.Context) { return } - if os.Getppid() == InitProcess { // 已是守护进程,不再处理 return diff --git a/modules/app/app.go b/modules/app/app.go index 78b28a3..b60de51 100644 --- a/modules/app/app.go +++ b/modules/app/app.go @@ -2,7 +2,6 @@ package app import ( "os" - "runtime" "github.com/ouqiang/cron-scheduler/models" "github.com/ouqiang/cron-scheduler/modules/ansible" @@ -10,6 +9,7 @@ import ( "github.com/ouqiang/cron-scheduler/service" "github.com/ouqiang/cron-scheduler/modules/setting" "github.com/ouqiang/cron-scheduler/modules/logger" + "runtime" ) var ( @@ -20,15 +20,19 @@ var ( AppConfig string // 应用配置文件 AnsibleHosts string // ansible hosts文件 Installed bool // 应用是否安装过 + IsWindows bool // 是否是在windows上运行 ) +func init() { + IsWindows = runtime.GOOS == "windows" +} + func InitEnv() { logger.InitLogger() wd, err := os.Getwd() if err != nil { logger.Fatal(err) } - checkEnv() AppDir = wd ConfDir = AppDir + "/conf" LogDir = AppDir + "/log" @@ -45,13 +49,6 @@ func InitEnv() { } } -func checkEnv() { - if runtime.GOOS == "windows" { - logger.Fatal("不支持在windows上运行") - } -} - - // 判断应用是否安装过 func IsInstalled() bool { _, err := os.Stat(ConfDir + "/install.lock") diff --git a/public/resource/css/framework.css b/public/resource/css/framework.css new file mode 100644 index 0000000..fb09e20 --- /dev/null +++ b/public/resource/css/framework.css @@ -0,0 +1,17470 @@ +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.bigcontainer{ + margin:0 auto; +} +.bigcontainer:before,.container:before, +.bigcontainer:after, .container:after { + display: table; + content: " "; +} +.bigcontainer:after, .container:after { + clear: both; +} + +.bigcontainer:before, .container:before, +.bigcontainer:after, .container:after { + display: table; + content: " "; +} + +.bigcontainer:after, .container:after { + clear: both; +} +@media (min-width: 992px) { + .container { + width: 970px; + } + .bigcontainer{ + width:1000px; +} +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +.bigcontainer{ + width:1200px; +} +} +/******************************* + Breadcrumb +*******************************/ +.ui.breadcrumb { + margin: 1em 0em; + display: inline-block; + vertical-align: middle; +} + +.ui.breadcrumb:first-child { + margin-top: 0em; +} + +.ui.breadcrumb:last-child { + margin-bottom: 0em; +} + +/******************************* + Content +*******************************/ + +.ui.breadcrumb .divider { + display: inline-block; + opacity: 0.5; + margin: 0em 0.15em 0em; + font-size: 1em; + color: rgba(0, 0, 0, 0.3); +} + +.ui.breadcrumb a.section { + cursor: pointer; +} + +.ui.breadcrumb .section { + display: inline-block; + margin: 0em; + padding: 0em; +} + +/* Loose Coupling */ + +.ui.breadcrumb.segment { + display: inline-block; + padding: 0.5em 1em; +} + +/******************************* + States +*******************************/ + +.ui.breadcrumb .active.section { + font-weight: bold; +} + +/******************************* + Variations +*******************************/ + +.ui.small.breadcrumb { + font-size: 0.75em; +} + +.ui.large.breadcrumb { + font-size: 1.1em; +} + +.ui.huge.breadcrumb { + font-size: 1.3em; +} +/* + * # Semantic - Form + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------------- + Form +---------------------*/ + +.ui.form { + position: relative; + max-width: 100%; +} + +.ui.form :first-child { + margin-top: 0em; +} + +.ui.form :last-child { + margin-bottom: 0em; +} + +/*-------------------- + Content +---------------------*/ + +.ui.form > p { + margin: 1em 0; +} + +/*-------------------- + Field +---------------------*/ + +.ui.form .field { + clear: both; + margin: 0em 0em 1em; +} + +/*-------------------- + Labels +---------------------*/ + +.ui.form .field > label { + margin: 0em 0em 0.3em; + display: block; + color: #555555; + font-size: 0.875em; +} + +/*-------------------- + Standard Inputs +---------------------*/ + +.ui.form textarea, +.ui.form input[type="text"], +.ui.form input[type="email"], +.ui.form input[type="date"], +.ui.form input[type="password"], +.ui.form input[type="number"], +.ui.form input[type="tel"], +.ui.form .ui.input { + width: 100%; +} + +.ui.form textarea, +.ui.form input[type="text"], +.ui.form input[type="email"], +.ui.form input[type="date"], +.ui.form input[type="password"], +.ui.form input[type="number"], +.ui.form input[type="tel"] { + margin: 0em; + padding: 0.85em 1.2em; + font-size: 0.875em; + background-color: #FFFFFF; + border: 1px solid rgba(0, 0, 0, 0.15); + outline: none; + color: rgba(0, 0, 0, 0.7); + border-radius: 0.3125em; + -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease; + transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease; + -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset; + box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset; + -webkit-appearance: none; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.textarea, +.ui.form textarea { + line-height: 1.33; + min-height: 8em; + max-height: 24em; + resize: vertical; +} + +.ui.form textarea, +.ui.form input[type="checkbox"] { + vertical-align: top; +} + +/*-------------------- + Dividers +---------------------*/ + +.ui.form .divider { + clear: both; + margin: 1em 0em; +} + +/*-------------------- + Types of Messages +---------------------*/ + +.ui.form .info.message, +.ui.form .warning.message, +.ui.form .error.message { + display: none; +} + +/* Assumptions */ + +.ui.form .message:first-child { + margin-top: 0px; +} + +/*-------------------- + Validation Prompt +---------------------*/ + +.ui.form .field .prompt.label { + white-space: nowrap; +} + +.ui.form .inline.field .prompt { + margin-top: 0em; + margin-left: 1em; +} + +.ui.form .inline.field .prompt:before { + margin-top: -0.3em; + bottom: auto; + right: auto; + top: 50%; + left: 0em; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Focus +---------------------*/ + +.ui.form input[type="text"]:focus, +.ui.form input[type="email"]:focus, +.ui.form input[type="date"]:focus, +.ui.form input[type="password"]:focus, +.ui.form input[type="number"]:focus, +.ui.form input[type="tel"]:focus, +.ui.form textarea:focus { + color: rgba(0, 0, 0, 0.85); + border-color: rgba(0, 0, 0, 0.2); + border-bottom-left-radius: 0; + border-top-left-radius: 0; + -webkit-appearance: none; + -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset; + box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset; +} + +/*-------------------- + Error +---------------------*/ + +/* On Form */ + +.ui.form.warning .warning.message { + display: block; +} + +/*-------------------- + Warning +---------------------*/ + +/* On Form */ + +.ui.form.error .error.message { + display: block; +} + +/* On Field(s) */ + +.ui.form .fields.error .field label, +.ui.form .field.error label, +.ui.form .fields.error .field .input, +.ui.form .field.error .input { + color: #D95C5C; +} + +.ui.form .fields.error .field .corner.label, +.ui.form .field.error .corner.label { + border-color: #D95C5C; + color: #FFFFFF; +} + +.ui.form .fields.error .field textarea, +.ui.form .fields.error .field input[type="text"], +.ui.form .fields.error .field input[type="email"], +.ui.form .fields.error .field input[type="date"], +.ui.form .fields.error .field input[type="password"], +.ui.form .fields.error .field input[type="number"], +.ui.form .fields.error .field input[type="tel"], +.ui.form .field.error textarea, +.ui.form .field.error input[type="text"], +.ui.form .field.error input[type="email"], +.ui.form .field.error input[type="date"], +.ui.form .field.error input[type="password"], +.ui.form .field.error input[type="number"], +.ui.form .field.error input[type="tel"] { + background-color: #FFFAFA; + border-color: #E7BEBE; + border-left: none; + color: #D95C5C; + padding-left: 1.2em; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset; + box-shadow: 0.3em 0em 0em 0em #D95C5C inset; +} + +.ui.form .field.error textarea:focus, +.ui.form .field.error input[type="text"]:focus, +.ui.form .field.error input[type="email"]:focus, +.ui.form .field.error input[type="date"]:focus, +.ui.form .field.error input[type="password"]:focus, +.ui.form .field.error input[type="number"]:focus, +.ui.form .field.error input[type="tel"]:focus { + border-color: #ff5050; + color: #ff5050; + -webkit-appearance: none; + -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset; + box-shadow: 0.3em 0em 0em 0em #FF5050 inset; +} + +/*-------------------- + Empty (Placeholder) +---------------------*/ + +/* browsers require these rules separate */ + +.ui.form ::-webkit-input-placeholder { + color: #AAAAAA; +} + +.ui.form :focus::-webkit-input-placeholder { + color: #999999; +} + +/* Error Placeholder */ + +.ui.form .error ::-webkit-input-placeholder { + color: rgba(255, 80, 80, 0.4); +} + +.ui.form .error :focus::-webkit-input-placeholder { + color: rgba(255, 80, 80, 0.7); +} + +/*-------------------- + Disabled +---------------------*/ + +.ui.form .field :disabled, +.ui.form .field.disabled { + opacity: 0.5; +} + +.ui.form .field.disabled label { + opacity: 0.5; +} + +.ui.form .field.disabled :disabled { + opacity: 1; +} + +/*-------------------- + Loading State +---------------------*/ + +/* On Form */ + +.ui.form.loading { + position: relative; +} + +.ui.form.loading:after { + position: absolute; + top: 0%; + left: 0%; + content: ''; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%; + visibility: visible; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Fluid Width +---------------------*/ + +.ui.form.fluid { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/*-------------------------- + Input w/ attached Button +---------------------------*/ + +.ui.form input.attached { + width: auto; +} + +/*-------------------- + Date Input +---------------------*/ + +.ui.form .date.field > label { + position: relative; +} + +.ui.form .date.field > label:after { + position: absolute; + top: 2em; + right: 0.5em; + font-family: 'Icons'; + content: '\f133'; + font-size: 1.2em; + font-weight: normal; + color: #CCCCCC; +} + +/*-------------------- + Inverted Colors +---------------------*/ + +.ui.inverted.form label { + color: #FFFFFF; +} + +.ui.inverted.form .field.error textarea, +.ui.inverted.form .field.error input[type="text"], +.ui.inverted.form .field.error input[type="email"], +.ui.inverted.form .field.error input[type="date"], +.ui.inverted.form .field.error input[type="password"], +.ui.inverted.form .field.error input[type="number"], +.ui.inverted.form .field.error input[type="tel"] { + background-color: #FFCCCC; +} + +/*-------------------- + Field Groups +---------------------*/ + +/* Grouped Vertically */ + +.ui.form .grouped.fields { + margin: 0em 0em 1em; +} + +.ui.form .grouped.fields .field { + display: block; + float: none; + margin: 0.5em 0em; + padding: 0em; +} + +/*-------------------- + Fields +---------------------*/ + +/* Split fields */ + +.ui.form .fields { + clear: both; +} + +.ui.form .fields:after { + content: ' '; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +.ui.form .fields > .field { + clear: none; + float: left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.form .fields > .field:first-child { + border-left: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* Other Combinations */ + +.ui.form .two.fields > .fields, +.ui.form .two.fields > .field { + width: 50%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.form .three.fields > .fields, +.ui.form .three.fields > .field { + width: 33.333%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.form .four.fields > .fields, +.ui.form .four.fields > .field { + width: 25%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.form .five.fields > .fields, +.ui.form .five.fields > .field { + width: 20%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.form .fields .field:first-child { + padding-left: 0%; +} + +.ui.form .fields .field:last-child { + padding-right: 0%; +} + +/*-------------------- + Inline Fields +---------------------*/ + +.ui.form .inline.fields .field { + min-height: 1.3em; + margin-right: 0.5em; +} + +.ui.form .inline.fields .field > label, +.ui.form .inline.fields .field > p, +.ui.form .inline.fields .field > input, +.ui.form .inline.field > label, +.ui.form .inline.field > p, +.ui.form .inline.field > input { + display: inline-block; + width: auto; + margin-top: 0em; + margin-bottom: 0em; + vertical-align: middle; +} + +.ui.form .inline.fields .field > input, +.ui.form .inline.field > input { + font-size: 0.875em; +} + +.ui.form .inline.fields .field > :first-child, +.ui.form .inline.field > :first-child { + margin: 0em 0.5em 0em 0em; +} + +.ui.form .inline.fields .field > :only-child, +.ui.form .inline.field > :only-child { + margin: 0em; +} + +/*-------------------- + Sizes +---------------------*/ + +/* Standard */ + +.ui.small.form { + font-size: 0.875em; +} + +.ui.small.form textarea, +.ui.small.form input[type="text"], +.ui.small.form input[type="email"], +.ui.small.form input[type="date"], +.ui.small.form input[type="password"], +.ui.small.form input[type="number"], +.ui.small.form input[type="tel"], +.ui.small.form label { + font-size: 1em; +} + +/* Large */ + +.ui.large.form { + font-size: 1.125em; +} +/* + * # Semantic - Grid + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Grid +*******************************/ + +.ui.grid { + display: block; + text-align: left; + font-size: 0em; + margin: 0% -1.5%; + padding: 0%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +body > .ui.grid { + margin-left: 0% !important; + margin-right: 0% !important; +} + +.ui.grid:after, +.ui.row:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/*------------------- + Columns +--------------------*/ + +.ui.grid > .column, +.ui.grid > .row > .column { + display: inline-block; + text-align: left; + font-size: 1rem; + padding-left: 1.5%; + padding-right: 1.5%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + vertical-align: top; +} + +/*------------------- + Rows +--------------------*/ + +.ui.grid > .row { + display: block; + width: 100% !important; + margin-top: 1.5%; + padding: 1.5% 0% 0%; + font-size: 0rem; +} + +.ui.grid > .row:first-child { + padding-top: 0rem; + margin-top: 0rem; +} + +/*------------------- + Content +--------------------*/ + +.ui.grid > .row > img, +.ui.grid > .row > .column > img { + max-width: 100%; +} + +.ui.grid .column > .ui.segment:only-child { + margin: 0em; +} + +/******************************* + Variations +*******************************/ + +/*----------------------- + Page Grid (Responsive) +-------------------------*/ + +.ui.page.grid { + min-width: 320px; + margin-left: 0%; + margin-right: 0%; +} + +@media only screen and (max-width: 998px) { + .ui.page.grid { + padding: 0% 4%; + } +} + +@media only screen and (min-width: 998px) { + .ui.page.grid { + padding: 0% 8%; + } +} + +@media only screen and (min-width: 1500px) { + .ui.page.grid { + padding: 0% 13%; + } +} + +@media only screen and (min-width: 1750px) { + .ui.page.grid { + padding: 0% 18%; + } +} + +@media only screen and (min-width: 2000px) { + .ui.page.grid { + padding: 0% 23%; + } +} + +/*------------------- + Column Width +--------------------*/ + +/* Sizing Combinations */ + +.ui.grid > .row > .one.wide.column, +.ui.grid > .one.wide.column { + width: 6.25%; +} + +.ui.grid > .row > .two.wide.column, +.ui.grid > .two.wide.column { + width: 12.5%; +} + +.ui.grid > .row > .three.wide.column, +.ui.grid > .three.wide.column { + width: 18.75%; +} + +.ui.grid > .row > .four.wide.column, +.ui.grid > .four.wide.column { + width: 25%; +} + +.ui.grid > .row > .five.wide.column, +.ui.grid > .five.wide.column { + width: 31.25%; +} + +.ui.grid > .row > .six.wide.column, +.ui.grid > .six.wide.column { + width: 37.5%; +} + +.ui.grid > .row > .seven.wide.column, +.ui.grid > .seven.wide.column { + width: 43.75%; +} + +.ui.grid > .row > .eight.wide.column, +.ui.grid > .eight.wide.column { + width: 50%; +} + +.ui.grid > .row > .nine.wide.column, +.ui.grid > .nine.wide.column { + width: 56.25%; +} + +.ui.grid > .row > .ten.wide.column, +.ui.grid > .ten.wide.column { + width: 62.5%; +} + +.ui.grid > .row > .eleven.wide.column, +.ui.grid > .eleven.wide.column { + width: 68.75%; +} + +.ui.grid > .row > .twelve.wide.column, +.ui.grid > .twelve.wide.column { + width: 75%; +} + +.ui.grid > .row > .thirteen.wide.column, +.ui.grid > .thirteen.wide.column { + width: 81.25%; +} + +.ui.grid > .row > .fourteen.wide.column, +.ui.grid > .fourteen.wide.column { + width: 87.5%; +} + +.ui.grid > .row > .fifteen.wide.column, +.ui.grid > .fifteen.wide.column { + width: 93.75%; +} + +.ui.grid > .row > .sixteen.wide.column, +.ui.grid > .sixteen.wide.column { + width: 100%; +} + +/*------------------- + Column Count +--------------------*/ + +/* Standard */ + +.ui.grid > .column, +.ui.grid > .row > .column { + width: 6.25%; +} + +/* Assume full width with one column */ + +.ui.one.column.grid > .row > .column, +.ui.one.column.grid > .column, +.ui.grid > .one.column.row > .column { + width: 100%; +} + +.ui.two.column.grid > .row > .column, +.ui.two.column.grid > .column, +.ui.grid > .two.column.row > .column { + width: 50%; +} + +.ui.three.column.grid > .row > .column, +.ui.three.column.grid > .column, +.ui.grid > .three.column.row > .column { + width: 33.3333%; +} + +.ui.four.column.grid > .row > .column, +.ui.four.column.grid > .column, +.ui.grid > .four.column.row > .column { + width: 25%; +} + +.ui.five.column.grid > .row > .column, +.ui.five.column.grid > .column, +.ui.grid > .five.column.row > .column { + width: 20%; +} + +.ui.six.column.grid > .row > .column, +.ui.six.column.grid > .column, +.ui.grid > .six.column.row > .column { + width: 16.66667%; +} + +.ui.seven.column.grid > .row > .column, +.ui.seven.column.grid > .column, +.ui.grid > .seven.column.row > .column { + width: 14.2857%; +} + +.ui.eight.column.grid > .row > .column, +.ui.eight.column.grid > .column, +.ui.grid > .eight.column.row > .column { + width: 12.5%; +} + +.ui.nine.column.grid > .row > .column, +.ui.nine.column.grid > .column, +.ui.grid > .nine.column.row > .column { + width: 11.1111%; +} + +.ui.ten.column.grid > .row > .column, +.ui.ten.column.grid > .column, +.ui.grid > .ten.column.row > .column { + width: 10%; +} + +.ui.eleven.column.grid > .row > .column, +.ui.eleven.column.grid > .column, +.ui.grid > .eleven.column.row > .column { + width: 9.0909%; +} + +.ui.twelve.column.grid > .row > .column, +.ui.twelve.column.grid > .column, +.ui.grid > .twelve.column.row > .column { + width: 8.3333%; +} + +.ui.thirteen.column.grid > .row > .column, +.ui.thirteen.column.grid > .column, +.ui.grid > .thirteen.column.row > .column { + width: 7.6923%; +} + +.ui.fourteen.column.grid > .row > .column, +.ui.fourteen.column.grid > .column, +.ui.grid > .fourteen.column.row > .column { + width: 7.1428%; +} + +.ui.fifteen.column.grid > .row > .column, +.ui.fifteen.column.grid > .column, +.ui.grid > .fifteen.column.row > .column { + width: 6.6666%; +} + +.ui.sixteen.column.grid > .row > .column, +.ui.sixteen.column.grid > .column, +.ui.grid > .sixteen.column.row > .column { + width: 6.25%; +} + +/* Assume full width with one column */ + +.ui.grid > .column:only-child, +.ui.grid > .row > .column:only-child { + width: 100%; +} + +/*---------------------- + Relaxed +-----------------------*/ + +.ui.relaxed.grid { + margin: 0% -2.5%; +} + +.ui.relaxed.grid > .column, +.ui.relaxed.grid > .row > .column { + padding-left: 2.5%; + padding-right: 2.5%; +} + +/*---------------------- + "Floated" +-----------------------*/ + +.ui.grid .left.floated.column { + float: left; +} + +.ui.grid .right.floated.column { + float: right; +} + +/*---------------------- + Divided +-----------------------*/ + +.ui.divided.grid, +.ui.divided.grid > .row { + display: table; + width: 100%; + margin-left: 0% !important; + margin-right: 0% !important; +} + +.ui.divided.grid > .column:not(.row), +.ui.divided.grid > .row > .column { + display: table-cell; + -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8); + box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8); +} + +.ui.divided.grid > .column.row { + display: table; +} + +.ui.divided.grid > .column:first-child, +.ui.divided.grid > .row > .column:first-child { + -webkit-box-shadow: none; + box-shadow: none; +} + +/* Vertically Divided */ + +.ui.vertically.divided.grid > .row { + -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important; + box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important; +} + +.ui.vertically.divided.grid > .row > .column, +.ui.vertically.divided.grid > .column:not(.row), +.ui.vertically.divided.grid > .row:first-child { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +/*---------------------- + Celled +-----------------------*/ + +.ui.celled.grid { + display: table; + width: 100%; + margin-left: 0% !important; + margin-right: 0% !important; + -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF; + box-shadow: 0px 0px 0px 1px #DFDFDF; +} + +.ui.celled.grid > .row, +.ui.celled.grid > .column.row, +.ui.celled.grid > .column.row:first-child { + display: table; + width: 100%; + margin-top: 0em; + padding-top: 0em; + -webkit-box-shadow: 0px -1px 0px 0px #dfdfdf; + box-shadow: 0px -1px 0px 0px #dfdfdf; +} + +.ui.celled.grid > .column:not(.row), +.ui.celled.grid > .row > .column { + display: table-cell; + padding: 0.75em; + -webkit-box-shadow: -1px 0px 0px 0px #dfdfdf; + box-shadow: -1px 0px 0px 0px #dfdfdf; +} + +.ui.celled.grid > .column:first-child, +.ui.celled.grid > .row > .column:first-child { + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.celled.page.grid { + -webkit-box-shadow: none; + box-shadow: none; +} + +/*---------------------- + Horizontally Centered +-----------------------*/ + +/* Vertical Centered */ + +.ui.left.aligned.grid, +.ui.left.aligned.grid > .row > .column, +.ui.left.aligned.grid > .column, +.ui.grid .left.aligned.column, +.ui.grid > .left.aligned.row > .column { + text-align: left; +} + +.ui.center.aligned.grid, +.ui.center.aligned.grid > .row > .column, +.ui.center.aligned.grid > .column, +.ui.grid .center.aligned.column, +.ui.grid > .center.aligned.row > .column { + text-align: center; +} + +.ui.right.aligned.grid, +.ui.right.aligned.grid > .row > .column, +.ui.right.aligned.grid > .column, +.ui.grid .right.aligned.column, +.ui.grid > .right.aligned.row > .column { + text-align: right; +} + +/*---------------------- + Vertically Centered +-----------------------*/ + +/* Vertical Centered */ + +.ui.top.aligned.grid, +.ui.top.aligned.grid > .row > .column, +.ui.top.aligned.grid > .column, +.ui.grid .top.aligned.column, +.ui.grid > .top.aligned.row > .column { + vertical-align: top; +} + +.ui.middle.aligned.grid, +.ui.middle.aligned.grid > .row > .column, +.ui.middle.aligned.grid > .column, +.ui.grid .middle.aligned.column, +.ui.grid > .middle.aligned.row > .column { + vertical-align: middle; +} + +.ui.bottom.aligned.grid, +.ui.bottom.aligned.grid > .row > .column, +.ui.bottom.aligned.grid > .column, +.ui.grid .bottom.aligned.column, +.ui.grid > .bottom.aligned.row > .column { + vertical-align: bottom; +} + +/*---------------------- + Equal Height Columns +-----------------------*/ + +.ui.grid > .equal.height.row { + display: table; + width: 100%; +} + +.ui.grid > .equal.height.row > .column { + display: table-cell; +} + +/*---------------------- + Only (Device) +-----------------------*/ + +/* Mobile Only */ + +@media only screen and (max-width: 768px) { + .ui.mobile.only.grid, + .ui.grid > .mobile.only.row { + display: block !important; + } + + .ui.grid > .row > .mobile.only.column { + display: inline-block !important; + } + + .ui.divided.mobile.only.grid, + .ui.celled.mobile.only.grid, + .ui.divided.mobile.only.grid .row, + .ui.celled.mobile.only.grid .row, + .ui.divided.grid .mobile.only.row, + .ui.celled.grid .mobile.only.row, + .ui.grid .mobile.only.equal.height.row, + .ui.mobile.only.grid .equal.height.row { + display: table !important; + } + + .ui.divided.grid > .row > .mobile.only.column, + .ui.celled.grid > .row > .mobile.only.column, + .ui.divided.mobile.only.grid > .row > .column, + .ui.celled.mobile.only.grid > .row > .column, + .ui.divided.mobile.only.grid > .column, + .ui.celled.mobile.only.grid > .column { + display: table-cell !important; + } +} + +@media only screen and (min-width: 768px) { + .ui.mobile.only.grid, + .ui.grid > .mobile.only.row, + .ui.grid > .mobile.only.column, + .ui.grid > .row > .mobile.only.column { + display: none; + } +} + +/* Tablet Only */ + +@media only screen and (min-width: 768px) and (max-width: 998px) { + .ui.tablet.only.grid, + .ui.grid > .tablet.only.row { + display: block !important; + } + + .ui.grid > .row > .tablet.only.column { + display: inline-block !important; + } + + .ui.divided.tablet.only.grid, + .ui.celled.tablet.only.grid, + .ui.divided.tablet.only.grid .row, + .ui.celled.tablet.only.grid .row, + .ui.divided.grid .tablet.only.row, + .ui.celled.grid .tablet.only.row, + .ui.grid .tablet.only.equal.height.row, + .ui.tablet.only.grid .equal.height.row { + display: table !important; + } + + .ui.divided.grid > .row > .tablet.only.column, + .ui.celled.grid > .row > .tablet.only.column, + .ui.divided.tablet.only.grid > .row > .column, + .ui.celled.tablet.only.grid > .row > .column, + .ui.divided.tablet.only.grid > .column, + .ui.celled.tablet.only.grid > .column { + display: table-cell !important; + } +} + +@media only screen and (max-width: 768px), (min-width: 998px) { + .ui.tablet.only.grid, + .ui.grid > .tablet.only.row, + .ui.grid > .tablet.only.column, + .ui.grid > .row > .tablet.only.column { + display: none; + } +} + +/* Computer Only */ + +@media only screen and (min-width: 998px) { + .ui.computer.only.grid, + .ui.grid > .computer.only.row { + display: block !important; + } + + .ui.grid > .row > .computer.only.column { + display: inline-block !important; + } + + .ui.divided.computer.only.grid, + .ui.celled.computer.only.grid, + .ui.divided.computer.only.grid .row, + .ui.celled.computer.only.grid .row, + .ui.divided.grid .computer.only.row, + .ui.celled.grid .computer.only.row, + .ui.grid .computer.only.equal.height.row, + .ui.computer.only.grid .equal.height.row { + display: table !important; + } + + .ui.divided.grid > .row > .computer.only.column, + .ui.celled.grid > .row > .computer.only.column, + .ui.divided.computer.only.grid > .row > .column, + .ui.celled.computer.only.grid > .row > .column, + .ui.divided.computer.only.grid > .column, + .ui.celled.computer.only.grid > .column { + display: table-cell !important; + } +} + +@media only screen and (max-width: 998px) { + .ui.computer.only.grid, + .ui.grid > .computer.only.row, + .ui.grid > .computer.only.column, + .ui.grid > .row > .computer.only.column { + display: none; + } +} + +/*------------------- + Stackable +--------------------*/ + +@media only screen and (max-width: 768px) { + .ui.stackable.grid { + display: block !important; + padding: 0em; + } + + .ui.stackable.grid > .row > .column, + .ui.stackable.grid > .column { + display: block !important; + width: auto !important; + margin: 1.5em 5% 0em !important; + padding: 1.5em 0em 0em !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + .ui.stackable.divided.grid .column, + .ui.stackable.celled.grid .column { + border-top: 1px dotted rgba(0, 0, 0, 0.1); + } + + .ui.stackable.grid > .row:first-child > .column:first-child, + .ui.stackable.grid > .column:first-child { + margin-top: 0em !important; + padding-top: 0em !important; + } + + .ui.stackable.divided.grid > .row:first-child > .column:first-child, + .ui.stackable.celled.grid > .row:first-child > .column:first-child, + .ui.stackable.divided.grid > .column:first-child, + .ui.stackable.celled.grid > .column:first-child { + border-top: none !important; + } + + /* Remove pointers from vertical menus */ + + .ui.stackable.grid .vertical.pointing.menu .item:after { + display: none; + } +} + +/******************************* + Standard +*******************************/ + +/*-------------- + Menu +---------------*/ + +.ui.menu { + margin-bottom:1rem; + margin-bottom:16px; + background-color: #FFFFFF; + font-size: 0px; + font-weight: normal; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); +} + +.ui.menu:first-child { + margin-top: 0rem; +} + +.ui.menu:last-child { + margin-bottom: 0rem; +} + +.ui.menu:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.ui.menu > .item:first-child { + border-radius: 0.1875em 0px 0px 0.1875em; +} + +.ui.menu > .item:last-child { + border-radius: 0px 0.1875em 0.1875em 0px; +} + +.ui.menu .item { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + vertical-align: middle; + line-height: 1; + text-decoration: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: opacity 0.2s ease, background 0.2s ease, -webkit-box-shadow 0.2s ease; + transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease; +} + +/*-------------- + Colors +---------------*/ + +/* Text Color */ + +.ui.menu .item, +.ui.menu .item > a { + color: rgba(0, 0, 0, 0.75); +} + +.ui.menu .item .item, +.ui.menu .item .item > a { + color: rgba(30, 30, 30, 0.7); +} + +.ui.menu .item .item .item, +.ui.menu .item .item .item > a { + color: rgba(30, 30, 30, 0.6); +} + +.ui.menu .dropdown.item .menu .item, +.ui.menu .dropdown.item .menu .item a { + color: rgba(0, 0, 0, 0.75); +} + +/* Hover */ + +.ui.menu .item .menu a.item:hover, +.ui.menu .item .menu a.item.hover, +.ui.menu .item .menu .link.item:hover, +.ui.menu .item .menu .link.item.hover { + color: rgba(0, 0, 0, 0.85); +} + +.ui.menu .dropdown.item .menu .item a:hover { + color: rgba(0, 0, 0, 0.85); +} + +/* Active */ + +.ui.menu .active.item, +.ui.menu .active.item a { + color: rgba(0, 0, 0, 0.85); + border-radius: 0px; +} + +/*-------------- + Items +---------------*/ + +.ui.menu .item { + position: relative; + display: inline-block; + padding: 0.83em 0.95em; + border-top: 0em solid rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -moz-user-select: -moz-none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.ui.menu .menu { + margin: 0em; +} + +.ui.menu .item.left, +.ui.menu .menu.left { + float: left; +} + +.ui.menu .item.right, +.ui.menu .menu.right { + float: right; +} + +/*-------------- + Borders +---------------*/ + +.ui.menu .item:before { + position: absolute; + content: ''; + top: 0%; + right: 0px; + width: 1px; + height: 100%; + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05))); + background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05))); + background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%); +} + +.ui.menu .menu.right .item:before, +.ui.menu .item.right:before { + right: auto; + left: 0px; +} + +/*-------------- + Text Content +---------------*/ + +.ui.menu .text.item > *, +.ui.menu .item > p:only-child { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + line-height: 1.3; + color: rgba(0, 0, 0, 0.6); +} + +.ui.menu .item > p:first-child { + margin-top: 0px; +} + +.ui.menu .item > p:last-child { + margin-bottom: 0px; +} + +/*-------------- + Button +---------------*/ + +.ui.menu:not(.vertical) .item > .button { + position: relative; + top: -0.05em; + margin: -0.55em 0; + padding-bottom: 0.55em; + padding-top: 0.55em; + font-size: 0.875em; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*-------------- + Inputs +---------------*/ + +.ui.menu:not(.vertical) .item > .input { + margin-top: -0.83em; + margin-bottom: -0.83em; + padding-top: 0.3em; + padding-bottom: 0.3em; + width: 100%; +} + +.ui.menu .item > .input input { + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +.ui.vertical.menu .item > .input input { + margin: 0em; + padding-top: 0.63em; + padding-bottom: 0.63em; +} + +.ui.vertical.menu .ui.input > .icon { + padding-top: 0.63em; +} + +/*-------------- + Header +---------------*/ + +.ui.menu .header.item { + background-color: rgba(0, 0, 0, 0.04); + margin: 0em; +} + +.ui.vertical.menu .header.item { + font-weight: bold; +} + +/*-------------- + Dropdowns +---------------*/ + +.ui.menu .dropdown.item .menu { + left: 1px; + margin: 0px; + min-width: -webkit-calc(99%); + min-width: calc(99%); + -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1); +} + +.ui.secondary.menu .dropdown.item .menu { + left: 0px; + min-width: 100%; +} + +.ui.menu .pointing.dropdown.item .menu { + margin-top: 0.75em; +} + +.ui.menu .simple.dropdown.item .menu { + margin: 0px !important; +} + +.ui.menu .dropdown.item .menu .item { + width: 100%; + color: rgba(0, 0, 0, 0.75); +} + +.ui.menu .dropdown.item .menu .active.item { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.ui.menu .ui.dropdown .menu .item:before { + display: none; +} + +/*-------------- + Labels +---------------*/ + +.ui.menu .item > .label { + background-color: rgba(0, 0, 0, 0.35); + color: #FFFFFF; + margin: -0.15em 0em -0.15em 0.5em; + padding: 0.3em 0.8em; + vertical-align: baseline; +} + +.ui.menu .item > .floating.label { + padding: 0.3em 0.8em; +} + +/*-------------- + Images +---------------*/ + +.ui.menu .item > img:only-child { + display: block; + max-width: 100%; + margin: 0em auto; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.link.menu .item:hover, +.ui.menu .item.hover, +.ui.menu .link.item:hover, +.ui.menu a.item:hover, +.ui.menu .ui.dropdown .menu .item.hover, +.ui.menu .ui.dropdown .menu .item:hover { + cursor: pointer; + background-color: rgba(0, 0, 0, 0.02); +} + +.ui.menu .ui.dropdown.active { + background-color: rgba(0, 0, 0, 0.02); + -webkit-box-shadow: none; + box-shadow: none; + border-bottom-right-radius: 0em; + border-bottom-left-radius: 0em; +} + +/*-------------- + Down +---------------*/ + +.ui.link.menu .item:active, +.ui.menu .link.item:active, +.ui.menu a.item:active, +.ui.menu .ui.dropdown .menu .item:active { + background-color: rgba(0, 0, 0, 0.05); +} + +/*-------------- + Active +---------------*/ + +.ui.menu .active.item { + background-color: rgba(0, 0, 0, 0.01); + color: rgba(0, 0, 0, 0.95); + -webkit-box-shadow: 0em 0.2em 0em inset; + box-shadow: 0em 0.2em 0em inset; +} + +.ui.vertical.menu .active.item { + border-radius: 0em; + -webkit-box-shadow: 0.2em 0em 0em inset; + box-shadow: 0.2em 0em 0em inset; +} + +.ui.vertical.menu > .active.item:first-child { + border-radius: 0em 0.1875em 0em 0em; +} + +.ui.vertical.menu > .active.item:last-child { + border-radius: 0em 0em 0.1875em 0em; +} + +.ui.vertical.menu > .active.item:only-child { + border-radius: 0em 0.1875em 0.1875em 0em; +} + +.ui.vertical.menu .active.item .menu .active.item { + border-left: none; +} + +.ui.vertical.menu .active.item .menu .active.item { + padding-left: 1.5rem; +} + +.ui.vertical.menu .item .menu .active.item { + background-color: rgba(0, 0, 0, 0.03); + -webkit-box-shadow: none; + box-shadow: none; +} + +/*-------------- + Disabled +---------------*/ + +.ui.menu .item.disabled, +.ui.menu .item.disabled:hover, +.ui.menu .item.disabled.hover { + cursor: default; + color: rgba(0, 0, 0, 0.2); + background-color: transparent !important; +} + +/*-------------------- + Loading +---------------------*/ + +/* On Form */ + +.ui.menu.loading { + position: relative; +} + +.ui.menu.loading:after { + position: absolute; + top: 0%; + left: 0%; + content: ''; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%; + visibility: visible; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Vertical +---------------*/ + +.ui.vertical.menu .item { + display: block; + height: auto !important; + border-top: none; + border-left: 0em solid rgba(0, 0, 0, 0); + border-right: none; +} + +.ui.vertical.menu > .item:first-child { + border-radius: 0.1875em 0.1875em 0px 0px; +} + +.ui.vertical.menu > .item:last-child { + border-radius: 0px 0px 0.1875em 0.1875em; +} + +.ui.vertical.menu .item > .label { + float: right; + text-align: center; +} + +.ui.vertical.menu .item > .icon:not(.input) { + float: right; + width: 1.22em; + margin: 0em 0em 0em 0.5em; +} + +.ui.vertical.menu .item > .label + .icon { + float: none; + margin: 0em 0.25em 0em 0em; +} + +/*--- Border ---*/ + +.ui.vertical.menu .item:before { + position: absolute; + content: ''; + top: 0%; + left: 0px; + width: 100%; + height: 1px; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%); + background-image: -webkit-gradient(linear, top left, top right, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03))); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03))); + background-image: linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%); +} + +.ui.vertical.menu .item:first-child:before { + background-image: none !important; +} + +/*--- Dropdown ---*/ + +.ui.vertical.menu .dropdown.item > i { + float: right; + content: "\f0da"; +} + +.ui.vertical.menu .dropdown.item .menu { + top: 0% !important; + left: 100%; + margin: 0px 0px 0px 1px; + -webkit-box-shadow: 0 0px 1px 1px #DDDDDD; + box-shadow: 0 0px 1px 1px #DDDDDD; +} + +.ui.vertical.menu .dropdown.item.active { + border-top-right-radius: 0em; + border-bottom-right-radius: 0em; +} + +.ui.vertical.menu .dropdown.item .menu .item { + font-size: 1rem; +} + +.ui.vertical.menu .dropdown.item .menu .item .icon { + margin-right: 0em; +} + +.ui.vertical.menu .dropdown.item.active { + -webkit-box-shadow: none; + box-shadow: none; +} + +/*--- Sub Menu ---*/ + +.ui.vertical.menu .item > .menu { + margin: 0.5em -0.95em 0em; +} + +.ui.vertical.menu .item > .menu > .item { + padding: 0.5rem 1.5rem; + font-size: 0.875em; +} + +.ui.vertical.menu .item > .menu > .item:before { + display: none; +} + +/*-------------- + Tiered +---------------*/ + +.ui.tiered.menu > .sub.menu > .item { + color: rgba(0, 0, 0, 0.4); +} + +.ui.tiered.menu > .menu > .item:hover, +.ui.tiered.menu > .menu > .item.hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.tiered.menu .item.active { + color: rgba(0, 0, 0, 0.8); +} + +.ui.tiered.menu > .menu .item.active:after { + position: absolute; + content: ''; + margin-top: -1px; + top: 100%; + left: 0px; + width: 100%; + height: 2px; + background-color: #FBFBFB; +} + +.ui.tiered.menu .sub.menu { + background-color: rgba(0, 0, 0, 0.01); + border-radius: 0em; + border-top: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: none; + box-shadow: none; + color: #FFFFFF; +} + +.ui.tiered.menu .sub.menu .item { + font-size: 0.875rem; +} + +.ui.tiered.menu .sub.menu .item:before { + background-image: none; +} + +.ui.tiered.menu .sub.menu .active.item { + padding-top: 0.83em; + background-color: transparent; + border-radius: 0 0 0 0; + border-top: medium none; + -webkit-box-shadow: none; + box-shadow: none; + color: rgba(0, 0, 0, 0.7) !important; +} + +.ui.tiered.menu .sub.menu .active.item:after { + display: none; +} + +/* Inverted */ + +.ui.inverted.tiered.menu > .menu > .item { + color: rgba(255, 255, 255, 0.5); +} + +.ui.inverted.tiered.menu .sub.menu { + background-color: rgba(0, 0, 0, 0.2); +} + +.ui.inverted.tiered.menu .sub.menu .item { + color: rgba(255, 255, 255, 0.6); +} + +.ui.inverted.tiered.menu > .menu > .item:hover, +.ui.inverted.tiered.menu > .menu > .item.hover { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.tiered.menu .active.item:after { + display: none; +} + +.ui.inverted.tiered.menu > .sub.menu > .active.item, +.ui.inverted.tiered.menu > .menu > .active.item { + color: #ffffff !important; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* Tiered pointing */ + +.ui.pointing.tiered.menu > .menu > .item:after { + display: none; +} + +.ui.pointing.tiered.menu > .sub.menu > .item:after { + display: block; +} + +/*-------------- + Tabular +---------------*/ + +.ui.tabular.menu { + background-color: transparent; + border-bottom: 1px solid #DCDDDE; + border-radius: 0em; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.ui.tabular.menu .item { + background-color: transparent; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-top: 1px solid transparent; + padding-left: 1.4em; + padding-right: 1.4em; + color: rgba(0, 0, 0, 0.6); +} + +.ui.tabular.menu .item:before { + display: none; +} + +/* Hover */ + +.ui.tabular.menu .item:hover { + background-color: transparent; + color: rgba(0, 0, 0, 0.8); +} + +/* Active */ + +.ui.tabular.menu .active.item { + position: relative; + background-color: #FFFFFF; + color: rgba(0, 0, 0, 0.8); + border-color: #DCDDDE; + font-weight: bold; + margin-bottom: -1px; + border-bottom: 1px solid #FFFFFF; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 5px 5px 0 0; +} + +/* Coupling with segment for attachment */ + +.ui.attached.tabular.menu { + position: relative; + z-index: 2; +} + +.ui.tabular.menu ~ .bottom.attached.segment { + margin: 1px 0px 0px 1px; +} + +/*-------------- + Pagination +---------------*/ + +.ui.pagination.menu { + float:right; + margin: 56px 0 0; + display: inline-block; + vertical-align: middle; +} + +.ui.pagination.menu .item { + min-width: 3em; + text-align: center; +} + +.ui.pagination.menu .icon.item .icon { + vertical-align: top; +} + +.ui.pagination.menu.floated { + display: block; +} + +/* active */ + +.ui.pagination.menu .active.item { + border-top: none; + padding-top: 0.83em; + background-color: rgba(0, 0, 0, 0.05); + -webkit-box-shadow: none; + box-shadow: none; +} + +/*-------------- + Secondary +---------------*/ + +.ui.secondary.menu { + background-color: transparent; + border-radius: 0px; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.secondary.menu > .menu > .item, +.ui.secondary.menu > .item { + -webkit-box-shadow: none; + box-shadow: none; + border: none; + height: auto !important; + margin: 0em 0.25em; + padding: 0.5em 1em; + border-radius: 0.3125em; +} + +.ui.secondary.menu > .menu > .item:before, +.ui.secondary.menu > .item:before { + display: none !important; +} + +.ui.secondary.menu .item > .input input { + background-color: transparent; + border: none; +} + +.ui.secondary.menu .link.item, +.ui.secondary.menu a.item { + opacity: 0.8; + -webkit-transition: none; + transition: none; +} + +.ui.secondary.menu .header.item { + border-right: 0.1em solid rgba(0, 0, 0, 0.1); + background-color: transparent; + border-radius: 0em; +} + +/* hover */ + +.ui.secondary.menu .link.item:hover, +.ui.secondary.menu a.item:hover { + opacity: 1; +} + +/* active */ + +.ui.secondary.menu > .menu > .active.item, +.ui.secondary.menu > .active.item { + background-color: rgba(0, 0, 0, 0.08); + opacity: 1; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.secondary.vertical.menu > .active.item { + border-radius: 0.3125em; +} + +/* inverted */ + +.ui.secondary.inverted.menu .link.item, +.ui.secondary.inverted.menu a.item { + color: rgba(255, 255, 255, 0.5); +} + +.ui.secondary.inverted.menu .link.item:hover, +.ui.secondary.inverted.menu a.item:hover { + color: rgba(255, 255, 255, 0.9); +} + +.ui.secondary.inverted.menu .active.item { + background-color: rgba(255, 255, 255, 0.1); +} + +/* disable variations */ + +.ui.secondary.item.menu > .item { + margin: 0em; +} + +.ui.secondary.attached.menu { + -webkit-box-shadow: none; + box-shadow: none; +} + +/*--------------------- + Secondary Pointing +-----------------------*/ +.ui.secondary.pointing.menu > .menu > .item, +.ui.secondary.pointing.menu > .item { + margin: 0em 0em -3px; + padding: 0.6em 0.95em; + border-bottom: 3px solid rgba(0, 0, 0, 0); + border-radius: 0em; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +/* Item Types */ + +.ui.secondary.pointing.menu .header.item { + margin-bottom: -3px; + background-color: transparent !important; + border-right-width: 0px !important; + font-weight: bold !important; + color: rgba(0, 0, 0, 0.8) !important; +} + +.ui.secondary.pointing.menu .text.item { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.ui.secondary.pointing.menu > .menu > .item:after, +.ui.secondary.pointing.menu > .item:after { + display: none; +} + +/* Hover */ + +.ui.secondary.pointing.menu > .menu > .link.item:hover, +.ui.secondary.pointing.menu > .link.item:hover, +.ui.secondary.pointing.menu > .menu > a.item:hover, +.ui.secondary.pointing.menu > a.item:hover { + background-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +/* Down */ + +.ui.secondary.pointing.menu > .menu > .link.item:active, +.ui.secondary.pointing.menu > .link.item:active, +.ui.secondary.pointing.menu > .menu > a.item:active, +.ui.secondary.pointing.menu > a.item:active { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.2); +} + +/* Active */ + +.ui.secondary.pointing.menu > .menu > .item.active, +.ui.secondary.pointing.menu > .item.active { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.6); + -webkit-box-shadow: none; + box-shadow: none; +} + +/*--------------------- + Secondary Vertical +-----------------------*/ + +.ui.secondary.vertical.pointing.menu { + border: none; + border-right: 3px solid rgba(0, 0, 0, 0.1); +} + +.ui.secondary.vertical.menu > .item { + border: none; + margin: 0em 0em 0.3em; + padding: 0.6em 0.8em; + border-radius: 0.1875em; +} + +.ui.secondary.vertical.menu > .header.item { + border-radius: 0em; +} + +.ui.secondary.vertical.pointing.menu > .item { + margin: 0em -3px 0em 0em; + border-bottom: none; + border-right: 3px solid transparent; + border-radius: 0em; +} + +/* Hover */ + +.ui.secondary.vertical.pointing.menu > .item.hover, +.ui.secondary.vertical.pointing.menu > .item:hover { + background-color: transparent; + color: rgba(0, 0, 0, 0.7); +} + +/* Down */ + +.ui.secondary.vertical.pointing.menu > .item:active { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.2); +} + +/* Active */ + +.ui.secondary.vertical.pointing.menu > .item.active { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.4); + color: rgba(0, 0, 0, 0.85); +} + +/*-------------- + Inverted +---------------*/ + +.ui.secondary.inverted.menu { + background-color: transparent; +} + +.ui.secondary.inverted.pointing.menu { + border-bottom: 3px solid rgba(255, 255, 255, 0.1); +} + +.ui.secondary.inverted.pointing.menu > .item { + color: rgba(255, 255, 255, 0.7); +} + +.ui.secondary.inverted.pointing.menu > .header.item { + color: #FFFFFF !important; +} + +/* Hover */ + +.ui.secondary.inverted.pointing.menu > .menu > .item:hover, +.ui.secondary.inverted.pointing.menu > .item:hover { + color: rgba(255, 255, 255, 0.85); +} + +/* Down */ + +.ui.secondary.inverted.pointing.menu > .menu > .item:active, +.ui.secondary.inverted.pointing.menu > .item:active { + border-color: rgba(255, 255, 255, 0.4); +} + +/* Active */ + +.ui.secondary.inverted.pointing.menu > .menu > .item.active, +.ui.secondary.inverted.pointing.menu > .item.active { + border-color: rgba(255, 255, 255, 0.8); + color: #ffffff; +} + +/*--------------------- + Inverted Vertical +----------------------*/ + +.ui.secondary.inverted.vertical.pointing.menu { + border-right: 3px solid rgba(255, 255, 255, 0.1); + border-bottom: none; +} + +/*-------------- + Text Menu +---------------*/ + +.ui.text.menu { + background-color: transparent; + margin: 1rem -1rem; + border-radius: 0px; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.text.menu > .item { + opacity: 0.8; + margin: 0em 1em; + padding: 0em; + height: auto !important; + border-radius: 0px; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: opacity 0.2s ease; + transition: opacity 0.2s ease; +} + +.ui.text.menu > .item:before { + display: none !important; +} + +.ui.text.menu .header.item { + background-color: transparent; + opacity: 1; + color: rgba(50, 50, 50, 0.8); + font-size: 0.875rem; + padding: 0em; + text-transform: uppercase; + font-weight: bold; +} + +/*--- fluid text ---*/ + +.ui.text.item.menu .item { + margin: 0em; +} + +/*--- vertical text ---*/ + +.ui.vertical.text.menu { + margin: 1rem 0em; +} + +.ui.vertical.text.menu:first-child { + margin-top: 0rem; +} + +.ui.vertical.text.menu:last-child { + margin-bottom: 0rem; +} + +.ui.vertical.text.menu .item { + float: left; + clear: left; + margin: 0.5em 0em; +} + +.ui.vertical.text.menu .item > .icon { + float: none; + margin: 0em 0.83em 0em 0em; +} + +.ui.vertical.text.menu .header.item { + margin: 0.8em 0em; +} + +/*--- hover ---*/ + +.ui.text.menu .item.hover, +.ui.text.menu .item:hover { + opacity: 1; + background-color: transparent; +} + +/*--- active ---*/ + +.ui.text.menu .active.item { + background-color: transparent; + padding: 0em; + border: none; + opacity: 1; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* disable variations */ + +.ui.text.pointing.menu .active.item:after { + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.text.attached.menu { + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.text.menu, +.ui.inverted.text.menu .item, +.ui.inverted.text.menu .item:hover, +.ui.inverted.text.menu .item.active { + background-color: transparent; +} + +/*-------------- + Icon Only +---------------*/ + +.ui.icon.menu, +.ui.vertical.icon.menu { + width: auto; + display: inline-block; + height: auto; +} + +.ui.icon.menu > .item { + height: auto; + text-align: center; + color: rgba(60, 60, 60, 0.7); +} + +.ui.icon.menu > .item > .icon { + display: block; + float: none !important; + opacity: 1; + margin: 0em auto !important; +} + +.ui.icon.menu .icon:before { + opacity: 1; +} + +/* Item Icon Only */ + +.ui.menu .icon.item .icon { + margin: 0em; +} + +.ui.vertical.icon.menu { + float: none; +} + +/*--- inverted ---*/ + +.ui.inverted.icon.menu .item { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.icon.menu .icon { + color: #ffffff; +} + +/*-------------- + Labeled Icon +---------------*/ + +.ui.labeled.icon.menu { + text-align: center; +} + +.ui.labeled.icon.menu > .item > .icon { + display: block; + font-size: 1.5em !important; + margin: 0em auto 0.3em !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Colors +---------------*/ + +/*--- Light Colors ---*/ + +.ui.menu .green.active.item, +.ui.green.menu .active.item { + border-color: #A1CF64 !important; + color: #A1CF64 !important; +} + +.ui.menu .red.active.item, +.ui.red.menu .active.item { + border-color: #D95C5C !important; + color: #D95C5C !important; +} + +.ui.menu .blue.active.item, +.ui.blue.menu .active.item { + border-color: #6ECFF5 !important; + color: #6ECFF5 !important; +} + +.ui.menu .purple.active.item, +.ui.purple.menu .active.item { + border-color: #564F8A !important; + color: #564F8A !important; +} + +.ui.menu .orange.active.item, +.ui.orange.menu .active.item { + border-color: #F05940 !important; + color: #F05940 !important; +} + +.ui.menu .teal.active.item, +.ui.teal.menu .active.item { + border-color: #178EFE !important; + color: #178EFE !important; +} + +/*-------------- + Inverted +---------------*/ + +.ui.inverted.menu { + background-color: #333333; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.menu .header.item { + margin: 0em; + background-color: rgba(0, 0, 0, 0.3); + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.menu .item, +.ui.inverted.menu .item > a { + color: #FFFFFF; +} + +.ui.inverted.menu .item .item, +.ui.inverted.menu .item .item > a { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.menu .dropdown.item .menu .item, +.ui.inverted.menu .dropdown.item .menu .item a { + color: rgba(0, 0, 0, 0.75) !important; +} + +.ui.inverted.menu .item.disabled, +.ui.inverted.menu .item.disabled:hover, +.ui.inverted.menu .item.disabled.hover { + color: rgba(255, 255, 255, 0.2); +} + +/*--- Border ---*/ + +.ui.inverted.menu .item:before { + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%); + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03))); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03))); + background-image: linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%); +} + +.ui.vertical.inverted.menu .item:before { + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%); + background-image: -webkit-gradient(linear, top left, top right, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03))); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03))); + background-image: linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%); +} + +/*--- Hover ---*/ + +.ui.link.inverted.menu .item:hover, +.ui.inverted.menu .item.hover, +.ui.inverted.menu .link.item:hover, +.ui.inverted.menu a.item:hover, +.ui.inverted.menu .dropdown.item.hover, +.ui.inverted.menu .dropdown.item:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +.ui.inverted.menu a.item:hover, +.ui.inverted.menu .item.hover, +.ui.inverted.menu .item > a:hover, +.ui.inverted.menu .item .menu a.item:hover, +.ui.inverted.menu .item .menu a.item.hover, +.ui.inverted.menu .item .menu .link.item:hover, +.ui.inverted.menu .item .menu .link.item.hover { + color: #ffffff; +} + +/*--- Down ---*/ + +.ui.inverted.menu a.item:active, +.ui.inverted.menu .dropdown.item:active, +.ui.inverted.menu .link.item:active, +.ui.inverted.menu a.item:active { + background-color: rgba(255, 255, 255, 0.15); +} + +/*--- Active ---*/ + +.ui.inverted.menu .active.item { + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: rgba(255, 255, 255, 0.2); +} + +.ui.inverted.menu .active.item, +.ui.inverted.menu .active.item a { + color: #ffffff !important; +} + +.ui.inverted.vertical.menu .item .menu .active.item { + background-color: rgba(255, 255, 255, 0.2); + color: #ffffff; +} + +/*--- Pointers ---*/ + +.ui.inverted.pointing.menu .active.item:after { + background-color: #5B5B5B; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.pointing.menu .active.item:hover:after { + background-color: #4A4A4A; +} + +/*-------------- + Selection +---------------*/ + +.ui.selection.menu > .item { + color: rgba(0, 0, 0, 0.4); +} + +.ui.selection.menu > .item:hover { + color: rgba(0, 0, 0, 0.6); +} + +.ui.selection.menu > .item.active { + color: rgba(0, 0, 0, 0.85); +} + +.ui.inverted.selection.menu > .item { + color: rgba(255, 255, 255, 0.4); +} + +.ui.inverted.selection.menu > .item:hover { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.selection.menu > .item.active { + color: #FFFFFF; +} + +/*-------------- + Floated +---------------*/ + +.ui.floated.menu { + float: left; + margin: 0rem 0.5rem 0rem 0rem; +} + +.ui.right.floated.menu { + float: right; + margin: 0rem 0rem 0rem 0.5rem; +} + +/*-------------- + Inverted Colors +---------------*/ + +/*--- Light Colors ---*/ + +.ui.grey.menu { + background-color: #F0F0F0; +} + +/*--- Inverted Colors ---*/ + +.ui.inverted.green.menu { + background-color: #A1CF64; +} + +.ui.inverted.green.pointing.menu .active.item:after { + background-color: #A1CF64; +} + +.ui.inverted.red.menu { + background-color: #D95C5C; +} + +.ui.inverted.red.pointing.menu .active.item:after { + background-color: #F16883; +} + +.ui.inverted.blue.menu { + background-color: #6ECFF5; +} + +.ui.inverted.blue.pointing.menu .active.item:after { + background-color: #6ECFF5; +} + +.ui.inverted.purple.menu { + background-color: #564F8A; +} + +.ui.inverted.purple.pointing.menu .active.item:after { + background-color: #564F8A; +} + +.ui.inverted.orange.menu { + background-color: #F05940; +} + +.ui.inverted.orange.pointing.menu .active.item:after { + background-color: #F05940; +} + +.ui.inverted.teal.menu { + background-color: #007ad5 !important; +} + +.ui.inverted.teal.pointing.menu .active.item:after { + background-color: #007ad5 !important; +} + +/*-------------- + Fitted +---------------*/ + +.ui.fitted.menu .item, +.ui.fitted.menu .item .menu .item, +.ui.menu .fitted.item { + padding: 0em; +} + +.ui.horizontally.fitted.menu .item, +.ui.horizontally.fitted.menu .item .menu .item, +.ui.menu .horizontally.fitted.item { + padding-top: 0.83em; + padding-bottom: 0.83em; +} + +.ui.vertically.fitted.menu .item, +.ui.vertically.fitted.menu .item .menu .item, +.ui.menu .vertically.fitted.item { + padding-left: 0.95em; + padding-right: 0.95em; +} + +/*-------------- + Borderless +---------------*/ + +.ui.borderless.menu .item:before, +.ui.borderless.menu .item .menu .item:before, +.ui.menu .borderless.item:before { + background-image: none; +} + +/*------------------- + Compact +--------------------*/ + +.ui.compact.menu { + display: inline-block; + margin: 0em; + vertical-align: middle; +} + +.ui.compact.vertical.menu { + width: auto !important; +} + +.ui.compact.vertical.menu .item:last-child::before { + display: block; +} + +/*------------------- + Fluid +--------------------*/ + +.ui.menu.fluid, +.ui.vertical.menu.fluid { + display: block; + width: 100% !important; +} + +/*------------------- + Evenly Sized +--------------------*/ + +.ui.item.menu, +.ui.item.menu .item { + width: 100%; + padding-left: 0px !important; + padding-right: 0px !important; + text-align: center; +} + +.ui.menu.two.item .item { + width: 50%; +} + +.ui.menu.three.item .item { + width: 33.333%; +} + +.ui.menu.four.item .item { + width: 25%; +} + +.ui.menu.five.item .item { + width: 20%; +} + +.ui.menu.six.item .item { + width: 16.666%; +} + +.ui.menu.seven.item .item { + width: 14.285%; +} + +.ui.menu.eight.item .item { + width: 12.500%; +} + +.ui.menu.nine.item .item { + width: 11.11%; +} + +.ui.menu.ten.item .item { + width: 10.0%; +} + +.ui.menu.eleven.item .item { + width: 9.09%; +} + +.ui.menu.twelve.item .item { + width: 8.333%; +} + +/*-------------- + Fixed +---------------*/ + +.ui.menu.fixed { + position: fixed; + z-index: 10; + margin: 0em; + border: none; + width: 100%; +} + +.ui.menu.fixed, +.ui.menu.fixed .item:first-child, +.ui.menu.fixed .item:last-child { + border-radius: 0px !important; +} + +.ui.menu.fixed.top { + top: 0px; + left: 0px; + right: auto; + bottom: auto; +} + +.ui.menu.fixed.right { + top: 0px; + right: 0px; + left: auto; + bottom: auto; + width: auto; + height: 100%; +} + +.ui.menu.fixed.bottom { + bottom: 0px; + left: 0px; + top: auto; + right: auto; +} + +.ui.menu.fixed.left { + top: 0px; + left: 0px; + right: auto; + bottom: auto; + width: auto; + height: 100%; +} + +/*------------------- + Pointing +--------------------*/ + +.ui.pointing.menu .active.item:after { + position: absolute; + bottom: -0.3em; + left: 50%; + content: ""; + margin-left: -0.3em; + width: 0.6em; + height: 0.6em; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(0, 0, 0, 0.1); + background-image: none; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + z-index: 2; + -webkit-transition: background 0.2s ease; + transition: background 0.2s ease; +} + +/* Don't double up pointers */ + +.ui.pointing.menu .active.item .menu .active.item:after { + display: none; +} + +.ui.vertical.pointing.menu .active.item:after { + position: absolute; + top: 50%; + margin-top: -0.3em; + right: -0.4em; + bottom: auto; + left: auto; + border: none; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +/* Colors */ + +.ui.pointing.menu .active.item:after { + background-color: #FCFCFC; +} + +.ui.pointing.menu .active.item.hover:after, +.ui.pointing.menu .active.item:hover:after { + background-color: #FAFAFA; +} + +.ui.vertical.pointing.menu .menu .active.item:after { + background-color: #F4F4F4; +} + +.ui.pointing.menu a.active.item:active:after { + background-color: #F0F0F0; +} + +/*-------------- + Attached +---------------*/ + +.ui.menu.attached { + margin: 0rem; + border-radius: 0px; + /* avoid rgba multiplying */ + -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD; + box-shadow: 0px 0px 0px 1px #DDDDDD; +} + +.ui.top.attached.menu { + border-radius: 0.1875em 0.1875em 0px 0px; +} + +.ui.menu.bottom.attached { + border-radius: 0px 0px 0.1875em 0.1875em; +} + +/*-------------- + Sizes +---------------*/ + +.ui.small.menu .item { + font-size: 0.875rem; +} + +.ui.small.menu:not(.vertical) .item > .input input { + padding-top: 0.4em; + padding-bottom: 0.4em; +} + +.ui.small.vertical.menu { + width: 13rem; +} + +.ui.menu .item { + font-size: 1rem; +} + +.ui.vertical.menu { + width: 15rem; +} + +.ui.large.menu .item { + font-size: 1.125rem; +} + +.ui.large.menu .item .item { + font-size: 0.875rem; +} + +.ui.large.menu:not(.vertical) .item > .input input { + top: -0.125em; + padding-bottom: 0.6em; + padding-top: 0.6em; +} + +.ui.large.menu .dropdown.item .item { + font-size: 1rem; +} + +.ui.large.vertical.menu { + width: 18rem; +} +/* + * # Semantic - Message + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Message +*******************************/ + +.ui.message { + position: relative; + min-height: 18px; + margin: 1em 0em; + height: auto; + background-color: #EFEFEF; + padding: 1em; + line-height: 1.33; + color: rgba(0, 0, 0, 0.6); + -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease; + transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0.325em 0.325em 0.325em 0.325em; +} + +.ui.message:first-child { + margin-top: 0em; +} + +.ui.message:last-child { + margin-bottom: 0em; +} + +/*-------------- + Content +---------------*/ + +/* block with headers */ + +.ui.message .header { + margin: 0em; + font-size: 1.33rem; + font-weight: bold; +} + +/* block with paragraphs */ + +.ui.message p { + opacity: 0.85; + margin: 1em 0em; +} + +.ui.message p:first-child { + margin-top: 0em; +} + +.ui.message p:last-child { + margin-bottom: 0em; +} + +.ui.message .header + p { + margin-top: 0.3em; +} + +.ui.message > :first-child { + margin-top: 0em; +} + +.ui.message > :last-child { + margin-bottom: 0em; +} + +/* block with child list */ + +.ui.message ul.list { + opacity: 0.85; + list-style-position: inside; + margin: 0.2em 0em; + padding: 0em; +} + +.ui.message ul.list li { + position: relative; + list-style-type: none; + margin: 0em 0em 0.3em 1em; + padding: 0em; +} + +.ui.message ul.list li:before { + position: absolute; + content: '\2022'; + top: -0.05em; + left: -0.8em; + height: 100%; + vertical-align: baseline; + opacity: 0.5; +} + +.ui.message ul.list li:first-child { + margin-top: 0em; +} + +/* dismissable block */ + +.ui.message > .close.icon { + cursor: pointer; + position: absolute; + top: 1em; + right: 0.5em; + opacity: 0.7; + -webkit-transition: opacity 0.1s linear; + transition: opacity 0.1s linear; +} + +.ui.message > .close.icon:hover { + opacity: 1; +} + +/******************************* + States +*******************************/ + +.ui.message.visible, +.ui.header.visible { + display: block !important; +} + +.ui.message.hidden, +.ui.header.hidden { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Compact +---------------*/ + +.ui.compact.message { + display: inline-block; +} + +/*-------------- + Attached +---------------*/ + +.ui.attached.message { + margin-left: -1px; + margin-right: -1px; + margin-bottom: -1px; + border-radius: 0.325em 0.325em 0em 0em; + -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset; +} + +.ui.bottom.attached.message { + margin-top: -1px; + border-radius: 0em 0em 0.325em 0.325em; +} + +/*-------------- + Icon +---------------*/ + +.ui.icon.message { + display: table; + width: 100%; +} + +.ui.icon.message > .icon { + display: table-cell; + vertical-align: middle; + font-size: 3.8em; + opacity: 0.5; +} + +.ui.icon.message > .icon + .content { + padding-left: 1em; +} + +.ui.icon.message > .content { + display: table-cell; + vertical-align: middle; +} + +/*-------------- + Inverted +---------------*/ + +.ui.inverted.message { + background-color: rgba(255, 255, 255, 0.05); + color: rgba(255, 255, 255, 0.95); +} + +/*-------------- + Floating +---------------*/ + +.ui.floating.message { + -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset; + box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset; +} + +/*-------------- + Colors +---------------*/ + +.ui.black.message { + background-color: #333333; + color: rgba(255, 255, 255, 0.95); +} + +/*-------------- + Types +---------------*/ + +.ui.blue.message, +.ui.info.message { + background-color: #E6F4F9; + color: #4D8796; +} + +/* Green Text Block */ + +.ui.green.message { + background-color: #DEFCD5; + color: #52A954; +} + +/* Yellow Text Block */ + +.ui.yellow.message, +.ui.warning.message { + background-color: #F6F3D5; + color: #96904D; +} + +/* Red Text Block */ + +.ui.red.message { + background-color: #F1D7D7; + color: #A95252; +} + +/* Success Text Block */ + +.ui.success.message, +.ui.positive.message { + background-color: #DEFCD5; + color: #52A954; +} + +/* Error Text Block */ + +.ui.error.message, +.ui.negative.message { + background-color: #F1D7D7; + color: #A95252; +} + +/*-------------- + Sizes +---------------*/ + +.ui.small.message { + font-size: 0.875em; +} + +.ui.message { + font-size: 0.875rem; +} + +.ui.large.message { + font-size: 1.125em; +} + +.ui.huge.message { + font-size: 1.5em; +} + +.ui.massive.message { + font-size: 2em; +} +/* + * # Semantic - Table + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Table +*******************************/ + +/* Prototype */ + +.ui.table { + width: 100%; + border-collapse: collapse; +} + +/* Table Content */ + +.ui.table th, +.ui.table tr, +.ui.table td { + border-collapse: collapse; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: all 0.1s ease-out; + transition: all 0.1s ease-out; +} + +/* Headers */ + +.ui.table thead { + border-bottom: 1px solid rgba(0, 0, 0, 0.03); +} + +.ui.table tfoot th { + background-color: rgba(0, 0, 0, 0.03); +} + +.ui.table th { + cursor: auto; + background-color: rgba(0, 0, 0, 0.05); + text-align: left; + color: rgba(0, 0, 0, 0.8); + padding: 0.5em 0.7em; + vertical-align: middle; +} + +.ui.table thead th:first-child { + border-radius: 5px 0px 0px 0px; +} + +.ui.table thead th:last-child { + border-radius: 0px 5px 0px 0px; +} + +.ui.table tfoot th:first-child { + border-radius: 0px 0px 0px 5px; +} + +.ui.table tfoot th:last-child { + border-radius: 0px 0px 5px 0px; +} + +/* Table Cells */ + +.ui.table td { + padding: 0.40em 0.7em; + vertical-align: middle; +} + +/* Footer */ + +.ui.table tfoot { + border-top: 1px solid rgba(0, 0, 0, 0.03); +} + +.ui.table tfoot th { + font-weight: normal; + font-style: italic; +} + +/* Table Striping */ + +.ui.table tbody tr:nth-child(2n) { + background-color: rgba(0, 0, 50, 0.02); +} + +/* Icons */ + +.ui.table > .icon { + vertical-align: baseline; +} + +.ui.table > .icon:only-child { + margin: 0em; +} + +/* Table Segment */ + +.ui.table.segment:after { + display: none; +} + +.ui.table.segment.stacked:after { + display: block; +} + +/* Responsive */ + +@media only screen and (max-width: 768px) { + .ui.table { + display: block; + padding: 0em; + } + + .ui.table thead, + .ui.table tfoot { + display: none; + } + + .ui.table tbody { + display: block; + } + + .ui.table tr { + display: block; + } + + .ui.table tr > td { + width: 100% !important; + display: block; + border: none !important; + padding: 0.25em 0.75em; + -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important; + box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important; + } + + .ui.table td:first-child { + font-weight: bold; + padding-top: 1em; + } + + .ui.table td:last-child { + -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important; + box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important; + padding-bottom: 1em; + } + + /* Clear BG Colors */ + + .ui.table tr > td.warning, + .ui.table tr > td.error, + .ui.table tr > td.active, + .ui.table tr > td.positive, + .ui.table tr > td.negative { + background-color: transparent !important; + } +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +/* Sortable */ + +.ui.sortable.table th.disabled:hover { + cursor: auto; + text-align: left; + font-weight: bold; + color: #333333; + color: rgba(0, 0, 0, 0.8); +} + +.ui.sortable.table thead th:hover { + background-color: rgba(0, 0, 0, 0.13); + color: rgba(0, 0, 0, 0.8); +} + +/* Inverted Sortable */ + +.ui.inverted.sortable.table thead th:hover { + background-color: rgba(255, 255, 255, 0.13); + color: #ffffff; +} + +/*-------------- + Positive +---------------*/ + +.ui.table tr.positive td, +.ui.table td.positive { + background-color: #F2F8F0 !important; + color: #119000 !important; +} + +.ui.celled.table tr.positive:hover td, +.ui.celled.table tr:hover td.positive, +.ui.table tr.positive:hover td, +.ui.table td:hover.positive, +.ui.table th:hover.positive { + background-color: #ECF5E9 !important; + color: #119000 !important; +} + +/*-------------- + Negative +---------------*/ + +.ui.table tr.negative td, +.ui.table td.negative { + background-color: #F9F4F4; + color: #CD2929 !important; +} + +.ui.celled.table tr.negative:hover td, +.ui.celled.table tr:hover td.negative, +.ui.table tr.negative:hover td, +.ui.table td:hover.negative, +.ui.table th:hover.negative { + background-color: #F2E8E8; + color: #CD2929; +} + +/*-------------- + Error +---------------*/ + +.ui.table tr.error, +.ui.table td.error { + -webkit-box-shadow: 2px 0px 0px #CD2929 inset; + box-shadow: 2px 0px 0px #CD2929 inset; +} + +.ui.table tr.error td, +.ui.table td.error, +.ui.table th.error { + background-color: #F9F4F4; + color: #CD2929; +} + +.ui.celled.table tr.error:hover td, +.ui.celled.table tr:hover td.error, +.ui.table tr.error:hover td, +.ui.table td:hover.error, +.ui.table th:hover.error { + background-color: #F2E8E8; + color: #CD2929; +} + +/*-------------- + Warning +---------------*/ + +.ui.table tr.warning, +.ui.table td.warning { + -webkit-box-shadow: 2px 0px 0px #7D6C00 inset; + box-shadow: 2px 0px 0px #7D6C00 inset; +} + +.ui.table tr.warning td, +.ui.table td.warning, +.ui.table th.warning { + background-color: #FBF6E9; + color: #7D6C00; +} + +.ui.celled.table tr.warning:hover td, +.ui.celled.table tr:hover td.warning, +.ui.table tr.warning:hover td, +.ui.table td:hover.warning, +.ui.table th:hover.warning { + background-color: #F3EDDC; + color: #7D6C00; +} + +/*-------------- + Active +---------------*/ + +.ui.table tr.active, +.ui.table td.active { + -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset; + box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset; +} + +.ui.table tr.active td, +.ui.table tr td.active { + background-color: #E0E0E0; + color: rgba(50, 50, 50, 0.9); + /* border-color: rgba(0, 0, 0, 0.15) !important; */ +} + +/*-------------- + Disabled +---------------*/ + +.ui.table tr.disabled td, +.ui.table tr td.disabled, +.ui.table tr.disabled:hover td, +.ui.table tr:hover td.disabled { + color: rgba(150, 150, 150, 0.3); +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Column Count +---------------*/ + +.ui.two.column.table td { + width: 50%; +} + +.ui.three.column.table td { + width: 33.3333%; +} + +.ui.four.column.table td { + width: 25%; +} + +.ui.five.column.table td { + width: 20%; +} + +.ui.six.column.table td { + width: 16.66667%; +} + +.ui.seven.column.table td { + width: 14.2857%; +} + +.ui.eight.column.table td { + width: 12.5%; +} + +.ui.nine.column.table td { + width: 11.1111%; +} + +.ui.ten.column.table td { + width: 10%; +} + +.ui.eleven.column.table td { + width: 9.0909%; +} + +.ui.twelve.column.table td { + width: 8.3333%; +} + +.ui.thirteen.column.table td { + width: 7.6923%; +} + +.ui.fourteen.column.table td { + width: 7.1428%; +} + +.ui.fifteen.column.table td { + width: 6.6666%; +} + +.ui.sixteen.column.table td { + width: 6.25%; +} + +/* Column Width */ + +.ui.table th.one.wide, +.ui.table td.one.wide { + width: 6.25%; +} + +.ui.table th.two.wide, +.ui.table td.two.wide { + width: 12.5%; +} + +.ui.table th.three.wide, +.ui.table td.three.wide { + width: 18.75%; +} + +.ui.table th.four.wide, +.ui.table td.four.wide { + width: 25%; +} + +.ui.table th.five.wide, +.ui.table td.five.wide { + width: 31.25%; +} + +.ui.table th.six.wide, +.ui.table td.six.wide { + width: 37.5%; +} + +.ui.table th.seven.wide, +.ui.table td.seven.wide { + width: 43.75%; +} + +.ui.table th.eight.wide, +.ui.table td.eight.wide { + width: 50%; +} + +.ui.table th.nine.wide, +.ui.table td.nine.wide { + width: 56.25%; +} + +.ui.table th.ten.wide, +.ui.table td.ten.wide { + width: 62.5%; +} + +.ui.table th.eleven.wide, +.ui.table td.eleven.wide { + width: 68.75%; +} + +.ui.table th.twelve.wide, +.ui.table td.twelve.wide { + width: 75%; +} + +.ui.table th.thirteen.wide, +.ui.table td.thirteen.wide { + width: 81.25%; +} + +.ui.table th.fourteen.wide, +.ui.table td.fourteen.wide { + width: 87.5%; +} + +.ui.table th.fifteen.wide, +.ui.table td.fifteen.wide { + width: 93.75%; +} + +.ui.table th.sixteen.wide, +.ui.table td.sixteen.wide { + width: 100%; +} + +/*-------------- + Celled +---------------*/ + +.ui.celled.table { + color: rgba(0, 0, 0, 0.8); +} + +.ui.celled.table tbody tr, +.ui.celled.table tfoot tr { + border: none; +} + +.ui.celled.table th, +.ui.celled.table td { + border: 1px solid rgba(0, 0, 0, 0.1); +} + +/* Coupling with segment */ + +.ui.celled.table.segment th:first-child, +.ui.celled.table.segment td:first-child { + border-left: none; +} + +.ui.celled.table.segment th:last-child, +.ui.celled.table.segment td:last-child { + border-right: none; +} + +/*-------------- + Sortable +---------------*/ + +.ui.sortable.table thead th { + cursor: pointer; + white-space: nowrap; +} + +.ui.sortable.table thead th.sorted, +.ui.sortable.table thead th.sorted:hover { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.ui.sortable.table thead th:after { + display: inline-block; + content: ''; + width: 1em; + opacity: 0.8; + margin: 0em 0em 0em 0.5em; + font-family: 'Icons'; + font-style: normal; + font-weight: normal; + text-decoration: inherit; +} + +.ui.sortable.table thead th.ascending:after { + content: '\25b4'; +} + +.ui.sortable.table thead th.descending:after { + content: '\25be'; +} + +/*-------------- + Inverted +---------------*/ + +/* Text Color */ + +.ui.inverted.table td { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.table th { + background-color: rgba(0, 0, 0, 0.15); + color: rgba(255, 255, 255, 0.9); +} + +/* Stripes */ + +.ui.inverted.table tbody tr:nth-child(2n) { + background-color: rgba(255, 255, 255, 0.06); +} + +/*-------------- + Definition +---------------*/ + +.ui.definition.table td:first-child { + font-weight: bold; +} + +/*-------------- + Collapsing +---------------*/ + +.ui.collapsing.table { + width: auto; +} + +/*-------------- + Basic +---------------*/ + +.ui.basic.table th { + background-color: transparent; + padding: 0.5em; +} + +.ui.basic.table tbody tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.03); +} + +.ui.basic.table td { + padding: 0.8em 0.5em; +} + +.ui.basic.table tbody tr:nth-child(2n) { + background-color: transparent !important; +} + +/*-------------- + Padded +---------------*/ + +.ui.padded.table th, +.ui.padded.table td { + padding: 0.8em 1em; +} + +.ui.compact.table th { + padding: 0.3em 0.5em; +} + +.ui.compact.table td { + padding: 0.2em 0.5em; +} + +/*-------------- + Sizes +---------------*/ + +/* Small */ + +.ui.small.table { + font-size: 0.875em; +} + +/* Standard */ + +.ui.table { + font-size: 1em; +} + +/* Large */ + +.ui.large.table { + font-size: 1.1em; +} +/* + * # Semantic - basic.Icon (Basic) + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + basic.Icon +*******************************/ + +@font-face { + font-family: 'Basic Icons'; + src: url(../fonts/basic.icons.eot); + src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'), url(../fonts/basic.icons.woff) format('woff'), url(../fonts/basic.icons.ttf) format('truetype'), url(../fonts/basic.icons.svg#basic.icons) format('svg'); + font-style: normal; + font-weight: normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +i.basic.icon { + display: inline-block; + opacity: 0.75; + margin: 0em 0.25em 0em 0em; + width: 18px; + height: 1em; + font-family: 'Basic Icons'; + font-style: normal; + line-height: 1; + font-weight: normal; + text-decoration: inherit; + text-align: center; + speak: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +/* basic.icons available */ + +i.basic.icon.circle.attention:before { + content: '\2757'; +} + +/* '❗' */ + +i.basic.icon.circle.help:before { + content: '\e704'; +} + +/* '' */ + +i.basic.icon.circle.info:before { + content: '\e705'; +} + +/* '' */ + +i.basic.icon.add:before { + content: '\2795'; +} + +/* '➕' */ + +i.basic.icon.chart:before { + content: '📈'; +} + +/* '\1f4c8' */ + +i.basic.icon.chart.bar:before { + content: '📊'; +} + +/* '\1f4ca' */ + +i.basic.icon.chart.pie:before { + content: '\e7a2'; +} + +/* '' */ + +i.basic.icon.resize.full:before { + content: '\e744'; +} + +/* '' */ + +i.basic.icon.resize.horizontal:before { + content: '\2b0d'; +} + +/* '⬍' */ + +i.basic.icon.resize.small:before { + content: '\e746'; +} + +/* '' */ + +i.basic.icon.resize.vertical:before { + content: '\2b0c'; +} + +/* '⬌' */ + +i.basic.icon.down:before { + content: '\2193'; +} + +/* '↓' */ + +i.basic.icon.down.triangle:before { + content: '\25be'; +} + +/* '▾' */ + +i.basic.icon.down.arrow:before { + content: '\e75c'; +} + +/* '' */ + +i.basic.icon.left:before { + content: '\2190'; +} + +/* '←' */ + +i.basic.icon.left.triangle:before { + content: '\25c2'; +} + +/* '◂' */ + +i.basic.icon.left.arrow:before { + content: '\e75d'; +} + +/* '' */ + +i.basic.icon.right:before { + content: '\2192'; +} + +/* '→' */ + +i.basic.icon.right.triangle:before { + content: '\25b8'; +} + +/* '▸' */ + +i.basic.icon.right.arrow:before { + content: '\e75e'; +} + +/* '' */ + +i.basic.icon.up:before { + content: '\2191'; +} + +/* '↑' */ + +i.basic.icon.up.triangle:before { + content: '\25b4'; +} + +/* '▴' */ + +i.basic.icon.up.arrow:before { + content: '\e75f'; +} + +/* '' */ + +i.basic.icon.folder:before { + content: '\e810'; +} + +/* '' */ + +i.basic.icon.open.folder:before { + content: '📂'; +} + +/* '\1f4c2' */ + +i.basic.icon.globe:before { + content: '𝌍'; +} + +/* '\1d30d' */ + +i.basic.icon.desk.globe:before { + content: '🌐'; +} + +/* '\1f310' */ + +i.basic.icon.star:before { + content: '\e801'; +} + +/* '' */ + +i.basic.icon.star.empty:before { + content: '\e800'; +} + +/* '' */ + +i.basic.icon.star.half:before { + content: '\e701'; +} + +/* '' */ + +i.basic.icon.lock:before { + content: '🔒'; +} + +/* '\1f512' */ + +i.basic.icon.unlock:before { + content: '🔓'; +} + +/* '\1f513' */ + +i.basic.icon.layout.grid:before { + content: '\e80c'; +} + +/* '' */ + +i.basic.icon.layout.block:before { + content: '\e708'; +} + +/* '' */ + +i.basic.icon.layout.list:before { + content: '\e80b'; +} + +/* '' */ + +i.basic.icon.heart.empty:before { + content: '\2661'; +} + +/* '♡' */ + +i.basic.icon.heart:before { + content: '\2665'; +} + +/* '♥' */ + +i.basic.icon.asterisk:before { + content: '\2731'; +} + +/* '✱' */ + +i.basic.icon.attachment:before { + content: '📎'; +} + +/* '\1f4ce' */ + +i.basic.icon.attention:before { + content: '\26a0'; +} + +/* '⚠' */ + +i.basic.icon.trophy:before { + content: '🏉'; +} + +/* '\1f3c9' */ + +i.basic.icon.barcode:before { + content: '\e792'; +} + +/* '' */ + +i.basic.icon.cart:before { + content: '\e813'; +} + +/* '' */ + +i.basic.icon.block:before { + content: '🚫'; +} + +/* '\1f6ab' */ + +i.basic.icon.book:before { + content: '📖'; +} + +i.basic.icon.bookmark:before { + content: '🔖'; +} + +/* '\1f516' */ + +i.basic.icon.calendar:before { + content: '📅'; +} + +/* '\1f4c5' */ + +i.basic.icon.cancel:before { + content: '\2716'; +} + +/* '✖' */ + +i.basic.icon.close:before { + content: '\e80d'; +} + +/* '' */ + +i.basic.icon.color:before { + content: '\e794'; +} + +/* '' */ + +i.basic.icon.chat:before { + content: '\e720'; +} + +/* '' */ + +i.basic.icon.check:before { + content: '\2611'; +} + +/* '☑' */ + +i.basic.icon.time:before { + content: '🕔'; +} + +/* '\1f554' */ + +i.basic.icon.cloud:before { + content: '\2601'; +} + +/* '☁' */ + +i.basic.icon.code:before { + content: '\e714'; +} + +/* '' */ + +i.basic.icon.email:before { + content: '\40'; +} + +/* '@' */ + +i.basic.icon.settings:before { + content: '\26ef'; +} + +/* '⛯' */ + +i.basic.icon.setting:before { + content: '\2699'; +} + +/* '⚙' */ + +i.basic.icon.comment:before { + content: '\e802'; +} + +/* '' */ + +i.basic.icon.clockwise.counter:before { + content: '\27f2'; +} + +/* '⟲' */ + +i.basic.icon.clockwise:before { + content: '\27f3'; +} + +/* '⟳' */ + +i.basic.icon.cube:before { + content: '\e807'; +} + +/* '' */ + +i.basic.icon.direction:before { + content: '\27a2'; +} + +/* '➢' */ + +i.basic.icon.doc:before { + content: '📄'; +} + +/* '\1f4c4' */ + +i.basic.icon.docs:before { + content: '\e736'; +} + +/* '' */ + +i.basic.icon.dollar:before { + content: '💵'; +} + +/* '\1f4b5' */ + +i.basic.icon.paint:before { + content: '\e7b5'; +} + +/* '' */ + +i.basic.icon.edit:before { + content: '\270d'; +} + +/* '✍' */ + +i.basic.icon.eject:before { + content: '\2ecf'; +} + +/* '⻏' */ + +i.basic.icon.export:before { + content: '\e715'; +} + +/* '' */ + +i.basic.icon.hide:before { + content: '\e80f'; +} + +/* '' */ + +i.basic.icon.unhide:before { + content: '\e70b'; +} + +/* '' */ + +i.basic.icon.facebook:before { + content: '\f301'; +} + +/* '' */ + +i.basic.icon.fast-forward:before { + content: '\e804'; +} + +/* '' */ + +i.basic.icon.fire:before { + content: '🔥'; +} + +/* '\1f525' */ + +i.basic.icon.flag:before { + content: '\2691'; +} + +/* '⚑' */ + +i.basic.icon.lightning:before { + content: '\26a1'; +} + +/* '⚡' */ + +i.basic.icon.lab:before { + content: '\68'; +} + +/* 'h' */ + +i.basic.icon.flight:before { + content: '\2708'; +} + +/* '✈' */ + +i.basic.icon.forward:before { + content: '\27a6'; +} + +/* '➦' */ + +i.basic.icon.gift:before { + content: '🎁'; +} + +/* '\1f381' */ + +i.basic.icon.github:before { + content: '\f308'; +} + +/* '' */ + +i.basic.icon.globe:before { + content: '\e817'; +} + +/* '' */ + +i.basic.icon.headphones:before { + content: '🎧'; +} + +/* '\1f3a7' */ + +i.basic.icon.question:before { + content: '\2753'; +} + +/* '❓' */ + +i.basic.icon.home:before { + content: '\2302'; +} + +/* '⌂' */ + +i.basic.icon.i:before { + content: '\2139'; +} + +/* 'ℹ' */ + +i.basic.icon.idea:before { + content: '💡'; +} + +/* '\1f4a1' */ + +i.basic.icon.open:before { + content: '🔗'; +} + +/* '\1f517' */ + +i.basic.icon.content:before { + content: '\e782'; +} + +/* '' */ + +i.basic.icon.location:before { + content: '\e724'; +} + +/* '' */ + +i.basic.icon.mail:before { + content: '\2709'; +} + +/* '✉' */ + +i.basic.icon.mic:before { + content: '🎤'; +} + +/* '\1f3a4' */ + +i.basic.icon.minus:before { + content: '\2d'; +} + +/* '-' */ + +i.basic.icon.money:before { + content: '💰'; +} + +/* '\1f4b0' */ + +i.basic.icon.off:before { + content: '\e78e'; +} + +/* '' */ + +i.basic.icon.pause:before { + content: '\e808'; +} + +/* '' */ + +i.basic.icon.photos:before { + content: '\e812'; +} + +/* '' */ + +i.basic.icon.photo:before { + content: '🌄'; +} + +/* '\1f304' */ + +i.basic.icon.pin:before { + content: '📌'; +} + +/* '\1f4cc' */ + +i.basic.icon.play:before { + content: '\e809'; +} + +/* '' */ + +i.basic.icon.plus:before { + content: '\2b'; +} + +/* '+' */ + +i.basic.icon.print:before { + content: '\e716'; +} + +/* '' */ + +i.basic.icon.rss:before { + content: '\e73a'; +} + +/* '' */ + +i.basic.icon.search:before { + content: '🔍'; +} + +/* '\1f50d' */ + +i.basic.icon.shuffle:before { + content: '\e803'; +} + +/* '' */ + +i.basic.icon.tag:before { + content: '\e80a'; +} + +/* '' */ + +i.basic.icon.tags:before { + content: '\e70d'; +} + +/* '' */ + +i.basic.icon.terminal:before { + content: '\e7ac'; +} + +/* '' */ + +i.basic.icon.thumbs.down:before { + content: '👎'; +} + +/* '\1f44e' */ + +i.basic.icon.thumbs.up:before { + content: '👍'; +} + +/* '\1f44d' */ + +i.basic.icon.to-end:before { + content: '\e806'; +} + +/* '' */ + +i.basic.icon.to-start:before { + content: '\e805'; +} + +/* '' */ + +i.basic.icon.top.list:before { + content: '🏆'; +} + +/* '\1f3c6' */ + +i.basic.icon.trash:before { + content: '\e729'; +} + +/* '' */ + +i.basic.icon.twitter:before { + content: '\f303'; +} + +/* '' */ + +i.basic.icon.upload:before { + content: '\e711'; +} + +/* '' */ + +i.basic.icon.user.add:before { + content: '\e700'; +} + +/* '' */ + +i.basic.icon.user:before { + content: '👤'; +} + +/* '\1f464' */ + +i.basic.icon.community:before { + content: '\e814'; +} + +/* '' */ + +i.basic.icon.users:before { + content: '👥'; +} + +/* '\1f465' */ + +i.basic.icon.id:before { + content: '\e722'; +} + +/* '' */ + +i.basic.icon.url:before { + content: '🔗'; +} + +/* '\1f517' */ + +i.basic.icon.zoom.in:before { + content: '\e750'; +} + +/* '' */ + +i.basic.icon.zoom.out:before { + content: '\e751'; +} + +/* '' */ + +/*-------------- + Spacing Fix +---------------*/ + +/* dropdown arrows are to the right */ + +i.dropdown.basic.icon { + margin: 0em 0em 0em 0.5em; +} + +/* stars are usually consecutive */ + +i.basic.icon.star { + width: auto; + margin: 0em; +} + +/* left side basic.icons */ + +i.basic.icon.left, +i.basic.icon.left, +i.basic.icon.left { + width: auto; + margin: 0em 0.5em 0em 0em; +} + +/* right side basic.icons */ + +i.basic.icon.search, +i.basic.icon.up, +i.basic.icon.down, +i.basic.icon.right { + width: auto; + margin: 0em 0em 0em 0.5em; +} + +/*-------------- + Aliases +---------------*/ + +/* aliases for convenience */ + +i.basic.icon.delete:before { + content: '\e80d'; +} + +/* '' */ + +i.basic.icon.dropdown:before { + content: '\25be'; +} + +/* '▾' */ + +i.basic.icon.help:before { + content: '\e704'; +} + +/* '' */ + +i.basic.icon.info:before { + content: '\e705'; +} + +/* '' */ + +i.basic.icon.error:before { + content: '\e80d'; +} + +/* '' */ + +i.basic.icon.dislike:before { + content: '\2661'; +} + +/* '♡' */ + +i.basic.icon.like:before { + content: '\2665'; +} + +/* '♥' */ + +i.basic.icon.eye:before { + content: '\e80f'; +} + +/* '' */ + +i.basic.icon.eye.hidden:before { + content: '\e70b'; +} + +/* '' */ + +i.basic.icon.date:before { + content: '📅'; +} + +/* '\1f4c5' */ + +/******************************* + States +*******************************/ + +i.basic.icon.hover { + opacity: 1; +} + +i.basic.icon.active { + opacity: 1; +} + +i.emphasized.basic.icon { + opacity: 1; +} + +i.basic.icon.disabled { + opacity: 0.3; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Link +--------------------*/ + +i.link.basic.icon { + cursor: pointer; + opacity: 0.7; + -webkit-transition: opacity 0.3s ease-out; + transition: opacity 0.3s ease-out; +} + +.link.basic.icon:hover { + opacity: 1 !important; +} + +/*------------------- + Circular +--------------------*/ + +i.circular.basic.icon { + border-radius: 500px !important; + padding: 0.5em 0em !important; + -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + line-height: 1 !important; + width: 2em !important; + height: 2em !important; +} + +i.circular.inverted.basic.icon { + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*------------------- + Flipped +--------------------*/ + +i.vertically.flipped.basic.icon { + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +i.horizontally.flipped.basic.icon { + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +/*------------------- + Rotated +--------------------*/ + +i.left.rotated.basic.icon { + -webkit-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); +} + +i.right.rotated.basic.icon { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +/*------------------- + Square +--------------------*/ + +i.square.basic.icon { + width: 2em; + height: 2em; + padding: 0.5em 0.35em !important; + -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + vertical-align: baseline; +} + +i.square.basic.icon:before { + vertical-align: middle; +} + +i.square.inverted.basic.icon { + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*------------------- + Inverted +--------------------*/ + +i.inverted.basic.icon { + background-color: #222222; + color: #FFFFFF; +} + +/*------------------- + Colors +--------------------*/ + +i.blue.basic.icon { + color: #6ECFF5 !important; +} + +i.black.basic.icon { + color: #5C6166 !important; +} + +i.green.basic.icon { + color: #A1CF64 !important; +} + +i.red.basic.icon { + color: #D95C5C !important; +} + +i.purple.basic.icon { + color: #564F8A !important; +} + +i.teal.basic.icon { + color: #00B5AD !important; +} + +/*------------------- + Inverted Colors +--------------------*/ + +i.inverted.black.basic.icon { + background-color: #5C6166 !important; + color: #FFFFFF !important; +} + +i.inverted.blue.basic.icon { + background-color: #6ECFF5 !important; + color: #FFFFFF !important; +} + +i.inverted.green.basic.icon { + background-color: #A1CF64 !important; + color: #FFFFFF !important; +} + +i.inverted.red.basic.icon { + background-color: #D95C5C !important; + color: #FFFFFF !important; +} + +i.inverted.purple.basic.icon { + background-color: #564F8A !important; + color: #FFFFFF !important; +} + +i.inverted.teal.basic.icon { + background-color: #00B5AD !important; + color: #FFFFFF !important; +} + +/*------------------- + Sizes +--------------------*/ + +i.small.basic.icon { + font-size: 0.875em; +} + +i.basic.icon { + font-size: 1em; +} + +i.large.basic.icon { + font-size: 1.5em; + margin-right: 0.2em; + vertical-align: middle; +} + +i.big.basic.icon { + font-size: 2em; + margin-right: 0.5em; + vertical-align: middle; +} + +i.huge.basic.icon { + font-size: 4em; + margin-right: 0.75em; + vertical-align: middle; +} + +i.massive.basic.icon { + font-size: 8em; + margin-right: 1em; + vertical-align: middle; +} +/* + * # Semantic - Button + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Button +*******************************/ + +/* Prototype */ + +.ui.button { + cursor: pointer; + display: inline-block; + vertical-align: middle; + min-height: 1em; + outline: none; + border: none; + background-color: #FAFAFA; + color: #808080; + margin: 0em; + padding: 0.8em 1.5em; + font-size: 1rem; + text-transform: uppercase; + line-height: 1; + font-weight: bold; + font-style: normal; + text-align: center; + text-decoration: none; + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05))); + background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05))); + background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05)); + border-radius: 0.25em; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, -webkit-box-shadow 0.25s ease; + transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease; +} + +/******************************* + States +*******************************/ + +/*-------------- + Active +---------------*/ + +.ui.buttons .active.button, +.ui.active.button { + background-color: #EAEAEA; + background-image: none; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important; + color: rgba(0, 0, 0, 0.7); +} + +/*-------------- + Hover +---------------*/ + +.ui.button:hover { + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08))); + background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08))); + background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08)); + color: rgba(0, 0, 0, 0.7); +} + +.ui.button.active:hover { + background-image: none; +} + +.ui.button:hover .icon, +.ui.button.hover .icon { + opacity: 0.85; +} + +/*-------------- + Down +---------------*/ + +.ui.button:active, +.ui.active.button:active { + background-color: #F1F1F1; + color: rgba(0, 0, 0, 0.7); + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important; +} + +/*-------------- + Loading +---------------*/ + +.ui.loading.button { + position: relative; + cursor: default; + background-color: #FFFFFF !important; + color: transparent !important; + -webkit-transition: all 0s linear; + transition: all 0s linear; +} + +.ui.loading.button:after { + position: absolute; + top: 0em; + left: 0em; + width: 100%; + height: 100%; + content: ''; + background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%; +} + +.ui.labeled.icon.loading.button .icon { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*------------------- + Disabled +--------------------*/ + +.ui.disabled.button, +.ui.disabled.button:hover, +.ui.disabled.button.active { + background-color: #DDDDDD !important; + cursor: default; + color: rgba(0, 0, 0, 0.5) !important; + opacity: 0.3 !important; + background-image: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Animated +--------------------*/ + +.ui.animated.button { + position: relative; + overflow: hidden; +} + +.ui.animated.button .visible.content { + position: relative; +} + +.ui.animated.button .hidden.content { + position: absolute; + width: 100%; +} + +/* Horizontal */ + +.ui.animated.button .visible.content, +.ui.animated.button .hidden.content { + -webkit-transition: right 0.3s ease 0s; + transition: right 0.3s ease 0s; +} + +.ui.animated.button .visible.content { + left: auto; + right: 0%; +} + +.ui.animated.button .hidden.content { + top: 50%; + left: auto; + right: -100%; + margin-top: -0.55em; +} + +.ui.animated.button:hover .visible.content { + left: auto; + right: 200%; +} + +.ui.animated.button:hover .hidden.content { + left: auto; + right: 0%; +} + +/* Vertical */ + +.ui.vertical.animated.button .visible.content, +.ui.vertical.animated.button .hidden.content { + -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s; + transition: top 0.3s ease 0s, transform 0.3s ease 0s; +} + +.ui.vertical.animated.button .visible.content { + -webkit-transform: translateY(0%); + -ms-transform: translateY(0%); + transform: translateY(0%); + right: auto; +} + +.ui.vertical.animated.button .hidden.content { + top: -100%; + left: 0%; + right: auto; +} + +.ui.vertical.animated.button:hover .visible.content { + -webkit-transform: translateY(200%); + -ms-transform: translateY(200%); + transform: translateY(200%); + right: auto; +} + +.ui.vertical.animated.button:hover .hidden.content { + top: 50%; + right: auto; +} + +/* Fade */ + +.ui.fade.animated.button .visible.content, +.ui.fade.animated.button .hidden.content { + -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s; + transition: opacity 0.3s ease 0s, transform 0.3s ease 0s; +} + +.ui.fade.animated.button .visible.content { + left: auto; + right: auto; + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} + +.ui.fade.animated.button .hidden.content { + opacity: 0; + left: 0%; + right: auto; + -webkit-transform: scale(1.2); + -ms-transform: scale(1.2); + transform: scale(1.2); +} + +.ui.fade.animated.button:hover .visible.content { + left: auto; + right: auto; + opacity: 0; + -webkit-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); +} + +.ui.fade.animated.button:hover .hidden.content { + left: 0%; + right: auto; + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); +} + +/*------------------- + Primary +--------------------*/ + +.ui.primary.buttons .button, +.ui.primary.button { + background-color: #D95C5C; + color: #FFFFFF; +} + +.ui.primary.buttons .button:hover, +.ui.primary.button:hover, +.ui.primary.buttons .active.button, +.ui.primary.button.active { + background-color: #E75859; + color: #FFFFFF; +} + +.ui.primary.buttons .button:active, +.ui.primary.button:active { + background-color: #D24B4C; + color: #FFFFFF; +} + +/*------------------- + Secondary +--------------------*/ + +.ui.secondary.buttons .button, +.ui.secondary.button { + background-color: #00B5AD; + color: #FFFFFF; +} + +.ui.secondary.buttons .button:hover, +.ui.secondary.button:hover, +.ui.secondary.buttons .active.button, +.ui.secondary.button.active { + background-color: #009A93; + color: #FFFFFF; +} + +.ui.secondary.buttons .button:active, +.ui.secondary.button:active { + background-color: #00847E; + color: #FFFFFF; +} + +/*------------------- + Social +--------------------*/ + +/* Facebook */ + +.ui.facebook.button { + background-color: #3B579D; + color: #FFFFFF; +} + +.ui.facebook.button:hover { + background-color: #3A59A9; + color: #FFFFFF; +} + +.ui.facebook.button:active { + background-color: #334F95; + color: #FFFFFF; +} + +/* Twitter */ + +.ui.twitter.button { + background-color: #4092CC; + color: #FFFFFF; +} + +.ui.twitter.button:hover { + background-color: #399ADE; + color: #FFFFFF; +} + +.ui.twitter.button:active { + background-color: #3283BC; + color: #FFFFFF; +} + +/* Google Plus */ + +.ui.google.plus.button { + background-color: #D34836; + color: #FFFFFF; +} + +.ui.google.plus.button:hover { + background-color: #E3432E; + color: #FFFFFF; +} + +.ui.google.plus.button:active { + background-color: #CA3A27; + color: #FFFFFF; +} + +/* Linked In */ + +.ui.linkedin.button { + background-color: #1F88BE; + color: #FFFFFF; +} + +.ui.linkedin.button:hover { + background-color: #1394D6; + color: #FFFFFF; +} + +.ui.linkedin.button:active { + background-color: #1179AE; + color: #FFFFFF; +} + +/* YouTube */ + +.ui.youtube.button { + background-color: #CC181E; + color: #FFFFFF; +} + +.ui.youtube.button:hover { + background-color: #DF0209; + color: #FFFFFF; +} + +.ui.youtube.button:active { + background-color: #A50006; + color: #FFFFFF; +} + +/* Instagram */ + +.ui.instagram.button { + background-color: #49769C; + color: #FFFFFF; +} + +.ui.instagram.button:hover { + background-color: #4781B1; + color: #FFFFFF; +} + +.ui.instagram.button:active { + background-color: #38658A; + color: #FFFFFF; +} + +/* Pinterest */ + +.ui.pinterest.button { + background-color: #00ACED; + color: #FFFFFF; +} + +.ui.pinterest.button:hover { + background-color: #00B9FF; + color: #FFFFFF; +} + +.ui.pinterest.button:active { + background-color: #009EDA; + color: #FFFFFF; +} + +/*-------------- + Icon +---------------*/ + +.ui.button > .icon { + margin-right: 0.6em; + line-height: 1; + -webkit-transition: opacity 0.1s ease; + transition: opacity 0.1s ease; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Floated +--------------------*/ + +.ui.left.floated.buttons, +.ui.left.floated.button { + float: left; + margin-right: 0.25em; +} + +.ui.right.floated.buttons, +.ui.right.floated.button { + float: right; + margin-left: 0.25em; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.buttons .button, +.ui.button { + font-size: 1rem; +} + +.ui.mini.buttons .button, +.ui.mini.buttons .or, +.ui.mini.button { + font-size: 0.8rem; +} + +.ui.mini.buttons .button, +.ui.mini.button { + padding: 0.6em 0.8em; +} + +.ui.mini.icon.buttons .button, +.ui.mini.buttons .icon.button { + padding: 0.6em 0.6em; +} + +.ui.tiny.buttons .button, +.ui.tiny.buttons .or, +.ui.tiny.button { + font-size: 0.875em; +} + +.ui.tiny.buttons .button, +.ui.tiny.buttons .button, +.ui.tiny.button { + padding: 0.6em 0.8em; +} + +.ui.tiny.icon.buttons .button, +.ui.tiny.buttons .icon.button { + padding: 0.6em 0.6em; +} + +.ui.small.buttons .button, +.ui.small.buttons .or, +.ui.small.button { + font-size: 0.875rem; +} + +.ui.large.buttons .button, +.ui.large.buttons .or, +.ui.large.button { + font-size: 1.125rem; +} + +.ui.big.buttons .button, +.ui.big.buttons .or, +.ui.big.button { + font-size: 1.25rem; +} + +.ui.huge.buttons .button, +.ui.huge.buttons .or, +.ui.huge.button { + font-size: 1.375rem; +} + +.ui.massive.buttons .button, +.ui.massive.buttons .or, +.ui.massive.button { + font-size: 1.5rem; + font-weight: bold; +} + +/* Or resize */ + +.ui.tiny.buttons .or:before, +.ui.mini.buttons .or:before { + width: 1.45em; + height: 1.55em; + line-height: 1.4; + margin-left: -0.725em; + margin-top: -0.25em; +} + +.ui.tiny.buttons .or:after, +.ui.mini.buttons .or:after { + height: 1.45em; +} + +/* loading */ + +.ui.huge.loading.button:after { + background-image: url(../images/loader-small.gif); +} + +.ui.massive.buttons .loading.button:after, +.ui.gigantic.buttons .loading.button:after, +.ui.massive.loading.button:after, +.ui.gigantic.loading.button:after { + background-image: url(../images/loader-medium.gif); +} + +.ui.huge.loading.button:after, +.ui.huge.loading.button.active:after { + background-image: url(../images/loader-small.gif); +} + +.ui.massive.buttons .loading.button:after, +.ui.gigantic.buttons .loading.button:after, +.ui.massive.loading.button:after, +.ui.gigantic.loading.button:after, +.ui.massive.buttons .loading.button.active:after, +.ui.gigantic.buttons .loading.button.active:after, +.ui.massive.loading.button.active:after, +.ui.gigantic.loading.button.active:after { + background-image: url(../images/loader-medium.gif); +} + +/*-------------- + Icon Only +---------------*/ + +.ui.icon.buttons .button, +.ui.icon.button { + padding: 0.8em; +} + +.ui.icon.buttons .button > .icon, +.ui.icon.button > .icon { + opacity: 0.9; + margin: 0em; + vertical-align: top; +} + +/*------------------- + Basic +--------------------*/ + +.ui.basic.buttons .button, +.ui.basic.button { + background-color: transparent !important; + background-image: none; + color: #808080 !important; + font-weight: normal; + text-transform: none; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; +} + +.ui.basic.buttons { + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + border-radius: 0.25em; +} + +.ui.basic.buttons .button:hover, +.ui.basic.button:hover { + background-image: none; + color: #7F7F7F !important; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset; +} + +.ui.basic.buttons .button:active, +.ui.basic.button:active { + background-color: rgba(0, 0, 0, 0.02) !important; + color: #7F7F7F !important; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; +} + +.ui.basic.buttons .button.active, +.ui.basic.button.active { + background-color: rgba(0, 0, 0, 0.05); + color: #7F7F7F; + -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset; + box-shadow: 0px 0px 0px 1px #BDBDBD inset; +} + +.ui.basic.buttons .button.active:hover, +.ui.basic.button.active:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +/* Inverted */ + +.ui.basic.inverted.buttons .button, +.ui.basic.inverted.button { + color: #FAFAFA !important; + -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset; + box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset; +} + +.ui.basic.inverted.buttons .button:hover, +.ui.basic.inverted.button:hover { + background-image: none; + color: #FFFFFF !important; + -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset; + box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset; +} + +.ui.basic.inverted.buttons .button:active, +.ui.basic.inverted.button:active { + background-color: rgba(255, 255, 255, 0.05) !important; + color: #FFFFFF !important; + -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important; + box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important; +} + +.ui.basic.inverted.buttons .button.active, +.ui.basic.inverted.button.active { + background-color: rgba(255, 255, 255, 0.5); + color: #FFFFFF; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.basic.inverted.buttons .button.active:hover, +.ui.basic.inverted.button.active:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +/* Basic Group */ + +.ui.basic.buttons .button { + border-left: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.basic.buttons .button:hover, +.ui.basic.buttons .button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.basic.buttons .button.active, +.ui.basic.buttons .button.active:hover { + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset; +} + +/*-------------- + Labeled Icon +---------------*/ + +.ui.labeled.icon.buttons .button, +.ui.labeled.icon.button { + position: relative; + padding-left: 4em !important; + padding-right: 1.4em !important; +} + +.ui.labeled.icon.buttons > .button > .icon, +.ui.labeled.icon.button > .icon { + position: absolute; + top: 0em; + left: 0em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 2.75em; + height: 100%; + padding-top: 0.8em; + background-color: rgba(0, 0, 0, 0.05); + text-align: center; + border-radius: 0.25em 0px 0px 0.25em; + line-height: 1; + -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset; + box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset; +} + +.ui.labeled.icon.buttons .button > .icon { + border-radius: 0em; +} + +.ui.labeled.icon.buttons .button:first-child > .icon { + border-top-left-radius: 0.25em; + border-bottom-left-radius: 0.25em; +} + +.ui.labeled.icon.buttons .button:last-child > .icon { + border-top-right-radius: 0.25em; + border-bottom-right-radius: 0.25em; +} + +.ui.vertical.labeled.icon.buttons .button:first-child > .icon { + border-radius: 0em; + border-top-left-radius: 0.25em; +} + +.ui.vertical.labeled.icon.buttons .button:last-child > .icon { + border-radius: 0em; + border-bottom-left-radius: 0.25em; +} + +.ui.right.labeled.icon.button { + padding-left: 1.4em !important; + padding-right: 4em !important; +} + +.ui.left.fluid.labeled.icon.button, +.ui.right.fluid.labeled.icon.button { + padding-left: 1.4em !important; + padding-right: 1.4em !important; +} + +.ui.right.labeled.icon.button .icon { + left: auto; + right: 0em; + border-radius: 0em 0.25em 0.25em 0em; + -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset; + box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset; +} + +/*-------------- + Toggle +---------------*/ + +/* Toggle (Modifies active state to give affordances) */ + +.ui.toggle.buttons .active.button, +.ui.buttons .button.toggle.active, +.ui.button.toggle.active { + background-color: #5BBD72 !important; + color: #FFFFFF !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.ui.button.toggle.active:hover { + background-color: #58CB73 !important; + color: #FFFFFF !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +/*-------------- + Circular +---------------*/ + +.ui.circular.button { + border-radius: 10em; +} + +/*-------------- + Attached +---------------*/ + +.ui.attached.button { + display: block; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important; +} + +.ui.attached.top.button { + border-radius: 0.25em 0.25em 0em 0em; +} + +.ui.attached.bottom.button { + border-radius: 0em 0em 0.25em 0.25em; +} + +.ui.attached.left.button { + display: inline-block; + border-left: none; + padding-right: 0.75em; + text-align: right; + border-radius: 0.25em 0em 0em 0.25em; +} + +.ui.attached.right.button { + display: inline-block; + padding-left: 0.75em; + text-align: left; + border-radius: 0em 0.25em 0.25em 0em; +} + +/*------------------- + Or Buttons +--------------------*/ + +.ui.buttons .or { + position: relative; + float: left; + width: 0.3em; + height: 1.1em; + z-index: 3; +} + +.ui.buttons .or:before { + position: absolute; + top: 50%; + left: 50%; + content: 'or'; + background-color: #FFFFFF; + margin-top: -0.1em; + margin-left: -0.9em; + width: 1.8em; + height: 1.8em; + line-height: 1.55; + color: #AAAAAA; + font-style: normal; + font-weight: normal; + text-align: center; + border-radius: 500px; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.buttons .or:after { + position: absolute; + top: 0em; + left: 0em; + content: ' '; + width: 0.3em; + height: 1.7em; + background-color: transparent; + border-top: 0.5em solid #FFFFFF; + border-bottom: 0.5em solid #FFFFFF; +} + +/* Fluid Or */ + +.ui.fluid.buttons .or { + width: 0em !important; +} + +.ui.fluid.buttons .or:after { + display: none; +} + +/*------------------- + Attached +--------------------*/ + +/* Plural Attached */ + +.attached.ui.buttons { + margin: 0px; + border-radius: 4px 4px 0px 0px; +} + +.attached.ui.buttons .button:first-child { + border-radius: 4px 0px 0px 0px; +} + +.attached.ui.buttons .button:last-child { + border-radius: 0px 4px 0px 0px; +} + +/* Bottom Side */ + +.bottom.attached.ui.buttons { + margin-top: -1px; + border-radius: 0px 0px 4px 4px; +} + +.bottom.attached.ui.buttons .button:first-child { + border-radius: 0px 0px 0px 4px; +} + +.bottom.attached.ui.buttons .button:last-child { + border-radius: 0px 0px 4px 0px; +} + +/* Left Side */ + +.left.attached.ui.buttons { + margin-left: -1px; + border-radius: 0px 4px 4px 0px; +} + +.left.attached.ui.buttons .button:first-child { + margin-left: -1px; + border-radius: 0px 4px 0px 0px; +} + +.left.attached.ui.buttons .button:last-child { + margin-left: -1px; + border-radius: 0px 0px 4px 0px; +} + +/* Right Side */ + +.right.attached.ui.buttons, +.right.attached.ui.buttons .button { + margin-right: -1px; + border-radius: 4px 0px 0px 4px; +} + +.right.attached.ui.buttons .button:first-child { + margin-left: -1px; + border-radius: 4px 0px 0px 0px; +} + +.right.attached.ui.buttons .button:last-child { + margin-left: -1px; + border-radius: 0px 0px 0px 4px; +} + +/* Fluid */ + +.ui.fluid.buttons, +.ui.button.fluid, +.ui.fluid.buttons > .button { + display: block; + width: 100%; +} + +.ui.\32.buttons > .button, +.ui.two.buttons > .button { + width: 50%; +} + +.ui.\33.buttons > .button, +.ui.three.buttons > .button { + width: 33.333%; +} + +.ui.\34.buttons > .button, +.ui.four.buttons > .button { + width: 25%; +} + +.ui.\35.buttons > .button, +.ui.five.buttons > .button { + width: 20%; +} + +.ui.\36.buttons > .button, +.ui.six.buttons > .button { + width: 16.666%; +} + +.ui.\37.buttons > .button, +.ui.seven.buttons > .button { + width: 14.285%; +} + +.ui.\38.buttons > .button, +.ui.eight.buttons > .button { + width: 12.500%; +} + +.ui.\39.buttons > .button, +.ui.nine.buttons > .button { + width: 11.11%; +} + +.ui.\31\30.buttons > .button, +.ui.ten.buttons > .button { + width: 10%; +} + +.ui.\31\31.buttons > .button, +.ui.eleven.buttons > .button { + width: 9.09%; +} + +.ui.\31\32.buttons > .button, +.ui.twelve.buttons > .button { + width: 8.3333%; +} + +/* Fluid Vertical Buttons */ + +.ui.fluid.vertical.buttons, +.ui.fluid.vertical.buttons > .button { + display: block; + width: auto; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.\32.vertical.buttons > .button, +.ui.two.vertical.buttons > .button { + height: 50%; +} + +.ui.\33.vertical.buttons > .button, +.ui.three.vertical.buttons > .button { + height: 33.333%; +} + +.ui.\34.vertical.buttons > .button, +.ui.four.vertical.buttons > .button { + height: 25%; +} + +.ui.\35.vertical.buttons > .button, +.ui.five.vertical.buttons > .button { + height: 20%; +} + +.ui.\36.vertical.buttons > .button, +.ui.six.vertical.buttons > .button { + height: 16.666%; +} + +.ui.\37.vertical.buttons > .button, +.ui.seven.vertical.buttons > .button { + height: 14.285%; +} + +.ui.\38.vertical.buttons > .button, +.ui.eight.vertical.buttons > .button { + height: 12.500%; +} + +.ui.\39.vertical.buttons > .button, +.ui.nine.vertical.buttons > .button { + height: 11.11%; +} + +.ui.\31\30.vertical.buttons > .button, +.ui.ten.vertical.buttons > .button { + height: 10%; +} + +.ui.\31\31.vertical.buttons > .button, +.ui.eleven.vertical.buttons > .button { + height: 9.09%; +} + +.ui.\31\32.vertical.buttons > .button, +.ui.twelve.vertical.buttons > .button { + height: 8.3333%; +} + +/*------------------- + Colors +--------------------*/ + +/*--- Black ---*/ + +.ui.black.buttons .button, +.ui.black.button { + background-color: #5C6166; + color: #FFFFFF; +} + +.ui.black.buttons .button:hover, +.ui.black.button:hover { + background-color: #4C4C4C; + color: #FFFFFF; +} + +.ui.black.buttons .button:active, +.ui.black.button:active { + background-color: #333333; + color: #FFFFFF; +} + +/*--- Green ---*/ + +.ui.green.buttons .button, +.ui.green.button { + background-color: #5BBD72; + color: #FFFFFF; +} + +.ui.green.buttons .button:hover, +.ui.green.button:hover, +.ui.green.buttons .active.button, +.ui.green.button.active { + background-color: #58cb73; + color: #FFFFFF; +} + +.ui.green.buttons .button:active, +.ui.green.button:active { + background-color: #4CB164; + color: #FFFFFF; +} + +/*--- Red ---*/ + +.ui.red.buttons .button, +.ui.red.button { + background-color: #D95C5C; + color: #FFFFFF; +} + +.ui.red.buttons .button:hover, +.ui.red.button:hover, +.ui.red.buttons .active.button, +.ui.red.button.active { + background-color: #E75859; + color: #FFFFFF; +} + +.ui.red.buttons .button:active, +.ui.red.button:active { + background-color: #D24B4C; + color: #FFFFFF; +} + +/*--- Orange ---*/ + +.ui.orange.buttons .button, +.ui.orange.button { + background-color: #E96633; + color: #FFFFFF; +} + +.ui.orange.buttons .button:hover, +.ui.orange.button:hover, +.ui.orange.buttons .active.button, +.ui.orange.button.active { + background-color: #FF7038; + color: #FFFFFF; +} + +.ui.orange.buttons .button:active, +.ui.orange.button:active { + background-color: #DA683B; + color: #FFFFFF; +} + +/*--- Blue ---*/ + +.ui.blue.buttons .button, +.ui.blue.button { + background-color: #6ECFF5; + color: #FFFFFF; +} + +.ui.blue.buttons .button:hover, +.ui.blue.button:hover, +.ui.blue.buttons .active.button, +.ui.blue.button.active { + background-color: #1AB8F3; + color: #FFFFFF; +} + +.ui.blue.buttons .button:active, +.ui.blue.button:active { + background-color: #0AA5DF; + color: #FFFFFF; +} + +/*--- Purple ---*/ + +.ui.purple.buttons .button, +.ui.purple.button { + background-color: #564F8A; + color: #FFFFFF; +} + +.ui.purple.buttons .button:hover, +.ui.purple.button:hover, +.ui.purple.buttons .active.button, +.ui.purple.button.active { + background-color: #3E3773; + color: #FFFFFF; +} + +.ui.purple.buttons .button:active, +.ui.purple.button:active { + background-color: #2E2860; + color: #FFFFFF; +} + +/*--- Teal ---*/ + +.ui.teal.buttons .button, +.ui.teal.button { + background-color: #00B5AD; + color: #FFFFFF; +} + +.ui.teal.buttons .button:hover, +.ui.teal.button:hover, +.ui.teal.buttons .active.button, +.ui.teal.button.active { + background-color: #009A93; + color: #FFFFFF; +} + +.ui.teal.buttons .button:active, +.ui.teal.button:active { + background-color: #00847E; + color: #FFFFFF; +} + +/*--------------- + Positive +----------------*/ + +.ui.positive.buttons .button, +.ui.positive.button { + background-color: #5BBD72 !important; + color: #FFFFFF; +} + +.ui.positive.buttons .button:hover, +.ui.positive.button:hover, +.ui.positive.buttons .active.button, +.ui.positive.button.active { + background-color: #58CB73 !important; + color: #FFFFFF; +} + +.ui.positive.buttons .button:active, +.ui.positive.button:active { + background-color: #4CB164 !important; + color: #FFFFFF; +} + +/*--------------- + Negative +----------------*/ + +.ui.negative.buttons .button, +.ui.negative.button { + background-color: #D95C5C !important; + color: #FFFFFF; +} + +.ui.negative.buttons .button:hover, +.ui.negative.button:hover, +.ui.negative.buttons .active.button, +.ui.negative.button.active { + background-color: #E75859 !important; + color: #FFFFFF; +} + +.ui.negative.buttons .button:active, +.ui.negative.button:active { + background-color: #D24B4C !important; + color: #FFFFFF; +} + +/******************************* + Groups +*******************************/ + +.ui.buttons { + display: inline-block; + vertical-align: middle; +} + +.ui.buttons:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.ui.buttons .button:first-child { + border-left: none; +} + +.ui.buttons .button { + float: left; + border-radius: 0em; +} + +.ui.buttons .button:first-child { + margin-left: 0em; + border-top-left-radius: 0.25em; + border-bottom-left-radius: 0.25em; +} + +.ui.buttons .button:last-child { + border-top-right-radius: 0.25em; + border-bottom-right-radius: 0.25em; +} + +/* Vertical Style */ + +.ui.vertical.buttons { + display: inline-block; +} + +.ui.vertical.buttons .button { + display: block; + float: none; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; +} + +.ui.vertical.buttons .button:first-child, +.ui.vertical.buttons .mini.button:first-child, +.ui.vertical.buttons .tiny.button:first-child, +.ui.vertical.buttons .small.button:first-child, +.ui.vertical.buttons .massive.button:first-child, +.ui.vertical.buttons .huge.button:first-child { + margin-top: 0px; + border-radius: 0.25em 0.25em 0px 0px; +} + +.ui.vertical.buttons .button:last-child, +.ui.vertical.buttons .mini.button:last-child, +.ui.vertical.buttons .tiny.button:last-child, +.ui.vertical.buttons .small.button:last-child, +.ui.vertical.buttons .massive.button:last-child, +.ui.vertical.buttons .huge.button:last-child, +.ui.vertical.buttons .gigantic.button:last-child { + border-radius: 0px 0px 0.25em 0.25em; +} +/* + * # Semantic - Divider + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Divider +*******************************/ + +.ui.divider { + margin: 1rem 0rem; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(255, 255, 255, 0.8); + line-height: 1; + height: 0em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.ui.vertical.divider, +.ui.horizontal.divider { + position: absolute; + border: none; + height: 0em; + margin: 0em; + background-color: transparent; + font-size: 0.875rem; + font-weight: bold; + text-align: center; + text-transform: uppercase; + color: rgba(0, 0, 0, 0.8); +} + +/*-------------- + Vertical +---------------*/ + +.ui.vertical.divider { + position: absolute; + z-index: 2; + top: 50%; + left: 50%; + margin: 0% 0% 0% -3%; + width: 6%; + height: 50%; + line-height: 0; + padding: 0em; +} + +.ui.vertical.divider:before, +.ui.vertical.divider:after { + position: absolute; + left: 50%; + content: " "; + z-index: 3; + border-left: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(255, 255, 255, 0.8); + width: 0%; + height: 80%; +} + +.ui.vertical.divider:before { + top: -100%; +} + +.ui.vertical.divider:after { + top: auto; + bottom: 0px; +} + +/*-------------- + Horizontal +---------------*/ + +.ui.horizontal.divider { + position: relative; + top: 0%; + left: 0%; + margin: 1rem 1.5rem; + height: auto; + padding: 0em; + line-height: 1; +} + +.ui.horizontal.divider:before, +.ui.horizontal.divider:after { + position: absolute; + content: " "; + z-index: 3; + width: 50%; + top: 50%; + height: 0%; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(255, 255, 255, 0.8); +} + +.ui.horizontal.divider:before { + left: 0%; + margin-left: -1.5rem; +} + +.ui.horizontal.divider:after { + left: auto; + right: 0%; + margin-right: -1.5rem; +} + +/*-------------- + Icon +---------------*/ + +.ui.divider > .icon { + margin: 0em; + font-size: 1rem; + vertical-align: middle; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Inverted +---------------*/ + +.ui.divider.inverted { + color: #ffffff; +} + +.ui.vertical.inverted.divider, +.ui.horizontal.inverted.divider { + color: rgba(255, 255, 255, 0.9); +} + +.ui.divider.inverted, +.ui.divider.inverted:after, +.ui.divider.inverted:before { + border-top-color: rgba(0, 0, 0, 0.15); + border-bottom-color: rgba(255, 255, 255, 0.15); + border-left-color: rgba(0, 0, 0, 0.15); + border-right-color: rgba(255, 255, 255, 0.15); +} + +/*-------------- + Fitted +---------------*/ + +.ui.fitted.divider { + margin: 0em; +} + +/*-------------- + Clearing +---------------*/ + +.ui.clearing.divider { + clear: both; +} + +/*-------------- + Section +---------------*/ + +.ui.section.divider { + margin-top: 2rem; + margin-bottom: 2rem; +} +/* + * # Semantic - Header + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Header +*******************************/ + +/* Standard */ + +.ui.header { + border: none; + margin: 1em 0em 1rem; + padding: 0em; + font-size: 1.33em; + font-weight: bold; + line-height: 1.33; +} + +.ui.header .sub.header { + font-size: 14px; + font-size: 0.875rem; + font-weight: normal; + margin: 0em; + padding: 0em; + line-height: 1.2; + color: rgba(0, 0, 0, 0.5); +} +.ui.header .sub.header a { + color:#6ECFF5!important; +} +.ui.header .sub.header a:hover, .ui.header .sub.header a:focus, .ui.header .sub.header a:active{ + text-decoration:underline; +} +.ui.header .icon { + display: table-cell; + vertical-align: middle; + padding-right: 0.5em; +} + +.ui.header .icon:only-child { + display: inline-block; + vertical-align: baseline; +} + +.ui.header .content { + display: inline-block; + vertical-align: top; +} + +.ui.header .icon + .content { + padding-left: 0.5em; + display: table-cell; +} + +/* Positioning */ + +.ui.header:first-child { + margin-top: 0em; +} + +.ui.header:last-child { + margin-bottom: 0em; +} + +.ui.header + p { + margin-top: 0em; +} + +/*-------------- + Page Heading +---------------*/ + +h1.ui.header { + min-height: 1rem; + line-height: 1.33; + font-size: 2rem; +} + +h2.ui.header { + line-height: 1.33; + font-size: 1.75rem; +} + +h3.ui.header { + line-height: 1.33; + font-size: 1.33rem; +} + +h4.ui.header { + line-height: 1.33; + font-size: 1.1rem; +} + +h5.ui.header { + line-height: 1.2; + font-size: 1rem; +} + +/*-------------- + Content Heading +---------------*/ + +.ui.huge.header { + min-height: 1em; + font-size: 2em; +} + +.ui.large.header { + font-size: 1.75em; +} + +.ui.medium.header { + font-size: 1.33em; +} + +.ui.small.header { + font-size: 1.1em; +} + +.ui.tiny.header { + font-size: 1em; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Icon +--------------------*/ + +.ui.icon.header { + display: inline-block; + text-align: center; +} + +.ui.icon.header .icon { + float: none; + display: block; + font-size: 3em; + margin: 0em auto 0.2em; + padding: 0em; +} + +.ui.icon.header .content { + display: block; +} + +.ui.icon.header .circular.icon, +.ui.icon.header .square.icon { + font-size: 2em; +} + +.ui.block.icon.header .icon { + margin-bottom: 0em; +} + +.ui.icon.header.aligned { + margin-left: auto; + margin-right: auto; + display: block; +} + +/******************************* + States +*******************************/ + +.ui.disabled.header { + opacity: 0.5; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Colors +--------------------*/ + +.ui.blue.header { + color: #6ECFF5 !important; +} + +.ui.black.header { + color: #5C6166 !important; +} + +.ui.green.header { + color: #A1CF64 !important; +} + +.ui.red.header { + color: #D95C5C !important; +} + +.ui.purple.header { + color: #564F8A !important; +} + +.ui.teal.header { + color: #00B5AD !important; +} + +.ui.blue.dividing.header { + border-bottom: 3px solid #6ECFF5; +} + +.ui.black.dividing.header { + border-bottom: 3px solid #5C6166; +} + +.ui.green.dividing.header { + border-bottom: 3px solid #A1CF64; +} + +.ui.red.dividing.header { + border-bottom: 3px solid #D95C5C; +} + +.ui.purple.dividing.header { + border-bottom: 3px solid #564F8A; +} + +.ui.teal.dividing.header { + border-bottom: 3px solid #00B5AD; +} + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.header { + color: #FFFFFF; +} + +.ui.inverted.header .sub.header { + color: rgba(255, 255, 255, 0.85); +} + +/*------------------- + Inverted Colors +--------------------*/ + +.ui.inverted.black.header { + background-color: #5C6166 !important; + color: #FFFFFF !important; +} + +.ui.inverted.blue.header { + background-color: #6ECFF5 !important; + color: #FFFFFF !important; +} + +.ui.inverted.green.header { + background-color: #A1CF64 !important; + color: #FFFFFF !important; +} + +.ui.inverted.red.header { + background-color: #D95C5C !important; + color: #FFFFFF !important; +} + +.ui.inverted.purple.header { + background-color: #564F8A !important; + color: #FFFFFF !important; +} + +.ui.inverted.teal.header { + background-color: #00B5AD !important; + color: #FFFFFF !important; +} + +.ui.inverted.block.header { + border-bottom: none; +} + +/*------------------- + Aligned +--------------------*/ + +.ui.left.aligned.header { + text-align: left; +} + +.ui.right.aligned.header { + text-align: right; +} + +.ui.center.aligned.header { + text-align: center; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.header, +.ui.left.floated.header { + float: left; + margin-top: 0em; + margin-right: 0.5em; +} + +.ui.right.floated.header { + float: right; + margin-top: 0em; + margin-left: 0.5em; +} + +/*------------------- + Fittted +--------------------*/ + +.ui.fitted.header { + padding: 0em; +} + +/*------------------- + Dividing +--------------------*/ + +.ui.dividing.header { + padding-bottom: 0.2rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.ui.dividing.header .sub.header { + padding-bottom: 0.5em; +} + +.ui.dividing.header .icon { + margin-bottom: 0.2em; +} + +/*------------------- + Block +--------------------*/ + +.ui.block.header { + background-color: rgba(0, 0, 0, 0.05); + padding: 0.5em 1em; +} + +/*------------------- + Attached +--------------------*/ + +.ui.attached.header { + background-color: #E0E0E0; + padding: 0.5em 1rem; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); +} + +.ui.top.attached.header { + margin-bottom: 0em; + border-radius: 0.3125em 0.3125em 0em 0em; +} + +.ui.bottom.attached.header { + margin-top: 0em; + border-radius: 0em 0em 0.3125em 0.3125em; +} +/* + * # Semantic - Icon + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/*! + * Font Awesome 3.2.1 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fon.io. Stay up to date on Twitter at + * http://twitter.com/fon. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + +/******************************* + Icon +*******************************/ + +@font-face { + font-family: 'Icons'; + src: url(../fonts/icons.eot); + src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'), url(../fonts/icons.woff) format('woff'), url(../fonts/icons.ttf) format('truetype'), url(../fonts/icons.svg#icons) format('svg'); + font-style: normal; + font-weight: normal; + font-variant: normal; + text-decoration: inherit; + text-transform: none; +} + +i.icon { + display: inline-block; + opacity: 0.75; + margin: 0em 0.25em 0em 0em; + width: 18px; + height: 1em; + font-family: 'Icons'; + font-style: normal; + line-height: 1; + font-weight: normal; + text-decoration: inherit; + text-align: center; + speak: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +i.icon.left:before { + content: "\f060"; +} + +i.icon.right:before { + content: "\f061"; +} + +i.icon.add.sign.box:before { + content: "\f0fe"; +} + +i.icon.add.sign:before { + content: "\f055"; +} + +i.icon.add:before { + content: "\f067"; +} + +i.icon.adjust:before { + content: "\f042"; +} + +i.icon.adn:before { + content: "\f170"; +} + +i.icon.align.center:before { + content: "\f037"; +} + +i.icon.align.justify:before { + content: "\f039"; +} + +i.icon.align.left:before { + content: "\f036"; +} + +i.icon.align.right:before { + content: "\f038"; +} + +i.icon.ambulance:before { + content: "\f0f9"; +} + +i.icon.anchor:before { + content: "\f13d"; +} + +i.icon.android:before { + content: "\f17b"; +} + +i.icon.angle.down:before { + content: "\f107"; +} + +i.icon.angle.left:before { + content: "\f104"; +} + +i.icon.angle.right:before { + content: "\f105"; +} + +i.icon.angle.up:before { + content: "\f106"; +} + +i.icon.apple:before { + content: "\f179"; +} + +i.icon.archive:before { + content: "\f187"; +} + +i.icon.arrow.down:before { + content: "\f078"; +} + +i.icon.arrow.left:before { + content: "\f053"; +} + +i.icon.arrow.right:before { + content: "\f054"; +} + +i.icon.arrow.sign.down:before { + content: "\f13a"; +} + +i.icon.arrow.sign.left:before { + content: "\f137"; +} + +i.icon.arrow.sign.right:before { + content: "\f138"; +} + +i.icon.arrow.sign.up:before { + content: "\f139"; +} + +i.icon.arrow.up:before { + content: "\f077"; +} + +i.icon.asterisk:before { + content: "\f069"; +} + +i.icon.attachment:before { + content: "\f0c6"; +} + +i.icon.attention:before { + content: "\f06a"; +} + +i.icon.backward:before { + content: "\f04a"; +} + +i.icon.ban.circle:before { + content: "\f05e"; +} + +i.icon.bar.chart:before { + content: "\f080"; +} + +i.icon.barcode:before { + content: "\f02a"; +} + +i.icon.beer:before { + content: "\f0fc"; +} + +i.icon.bell.outline:before { + content: "\f0a2"; +} + +i.icon.bell:before { + content: "\f0f3"; +} + +i.icon.bitbucket.sign:before { + content: "\f172"; +} + +i.icon.bitbucket:before { + content: "\f171"; +} + +i.icon.bitcoin:before { + content: "\f15a"; +} + +i.icon.bold:before { + content: "\f032"; +} + +i.icon.bolt:before { + content: "\f0e7"; +} + +i.icon.book:before { + content: "\f02d"; +} + +i.icon.bookmark.empty:before { + content: "\f097"; +} + +i.icon.bookmark:before { + content: "\f02e"; +} + +i.icon.box.arrow.down:before { + content: "\f150"; +} + +i.icon.box.arrow.right:before { + content: "\f152"; +} + +i.icon.box.arrow.up:before { + content: "\f151"; +} + +i.icon.briefcase:before { + content: "\f0b1"; +} + +i.icon.browser:before { + content: "\f022"; +} + +i.icon.bug:before { + content: "\f188"; +} + +i.icon.building:before { + content: "\f0f7"; +} + +i.icon.bullhorn:before { + content: "\f0a1"; +} + +i.icon.bullseye:before { + content: "\f140"; +} + +i.icon.calendar.empty:before { + content: "\f133"; +} + +i.icon.calendar:before { + content: "\f073"; +} + +i.icon.camera.retro:before { + content: "\f083"; +} + +i.icon.camera:before { + content: "\f030"; +} + +i.icon.triangle.down:before { + content: "\f0d7"; +} + +i.icon.triangle.left:before { + content: "\f0d9"; +} + +i.icon.triangle.right:before { + content: "\f0da"; +} + +i.icon.triangle.up:before { + content: "\f0d8"; +} + +i.icon.cart:before { + content: "\f07a"; +} + +i.icon.certificate:before { + content: "\f0a3"; +} + +i.icon.chat.outline:before { + content: "\f0e6"; +} + +i.icon.chat:before { + content: "\f086"; +} + +i.icon.checkbox.empty:before { + content: "\f096"; +} + +i.icon.checkbox.minus:before { + content: "\f147"; +} + +i.icon.checked.checkbox:before { + content: "\f046"; +} + +i.icon.checkmark.sign:before { + content: "\f14a"; +} + +i.icon.checkmark:before { + content: "\f00c"; +} + +i.icon.circle.blank:before { + content: "\f10c"; +} + +i.icon.circle.down:before { + content: "\f0ab"; +} + +i.icon.circle.left:before { + content: "\f0a8"; +} + +i.icon.circle.right:before { + content: "\f0a9"; +} + +i.icon.circle.up:before { + content: "\f0aa"; +} + +i.icon.circle:before { + content: "\f111"; +} + +i.icon.cloud.download:before { + content: "\f0ed"; +} + +i.icon.cloud.upload:before { + content: "\f0ee"; +} + +i.icon.cloud:before { + content: "\f0c2"; +} + +i.icon.code.fork:before { + content: "\f126"; +} + +i.icon.code:before { + content: "\f121"; +} + +i.icon.coffee:before { + content: "\f0f4"; +} + +i.icon.collapse:before { + content: "\f117"; +} + +i.icon.comment.outline:before { + content: "\f0e5"; +} + +i.icon.comment:before { + content: "\f075"; +} + +i.icon.copy:before { + content: "\f0c5"; +} + +i.icon.crop:before { + content: "\f125"; +} + +i.icon.css3:before { + content: "\f13c"; +} + +i.icon.cut:before { + content: "\f0c4"; +} + +i.icon.dashboard:before { + content: "\f0e4"; +} + +i.icon.desktop:before { + content: "\f108"; +} + +i.icon.doctor:before { + content: "\f0f0"; +} + +i.icon.dollar:before { + content: "\f155"; +} + +i.icon.double.angle.down:before { + content: "\f103"; +} + +i.icon.double.angle.left:before { + content: "\f100"; +} + +i.icon.double.angle.right:before { + content: "\f101"; +} + +i.icon.double.angle.up:before { + content: "\f102"; +} + +i.icon.down:before { + content: "\f063"; +} + +i.icon.download.disk:before { + content: "\f019"; +} + +i.icon.download:before { + content: "\f01a"; +} + +i.icon.dribbble:before { + content: "\f17d"; +} + +i.icon.dropbox:before { + content: "\f16b"; +} + +i.icon.edit.sign:before { + content: "\f14b"; +} + +i.icon.edit:before { + content: "\f044"; +} + +i.icon.eject:before { + content: "\f052"; +} + +i.icon.ellipsis.horizontal:before { + content: "\f141"; +} + +i.icon.ellipsis.vertical:before { + content: "\f142"; +} + +i.icon.eraser:before { + content: "\f12d"; +} + +i.icon.euro:before { + content: "\f153"; +} + +i.icon.exchange:before { + content: "\f0ec"; +} + +i.icon.exclamation:before { + content: "\f12a"; +} + +i.icon.expand:before { + content: "\f116"; +} + +i.icon.external.url.sign:before { + content: "\f14c"; +} + +i.icon.external.url:before { + content: "\f08e"; +} + +i.icon.facebook.sign:before { + content: "\f082"; +} + +i.icon.facebook:before { + content: "\f09a"; +} + +i.icon.facetime.video:before { + content: "\f03d"; +} + +i.icon.fast.backward:before { + content: "\f049"; +} + +i.icon.fast.forward:before { + content: "\f050"; +} + +i.icon.female:before { + content: "\f182"; +} + +i.icon.fighter.jet:before { + content: "\f0fb"; +} + +i.icon.file.outline:before { + content: "\f016"; +} + +i.icon.file.text.outline:before { + content: "\f0f6"; +} + +i.icon.file.text:before { + content: "\f15c"; +} + +i.icon.file:before { + content: "\f15b"; +} + +i.icon.filter:before { + content: "\f0b0"; +} + +i.icon.fire.extinguisher:before { + content: "\f134"; +} + +i.icon.fire:before { + content: "\f06d"; +} + +i.icon.flag.checkered:before { + content: "\f11e"; +} + +i.icon.flag.empty:before { + content: "\f11d"; +} + +i.icon.flag:before { + content: "\f024"; +} + +i.icon.flickr:before { + content: "\f16e"; +} + +i.icon.folder.open.outline:before { + content: "\f115"; +} + +i.icon.folder.open:before { + content: "\f07c"; +} + +i.icon.folder.outline:before { + content: "\f114"; +} + +i.icon.folder:before { + content: "\f07b"; +} + +i.icon.font:before { + content: "\f031"; +} + +i.icon.food:before { + content: "\f0f5"; +} + +i.icon.forward.mail:before { + content: "\f064"; +} + +i.icon.forward:before { + content: "\f04e"; +} + +i.icon.foursquare:before { + content: "\f180"; +} + +i.icon.frown:before { + content: "\f119"; +} + +i.icon.fullscreen:before { + content: "\f0b2"; +} + +i.icon.gamepad:before { + content: "\f11b"; +} + +i.icon.gift:before { + content: "\f06b"; +} + +i.icon.github.alternate:before { + content: "\f09b"; +} + +i.icon.github.sign:before { + content: "\f092"; +} + +i.icon.github:before { + content: "\f113"; +} + +i.icon.gittip:before { + content: "\f184"; +} + +i.icon.glass:before { + content: "\f000"; +} + +i.icon.globe:before { + content: "\f0ac"; +} + +i.icon.google.plus.sign:before { + content: "\f0d4"; +} + +i.icon.google.plus:before { + content: "\f0d5"; +} + +i.icon.h.sign:before { + content: "\f0fd"; +} + +i.icon.hand.down:before { + content: "\f0a7"; +} + +i.icon.hand.left:before { + content: "\f0a5"; +} + +i.icon.hand.right:before { + content: "\f0a4"; +} + +i.icon.hand.up:before { + content: "\f0a6"; +} + +i.icon.hdd:before { + content: "\f0a0"; +} + +i.icon.headphones:before { + content: "\f025"; +} + +i.icon.heart.empty:before { + content: "\f08a"; +} + +i.icon.heart:before { + content: "\f004"; +} + +i.icon.help:before { + content: "\f059"; +} + +i.icon.hide:before { + content: "\f070"; +} + +i.icon.home:before { + content: "\f015"; +} + +i.icon.hospital:before { + content: "\f0f8"; +} + +i.icon.html5:before { + content: "\f13b"; +} + +i.icon.inbox:before { + content: "\f01c"; +} + +i.icon.indent.left:before { + content: "\f03b"; +} + +i.icon.indent.right:before { + content: "\f03c"; +} + +i.icon.info.letter:before { + content: "\f129"; +} + +i.icon.info:before { + content: "\f05a"; +} + +i.icon.instagram:before { + content: "\f16d"; +} + +i.icon.italic:before { + content: "\f033"; +} + +i.icon.key:before { + content: "\f084"; +} + +i.icon.keyboard:before { + content: "\f11c"; +} + +i.icon.lab:before { + content: "\f0c3"; +} + +i.icon.laptop:before { + content: "\f109"; +} + +i.icon.layout.block:before { + content: "\f009"; +} + +i.icon.layout.column:before { + content: "\f0db"; +} + +i.icon.layout.grid:before { + content: "\f00a"; +} + +i.icon.layout.list:before { + content: "\f00b"; +} + +i.icon.leaf:before { + content: "\f06c"; +} + +i.icon.legal:before { + content: "\f0e3"; +} + +i.icon.lemon:before { + content: "\f094"; +} + +i.icon.level.down:before { + content: "\f149"; +} + +i.icon.level.up:before { + content: "\f148"; +} + +i.icon.lightbulb:before { + content: "\f0eb"; +} + +i.icon.linkedin.sign:before { + content: "\f08c"; +} + +i.icon.linkedin:before { + content: "\f0e1"; +} + +i.icon.linux:before { + content: "\f17c"; +} + +i.icon.list.ordered:before { + content: "\f0cb"; +} + +i.icon.list.unordered:before { + content: "\f0ca"; +} + +i.icon.list:before { + content: "\f03a"; +} + +i.icon.loading:before { + content: "\f110"; +} + +i.icon.location:before { + content: "\f124"; +} + +i.icon.lock:before { + content: "\f023"; +} + +i.icon.long.arrow.down:before { + content: "\f175"; +} + +i.icon.long.arrow.left:before { + content: "\f177"; +} + +i.icon.long.arrow.right:before { + content: "\f178"; +} + +i.icon.long.arrow.up:before { + content: "\f176"; +} + +i.icon.magic:before { + content: "\f0d0"; +} + +i.icon.magnet:before { + content: "\f076"; +} + +i.icon.mail.outline:before { + content: "\f003"; +} + +i.icon.mail.reply:before { + content: "\f112"; +} + +i.icon.mail:before { + content: "\f0e0"; +} + +i.icon.male:before { + content: "\f183"; +} + +i.icon.map.marker:before { + content: "\f041"; +} + +i.icon.map:before { + content: "\f14e"; +} + +i.icon.maxcdn:before { + content: "\f136"; +} + +i.icon.medkit:before { + content: "\f0fa"; +} + +i.icon.meh:before { + content: "\f11a"; +} + +i.icon.minus.sign.alternate:before { + content: "\f146"; +} + +i.icon.minus.sign:before { + content: "\f056"; +} + +i.icon.minus:before { + content: "\f068"; +} + +i.icon.mobile:before { + content: "\f10b"; +} + +i.icon.money:before { + content: "\f0d6"; +} + +i.icon.moon:before { + content: "\f186"; +} + +i.icon.move:before { + content: "\f047"; +} + +i.icon.music:before { + content: "\f001"; +} + +i.icon.mute:before { + content: "\f131"; +} + +i.icon.off:before { + content: "\f011"; +} + +i.icon.ok.circle:before { + content: "\f05d"; +} + +i.icon.ok.sign:before { + content: "\f058"; +} + +i.icon.paste:before { + content: "\f0ea"; +} + +i.icon.pause:before { + content: "\f04c"; +} + +i.icon.payment:before { + content: "\f09d"; +} + +i.icon.pencil:before { + content: "\f040"; +} + +i.icon.phone.sign:before { + content: "\f098"; +} + +i.icon.phone:before { + content: "\f095"; +} + +i.icon.photo:before { + content: "\f03e"; +} + +i.icon.pin:before { + content: "\f08d"; +} + +i.icon.pinterest.sign:before { + content: "\f0d3"; +} + +i.icon.pinterest:before { + content: "\f0d2"; +} + +i.icon.plane:before { + content: "\f072"; +} + +i.icon.play.circle:before { + content: "\f01d"; +} + +i.icon.play.sign:before { + content: "\f144"; +} + +i.icon.play:before { + content: "\f04b"; +} + +i.icon.pound:before { + content: "\f154"; +} + +i.icon.print:before { + content: "\f02f"; +} + +i.icon.puzzle.piece:before { + content: "\f12e"; +} + +i.icon.qr.code:before { + content: "\f029"; +} + +i.icon.question:before { + content: "\f128"; +} + +i.icon.quote.left:before { + content: "\f10d"; +} + +i.icon.quote.right:before { + content: "\f10e"; +} + +i.icon.refresh:before { + content: "\f021"; +} + +i.icon.remove.circle:before { + content: "\f05c"; +} + +i.icon.remove.sign:before { + content: "\f057"; +} + +i.icon.remove:before { + content: "\f00d"; +} + +i.icon.renren:before { + content: "\f18b"; +} + +i.icon.reorder:before { + content: "\f0c9"; +} + +i.icon.repeat:before { + content: "\f01e"; +} + +i.icon.reply.all.mail:before { + content: "\f122"; +} + +i.icon.resize.full:before { + content: "\f065"; +} + +i.icon.resize.horizontal:before { + content: "\f07e"; +} + +i.icon.resize.small:before { + content: "\f066"; +} + +i.icon.resize.vertical:before { + content: "\f07d"; +} + +i.icon.retweet:before { + content: "\f079"; +} + +i.icon.road:before { + content: "\f018"; +} + +i.icon.rocket:before { + content: "\f135"; +} + +i.icon.rss.sign:before { + content: "\f143"; +} + +i.icon.rss:before { + content: "\f09e"; +} + +i.icon.rupee:before { + content: "\f156"; +} + +i.icon.save:before { + content: "\f0c7"; +} + +i.icon.screenshot:before { + content: "\f05b"; +} + +i.icon.search:before { + content: "\f002"; +} + +i.icon.setting:before { + content: "\f013"; +} + +i.icon.settings:before { + content: "\f085"; +} + +i.icon.share.sign:before { + content: "\f14d"; +} + +i.icon.share:before { + content: "\f045"; +} + +i.icon.shield:before { + content: "\f132"; +} + +i.icon.shuffle:before { + content: "\f074"; +} + +i.icon.sign.in:before { + content: "\f090"; +} + +i.icon.sign.out:before { + content: "\f08b"; +} + +i.icon.sign:before { + content: "\f0c8"; +} + +i.icon.signal:before { + content: "\f012"; +} + +i.icon.sitemap:before { + content: "\f0e8"; +} + +i.icon.skype:before { + content: "\f17e"; +} + +i.icon.smile:before { + content: "\f118"; +} + +i.icon.sort.alphabet.descending:before { + content: "\f15e"; +} + +i.icon.sort.alphabet:before { + content: "\f15d"; +} + +i.icon.sort.ascending:before { + content: "\f0de"; +} + +i.icon.sort.attributes.descending:before { + content: "\f161"; +} + +i.icon.sort.attributes:before { + content: "\f160"; +} + +i.icon.sort.descending:before { + content: "\f0dd"; +} + +i.icon.sort.order.descending:before { + content: "\f163"; +} + +i.icon.sort.order:before { + content: "\f162"; +} + +i.icon.sort:before { + content: "\f0dc"; +} + +i.icon.stackexchange:before { + content: "\f16c"; +} + +i.icon.star.empty:before { + content: "\f006"; +} + +i.icon.star.half.empty:before { + content: "\f123"; +} + +i.icon.star.half.full:before, +i.icon.star.half:before { + content: "\f089"; +} + +i.icon.star:before { + content: "\f005"; +} + +i.icon.step.backward:before { + content: "\f048"; +} + +i.icon.step.forward:before { + content: "\f051"; +} + +i.icon.stethoscope:before { + content: "\f0f1"; +} + +i.icon.stop:before { + content: "\f04d"; +} + +i.icon.strikethrough:before { + content: "\f0cc"; +} + +i.icon.subscript:before { + content: "\f12c"; +} + +i.icon.suitcase:before { + content: "\f0f2"; +} + +i.icon.sun:before { + content: "\f185"; +} + +i.icon.superscript:before { + content: "\f12b"; +} + +i.icon.table:before { + content: "\f0ce"; +} + +i.icon.tablet:before { + content: "\f10a"; +} + +i.icon.tag:before { + content: "\f02b"; +} + +i.icon.tags:before { + content: "\f02c"; +} + +i.icon.tasks:before { + content: "\f0ae"; +} + +i.icon.terminal:before { + content: "\f120"; +} + +i.icon.text.height:before { + content: "\f034"; +} + +i.icon.text.width:before { + content: "\f035"; +} + +i.icon.thumbs.down.outline:before { + content: "\f088"; +} + +i.icon.thumbs.down:before { + content: "\f165"; +} + +i.icon.thumbs.up.outline:before { + content: "\f087"; +} + +i.icon.thumbs.up:before { + content: "\f164"; +} + +i.icon.ticket:before { + content: "\f145"; +} + +i.icon.time:before { + content: "\f017"; +} + +i.icon.tint:before { + content: "\f043"; +} + +i.icon.trash:before { + content: "\f014"; +} + +i.icon.trello:before { + content: "\f181"; +} + +i.icon.trophy:before { + content: "\f091"; +} + +i.icon.truck:before { + content: "\f0d1"; +} + +i.icon.tumblr.sign:before { + content: "\f174"; +} + +i.icon.tumblr:before { + content: "\f173"; +} + +i.icon.twitter.sign:before { + content: "\f081"; +} + +i.icon.twitter:before { + content: "\f099"; +} + +i.icon.umbrella:before { + content: "\f0e9"; +} + +i.icon.underline:before { + content: "\f0cd"; +} + +i.icon.undo:before { + content: "\f0e2"; +} + +i.icon.unhide:before { + content: "\f06e"; +} + +i.icon.unlink:before { + content: "\f127"; +} + +i.icon.unlock.alternate:before { + content: "\f13e"; +} + +i.icon.unlock:before { + content: "\f09c"; +} + +i.icon.unmute:before { + content: "\f130"; +} + +i.icon.up:before { + content: "\f062"; +} + +i.icon.upload.disk:before { + content: "\f093"; +} + +i.icon.upload:before { + content: "\f01b"; +} + +i.icon.url:before { + content: "\f0c1"; +} + +i.icon.user:before { + content: "\f007"; +} + +i.icon.users:before { + content: "\f0c0"; +} + +i.icon.video:before { + content: "\f008"; +} + +i.icon.vk:before { + content: "\f189"; +} + +i.icon.volume.down:before { + content: "\f027"; +} + +i.icon.volume.off:before { + content: "\f026"; +} + +i.icon.volume.up:before { + content: "\f028"; +} + +i.icon.warning:before { + content: "\f071"; +} + +i.icon.weibo:before { + content: "\f18a"; +} + +i.icon.windows:before { + content: "\f17a"; +} + +i.icon.won:before { + content: "\f159"; +} + +i.icon.wrench:before { + content: "\f0ad"; +} + +i.icon.xing.sign:before { + content: "\f169"; +} + +i.icon.xing:before { + content: "\f168"; +} + +i.icon.yen:before { + content: "\f157"; +} + +i.icon.youtube.play:before { + content: "\f16a"; +} + +i.icon.youtube.sign:before { + content: "\f166"; +} + +i.icon.youtube:before { + content: "\f167"; +} + +i.icon.yuan:before { + content: "\f158"; +} + +i.icon.zoom.in:before { + content: "\f00e"; +} + +i.icon.zoom.out:before { + content: "\f010"; +} + +/*-------------- + Aliases +---------------*/ + +i.icon.check:before { + content: "\f00c"; +} + +i.icon.close:before { + content: "\f00d"; +} + +i.icon.delete:before { + content: "\f00d"; +} + +i.icon.like:before { + content: "\f004"; +} + +i.icon.plus:before { + content: "\f067"; +} + +i.icon.signup:before { + content: "\f044"; +} + +/*-------------- + Spacing Fix +---------------*/ + +/* stars are usually consecutive */ + +i.icon.star { + width: auto; + margin: 0em; +} + +/* left side icons */ + +i.icon.left, +i.icon.left, +i.icon.left { + width: auto; + margin: 0em 0.5em 0em 0em; +} + +/* right side icons */ + +i.icon.search, +i.icon.up, +i.icon.down, +i.icon.right { + width: auto; + margin: 0em 0em 0em 0.5em; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Loading +---------------*/ + +i.icon.loading { + -webkit-animation: icon-loading 2s linear infinite; + -ms-animation: icon-loading 2s linear infinite; + animation: icon-loading 2s linear infinite; +} + +@keyframes icon-loading { + from { + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes icon-loading { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-ms-keyframes icon-loading { + from { + -ms-transform: rotate(0deg); + transform: rotate(0deg); + } + + to { + -ms-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/******************************* + States +*******************************/ + +i.icon.hover { + opacity: 1; +} + +i.icon.active { + opacity: 1; +} + +i.emphasized.icon { + opacity: 1; +} + +i.icon.disabled { + opacity: 0.3; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Link +--------------------*/ + +i.link.icon { + cursor: pointer; + opacity: 0.7; + -webkit-transition: opacity 0.3s ease-out; + transition: opacity 0.3s ease-out; +} + +i.link.icon:hover { + opacity: 1 !important; +} + +/*------------------- + Circular +--------------------*/ + +i.circular.icon { + border-radius: 500em !important; + padding: 0.5em 0.35em !important; + -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + line-height: 1 !important; + width: 2em !important; + height: 2em !important; +} + +i.circular.inverted.icon { + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*------------------- + Flipped +--------------------*/ + +i.flipped.icon, +i.horizontally.flipped.icon { + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +i.vertically.flipped.icon { + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +/*------------------- + Rotated +--------------------*/ + +i.rotated.icon, +i.right.rotated.icon, +i.clockwise.rotated.icon { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +i.left.rotated.icon, +i.counterclockwise.rotated.icon { + -webkit-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); +} + +/*------------------- + Square +--------------------*/ + +i.square.icon { + width: 2em; + height: 2em; + padding: 0.5em 0.35em !important; + -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; + vertical-align: baseline; +} + +i.square.inverted.icon { + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*------------------- + Inverted +--------------------*/ + +i.inverted.icon { + background-color: #222222; + color: #FFFFFF; +} + +/*------------------- + Colors +--------------------*/ + +i.blue.icon { + color: #6ECFF5 !important; +} + +i.black.icon { + color: #5C6166 !important; +} + +i.green.icon { + color: #A1CF64 !important; +} + +i.red.icon { + color: #D95C5C !important; +} + +i.purple.icon { + color: #564F8A !important; +} + +i.teal.icon { + color: #00B5AD !important; +} + +/*------------------- + Inverted Colors +--------------------*/ + +i.inverted.black.icon { + background-color: #5C6166 !important; + color: #FFFFFF !important; +} + +i.inverted.blue.icon { + background-color: #6ECFF5 !important; + color: #FFFFFF !important; +} + +i.inverted.green.icon { + background-color: #A1CF64 !important; + color: #FFFFFF !important; +} + +i.inverted.red.icon { + background-color: #D95C5C !important; + color: #FFFFFF !important; +} + +i.inverted.purple.icon { + background-color: #564F8A !important; + color: #FFFFFF !important; +} + +i.inverted.teal.icon { + background-color: #00B5AD !important; + color: #FFFFFF !important; +} + +/*------------------- + Sizes +--------------------*/ + +i.small.icon { + font-size: 0.875em; +} + +i.icon { + font-size: 1em; +} + +i.large.icon { + font-size: 1.5em; + vertical-align: middle; +} + +i.big.icon { + font-size: 2em; + vertical-align: middle; +} + +i.huge.icon { + font-size: 4em; + vertical-align: middle; +} +i.massive.icon { + font-size: 8em; + vertical-align: middle; +} +/* + * # Semantic - Image + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Image +*******************************/ + +.ui.image { + position: relative; + display: inline-block; + vertical-align: middle; + max-width: 100%; + background-color: rgba(0, 0, 0, 0.05); +} + +img.ui.image { + display: block; + background: none; +} + +.ui.image img { + display: block; + max-width: 100%; + height: auto; +} + +/******************************* + States +*******************************/ + +.ui.disabled.image { + cursor: default; + opacity: 0.3; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Rounded +---------------*/ + +.ui.rounded.images .image, +.ui.rounded.images img, +.ui.rounded.image img, +.ui.rounded.image { + border-radius: 0.3125em; +} + +/*-------------- + Circular +---------------*/ + +.ui.circular.images .image, +.ui.circular.images img, +.ui.circular.image img, +.ui.circular.image { + border-radius: 500rem; +} + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.images, +.ui.fluid.image, +.ui.fluid.images img, +.ui.fluid.image img { + display: block; + width: 100%; +} + +/*-------------- + Avatar +---------------*/ + +.ui.avatar.images .image, +.ui.avatar.images img, +.ui.avatar.image img, +.ui.avatar.image { + display: inline-block; + width:28px; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.image, +.ui.floated.images { + float: left; + margin-right: 1em; + margin-bottom: 1em; +} + +.ui.right.floated.images, +.ui.right.floated.image { + float: right; + margin-bottom: 1em; + margin-left: 1em; +} + +/*-------------- + Sizes +---------------*/ + +.ui.tiny.images .image, +.ui.tiny.images img, +.ui.tiny.image { + width: 20px; + font-size: 0.7rem; +} + +.ui.mini.images .image, +.ui.mini.images img, +.ui.mini.image { + width: 35px; + font-size: 0.8rem; +} + +.ui.small.images .image, +.ui.small.images img, +.ui.small.image { + width: 80px; + font-size: 0.9rem; +} + +.ui.medium.images .image, +.ui.medium.images img, +.ui.medium.image img, +.ui.medium.image { + max-width:285px !important; + height:160px; + font-size: 1rem; +} + +.ui.large.images .image, +.ui.large.images img, +.ui.large.image { + width: 450px; + font-size: 1.1rem; +} + +.ui.huge.images .image, +.ui.huge.images img, +.ui.huge.image { + width: 600px; + font-size: 1.2rem; +} + +/******************************* + Groups +*******************************/ + +.ui.images { + font-size: 0em; + margin: 0em -0.25rem 0rem; +} + +.ui.images .image, +.ui.images img { + display: inline-block; + margin: 0em 0.25em 0.5em; +} +/* + * # Semantic - Input + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Standard +*******************************/ + +/*-------------------- + Inputs +---------------------*/ + +.ui.input { + display: inline-block; + position: relative; + color: rgba(0, 0, 0, 0.7); +} + +.ui.input input { + width: 100%; + font-family: "Helvetica Neue", "Helvetica", Arial; + margin: 0em; + padding: 0.85em 1.2em; + font-size: 0.875em; + background-color: #FFFFFF; + border: 1px solid rgba(0, 0, 0, 0.15); + outline: none; + color: rgba(0, 0, 0, 0.7); + border-radius: 0.3125em; + -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease; + transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/*-------------------- + Placeholder +---------------------*/ + +/* browsers require these rules separate */ + +.ui.input::-web inputkit-input-placeholder { + color: #BBBBBB; +} + +.ui.input::-moz input-placeholder { + color: #BBBBBB; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Active +---------------------*/ + +.ui.input input:active, +.ui.input.down input { + border-color: rgba(0, 0, 0, 0.3); + background-color: #FAFAFA; +} + +/*-------------------- + Loading +---------------------*/ + +.ui.loading.input > .icon { + background: url(../images/loader-mini.gif) no-repeat 50% 50%; +} + +.ui.loading.input > .icon:before, +.ui.loading.input > .icon:after { + display: none; +} + +/*-------------------- + Focus +---------------------*/ + +.ui.input.focus input, +.ui.input input:focus { + border-color: rgba(0, 0, 0, 0.2); + color: rgba(0, 0, 0, 0.85); +} + +.ui.input.focus input input::-webkit-input-placeholder, +.ui.input input:focus input::-webkit-input-placeholder { + color: #AAAAAA; +} + +/*-------------------- + Error +---------------------*/ + +.ui.input.error input { + background-color: #FFFAFA; + border-color: #E7BEBE; + color: #D95C5C; +} + +/* Error Placeholder */ + +.ui.input.error input ::-webkit-input-placeholder { + color: rgba(255, 80, 80, 0.4); +} + +.ui.input.error input :focus::-webkit-input-placeholder { + color: rgba(255, 80, 80, 0.7); +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Transparent +---------------------*/ + +.ui.transparent.input input { + border: none; + background-color: transparent; +} + +/*-------------------- + Icon +---------------------*/ + +.ui.icon.input > .icon { + cursor: default; + position: absolute; + opacity: 0.5; + top: 0px; + right: 0px; + margin: 0em; + width: 2.6em; + height: 100%; + padding-top: 0.82em; + text-align: center; + border-radius: 0em 0.3125em 0.3125em 0em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: opacity 0.3s ease-out; + transition: opacity 0.3s ease-out; +} + +.ui.icon.input > .link.icon { + cursor: pointer; +} + +.ui.icon.input input { + padding-right: 3em !important; +} + +.ui.icon.input > .circular.icon { + top: 0.35em; + right: 0.5em; +} + +/* Left Side */ + +.ui.left.icon.input > .icon { + right: auto; + left: 1px; + border-radius: 0.3125em 0em 0em 0.3125em; +} + +.ui.left.icon.input > .circular.icon { + right: auto; + left: 0.5em; +} + +.ui.left.icon.input > input { + padding-left: 3em !important; + padding-right: 1.2em !important; +} + +.ui.left.icon.input.short{ + width:30%; +} + +/* Focus */ + +.ui.icon.input > input:focus ~ .icon { + opacity: 1; +} + +/*-------------------- + Labeled +---------------------*/ + +.ui.labeled.input .corner.label { + top: 1px; + right: 1px; + font-size: 0.55em; + border-top-right-radius: 0.3125em; +} + +.ui.labeled.input .corner.label > .icon { + margin: 0.4em 0em 0em 2em; +} + +.ui.labeled.input input { + padding-right: 2.5em !important; +} + +/* Spacing with corner label */ + +.ui.labeled.icon.input:not(.left) > input { + padding-right: 3.25em !important; +} + +.ui.labeled.icon.input:not(.left) > .icon { + margin-right: 1.25em; +} + +/*-------------------- + Action +---------------------*/ + +.ui.action.input { + display: table; +} + +.ui.action.input > input { + display: table-cell; + border-top-right-radius: 0px !important; + border-bottom-right-radius: 0px !important; + border-right: none; +} + +.ui.action.input > .button { + display: table-cell; + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + white-space: nowrap; +} + +.ui.action.input > .button > .icon { + display: inline; + vertical-align: top; +} + +/*-------------------- + Fluid +---------------------*/ + +.ui.fluid.input { + display: block; +} + +/*-------------------- + Size +---------------------*/ + +.ui.mini.input { + font-size: 0.8125rem; +} + +.ui.tiny.input { + font-size: 0.875rem; +} + +.ui.small.input { + font-size: 0.875rem; +} + +.ui.input { + font-size: 1rem; +} + +.ui.large.input { + font-size: 1.125rem; +} + +.ui.big.input { + font-size: 1.25rem; +} + +.ui.huge.input { + font-size: 1.375rem; +} + +.ui.massive.input { + font-size: 1.5rem; +} +/* + * # Semantic - Label + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Label +*******************************/ + +.ui.label { + display: inline-block; + vertical-align: middle; + margin: -0.25em 0em 0em; + background-color: #E8E8E8; + border-color: #E8E8E8; + padding: 0.5em 0.5em; + color: rgba(0, 0, 0, 0.65); + text-transform: uppercase; + font-weight: normal; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +/* -webkit-transition: background 0.1s linear; + transition: background 0.1s linear;*/ +} + +.ui.label:first-child { + margin-left: 0em; +} + +.ui.label:last-child { + margin-right: 0em; +} + +/* Link */ + +a.ui.label { + cursor: pointer; +} + +/* Inside Link */ + +.ui.label a { + cursor: pointer; + color: inherit; + opacity: 0.8; + -webkit-transition: 0.2s opacity ease; + transition: 0.2s opacity ease; +} + +.ui.label a:hover { + opacity: 1; +} + +/* Detail */ + +.ui.label .detail { + display: inline-block; + margin-left: 0.5em; + font-weight: bold; + opacity: 0.8; +} + +/* Icon */ + +.ui.label .icon { + width: auto; +} + +/* Removable label */ + +.ui.label .delete.icon { + cursor: pointer; + margin: 0em 0em 0em 0.5em; + opacity: 0.7; + -webkit-transition: background 0.1s linear; + transition: background 0.1s linear; +} + +.ui.label .delete.icon:hover { + opacity: 0.99; +} + +/*------------------- + Coupling +--------------------*/ + +/* Padding on next content after a label */ + +.ui.segment > .attached.label:first-child + * { + margin-top: 2.5em; +} + +.ui.segment > .bottom.attached.label:first-child ~ :last-child { + margin-top: 0em; + margin-bottom: 2.5em; +} + +/******************************* + Types +*******************************/ + +.ui.image.label { + width: auto !important; + margin-top: 0em; + margin-bottom: 0em; + padding-top: 0.4em; + padding-bottom: 0.4em; + line-height: 1.5em; + vertical-align: baseline; + text-transform: none; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; +} + +.ui.image.label img { + display: inline-block; + height: 2.25em; + margin: -0.4em 0.8em -0.4em -0.8em; + vertical-align: top; + border-radius: 0.325em 0em 0em 0.325em; +} + +/******************************* + States +*******************************/ + +/*------------------- + Disabled +--------------------*/ + +.ui.label.disabled { + opacity: 0.5; +} + +/*------------------- + Hover +--------------------*/ + +a.ui.labels .label:hover, +a.ui.label:hover { + background-color: #E0E0E0; + border-color: #E0E0E0; + color: rgba(0, 0, 0, 0.7); +} + +.ui.labels a.label:hover:before, +a.ui.label:hover:before { + background-color: #E0E0E0; + color: rgba(0, 0, 0, 0.7); +} + +/*------------------- + Visible +--------------------*/ + +.ui.labels.visible .label, +.ui.label.visible { + display: inline-block !important; +} + +/*------------------- + Hidden +--------------------*/ + +.ui.labels.hidden .label, +.ui.label.hidden { + display: none !important; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Tag +--------------------*/ + +.ui.tag.labels .label, +.ui.tag.label { + margin-left: 1em; + position: relative; + padding: 0.33em 1.3em 0.33em 1.4em; + border-radius: 0px 3px 3px 0px; +} + +.ui.tag.labels .label:before, +.ui.tag.label:before { + position: absolute; + top: 0.3em; + left: 0.3em; + content: ''; + margin-left: -1em; + background-image: none; + width: 1.5em; + height: 1.5em; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-transition: background 0.1s linear; + transition: background 0.1s linear; +} + +.ui.tag.labels .label:after, +.ui.tag.label:after { + position: absolute; + content: ''; + top: 50%; + left: -0.25em; + margin-top: -0.3em; + background-color: #FFFFFF; + width: 0.55em; + height: 0.55em; + -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3); + border-radius: 100px 100px 100px 100px; +} + +/*------------------- + Ribbon +--------------------*/ + +.ui.ribbon.label { + position: relative; + margin: 0em 0.2em; + left: -2rem; + padding-left: 2rem; + border-radius: 0px 4px 4px 0px; + border-color: rgba(0, 0, 0, 0.15); +} + +.ui.ribbon.label:after { + position: absolute; + content: ""; + top: 100%; + left: 0%; + border-top: 0em solid transparent; + border-right-width: 1em; + border-right-color: inherit; + border-right-style: solid; + border-bottom: 1em solid transparent; + border-left: 0em solid transparent; + width: 0em; + height: 0em; +} + +/*------------------- + Attached +--------------------*/ + +.ui.top.attached.label, +.ui.attached.label { + width: 100%; + position: absolute; + margin: 0em; + top: 0em; + left: 0em; + padding:0.75em 1em; + border-radius: 4px 4px 0em 0em; +} + +.ui.bottom.attached.label { + top: auto; + bottom: 0em; + border-radius: 0em 0em 4px 4px; +} + +.ui.top.left.attached.label { + width: auto; + margin-top: 0em !important; + border-radius: 4px 0em 4px 0em; +} + +.ui.top.right.attached.label { + width: auto; + left: auto; + right: 0em; + border-radius: 0em 4px 0em 4px; +} + +.ui.bottom.left.attached.label { + width: auto; + top: auto; + bottom: 0em; + border-radius: 4px 0em 0em 4px; +} + +.ui.bottom.right.attached.label { + top: auto; + bottom: 0em; + left: auto; + right: 0em; + width: auto; + border-radius: 4px 0em 4px 0em; +} + +/*------------------- + Corner Label +--------------------*/ + +.ui.corner.label { + background-color: transparent; + position: absolute; + top: 0em; + right: 0em; + z-index: 10; + margin: 0em; + font-size: 0.8125em; + width: 2rem; + height: 2rem; + padding: 0em; + text-align: center; + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +.ui.corner.label:after { + position: absolute; + content: ""; + right: 0em; + top: 0em; + z-index: -1; + width: 0em; + height: 0em; + border-top: 0em solid transparent; + border-right: 3em solid transparent; + border-bottom: 3em solid transparent; + border-left: 0em solid transparent; + border-right-color: inherit; + -webkit-transition: border-color 0.2s ease; + transition: border-color 0.2s ease; +} + +.ui.corner.label .icon { + margin: 0.4em 0em 0em 0.7em; +} + +.ui.corner.label .text { +/* display: inline-block;*/ + font-weight: bold; + margin: 0.5em 0em 0em 0.6em; + width: 2.5em; + font-size: 0.82em; + text-align: center; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +/* Left Corner */ + +.ui.left.corner.label, +.ui.left.corner.label:after { + right: auto; + left: 0em; +} + +.ui.left.corner.label:after { + border-top: 3em solid transparent; + border-right: 3em solid transparent; + border-bottom: 0em solid transparent; + border-left: 0em solid transparent; + border-top-color: inherit; +} + +.ui.left.corner.label .icon { + margin: 0.2em 0em 0em -0.5em; +} + +.ui.left.corner.label .text { + margin: 6px 0 0 -2px; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +/* Hover */ + +.ui.corner.label:hover { + background-color: transparent; +} + +/*------------------- + Fluid +--------------------*/ + +.ui.label.fluid, +.ui.fluid.labels > .label { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.labels .label, +.ui.inverted.label { + color: #FFFFFF !important; +} + +/*------------------- + Colors +--------------------*/ + +/*--- Black ---*/ + +.ui.black.labels .label, +.ui.black.label { + background-color: #5C6166 !important; + border-color: #5C6166 !important; + color: #FFFFFF !important; +} + +.ui.labels .black.label:before, +.ui.black.labels .label:before, +.ui.black.label:before { + background-color: #5C6166 !important; +} + +/* Hover */ + +a.ui.black.labels .label:hover, +a.ui.black.label:hover { + background-color: #333333 !important; + border-color: #333333 !important; +} + +.ui.labels a.black.label:hover:before, +.ui.black.labels a.label:hover:before, +a.ui.black.label:hover:before { + background-color: #333333 !important; +} + +/* Corner */ + +.ui.black.corner.label, +.ui.black.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.black.ribbon.label { + border-color: #333333 !important; +} + +/*--- Green ---*/ + +.ui.green.labels .label, +.ui.green.label { + background-color: #1e6823 !important; + border-color: #1e6823 !important; + color: #FFFFFF !important; + opacity:0.7; +} + +.ui.labels .green.label:before, +.ui.green.labels .label:before, +.ui.green.label:before { + background-color: #A1CF64 !important; +} + +/* Hover */ + +a.ui.green.labels .label:hover, +a.ui.green.label:hover { + background-color: #89B84C !important; + border-color: #89B84C !important; +} + +.ui.labels a.green.label:hover:before, +.ui.green.labels a.label:hover:before, +a.ui.green.label:hover:before { + background-color: #89B84C !important; +} + +/* Corner */ + +.ui.green.corner.label, +.ui.green.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.green.ribbon.label { + border-color: #89B84C !important; +} + +/*--- Red ---*/ + +.ui.red.labels .label, +.ui.red.label { + background-color: #fd4239 !important; + border-color: #fd4239 !important; + color: #FFFFFF !important; + opacity:0.8; +} + +.ui.labels .red.label:before, +.ui.red.labels .label:before, +.ui.red.label:before { + background-color: #D95C5C !important; +} + +/* Corner */ + +.ui.red.corner.label, +.ui.red.corner.label:hover { + background-color: transparent !important; +} + +/* Hover */ + +a.ui.red.labels .label:hover, +a.ui.red.label:hover { + background-color: #DE3859 !important; + border-color: #DE3859 !important; + color: #FFFFFF !important; +} + +.ui.labels a.red.label:hover:before, +.ui.red.labels a.label:hover:before, +a.ui.red.label:hover:before { + background-color: #DE3859 !important; +} + +/* Ribbon */ + +.ui.red.ribbon.label { + border-color: #DE3859 !important; +} + +/*--- Blue ---*/ + +.ui.blue.labels .label, +.ui.blue.label { + background-color: #6ECFF5 !important; + border-color: #6ECFF5 !important; + color: #FFFFFF !important; +} + +.ui.labels .blue.label:before, +.ui.blue.labels .label:before, +.ui.blue.label:before { + background-color: #6ECFF5 !important; +} + +/* Hover */ + +a.ui.blue.labels .label:hover, +.ui.blue.labels a.label:hover, +a.ui.blue.label:hover { + background-color: #1AB8F3 !important; + border-color: #1AB8F3 !important; + color: #FFFFFF !important; +} + +.ui.labels a.blue.label:hover:before, +.ui.blue.labels a.label:hover:before, +a.ui.blue.label:hover:before { + background-color: #1AB8F3 !important; +} + +/* Corner */ + +.ui.blue.corner.label, +.ui.blue.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.blue.ribbon.label { + border-color: #1AB8F3 !important; +} + +/*--- Purple ---*/ + +.ui.purple.labels .label, +.ui.purple.label { + background-color: #564F8A !important; + border-color: #564F8A !important; + color: #FFFFFF !important; +} + +.ui.labels .purple.label:before, +.ui.purple.labels .label:before, +.ui.purple.label:before { + background-color: #564F8A !important; +} + +/* Hover */ + +a.ui.purple.labels .label:hover, +.ui.purple.labels a.label:hover, +a.ui.purple.label:hover { + background-color: #3E3773 !important; + border-color: #3E3773 !important; + color: #FFFFFF !important; +} + +.ui.labels a.purple.label:hover:before, +.ui.purple.labels a.label:hover:before, +a.ui.purple.label:hover:before { + background-color: #3E3773 !important; +} + +/* Corner */ + +.ui.purple.corner.label, +.ui.purple.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.purple.ribbon.label { + border-color: #3E3773 !important; +} + +/*--- Orange ---*/ + +.ui.orange.labels .label, +.ui.orange.label { + background-color: #F05940 !important; + border-color: #F05940 !important; + color: #FFFFFF !important; +} + +.ui.labels .orange.label:before, +.ui.orange.labels .label:before, +.ui.orange.label:before { + background-color: #F05940 !important; +} + +/* Hover */ + +a.ui.orange.labels .label:hover, +.ui.orange.labels a.label:hover, +a.ui.orange.label:hover { + background-color: #FF4121 !important; + border-color: #FF4121 !important; + color: #FFFFFF !important; +} + +.ui.labels a.orange.label:hover:before, +.ui.orange.labels a.label:hover:before, +a.ui.orange.label:hover:before { + background-color: #FF4121 !important; +} + +/* Corner */ + +.ui.orange.corner.label, +.ui.orange.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.orange.ribbon.label { + border-color: #FF4121 !important; +} + +/*--- Teal ---*/ + +.ui.teal.labels .label, +.ui.teal.label { + background-color: #00B5AD !important; + border-color: #00B5AD !important; + color: #FFFFFF !important; +} + +.ui.labels .teal.label:before, +.ui.teal.labels .label:before, +.ui.teal.label:before { + background-color: #00B5AD !important; +} + +/* Hover */ + +a.ui.teal.labels .label:hover, +.ui.teal.labels a.label:hover, +a.ui.teal.label:hover { + background-color: #009A93 !important; + border-color: #009A93 !important; + color: #FFFFFF !important; +} + +.ui.labels a.teal.label:hover:before, +.ui.teal.labels a.label:hover:before, +a.ui.teal.label:hover:before { + background-color: #009A93 !important; +} + +/* Corner */ + +.ui.teal.corner.label, +.ui.teal.corner.label:hover { + background-color: transparent !important; +} + +/* Ribbon */ + +.ui.teal.ribbon.label { + border-color: #009A93 !important; +} + +/*------------------- + Horizontal +--------------------*/ + +.ui.horizontal.labels .label, +.ui.horizontal.label { + margin: -0.125em 0.5em -0.125em 0em; + padding: 0.35em 1em; + min-width: 6em; + text-align: center; +} + +/*------------------- + Circular +--------------------*/ + +.ui.circular.labels .label, +.ui.circular.label { + min-height: 1em; + max-height: 2em; + padding: 0.5em !important; + line-height: 1em; + text-align: center; + border-radius: 500rem; +} + +/*------------------- + Pointing +--------------------*/ + +.ui.pointing.label { + position: relative; +} + +.ui.attached.pointing.label { + position: absolute; +} + +.ui.pointing.label:before { + position: absolute; + content: ""; + width: 0.6em; + height: 0.6em; + background-image: none; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + z-index: 2; + -webkit-transition: background 0.1s linear; + transition: background 0.1s linear; +} + +/*--- Above ---*/ + +.ui.pointing.label:before { + background-color: #E8E8E8; +} + +.ui.pointing.label, +.ui.pointing.above.label { + margin-top: 1em; +} + +.ui.pointing.label:before, +.ui.pointing.above.label:before { + margin-left: -0.3em; + top: -0.3em; + left: 50%; +} + +/*--- Below ---*/ + +.ui.pointing.below.label { + margin-top: 0em; + margin-bottom: 1em; +} + +.ui.pointing.below.label:before { + margin-left: -0.3em; + top: auto; + right: auto; + bottom: -0.3em; + left: 50%; +} + +/*--- Left ---*/ + +.ui.pointing.left.label { + margin-top: 0em; + margin-left: 1em; +} + +.ui.pointing.left.label:before { + margin-top: -0.3em; + bottom: auto; + right: auto; + top: 50%; + left: 0em; +} + +/*--- Right ---*/ + +.ui.pointing.right.label { + margin-top: 0em; + margin-right: 1em; +} + +.ui.pointing.right.label:before { + margin-top: -0.3em; + right: -0.3em; + top: 50%; + bottom: auto; + left: auto; +} + +/*------------------ + Floating Label +-------------------*/ + +.ui.floating.label { + position: absolute; + z-index: 100; + top: -1em; + left: 100%; + margin: 0em 0em 0em -1.5em !important; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.small.labels .label, +.ui.small.label { + font-size: 0.75rem; +} + +.ui.label { + font-size: 0.8125rem; +} + +.ui.large.labels .label, +.ui.large.label { + font-size: 0.875rem; +} + +.ui.huge.labels .label, +.ui.huge.label { + font-size: 1rem; +} +/* + * # Semantic - Loader + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Loader +*******************************/ + +/* Standard Size */ + +.ui.loader { + display: none; + position: absolute; + top: 50%; + left: 50%; + margin: 0px; + z-index: 1000; + -webkit-transform: translateX(-50%) translateY(-50%); + -ms-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); +} + +.ui.dimmer .loader { + display: block; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Text +--------------------*/ + +.ui.text.loader { + width: auto !important; + height: auto !important; + text-align: center; + font-style: normal; +} + +.ui.mini.text.loader { + min-width: 16px; + padding-top: 2em; + font-size: 0.875em; +} + +.ui.small.text.loader { + min-width: 24px; + padding-top: 2.5em; + font-size: 0.875em; +} + +.ui.text.loader { + min-width: 32px; + font-size: 1em; + padding-top: 3em; +} + +.ui.large.text.loader { + min-width: 64px; + padding-top: 5em; + font-size: 1.2em; +} + +/******************************* + States +*******************************/ + +.ui.loader.active, +.ui.loader.visible { + display: block; +} + +.ui.loader.disabled, +.ui.loader.hidden { + display: none; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted +--------------------*/ + +.ui.dimmer .ui.text.loader, +.ui.inverted.text.loader { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.dimmer .ui.text.loader { + color: rgba(0, 0, 0, 0.8); +} + +/* Tiny Size */ + +.ui.dimmer .mini.ui.loader, +.ui.inverted .mini.ui.loader { + background-image: url(../images/loader-mini-inverted.gif); +} + +/* Small Size */ + +.ui.dimmer .small.ui.loader, +.ui.inverted .small.ui.loader { + background-image: url(../images/loader-small-inverted.gif); +} + +/* Standard Size */ + +.ui.dimmer .ui.loader, +.ui.inverted.loader { + background-image: url(../images/loader-medium-inverted.gif); +} + +/* Large Size */ + +.ui.dimmer .large.ui.loader, +.ui.inverted .large.ui.loader { + background-image: url(../images/loader-large-inverted.gif); +} + +/*------------------- + Sizes +--------------------*/ + +/* Tiny Size */ + +.ui.inverted.dimmer .ui.mini.loader, +.ui.mini.loader { + width: 16px; + height: 16px; + background-image: url(../images/loader-mini.gif); +} + +/* Small Size */ + +.ui.inverted.dimmer .ui.small.loader, +.ui.small.loader { + width: 24px; + height: 24px; + background-image: url(../images/loader-small.gif); +} + +.ui.inverted.dimmer .ui.loader, +.ui.loader { + width: 32px; + height: 32px; + background: url(../images/loader-medium.gif) no-repeat; + background-position: 48% 0px; +} + +/* Large Size */ + +.ui.inverted.dimmer .ui.loader.large, +.ui.loader.large { + width: 64px; + height: 64px; + background-image: url(../images/loader-large.gif); +} + +/*------------------- + Inline +--------------------*/ + +.ui.inline.loader { + position: static; + vertical-align: middle; + margin: 0em; + -webkit-transform: none; + -ms-transform: none; + transform: none; +} + +.ui.inline.loader.active, +.ui.inline.loader.visible { + display: inline-block; +} +/* + * # Semantic - Progress Bar + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Progress Bar +*******************************/ + +.ui.progress { + border: 1px solid rgba(0, 0, 0, 0.1); + width: 100%; + height: 35px; + background-color: #FAFAFA; + padding: 5px; + border-radius: 0.3125em; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.progress .bar { + display: inline-block; + height: 100%; + background-color: #CCCCCC; + border-radius: 3px; + -webkit-transition: width 1s ease-in-out, background-color 1s ease-out; + transition: width 1s ease-in-out, background-color 1s ease-out; +} + +/******************************* + States +*******************************/ + +/*-------------- + Successful +---------------*/ + +.ui.successful.progress .bar { + background-color: #73E064 !important; +} + +.ui.successful.progress .bar, +.ui.successful.progress .bar::after { + -webkit-animation: none !important; + animation: none !important; +} + +/*-------------- + Failed +---------------*/ + +.ui.failed.progress .bar { + background-color: #DF9BA4 !important; +} + +.ui.failed.progress .bar, +.ui.failed.progress .bar::after { + -webkit-animation: none !important; + animation: none !important; +} + +/*-------------- + Active +---------------*/ + +.ui.active.progress .bar { + position: relative; +} + +.ui.active.progress .bar::after { + content: ''; + opacity: 0; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background: #FFFFFF; + border-radius: 3px; + -webkit-animation: progress-active 2s ease-out infinite; + animation: progress-active 2s ease-out infinite; +} + +@-webkit-keyframes progress-active { + 0% { + opacity: 0; + width: 0; + } + + 50% { + opacity: 0.3; + } + + 100% { + opacity: 0; + width: 95%; + } +} + +@keyframes progress-active { + 0% { + opacity: 0; + width: 0; + } + + 50% { + opacity: 0.3; + } + + 100% { + opacity: 0; + width: 100%; + } +} + +/*-------------- + Disabled +---------------*/ + +.ui.disabled.progress { + opacity: 0.35; +} + +.ui.disabled.progress .bar, +.ui.disabled.progress .bar::after { + -webkit-animation: none !important; + animation: none !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Attached +---------------*/ + +/* bottom attached */ + +.ui.progress.attached { + position: relative; + border: none; +} + +.ui.progress.attached, +.ui.progress.attached .bar { + display: block; + height: 3px; + padding: 0px; + overflow: hidden; + border-radius: 0em 0em 0.3125em 0.3125em; +} + +.ui.progress.attached .bar { + border-radius: 0em; +} + +/* top attached */ + +.ui.progress.top.attached, +.ui.progress.top.attached .bar { + top: -2px; + border-radius: 0.3125em 0.3125em 0em 0em; +} + +.ui.progress.top.attached .bar { + border-radius: 0em; +} + +/*-------------- + Colors +---------------*/ + +.ui.blue.progress .bar { + background-color: #6ECFF5; +} + +.ui.black.progress .bar { + background-color: #5C6166; +} + +.ui.green.progress .bar { + background-color: #A1CF64; +} + +.ui.red.progress .bar { + background-color: #EF4D6D; +} + +.ui.purple.progress .bar { + background-color: #564F8A; +} + +.ui.teal.progress .bar { + background-color: #00B5AD; +} + +/*-------------- + Striped +---------------*/ + +.ui.progress.striped .bar { + -webkit-background-size: 30px 30px; + background-size: 30px 30px; + background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.ui.progress.active.striped .bar:after { + -webkit-animation: none; + -ms-animation: none; + animation: none; +} + +.ui.progress.active.striped .bar { + -webkit-animation: progress-striped 3s linear infinite; + animation: progress-striped 3s linear infinite; +} + +@-webkit-keyframes progress-striped { + 0% { + background-position: 0px 0; + } + + 100% { + background-position: 60px 0; + } +} + +@keyframes progress-striped { + 0% { + background-position: 0px 0; + } + + 100% { + background-position: 60px 0; + } +} + +/*-------------- + Sizes +---------------*/ + +.ui.small.progress .bar { + height: 14px; +} +/* + * # Semantic - Reveal + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Reveal +*******************************/ + +.ui.reveal { + display: inline-block; + position: relative !important; + z-index: 2 !important; + font-size: 0em !important; +} + +.ui.reveal > .content { + font-size: 1rem !important; +} + +.ui.reveal > .visible.content { + -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; + transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; +} + +.ui.reveal > .visible.content { + position: absolute !important; + top: 0em !important; + left: 0em !important; + z-index: 4 !important; + -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; + transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; +} + +.ui.reveal > .hidden.content { + position: relative !important; + z-index: 3 !important; +} + +/*------------------ + Loose Coupling +-------------------*/ + +.ui.reveal.button { + overflow: hidden; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Slide +---------------*/ + +.ui.slide.reveal { + position: relative !important; + display: block; + overflow: hidden !important; + white-space: nowrap; +} + +.ui.slide.reveal > .content { + display: block; + float: left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin: 0em; + -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; + transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s; +} + +.ui.slide.reveal > .visible.content { + position: relative !important; +} + +.ui.slide.reveal > .hidden.content { + position: absolute !important; + left: 100% !important; + width: 100% !important; +} + +.ui.slide.reveal:hover > .visible.content { + left: -100% !important; +} + +.ui.slide.reveal:hover > .hidden.content { + left: 0% !important; +} + +.ui.right.slide.reveal > .visible.content { + left: 0%; +} + +.ui.right.slide.reveal > .hidden.content { + left: auto !important; + right: 100% !important; +} + +.ui.right.slide.reveal:hover > .visible.content { + left: 100% !important; + right: auto !important; +} + +.ui.right.slide.reveal:hover > .hidden.content { + left: auto !important; + right: 0% !important; +} + +.ui.up.slide.reveal > .visible.content { + top: 0% !important; + left: 0% !important; + right: auto !important; + bottom: auto !important; +} + +.ui.up.slide.reveal > .hidden.content { + top: 100% !important; + left: 0% !important; + right: auto !important; + bottom: auto !important; +} + +.ui.slide.up.reveal:hover > .visible.content { + top: -100% !important; + left: 0% !important; +} + +.ui.slide.up.reveal:hover > .hidden.content { + top: 0% !important; + left: 0% !important; +} + +.ui.down.slide.reveal > .visible.content { + top: auto !important; + right: auto !important; + bottom: auto !important; + bottom: 0% !important; +} + +.ui.down.slide.reveal > .hidden.content { + top: auto !important; + right: auto !important; + bottom: 100% !important; + left: 0% !important; +} + +.ui.slide.down.reveal:hover > .visible.content { + left: 0% !important; + bottom: -100% !important; +} + +.ui.slide.down.reveal:hover > .hidden.content { + left: 0% !important; + bottom: 0% !important; +} + +/*-------------- + Fade +---------------*/ + +.ui.fade.reveal > .visible.content { + opacity: 1; +} + +.ui.fade.reveal:hover > .visible.content { + opacity: 0; +} + +/*-------------- + Move +---------------*/ + +.ui.move.reveal > .visible.content, +.ui.move.left.reveal > .visible.content { + left: auto !important; + top: auto !important; + bottom: auto !important; + right: 0% !important; +} + +.ui.move.reveal:hover > .visible.content, +.ui.move.left.reveal:hover > .visible.content { + right: 100% !important; +} + +.ui.move.right.reveal > .visible.content { + right: auto !important; + top: auto !important; + bottom: auto !important; + left: 0% !important; +} + +.ui.move.right.reveal:hover > .visible.content { + left: 100% !important; +} + +.ui.move.up.reveal > .visible.content { + right: auto !important; + left: auto !important; + top: auto !important; + bottom: 0% !important; +} + +.ui.move.up.reveal:hover > .visible.content { + bottom: 100% !important; +} + +.ui.move.down.reveal > .visible.content { + right: auto !important; + left: auto !important; + top: 0% !important; + bottom: auto !important; +} + +.ui.move.down.reveal:hover > .visible.content { + top: 100% !important; +} + +/*-------------- + Rotate +---------------*/ + +.ui.rotate.reveal > .visible.content { + -webkit-transition-duration: 0.8s; + transition-duration: 0.8s; + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); +} + +.ui.rotate.reveal > .visible.content, +.ui.rotate.right.reveal > .visible.content { + -webkit-transform-origin: bottom right; + -ms-transform-origin: bottom right; + transform-origin: bottom right; +} + +.ui.rotate.reveal:hover > .visible.content, +.ui.rotate.right.reveal:hover > .visible.content { + -webkit-transform: rotate(110deg); + -ms-transform: rotate(110deg); + transform: rotate(110deg); +} + +.ui.rotate.left.reveal > .visible.content { + -webkit-transform-origin: bottom left; + -ms-transform-origin: bottom left; + transform-origin: bottom left; +} + +.ui.rotate.left.reveal:hover > .visible.content { + -webkit-transform: rotate(-110deg); + -ms-transform: rotate(-110deg); + transform: rotate(-110deg); +} + +/******************************* + States +*******************************/ + +.ui.disabled.reveal { + opacity: 1 !important; +} + +.ui.disabled.reveal > .content { + -webkit-transition: none !important; + transition: none !important; +} + +.ui.disabled.reveal:hover > .visible.content { + position: static !important; + display: block !important; + opacity: 1 !important; + top: 0 !important; + left: 0 !important; + right: auto !important; + bottom: auto !important; + -webkit-transform: none !important; + -ms-transform: none !important; + transform: none !important; +} + +.ui.disabled.reveal:hover > .hidden.content { + display: none !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Masked +---------------*/ + +.ui.masked.reveal { + overflow: hidden; +} + +/*-------------- + Instant +---------------*/ + +.ui.instant.reveal > .content { + -webkit-transition-delay: 0s !important; + transition-delay: 0s !important; +} +/* + * # Semantic - Segment + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Segment +*******************************/ + +.ui.segment { + position: relative; + background-color: #FFFFFF; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + padding: 1em; + border-radius: 5px 5px 5px 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.segment:first-child { + margin-top: 0em; +} + +.ui.segment:last-child { + margin-bottom: 0em; +} + +.ui.segment:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.ui.vertical.segment { + margin: 0em; + padding-left: 0em; + padding-right: 0em; + background-color: transparent; + border-radius: 0px; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.vertical.segment:first-child { + padding-top: 0em; +} + +.ui.horizontal.segment { + margin: 0em; + padding-top: 0em; + padding-bottom: 0em; + background-color: transparent; + border-radius: 0px; + -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1); + box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1); +} + +.ui.horizontal.segment:first-child { + padding-left: 0em; +} + +/*------------------- + Loose Coupling +--------------------*/ + +.ui.pointing.menu + .ui.attached.segment { + top: 1px; +} + +.ui.page.grid.segment .ui.grid .ui.segment.column { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.ui.grid.segment, +.ui.grid .ui.segment.row, +.ui.grid .ui.segment.column { + border-radius: 0em; + -webkit-box-shadow: none; + box-shadow: none; + border: none; + margin-bottom:22px; +} + +/* No padding on edge content */ + +.ui.segment > :first-child { + margin-top: 0em; +} + +.ui.segment > :last-child { + margin-bottom: 0em; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Piled +--------------------*/ + +.ui.piled.segment { + margin: 2em 0em; + -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15); + -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15); + -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15); + box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15); +} + +.ui.piled.segment:first-child { + margin-top: 0em; +} + +.ui.piled.segment:last-child { + margin-bottom: 0em; +} + +.ui.piled.segment:after, +.ui.piled.segment:before { + background-color: #FFFFFF; + visibility: visible; + content: ""; + display: block; + height: 100%; + left: -1px; + position: absolute; + width: 100%; + -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1); +} + +.ui.piled.segment:after { + -webkit-transform: rotate(1.2deg); + -ms-transform: rotate(1.2deg); + transform: rotate(1.2deg); + top: 0; + z-index: -1; +} + +.ui.piled.segment:before { + -webkit-transform: rotate(-1.2deg); + -ms-transform: rotate(-1.2deg); + transform: rotate(-1.2deg); + top: 0; + z-index: -2; +} + +/*------------------- + Stacked +--------------------*/ + +.ui.stacked.segment { + padding-bottom: 1.7em; +} + +.ui.stacked.segment:after, +.ui.stacked.segment:before { + content: ''; + position: absolute; + bottom: -3px; + left: 0%; + border-top: 1px solid rgba(0, 0, 0, 0.1); + background-color: rgba(0, 0, 0, 0.02); + width: 100%; + height: 5px; + visibility: visible; +} + +.ui.stacked.segment:before { + bottom: 0px; +} + +/* Inverted */ + +.ui.stacked.inverted.segment:after, +.ui.stacked.inverted.segment:before { + background-color: rgba(255, 255, 255, 0.1); + border-top: 1px solid rgba(255, 255, 255, 0.35); +} + +/*------------------- + Raised +--------------------*/ + +.ui.raised.segment { + -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1); +} + +/******************************* + States +*******************************/ + +.ui.disabled.segment { + opacity: 0.8; + color: #DDDDDD; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Basic +--------------------*/ + +.ui.basic.segment { + position: relative; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0px; +} + +.ui.basic.segment:first-child { + padding-top: 0em; +} + +.ui.basic.segment:last-child { + padding-bottom: 0em; +} + +/*------------------- + Fittted +--------------------*/ + +.ui.fitted.segment { + padding: 0em; +} + +/*------------------- + Colors +--------------------*/ + +.ui.device.segment, .ui.blue.segment ,.ui.info.segment{ + -webkit-box-shadow:none; + box-shadow:none; + -webkit-box-shadow:none; + border-radius:0; + background-color:#FAFAFA!important; +} +.ui.blue.segment { + border-top:0.2em solid #6ECFF5; +} +.ui.green.segment { + border-top: 0.2em solid #A1CF64; +} + +.ui.red.segment { + border-top: 0.2em solid #D95C5C; +} + +.ui.orange.segment { + border-top: 0.2em solid #F05940; +} + +.ui.purple.segment { + border-top: 0.2em solid #564F8A; +} + +.ui.teal.segment { + border-top: 0.2em solid #00B5AD; +} + +/*------------------- + Inverted Colors +--------------------*/ + +.ui.inverted.black.segment { + background-color: #5C6166 !important; + color: #FFFFFF !important; +} + +.ui.inverted.blue.segment { + background-color: #6ECFF5 !important; + color: #FFFFFF !important; +} + +.ui.inverted.green.segment { + background-color: #A1CF64 !important; + color: #FFFFFF !important; +} + +.ui.inverted.red.segment { + background-color: #D95C5C !important; + color: #FFFFFF !important; +} + +.ui.inverted.orange.segment { + background-color: #F05940 !important; + color: #FFFFFF !important; +} + +.ui.inverted.purple.segment { + background-color: #564F8A !important; + color: #FFFFFF !important; +} + +.ui.inverted.teal.segment { + background-color: #00B5AD !important; + color: #FFFFFF !important; +} + +/*------------------- + Aligned +--------------------*/ + +.ui.left.aligned.segment { + text-align: left; +} + +.ui.right.aligned.segment { + text-align: right; +} + +.ui.center.aligned.segment { + text-align: center; +} + +/*------------------- + Floated +--------------------*/ + +.ui.floated.segment, +.ui.left.floated.segment { + float: left; +} + +.ui.right.floated.segment { + float: right; +} + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.segment { + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.segment .segment { + color: rgba(0, 0, 0, 0.7); +} + +.ui.inverted.segment .inverted.segment { + color: #FFFFFF; +} + +.ui.inverted.segment, +.ui.primary.inverted.segment { + background-color: #222222; + color: #FFFFFF; +} + +/*------------------- + Ordinality +--------------------*/ + +.ui.primary.segment { + background-color: #FFFFFF; + color: #555555; +} + +.ui.secondary.segment { + background-color: #FAF9FA; + color: #777777; +} + +.ui.tertiary.segment { + background-color: #EBEBEB; + color: #B0B0B0; +} + +.ui.secondary.inverted.segment { + background-color: #555555; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3))); + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%); + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3))); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3))); + background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%); + color: #FAFAFA; +} + +.ui.tertiary.inverted.segment { + background-color: #555555; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6))); + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%); + background-image: -webkit-gradient(linear, top left, bottom left, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6))); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6))); + background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%); + color: #EEEEEE; +} + +/*------------------- + Attached +--------------------*/ + +.ui.segment.attached { + top: -1px; + bottom: -1px; + border-radius: 0px; + margin: 0em; + -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD; + box-shadow: 0px 0px 0px 1px #DDDDDD; +} + +.ui.top.attached.segment { + top: 0px; + bottom: -1px; + margin-top: 1em; + margin-bottom: 0em; + border-radius: 5px 5px 0px 0px; +} + +.ui.segment.top.attached:first-child { + margin-top: 0em; +} + +.ui.segment.bottom.attached { + top: -1px; + bottom: 0px; + margin-top: 0em; + margin-bottom: 1em; + border-radius: 0px 0px 5px 5px; +} + +.ui.segment.bottom.attached:last-child { + margin-bottom: 0em; +} +/* + * # Semantic - Steps + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Step +*******************************/ + +.ui.step, +.ui.steps .step { + display: inline-block; + position: relative; + padding: 1em 2em 1em 3em; + vertical-align: top; + background-color: #FFFFFF; + color: #888888; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.step:after, +.ui.steps .step:after { + position: absolute; + z-index: 2; + content: ''; + top: 0em; + right: -1.45em; + border-bottom: 1.5em solid transparent; + border-left: 1.5em solid #FFFFFF; + border-top: 1.5em solid transparent; + width: 0em; + height: 0em; +} + +.ui.step, +.ui.steps .step, +.ui.steps .step:after { + -webkit-transition: opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease; + transition: opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease; +} + +/******************************* + Group +*******************************/ + +.ui.steps { + cursor: pointer; + display: inline-block; + font-size: 0em; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + line-height: 1; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0.3125rem; +} + +.ui.steps .step:first-child { + padding-left: 1.35em; + border-radius: 0.3125em 0em 0em 0.3125em; +} + +.ui.steps .step:last-child { + border-radius: 0em 0.3125em 0.3125em 0em; +} + +.ui.steps .step:only-child { + border-radius: 0.3125em; +} + +.ui.steps .step:last-child { + margin-right: 0em; +} + +.ui.steps .step:last-child:after { + display: none; +} + +/******************************* + States +*******************************/ + +/* Hover */ + +.ui.step:hover, +.ui.step.hover { + background-color: #F7F7F7; + color: rgba(0, 0, 0, 0.8); +} + +.ui.steps .step.hover:after, +.ui.steps .step:hover:after, +.ui.step:hover, +.ui.step.hover::after { + border-left-color: #F7F7F7; +} + +/* Hover */ + +.ui.steps .step.down, +.ui.steps .step:active, +.ui.step.down, +.ui.step:active { + background-color: #F0F0F0; +} + +.ui.steps .step.down:after, +.ui.steps .step:active:after, +.ui.steps.down::after, +.ui.steps:active::after { + border-left-color: #F0F0F0; +} + +/* Active */ + +.ui.steps .step.active, +.ui.active.step { + cursor: auto; + background-color: #555555; + color: #FFFFFF; + font-weight: bold; +} + +.ui.steps .step.active:after, +.ui.active.steps:after { + border-left-color: #555555; +} + +/* Disabled */ + +.ui.steps .disabled.step, +.ui.disabled.step { + cursor: auto; + background-color: #FFFFFF; + color: #CBCBCB; +} + +.ui.disabled.step:after { + border: none; + background-color: #FFFFFF; + top: 0.42em; + right: -1em; + width: 2.15em; + height: 2.15em; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-box-shadow: -1px -1px 0px 0px rgba(0, 0, 0, 0.1) inset; + box-shadow: -1px -1px 0px 0px rgba(0, 0, 0, 0.1) inset; +} + +/******************************* + Variations +*******************************/ + +/* Attached */ + +.attached.ui.steps { + margin: 0em; + border-radius: 0.3125em 0.3125em 0em 0em; +} + +.attached.ui.steps .step:first-child { + border-radius: 0.3125em 0em 0em 0em; +} + +.attached.ui.steps .step:last-child { + border-radius: 0em 0.3125em 0em 0em; +} + +/* Bottom Side */ + +.bottom.attached.ui.steps { + margin-top: -1px; + border-radius: 0em 0em 0.3125em 0.3125em; +} + +.bottom.attached.ui.steps .step:first-child { + border-radius: 0em 0em 0em 0.3125em; +} + +.bottom.attached.ui.steps .step:last-child { + border-radius: 0em 0em 0.3125em 0em; +} + +/* Evenly divided */ + +.ui.one.steps, +.ui.two.steps, +.ui.three.steps, +.ui.four.steps, +.ui.five.steps, +.ui.six.steps, +.ui.seven.steps, +.ui.eight.steps { + display: block; +} + +.ui.one.steps > .step { + width: 100%; +} + +.ui.two.steps > .step { + width: 50%; +} + +.ui.three.steps > .step { + width: 33.333%; +} + +.ui.four.steps > .step { + width: 25%; +} + +.ui.five.steps > .step { + width: 20%; +} + +.ui.six.steps > .step { + width: 16.666%; +} + +.ui.seven.steps > .step { + width: 14.285%; +} + +.ui.eight.steps > .step { + width: 12.500%; +} + +/******************************* + Sizes +*******************************/ + +.ui.small.step, +.ui.small.steps .step { + font-size: 0.8rem; +} + +.ui.step, +.ui.steps .step { + font-size: 1rem; +} + +.ui.large.step, +.ui.large.steps .step { + font-size: 1.25rem; +} +/* + * # Semantic - Accordion + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Accordion +*******************************/ + +.ui.accordion, +.ui.accordion .accordion { + width: 600px; + max-width: 100%; + overflow: hidden; + font-size: 1rem; + border-radius: 0.3125em; + background-color: #FFFFFF; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); +} + +.ui.accordion a.title { + cursor: pointer; + margin: 0em; + padding: 0.75em 1em; + color: rgba(0, 0, 0, 0.6); + border-top: 1px solid rgba(0, 0, 0, 0.05); + -webkit-transition: background-color 0.2s ease-out; + transition: background-color 0.2s ease-out; +} + +.ui.accordion .title:first-child { + border-top: none; +} + +/* Content */ + +.ui.accordion .content { + display: none; + margin: 0em; + padding: 8px 16px; +} + +/* Arrow */ +.ui.accordion .title .dropdown.icon { + display: inline-block; + float: none; + -webkit-transition: -webkit-transform 0.2s ease, opacity 0.2s ease; + transition: transform 0.2s ease, + opacity 0.2s ease; + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); +} + +.ui.accordion .title .dropdown.icon:before { + content: '\f0da'; +} + +/*-------------- + Loose Coupling +---------------*/ + +.ui.basic.accordion.menu { + background-color: #FFFFFF; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); +} + +.ui.basic.accordion.menu .title, +.ui.basic.accordion.menu .content { + padding: 0em; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Basic +---------------*/ + +.ui.basic.accordion { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.basic.accordion .title, +.ui.basic.accordion .title { + background-color: transparent; + border-top: none; + padding-left: 0em; + padding-right: 0em; +} + +.ui.basic.accordion .active.title { + background-color: transparent; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.accordion .title:hover, +.ui.accordion .active.title { + color: rgba(0, 0, 0, 0.8); +} + +/*-------------- + Active +---------------*/ + +.ui.accordion .active.title { + background-color: rgba(0, 0, 0, 0.1); + color: rgba(0, 0, 0, 0.8); +} + +.ui.accordion .active.title .dropdown.icon { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.ui.accordion .active.content { + display: block; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.accordion, +.ui.fluid.accordion .accordion { + width: 100%; +} +/* + * # Semantic - Chat Room + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Chat Room +*******************************/ + +.ui.chatroom { + background-color: #F8F8F8; + width: 330px; + height: 370px; + padding: 0px; +} + +.ui.chatroom .room { + position: relative; + background-color: #FFFFFF; + overflow: hidden; + height: 286px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-top: none; + border-bottom: none; +} + +.ui.chatroom .room .loader { + display: none; + margin: -25px 0px 0px -25px; +} + +/* Chat Room Actions */ + +.ui.chatroom .actions { + overflow: hidden; + background-color: #EEEEEE; + padding: 4px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 5px 5px 0px 0px; +} + +.ui.chatroom .actions .button { + float: right; + margin-left: 3px; +} + +/* Online User Count */ + +.ui.chatroom .actions .message { + float: left; + margin-left: 6px; + font-size: 11px; + color: #AAAAAA; + text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8); + line-height: 28px; +} + +.ui.chatroom .actions .message .loader { + display: inline-block; + margin-right: 8px; +} + +/* Chat Room Text Log */ + +.ui.chatroom .log { + float: left; + overflow: auto; + overflow-x: hidden; + overflow-y: auto; +} + +.ui.chatroom .log .message { + padding: 3px 0px; + border-top: 1px dotted #DADADA; +} + +.ui.chatroom .log .message:first-child { + border-top: none; +} + +/* status event */ + +.ui.chatroom .status { + padding: 5px 0px; + color: #AAAAAA; + font-size: 12px; + font-style: italic; + line-height: 1.33; + border-top: 1px dotted #DADADA; +} + +.ui.chatroom .log .status:first-child { + border-top: none; +} + +.ui.chatroom .log .flag { + float: left; +} + +.ui.chatroom .log p { + margin-left: 0px; +} + +.ui.chatroom .log .author { + font-weight: bold; + -webkit-transition: color 0.3s ease-out; + transition: color 0.3s ease-out; +} + +.ui.chatroom .log a.author:hover { + opacity: 0.8; +} + +.ui.chatroom .log .message.admin p { + font-weight: bold; + margin: 1px 0px 0px 23px; +} + +.ui.chatroom .log .divider { + margin: -1px 0px; + font-size: 11px; + padding: 10px 0px; + border-top: 1px solid #F8F8F8; + border-bottom: 1px solid #F8F8F8; +} + +.ui.chatroom .log .divider .rule { + top: 50%; + width: 15%; +} + +.ui.chatroom .log .divider .label { + color: #777777; + margin: 0px; +} + +/* Chat Room User List */ + +.ui.chatroom .room .list { + position: relative; + overflow: auto; + overflow-x: hidden; + overflow-y: auto; + float: left; + background-color: #EEEEEE; + border-left: 1px solid #DDDDDD; +} + +.ui.chatroom .room .list .user { + display: table; + padding: 3px 7px; + border-bottom: 1px solid #DDDDDD; +} + +.ui.chatroom .room .list .user:hover { + background-color: #F8F8F8; +} + +.ui.chatroom .room .list .image { + display: table-cell; + vertical-align: middle; + width: 20px; +} + +.ui.chatroom .room .list .image img { + width: 20px; + height: 20px; + vertical-align: middle; +} + +.ui.chatroom .room .list p { + display: table-cell; + vertical-align: middle; + padding-left: 7px; + padding-right: 14px; + font-size: 11px; + line-height: 1.2; + font-weight: bold; +} + +.ui.chatroom .room .list a:hover { + opacity: 0.8; +} + +/* User List Loading */ + +.ui.chatroom.loading .loader { + display: block; +} + +/* Chat Room Talk Input */ + +.ui.chatroom .talk { + border: 1px solid rgba(0, 0, 0, 0.1); + padding: 5px 0px 0px; + background-color: #EEEEEE; + border-radius: 0px 0px 5px 5px; +} + +.ui.chatroom .talk .avatar, +.ui.chatroom .talk input, +.ui.chatroom .talk .button { + float: left; +} + +.ui.chatroom .talk .avatar img { + display: block; + width: 30px; + height: 30px; + margin-right: 4px; + border-radius: 500rem; +} + +.ui.chatroom .talk input { + border: 1px solid #CCCCCC; + margin: 0px; + width: 196px; + height: 14px; + padding: 8px 5px; + font-size: 12px; + color: #555555; +} + +.ui.chatroom .talk input.focus { + border: 1px solid #AAAAAA; +} + +.ui.chatroom .send { + width: 80px; + height: 32px; + margin-left: -1px; + padding: 4px 12px; + font-size: 12px; + line-height: 23px; + -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset; + border-radius: 0 5px 5px 0; +} + +.ui.chatroom .talk .log-in.button { + display: block; + float: none; + margin-top: -6px; + height: 22px; + border-radius: 0px 0px 4px 4px; +} + +.ui.chatroom .talk .log-in.button i { + vertical-align: text-top; +} + +/* Quirky Flags */ + +.ui.chatroom .log .team.flag { + width: 18px; +} + +/* Chat room Loaded */ + +.ui.chatroom.loading .loader { + display: block; +} + +/* Standard Size */ + +.ui.chatroom { + width: 330px; + height: 370px; +} + +.ui.chatroom .room .container { + width: 3000px; +} + +.ui.chatroom .log { + width: 314px; + height: 278px; + padding: 4px 7px; +} + +.ui.chatroom .room .list { + width: 124px; + height: 278px; + padding: 4px 0px; +} + +.ui.chatroom .room .list .user { + width: 110px; +} + +.ui.chatroom .talk { + height: 40px; +} +/* + * # Semantic - Checkbox + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Checkbox +*******************************/ + +/*-------------- + Standard +---------------*/ + +/*--- Content ---*/ + +.ui.checkbox { + position: relative; + display: inline-block; + min-width: 1em; + height: 1.25em; + line-height: 1em; + outline: none; + vertical-align: middle; +} + +.ui.checkbox input { + position: absolute; + top: 0px; + left: 0px; + opacity: 0 !important; + outline: none; +} + +/*--- Box ---*/ + +.ui.checkbox .box, +.ui.checkbox label { + cursor: pointer; + padding-left: 2em; + outline: none; +} + +.ui.checkbox .box:before, +.ui.checkbox label:before { + position: absolute; + top: 0em; + line-height: 1; + width: 1em; + height: 1em; + left: 0em; + content: ''; + border-radius: 4px; + background: #FFFFFF; + -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease; + transition: background-color 0.3s ease, box-shadow 0.3s ease; + -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2); + box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2); +} + +/*--- Checkbox ---*/ + +.ui.checkbox .box:after, +.ui.checkbox label:after { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + opacity: 0; + content: ''; + position: absolute; + background: transparent; + border: 0.2em solid #333333; + border-top: none; + border-right: none; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.ui.checkbox .box:after, +.ui.checkbox label:after { + top: 0.275em; + left: 0.2em; + width: 0.45em; + height: 0.15em; +} + +/*--- Inside Label ---*/ + +.ui.checkbox label { + color: rgba(0, 0, 0, 0.6); + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +.ui.checkbox label:hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.checkbox input:focus + label { + color: rgba(0, 0, 0, 0.8); +} + +/*--- Outside Label ---*/ + +.ui.checkbox + label { + cursor: pointer; + opacity: 0.85; + vertical-align: middle; +} + +.ui.checkbox + label:hover { + opacity: 1; +} + +/******************************* + States +*******************************/ + +/*--- Hover ---*/ + +.ui.checkbox .box:hover::before, +.ui.checkbox label:hover::before { + -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3); + box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3); +} + +/*--- Down ---*/ + +.ui.checkbox .box:active::before, +.ui.checkbox label:active::before { + background-color: #F5F5F5; +} + +/*--- Focus ---*/ + +.ui.checkbox input:focus + .box:before, +.ui.checkbox input:focus + label:before { + -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3); + box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3); +} + +/*--- Active ---*/ + +.ui.checkbox input:checked + .box:after, +.ui.checkbox input:checked + label:after { + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + filter: alpha(opacity=100); + opacity: 1; +} + +/*--- Disabled ---*/ + +.ui.disabled.checkbox + .box:after, +.ui.checkbox input[disabled] + .box:after, +.ui.disabled.checkbox label, +.ui.checkbox input[disabled] + label { + opacity: 0.4; + color: rgba(0, 0, 0, 0.3); +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Radio +---------------*/ + +.ui.radio.checkbox .box:before, +.ui.radio.checkbox label:before { + min-width: 1em; + height: 1em; + border-radius: 500px; +} + +.ui.radio.checkbox .box:after, +.ui.radio.checkbox label:after { + border: none; + top: 0.2em; + left: 0.2em; + width: 0.6em; + height: 0.6em; + background-color: #555555; + -webkit-transform: none; + -ms-transform: none; + transform: none; + border-radius: 500px; +} + +/*-------------- + Slider +---------------*/ + +.ui.slider.checkbox { + cursor: pointer; + min-width: 3em; +} + +/* Line */ + +.ui.slider.checkbox:after { + position: absolute; + top: 0.5em; + left: 0em; + content: ''; + width: 3em; + height: 2px; + background-color: rgba(0, 0, 0, 0.1); +} + +/* Button */ + +.ui.slider.checkbox .box, +.ui.slider.checkbox label { + padding-left: 4em; +} + +.ui.slider.checkbox .box:before, +.ui.slider.checkbox label:before { + cursor: pointer; + display: block; + position: absolute; + top: -0.25em; + left: 0em; + z-index: 1; + width: 1.5em; + height: 1.5em; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + border-radius: 50rem; + -webkit-transition: left 0.3s ease 0s; + transition: left 0.3s ease 0s; +} + +/* Button Activation Light */ + +.ui.slider.checkbox .box:after, +.ui.slider.checkbox label:after { + opacity: 1; + position: absolute; + content: ''; + top: 0.15em; + left: 0em; + z-index: 2; + margin-left: 0.375em; + border: none; + width: 0.75em; + height: 0.75em; + border-radius: 50rem; + -webkit-transform: none; + -ms-transform: none; + transform: none; + -webkit-transition: background 0.3s ease 0s, + left 0.3s ease 0s; + transition: background 0.3s ease 0s, + left 0.3s ease 0s; +} + +/* Selected Slider Toggle */ + +.ui.slider.checkbox input:checked + .box:before, +.ui.slider.checkbox input:checked + label:before, +.ui.slider.checkbox input:checked + .box:after, +.ui.slider.checkbox input:checked + label:after { + left: 1.75em; +} + +/* Off Color */ + +.ui.slider.checkbox .box:after, +.ui.slider.checkbox label:after { + background-color: #D95C5C; +} + +/* On Color */ + +.ui.slider.checkbox input:checked + .box:after, +.ui.slider.checkbox input:checked + label:after { + background-color: #89B84C; +} + +/*-------------- + Toggle +---------------*/ + +.ui.toggle.checkbox { + cursor: pointer; +} + +.ui.toggle.checkbox .box, +.ui.toggle.checkbox label { + padding-left: 4em; +} + +/* Switch */ + +.ui.toggle.checkbox .box:before, +.ui.toggle.checkbox label:before { + cursor: pointer; + display: block; + position: absolute; + content: ''; + top: -0.25em; + left: 0em; + z-index: 1; + background-color: #FFFFFF; + width: 3em; + height: 1.5em; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset; + border-radius: 50rem; +} + +/* Activation Light */ + +.ui.toggle.checkbox .box:after, +.ui.toggle.checkbox label:after { + opacity: 1; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + content: ''; + position: absolute; + top: 0.15em; + left: 0.5em; + z-index: 2; + border: none; + width: 0.75em; + height: 0.75em; + background-color: #D95C5C; + border-radius: 50rem; + -webkit-transition: background 0.3s ease 0s, + left 0.3s ease 0s; + transition: background 0.3s ease 0s, + left 0.3s ease 0s; +} + +/* Active */ + +.ui.toggle.checkbox:active .box:before, +.ui.toggle.checkbox:active label:before { + background-color: #F5F5F5; +} + +/* Active */ + +.ui.toggle.checkbox input:checked + .box:after, +.ui.toggle.checkbox input:checked + label:after { + left: 1.75em; + background-color: #89B84C; +} + +/*-------------- + Sizes +---------------*/ + +.ui.checkbox { + font-size: 1em; +} + +.ui.large.checkbox { + font-size: 1.25em; +} + +.ui.huge.checkbox { + font-size: 1.5em; +} +/* + * # Semantic - Dimmer + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Dimmer +*******************************/ + +.ui.dimmable { + position: relative; +} + +.ui.dimmer { + display: none; + position: absolute; + top: 0em !important; + left: 0em !important; + width: 0%; + height: 0%; + text-align: center; + vertical-align: middle; + background-color: rgba(0, 0, 0, 0.85); + opacity: 0; + line-height: 1; + -webkit-animation-fill-mode: both; + -ms-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-duration: 0.5s; + -ms-animation-duration: 0.5s; + animation-duration: 0.5s; + -webkit-transition: background-color 0.5s linear; + transition: background-color 0.5s linear; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + z-index: 1000; +} + +/* Dimmer Content */ + +.ui.dimmer > .content { + width: 100%; + height: 100%; + display: table; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.ui.dimmer > .content > div { + display: table-cell; + vertical-align: middle; + color: #FFFFFF; +} + +/* Loose Coupling */ + +.ui.segment > .ui.dimmer { + border-radius: 5px; +} + +.ui.horizontal.segment > .ui.dimmer, +.ui.vertical.segment > .ui.dimmer { + border-radius: 5px; +} + +/******************************* + States +*******************************/ + +.ui.dimmed.dimmable:not(body) { + overflow: hidden; +} + +.ui.dimmed.dimmable > .ui.dimmer, +.ui.active.dimmer { + display: block; + width: 100%; + height: 100%; + opacity: 1; +} + +.ui.disabled.dimmer { + width: 0em !important; + height: 0em !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Page +---------------*/ + +.ui.page.dimmer { + position: fixed; + -webkit-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-perspective: 2000px; + -ms-perspective: 2000px; + perspective: 2000px; + -webkit-transform-origin: center center; + -ms-transform-origin: center center; + transform-origin: center center; +} + +.ui.scrolling.dimmable > .dimmer, +.ui.scrolling.page.dimmer { + position: absolute; +} + +/*-------------- + Aligned +---------------*/ + +.ui.dimmer > .top.aligned.content > * { + vertical-align: top; +} + +.ui.dimmer > .bottom.aligned.content > * { + vertical-align: bottom; +} + +/*-------------- + Inverted +---------------*/ + +.ui.inverted.dimmer { + background-color: #fff; + border: 1px solid #ccc; +} + +.ui.inverted.dimmer > .content > * { + color: rgba(0, 0, 0, 0.8); +} + +/*-------------- + Simple +---------------*/ + +/* Displays without javascript */ + +.ui.simple.dimmer { + display: block; + overflow: hidden; + opacity: 1; + z-index: -100; + background-color: rgba(0, 0, 0, 0); +} + +.ui.dimmed.dimmable > .ui.simple.dimmer { + overflow: visible; + opacity: 1; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.85); + z-index: 1; +} + +.ui.simple.inverted.dimmer { + background-color: rgba(255, 255, 255, 0); +} + +.ui.dimmed.dimmable > .ui.simple.inverted.dimmer { + background-color: rgba(255, 255, 255, 0.85); +} +/* + * # Semantic - Dropdown + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Dropdown +*******************************/ + +.ui.dropdown { + cursor: pointer; + position: relative; + display: inline-block; + line-height: 1; + -webkit-transition: border-radius 0.1s ease, width 0.2s ease; + transition: border-radius 0.1s ease, width 0.2s ease; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -moz-tap-highlight-color: rgba(0, 0, 0, 0); + tap-highlight-color: rgba(0, 0, 0, 0); +} + +/******************************* + Content +*******************************/ + +/*-------------- + Menu +---------------*/ + +.ui.dropdown .menu { + cursor: auto; + position: absolute; + display: none; + top: 100%; + margin: 0em; + background-color: #FFFFFF; + min-width: 100%; + white-space: nowrap; + font-size: 0.875em; + text-shadow: none; + -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1); + border-radius: 0px 0px 0.325em 0.325em; + -webkit-transition: opacity 0.2s ease; + transition: opacity 0.2s ease; + z-index: 11; +} + +/*-------------- + Icon +---------------*/ + +.ui.dropdown > .dropdown.icon { + width: auto; + margin: 0em 0em 0em 1em; +} + +.ui.dropdown > .dropdown.icon:before { + content: "\f0d7"; +} + +.ui.dropdown .menu .item .dropdown.icon { + width: auto; + float: right; + margin: 0em 0em 0em 0.5em; +} + +.ui.dropdown .menu .item .dropdown.icon:before { + content: "\f0da"; +} + +/*-------------- + Text +---------------*/ + +.ui.dropdown > .text { + display: inline-block; + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +/* Flyout Direction */ + +.ui.dropdown .menu { + left: 0px; +} + +/*-------------- + Sub Menu +---------------*/ + +.ui.dropdown .menu .menu { + top: 0% !important; + left: 100% !important; + margin: 0em !important; + border-radius: 0 0.325em 0.325em 0em !important; +} + +.ui.dropdown .menu .menu:after { + display: none; +} + +.ui.dropdown .menu .item { + cursor: pointer; + border: none; + border-top: 1px solid rgba(0, 0, 0, 0.05); + height: auto; + font-size: 0.875em; + display: block; + color: rgba(0, 0, 0, 0.75); + padding: 0.85em 1em !important; + font-size: 0.875rem; + text-transform: none; + font-weight: normal; + text-align: left; + -webkit-touch-callout: none; +} + +.ui.dropdown .menu .item:before { + display: none; +} + +.ui.dropdown .menu .item .icon { + margin-right: 0.75em; +} + +.ui.dropdown .menu .item:first-child { + border-top: none; +} + +/******************************* + Coupling +*******************************/ + +/* Opposite on last menu on right */ + +.ui.menu .right.menu .dropdown:last-child .menu, +.ui.buttons > .ui.dropdown:last-child .menu { + left: auto; + right: 0px; +} + +.ui.vertical.menu .dropdown.item > .dropdown.icon:before { + content: "\f0da"; +} + +.ui.dropdown.icon.button > .dropdown.icon { + margin: 0em; +} + +/******************************* + States +*******************************/ + +/* Dropdown Visible */ + +.ui.visible.dropdown > .menu { + display: block; +} + +/* Menu Item Hover */ + +.ui.dropdown .menu .item:hover { + background-color: rgba(0, 0, 0, 0.02); + z-index: 12; +} + +/* Menu Item Active */ + +.ui.dropdown .menu .active.item { + background-color: rgba(0, 0, 0, 0.06) !important; + border-left: none; + border-color: transparent !important; + -webkit-box-shadow: none; + -moz-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + z-index: 12; +} + +/* Default Text */ + +.ui.dropdown > .default.text, +.ui.default.dropdown > .text { + color: rgba(0, 0, 0, 0.5); +} + +.ui.dropdown:hover > .default.text, +.ui.default.dropdown:hover > .text { + color: rgba(0, 0, 0, 0.8); +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Simple +---------------*/ + +/* Displays without javascript */ + +.ui.simple.dropdown .menu:before, +.ui.simple.dropdown .menu:after { + display: none; +} + +.ui.simple.dropdown .menu { + display: block; + overflow: hidden; + top: -9999px !important; + position: absolute; + opacity: 0; + width: 0; + height: 0; + -webkit-transition: opacity 0.2s ease-out; + transition: opacity 0.2s ease-out; +} + +.ui.simple.active.dropdown, +.ui.simple.dropdown:hover { + border-bottom-left-radius: 0em !important; + border-bottom-right-radius: 0em !important; +} + +.ui.simple.active.dropdown > .menu, +.ui.simple.dropdown:hover > .menu { + overflow: visible; + width: auto; + height: auto; + top: 100% !important; + opacity: 1; +} + +.ui.simple.dropdown > .menu .item:active > .menu, +.ui.simple.dropdown:hover > .menu .item:hover > .menu { + overflow: visible; + width: auto; + height: auto; + top: 0% !important; + left: 100% !important; + opacity: 1; +} + +.ui.simple.disabled.dropdown:hover .menu { + display: none; + height: 0px; + width: 0px; + overflow: hidden; +} + +/*-------------- + Selection +---------------*/ + +/* Displays like a select box */ + +.ui.selection.dropdown { + cursor: pointer; + display: inline-block; + word-wrap: break-word; + white-space: normal; + background-color: #FFFFFF; + padding: 0.5em 1em; + line-height: 1.33; + color: rgba(0, 0, 0, 0.8); + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important; + border-radius: 0.3125em !important; + font-size:14px; + font-size:0.875rem; +} + +.ui.selection.dropdown select { + display: none; +} + +.ui.selection.dropdown > .dropdown.icon { + opacity: 0.7; + margin: 0.2em 0em 0.2em 1.25em; + -webkit-transition: opacity 0.2s ease-out; + transition: opacity 0.2s ease-out; +} + +.ui.selection.dropdown, +.ui.selection.dropdown .menu { + top: 100%; + -webkit-transition: -webkit-box-shadow 0.2s ease-out; + transition: box-shadow 0.2s ease-out; +} + +.ui.selection.dropdown .menu { + max-height: 312px; + overflow-x: hidden; + overflow-y: auto; + -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0; + box-shadow: 0px 1px 0px 1px #E0E0E0; + border-radius: 0px 0px 0.325em 0.325em; +} + +.ui.selection.dropdown .menu:after, +.ui.selection.dropdown .menu:before { + display: none; +} + +.ui.selection.dropdown .menu img { + height: 2.5em; + display: inline-block; + vertical-align: middle; + margin-right: 0.5em; +} + +/* Hover */ + +.ui.selection.dropdown:hover { + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) !important; + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) !important; +} + +.ui.selection.dropdown:hover .menu { + -webkit-box-shadow: 0px 1px 0px 1px #D3D3D3; + box-shadow: 0px 1px 0px 1px #D3D3D3; +} + +.ui.selection.dropdown:hover > .dropdown.icon { + opacity: 1; +} + +/* Visible */ + +.ui.visible.selection.dropdown { + border-bottom-left-radius: 0em !important; + border-bottom-right-radius: 0em !important; +} + +/* Active */ + +.ui.active.selection.dropdown { + border-radius: 0.3125em 0.3125em 0em 0em !important; +} + +.ui.active.selection.dropdown > .dropdown.icon { + opacity: 1; +} + +/*-------------- + Fluid +---------------*/ + +.ui.fluid.dropdown { + display: block; +} + +.ui.fluid.dropdown > .dropdown.icon { + float: right; +} + +/*-------------- + Inline +---------------*/ + +.ui.inline.dropdown { + cursor: pointer; + display: inline-block; + color: inherit; +} + +.ui.inline.dropdown .dropdown.icon { + margin: 0em 0.5em 0em 0.25em; +} + +.ui.inline.dropdown .text { + font-weight: bold; +} + +.ui.inline.dropdown .menu { + cursor: auto; + margin-top: 0.25em; + border-radius: 0.325em; +} + +/*-------------- + Floating +---------------*/ + +.ui.floating.dropdown .menu { + left: 0; + right: auto; + margin-top: 0.5em !important; + border-radius: 0.325em; +} + +/*-------------- + Pointing +---------------*/ + +.ui.pointing.dropdown .menu { + top: 100%; + margin-top: 0.75em; + border-radius: 0.325em; +} + +.ui.pointing.dropdown .menu:after { + display: block; + position: absolute; + pointer-events: none; + content: " "; + visibility: visible; + width: 0.5em; + height: 0.5em; + -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05); + box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05); + background-image: none; + background-color: #FFFFFF; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + z-index: 2; +} + +.ui.pointing.dropdown .menu .active.item:first-child { + background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03)); + background: transparent-webkit-gradient(linear, top left, bottom left, from(transparent), to(rgba(0, 0, 0, 0.03))); + background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03)); +} + +/* Directions */ + +.ui.pointing.dropdown .menu:after { + top: -0.25em; + left: 50%; + margin: 0em 0em 0em -0.25em; +} + +.ui.top.left.pointing.dropdown .menu { + top: 100%; + bottom: auto; + left: 0%; + right: auto; + margin: 0.75em 0em 0em; +} + +.ui.top.left.pointing.dropdown .menu:after { + top: -0.25em; + left: 1.25em; + right: auto; + margin: 0em; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.ui.top.right.pointing.dropdown .menu { + top: 100%; + bottom: auto; + right: 0%; + left: auto; + margin: 0.75em 0em 0em; +} + +.ui.top.right.pointing.dropdown .menu:after { + top: -0.25em; + left: auto; + right: 1.25em; + margin: 0em; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.ui.left.pointing.dropdown .menu { + top: 0%; + left: 100%; + right: auto; + margin: 0em 0em 0em 0.75em; +} + +.ui.left.pointing.dropdown .menu:after { + top: 1em; + left: -0.25em; + margin: 0em 0em 0em 0em; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.ui.right.pointing.dropdown .menu { + top: 0%; + left: auto; + right: 100%; + margin: 0em 0.75em 0em 0em; +} + +.ui.right.pointing.dropdown .menu:after { + top: 1em; + left: auto; + right: -0.25em; + margin: 0em 0em 0em 0em; + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); +} +/* + * # Semantic - Modal + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Modal +*******************************/ + +.ui.modal { + display: none; + position: fixed; + z-index: 1001; + top: 50%; + left: 50%; + text-align: left; + width: 90%; + margin-left: -45%; + background-color: #FFFFFF; + border: 1px solid #DDDDDD; + border-radius: 5px; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +/******************************* + Content +*******************************/ + +/*-------------- + Close +---------------*/ + +.ui.modal > .close { + cursor: pointer; + position: absolute; + opacity: 0.8; + font-size: 1.25em; + top: -1.75em; + right: -1.75em; + color: #FFFFFF; +} + +.ui.modal > .close:hover { + opacity: 1; +} + +/*-------------- + Header +---------------*/ + +.ui.modal > .header { + margin: 0em; + padding: 1.5rem 2rem; + font-size: 1.6em; + font-weight: bold; + border-radius: 0.325em 0.325em 0px 0px; +} + +/*-------------- + Content +---------------*/ + +.ui.modal > .content { + display: table; + width: 100%; + position: relative; + padding: 2em; + background-color: #F4F4F4; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.modal > .content > .left:not(.ui) { + display: table-cell; + padding-right: 1.5%; + min-width: 25%; +} + +.ui.modal > .content > .right:not(.ui) { + display: table-cell; + padding-left: 1.5%; + vertical-align: top; +} + +.ui.modal > .content > .left:not(.ui) > i.icon { + font-size: 8em; + margin: 0em; +} + +.ui.modal > .content p { + line-height: 1.6; +} + +/*-------------- + Actions +---------------*/ + +.ui.modal .actions { + padding: 1rem 2rem; + text-align: right; +} + +.ui.modal .actions > .button { + margin-left: 0.75em; +} + +/*------------------- + Sizing +--------------------*/ + +/* Mobile Only */ + +@media only screen and (max-width: 768px) { + .ui.modal .content > .left:not(.ui) { + display: block; + padding: 0em 0em 1em; + } + + .ui.modal .content > .right:not(.ui) { + display: block; + padding: 1em 0em 0em; + -webkit-box-shadow: none; + box-shadow: none; + } + + .ui.modal .content .image { + width: auto !important; + max-width: 100%; + } + + .ui.modal .actions { + padding-bottom: 0em; + } + + .ui.modal .actions > .buttons, + .ui.modal .actions > .button { + margin-bottom: 1em; + } +} + +/* Tablet and Mobile */ + +@media only screen and (max-width: 998px) { + .ui.modal { + width: 92%; + margin-left: -46%; + } + + .ui.modal > .close { + color: rgba(0, 0, 0, 0.8); + top: 1.5rem; + right: 1rem; + } +} + +/* Computer / Responsive */ + +@media only screen and (min-width: 998px) { + .ui.modal { + width: 74%; + margin-left: -37%; + } +} + +@media only screen and (min-width: 1500px) { + .ui.modal { + width: 56%; + margin-left: -28%; + } +} + +@media only screen and (min-width: 1750px) { + .ui.modal { + width: 42%; + margin-left: -21%; + } +} + +@media only screen and (min-width: 2000px) { + .ui.modal { + width: 36%; + margin-left: -18%; + } +} + +/******************************* + Types +*******************************/ + +.ui.basic.modal { + background-color: transparent; + border: none; + color: #FFFFFF; +} + +.ui.basic.modal > .close { + top: 1.5rem; + right: 1rem; +} + +.ui.basic.modal .content { + background-color: transparent; +} + +/******************************* + Variations +*******************************/ + +/* A modal that cannot fit on the page */ + +.ui.modal.scrolling { + position: absolute; + margin-top: 10px; +} + +/******************************* + States +*******************************/ + +.ui.active.modal { + display: block; +} + +/*-------------- + Size +---------------*/ + +/* Small */ + +.ui.small.modal > .header { + font-size: 1.3em; +} + +@media only screen and (min-width: 998px) { + .ui.small.modal { + width: 58%; + margin-left: -29%; + } +} + +@media only screen and (min-width: 1500px) { + .ui.small.modal { + width: 40%; + margin-left: -20%; + } +} + +@media only screen and (min-width: 1750px) { + .ui.small.modal { + width: 26%; + margin-left: -13%; + } +} + +@media only screen and (min-width: 2000px) { + .ui.small.modal { + width: 20%; + margin-left: -10%; + } +} + +/* Large */ + +@media only screen and (min-width: 998px) { + .ui.large.modal { + width: 74%; + margin-left: -37%; + } +} + +@media only screen and (min-width: 1500px) { + .ui.large.modal { + width: 64%; + margin-left: -32%; + } +} + +@media only screen and (min-width: 1750px) { + .ui.large.modal { + width: 54%; + margin-left: -27%; + } +} + +@media only screen and (min-width: 2000px) { + .ui.large.modal { + width: 44%; + margin-left: -22%; + } +} +/* + * # Semantic - Nag + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Nag +*******************************/ + +.ui.nag { + display: none; + opacity: 0.95; + position: relative; + top: 0px; + left: 0%; + z-index: 101; + min-height: 0; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin: 0em; + line-height: 3em; + padding: 0em 1em; + background-color: #555555; + -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); + box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); + font-size: 1em; + text-align: center; + color: rgba(255, 255, 255, 0.8); + border-radius: 0px 0px 5px 5px; + -webkit-transition: 0.2s background; + transition: 0.2s background; +} + +a.ui.nag { + cursor: pointer; +} + +.ui.nag > .title { + display: inline-block; + margin: 0em 0.5em; + color: #FFFFFF; +} + +.ui.nag > .close.icon { + cursor: pointer; + opacity: 0.4; + position: absolute; + top: 50%; + right: 1em; + margin-top: -0.5em; + color: #FFFFFF; + -webkit-transition: 0.1s opacity; + transition: 0.1s opacity; +} + +/******************************* + States +*******************************/ + +/* Hover */ + +.ui.nag:hover { + opacity: 1; +} + +.ui.nag .close:hover { + opacity: 1; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Static +---------------*/ + +.ui.overlay.nag { + position: absolute; + display: block; +} + +/*-------------- + Fixed +---------------*/ + +.ui.fixed.nag { + position: fixed; +} + +/*-------------- + Bottom +---------------*/ + +.ui.botton.nag { + border-radius: 5px 5px 0px 0px; +} + +.ui.fixed.bottom.nags, +.ui.fixed.bottom.nag { + top: auto; + bottom: 0px; +} + +/*-------------- + White +---------------*/ + +.ui.white.nags .nag, +.ui.white.nag { + background-color: #F1F1F1; + text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8); + color: #ACACAC; +} + +.ui.white.nags .nag .close, +.ui.white.nags .nag .title, +.ui.white.nag .close, +.ui.white.nag .title { + color: #333333; +} + +/******************************* + Groups +*******************************/ + +.ui.nags .nag { + border-radius: 0px; +} +/* + * # Semantic - Popup + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Popup +*******************************/ + +.ui.popup { + display: none; + position: absolute; + top: 0px; + right: 0px; + z-index: 900; + border: 1px solid rgba(0, 0, 0, 0.1); + max-width: 250px; + background-color: #FFFFFF; + padding: 0.8em 1.2em; + font-size: 0.875rem; + font-weight: normal; + font-style: normal; + color: rgba(0, 0, 0, 0.7); + border-radius: 0.2em; + -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1); +} + +.ui.popup .header { + padding: 0em 0em 0.5em; + font-size: 1.125em; + line-height: 1.2; + font-weight: bold; +} + +.ui.popup:before { + position: absolute; + content: ""; + width: 0.75em; + height: 0.75rem; + background-image: none; + background-color: #FFFFFF; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + z-index: 2; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); +} + +.ui.popup .ui.button { + width: 100%; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Spacing +---------------*/ + +.ui.popup { + margin: 0em; +} + +.ui.popup.bottom { + margin: 0.75em 0em 0em; +} + +.ui.popup.top { + margin: 0em 0em 0.75em; +} + +.ui.popup.left.center { + margin: 0em 0.75em 0em 0em; +} + +.ui.popup.right.center { + margin: 0em 0em 0em 0.75em; +} + +.ui.popup.center { + margin-left: -1.25em; +} + +/*-------------- + Pointer +---------------*/ + +/*--- Below ---*/ + +.ui.bottom.center.popup:before { + margin-left: -0.4em; + top: -0.4em; + left: 50%; + right: auto; + bottom: auto; + -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); + box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); +} + +.ui.bottom.left.popup { + margin-right: -2em; +} + +.ui.bottom.left.popup:before { + top: -0.4em; + right: 1em; + bottom: auto; + left: auto; + margin-left: 0em; + -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); + box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); +} + +.ui.bottom.right.popup { + margin-left: -2em; +} + +.ui.bottom.right.popup:before { + top: -0.4em; + left: 1em; + right: auto; + bottom: auto; + margin-left: 0em; + -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); + box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2); +} + +/*--- Above ---*/ + +.ui.top.center.popup:before { + top: auto; + right: auto; + bottom: -0.4em; + left: 50%; + margin-left: -0.4em; +} + +.ui.top.left.popup { + margin-right: -2em; +} + +.ui.top.left.popup:before { + bottom: -0.4em; + right: 1em; + top: auto; + left: auto; + margin-left: 0em; +} + +.ui.top.right.popup { + margin-left: -2em; +} + +.ui.top.right.popup:before { + bottom: -0.4em; + left: 1em; + top: auto; + right: auto; + margin-left: 0em; +} + +/*--- Left Center ---*/ + +.ui.left.center.popup:before { + top: 50%; + right: -0.35em; + bottom: auto; + left: auto; + margin-top: -0.4em; + -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2); + box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2); +} + +/*--- Right Center ---*/ + +.ui.right.center.popup:before { + top: 50%; + left: -0.35em; + bottom: auto; + right: auto; + margin-top: -0.4em; + -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2); +} + +/******************************* + States +*******************************/ + +.ui.loading.popup { + display: block; + visibility: hidden; +} + +.ui.visible.popup { + display: block; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Size +---------------*/ + +.ui.small.popup { + font-size: 0.75rem; +} + +.ui.large.popup { + font-size: 1rem; +} + +/*-------------- + Colors +---------------*/ + +/* Inverted colors */ + +.ui.inverted.popup { + background-color: #333333; + border: none; + color: #FFFFFF; + -webkit-box-shadow: none; + box-shadow: none; +} + +.ui.inverted.popup .header { + background-color: rgba(0, 0, 0, 0.2); + color: #FFFFFF; +} + +.ui.inverted.popup:before { + background-color: #333333; + -webkit-box-shadow: none; + box-shadow: none; +} +/* + * # Semantic - Rating + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Rating +*******************************/ + +.ui.rating { + display: inline-block; + font-size: 0em; + vertical-align: baseline; + margin: 0em 0.5rem 0em 0em; +} + +.ui.rating:last-child { + margin-right: 0em; +} + +.ui.rating:before { + display: block; + content: ''; + visibility: hidden; + clear: both; + height: 0; +} + +/* Icon */ + +.ui.rating .icon { + cursor: default; + margin: 0em; + width: 1em; + height: auto; + padding: 0em; + color: rgba(0, 0, 0, 0.15); + font-weight: normal; + font-style: normal; +} + +.ui.rating .icon:before { + content: "\2605"; + -webkit-transition: color 0.3s ease, + opacity 0.3s ease; + transition: color 0.3s ease, + opacity 0.3s ease; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Star +--------------------*/ + +.ui.star.rating .icon { + width: 1.2em; +} + +/* Star */ + +.ui.star.rating .icon:before { + content: '\f006'; + font-family: 'Icons'; +} + +/* Active Star */ + +.ui.star.rating .active.icon:before { + content: '\f005'; + font-family: 'Icons'; +} + +/*------------------- + Heart +--------------------*/ + +.ui.heart.rating .icon { + width: 1.2em; +} + +.ui.heart.rating .icon:before { + content: '\f08a'; + font-family: 'Icons'; +} + +/* Active */ + +.ui.heart.rating .active.icon:before { + content: '\f004'; + font-family: 'Icons'; +} + +.ui.heart.rating .active.icon { + color: #EF404A !important; +} + +/* Hovered */ + +.ui.heart.rating .hover.icon, +.ui.heart.rating .active.hover.icon { + color: #FF2733 !important; +} + +/******************************* + States +*******************************/ + +/*------------------- + Active +--------------------*/ + +/* active rating */ + +.ui.active.rating .icon { + cursor: pointer; +} + +/* active icons */ + +.ui.rating .active.icon { + color: #FFCB08 !important; +} + +/*------------------- + Hover +--------------------*/ + +/* rating */ + +.ui.rating.hover .active.icon { + opacity: 0.5; +} + +/* icon */ + +.ui.rating .icon.hover, +.ui.rating .icon.hover.active { + opacity: 1; + color: #FFB70A !important; +} + +/******************************* + Variations +*******************************/ + +.ui.small.rating .icon { + font-size: 0.75rem; +} + +.ui.rating .icon { + font-size: 1rem; +} + +.ui.large.rating .icon { + font-size: 1.5rem; + vertical-align: middle; +} + +.ui.huge.rating .icon { + font-size: 2rem; + vertical-align: middle; +} +/* + * # Semantic - Search + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Search +*******************************/ + +.ui.search { + position: relative; + text-shadow: none; + font-style: normal; + font-weight: normal; +} + +.ui.search input { + border-radius: 500rem; +} + +/*-------------- + Button +---------------*/ + +.ui.search > .button { + position: relative; + z-index: 2; + float: right; + margin: 0px 0px 0px -15px; + padding: 6px 15px 7px; + border-radius: 0px 15px 15px 0px; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*-------------- + Results +---------------*/ + +.ui.search .results { + display: none; + position: absolute; + z-index: 999; + top: 100%; + left: 0px; + overflow: hidden; + background-color: #FFFFFF; + margin-top: 0.5em; + width: 380px; + font-size: 0.875em; + line-height: 1.2; + color: #555555; + border-radius: 3px; + -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; + box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; +} + +.ui.search .result { + cursor: pointer; + overflow: hidden; + padding: 0.5em 1em; +} + +.ui.search .result:first-child { + border-top: none; +} + +.ui.search .result .image { + background: #F0F0F0; + margin-right: 10px; + float: left; + overflow: hidden; + border-radius: 3px; + width: 38px; + height: 38px; +} + +.ui.search .result .image img { + display: block; + width: 38px; + height: 38px; +} + +.ui.search .result .image ~ .info { + float: none; + margin-left: 50px; +} + +.ui.search .result .info { + float: left; +} + +.ui.search .result .title { + font-weight: bold; + color: rgba(0, 0, 0, 0.8); +} + +.ui.search .result .description { + color: rgba(0, 0, 0, 0.6); +} + +.ui.search .result .price { + float: right; + color: #5BBD72; + font-weight: bold; +} + +/*-------------- + Message +---------------*/ + +.ui.search .message { + padding: 1em; +} + +.ui.search .message .text .title { + margin: 0em 0em 0.5rem; + font-size: 1.25rem; + font-weight: bold; + color: rgba(0, 0, 0, 0.8); +} + +.ui.search .message .text .description { + margin: 0em; + font-size: 1rem; + color: rgba(0, 0, 0, 0.5); +} + +/*-------------- + Categories +---------------*/ + +.ui.search .results .category { + background-color: #FAFAFA; + border-top: 1px solid rgba(0, 0, 0, 0.1); + -webkit-transition: background 0.2s ease-in; + transition: background 0.2s ease-in; +} + +.ui.search .results .category:first-child { + border-top: none; +} + +.ui.search .results .category > .name { + float: left; + padding: 12px 0px 0px 8px; + font-weight: bold; + color: #777777; + text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8); +} + +.ui.search .results .category .result { + background-color: #FFFFFF; + margin-left: 80px; + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +/* View All Results */ + +.ui.search .all { + display: block; + border-top: 1px solid rgba(0, 0, 0, 0.1); + background-color: #FAFAFA; + height: 2em; + line-height: 2em; + color: rgba(0, 0, 0, 0.6); + font-weight: bold; + text-align: center; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.search .result:hover, +.ui.search .category .result:hover { + background-color: #F8F8F8; +} + +.ui.search .all:hover { + background-color: #F0F0F0; +} + +/*-------------- + Loading +---------------*/ + +.ui.search.loading .input .icon { + background: url(../images/loader-mini.gif) no-repeat 50% 50%; +} + +.ui.search.loading .input .icon:before, +.ui.search.loading .input .icon:after { + display: none; +} + +/*-------------- + Active +---------------*/ + +.ui.search .results .category.active { + background-color: #F1F1F1; +} + +.ui.search .results .category.active > .name { + color: #333333; +} + +.ui.search .result.active, +.ui.search .category .result.active { + background-color: #FBFBFB; +} + +.ui.search .result.active .title { + color: #000000; +} + +.ui.search .result.active .description { + color: #555555; +} + +/******************************* + Variations +*******************************/ + +/* Large */ + +.ui.search .large.result .image, +.ui.search .large.result .image img { + width: 50px; + height: 50px; +} + +.ui.search .large.results .indented.info { + margin-left: 65px; +} + +.ui.search .large.results .info .title { + font-size: 16px; +} + +.ui.search .large.results .info .description { + font-size: 11px; +} +/* + * # Semantic - Shape + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Shape +*******************************/ + +.ui.shape { + display: inline-block; + position: relative; + -webkit-perspective: 2000px; + -ms-perspective: 2000px; + perspective: 2000px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.shape .sides { + -webkit-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.ui.shape .side { + opacity: 1; + width: 100%; + margin: 0em !important; + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ui.shape .side { + display: none; +} + +/******************************* + Types +*******************************/ + +.ui.cube.shape .side { + min-width: 15em; + height: 15em; + padding: 2em; + background-color: #E6E6E6; + color: rgba(0, 0, 0, 0.6); + -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3); + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3); +} + +.ui.cube.shape .side > .content { + width: 100%; + height: 100%; + display: table; + text-align: center; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.ui.cube.shape .side > .content > div { + display: table-cell; + vertical-align: middle; + font-size: 2em; +} + +/******************************* + Variations +*******************************/ + +.ui.text.shape.animating .sides { + position: static; +} + +.ui.text.shape .side { + white-space: nowrap; +} + +.ui.text.shape .side > * { + white-space: normal; +} + +/******************************* + States +*******************************/ + +/*-------------- + Loading +---------------*/ + +.ui.loading.shape { + position: absolute; + top: -9999px; + left: -9999px; +} + +/*-------------- + Animating +---------------*/ + +.ui.shape .animating.side { + position: absolute; + top: 0px; + left: 0px; + z-index: 100; +} + +.ui.shape .hidden.side { + opacity: 0.4; +} + +/*-------------- + CSS +---------------*/ + +.ui.shape.animating { + -webkit-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} + +.ui.shape.animating .sides { + position: absolute; +} + +.ui.shape.animating .sides { + -webkit-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} + +.ui.shape.animating .side { + -webkit-transition: opacity 0.6s ease-in-out; + transition: opacity 0.6s ease-in-out; +} + +/*-------------- + Active +---------------*/ + +.ui.shape .active.side { + display: block; +} +/* + * # Semantic - Sidebar + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Sidebar +*******************************/ + +body { + -webkit-transition: margin 0.3s ease, -webkit-transform 0.3s ease; + transition: margin 0.3s ease, + transform 0.3s ease; +} + +.ui.sidebar { + position: fixed; + margin: 0 !important; + height: 100% !important; + border-radius: 0px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -ms-overflow-y: auto; + overflow-y: auto; + top: 0px; + left: 0px; + z-index: 999; + -webkit-transition: margin-left 0.3s ease, margin-top 0.3s ease; + transition: margin-left 0.3s ease, margin-top 0.3s ease; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Direction +--------------------*/ + +.ui.right.sidebar { + left: 100%; + margin: 0px !important; +} + +.ui.top.sidebar { + width: 100% !important; +} + +.ui.bottom.sidebar { + width: 100% !important; + top: 100%; + margin: 0px !important; +} + +/******************************* + States +*******************************/ + +.ui.active.sidebar { + margin-left: 0px !important; +} + +.ui.active.top.sidebar, +.ui.active.bottom.sidebar { + margin-top: 0px !important; +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Formatted +--------------------*/ + +.ui.styled.sidebar { + padding: 1em 1.5em; + background-color: #FFFFFF; + -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1); + box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1); +} + +.ui.styled.very.thin.sidebar { + padding: 0.5em; +} + +.ui.styled.thin.sidebar { + padding: 1em; +} + +/*------------------- + Floating +--------------------*/ + +.ui.floating.sidebar { + -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2); + box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2); +} + +.ui.right.floating.sidebar { + -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2); + box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2); +} + +.ui.top.floating.sidebar { + -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2); +} + +.ui.bottom.floating.sidebar { + -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2); +} + +/*------------------- + Width +--------------------*/ + +/* Very Thin */ + +.ui.very.thin.sidebar { + width: 60px !important; + margin-left: -60px !important; +} + +.ui.active.very.thin.sidebar { + margin-left: 0px !important; +} + +.ui.active.right.very.thin.sidebar { + margin-left: -60px !important; +} + +/* Thin */ + +.ui.thin.sidebar { + width: 200px !important; + margin-left: -200px !important; +} + +.ui.active.thin.sidebar { + margin-left: 0px !important; +} + +.ui.active.right.thin.sidebar { + margin-left: -200px !important; +} + +/* Standard */ + +.ui.sidebar { + width: 275px !important; + margin-left: -275px !important; +} + +.ui.active.sidebar { + margin-left: 0px !important; +} + +.ui.active.right.sidebar { + margin-left: -275px !important; +} + +/* Wide */ + +.ui.wide.sidebar { + width: 350px !important; + margin-left: -350px !important; +} + +.ui.active.wide.sidebar { + margin-left: 0px !important; +} + +.ui.active.right.wide.sidebar { + margin-left: -350px !important; +} + +/* Very Wide */ + +.ui.very.wide.sidebar { + width: 475px !important; + margin-left: -475px !important; +} + +.ui.active.very.wide.sidebar { + margin-left: 0px !important; +} + +.ui.active.right.very.wide.sidebar { + margin-left: -475px !important; +} + +/*------------------- + Height +--------------------*/ + +/* Standard */ + +.ui.top.sidebar { + margin: -40px 0px 0px 0px !important; +} + +.ui.top.sidebar, +.ui.bottom.sidebar { + height: 40px !important; +} + +.ui.active.bottom.sidebar { + margin-top: -40px !important; +} +/* + * # Semantic - Tab + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + UI Tabs +*******************************/ + +.ui.tab { + display: none; +} + +/******************************* + States +*******************************/ + +/*-------------------- + Active +---------------------*/ + +.ui.tab.active, +.ui.tab.open { + display: block; +} + +/*-------------------- + Loading +---------------------*/ + +.ui.tab.loading { + position: relative; + overflow: hidden; + display: block; + min-height: 250px; + text-indent: -10000px; +} + +.ui.tab.loading * { + position: relative !important; + left: -10000px !important; +} + +.ui.tab.loading:after { + position: absolute; + top: 50px; + left: 50%; + content: 'Loading...'; + margin-left: -32px; + text-indent: 5px; + color: rgba(0, 0, 0, 0.4); + width: 100%; + height: 100%; + padding-top: 75px; + background: url(../images/loader-large.gif) no-repeat 0px 0px; + visibility: visible; +} +/******************************* + Semantic - Transition + Author: Jack Lukic + + CSS animation definitions for + transition module + +*******************************/ + +/* + Some transitions adapted from Animate CSS + https://github.com/daneden/animate.css +*/ + +.ui.transition { + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-timing-function: ease; + animation-timing-function: ease; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +/******************************* + States +*******************************/ + +.ui.animating.transition { + -webkit-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); +} + +/* Loading */ + +.ui.loading.transition { + position: absolute; + top: -999999px; + left: -99999px; +} + +/* Hidden */ + +.ui.hidden.transition { + display: none; +} + +/* Visible */ + +.ui.visible.transition { + display: block; + visibility: visible; +} + +/* Disabled */ + +.ui.disabled.transition { + -webkit-animation-play-state: paused; + animation-play-state: paused; +} + +/******************************* + Variations +*******************************/ + +.ui.looping.transition { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +/******************************* + Types +*******************************/ + +/*-------------- + Emphasis +---------------*/ + +.ui.flash.transition { + -webkit-animation-name: flash; + animation-name: flash; +} + +.ui.shake.transition { + -webkit-animation-name: shake; + animation-name: shake; +} + +.ui.bounce.transition { + -webkit-animation-name: bounce; + animation-name: bounce; +} + +.ui.tada.transition { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +.ui.pulse.transition { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +/*-------------- + Flips +---------------*/ + +.ui.flip.transition.in, +.ui.flip.transition.out { + -webkit-perspective: 2000px; + -ms-perspective: 2000px; + perspective: 2000px; +} + +.ui.horizontal.flip.transition.in, +.ui.horizontal.flip.transition.out { + -webkit-animation-name: horizontalFlip; + animation-name: horizontalFlip; +} + +.ui.horizontal.flip.transition.out { + -webkit-animation-name: horizontalFlipOut; + animation-name: horizontalFlipOut; +} + +.ui.vertical.flip.transition.in, +.ui.vertical.flip.transition.out { + -webkit-animation-name: verticalFlip; + animation-name: verticalFlip; +} + +.ui.vertical.flip.transition.out { + -webkit-animation-name: verticalFlipOut; + animation-name: verticalFlipOut; +} + +/*-------------- + Fades +---------------*/ + +.ui.fade.transition.in { + -webkit-animation-name: fade; + animation-name: fade; +} + +.ui.fade.transition.out { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +.ui.fade.up.transition.in { + -webkit-animation-name: fadeUp; + animation-name: fadeUp; +} + +.ui.fade.up.transition.out { + -webkit-animation-name: fadeUpOut; + animation-name: fadeUpOut; +} + +.ui.fade.down.transition.in { + -webkit-animation-name: fadeDown; + animation-name: fadeDown; +} + +.ui.fade.down.transition.out { + -webkit-animation-name: fadeDownOut; + animation-name: fadeDownOut; +} + +/*-------------- + Scale +---------------*/ + +.ui.scale.transition.in { + -webkit-animation-name: scale; + animation-name: scale; +} + +.ui.scale.transition.out { + -webkit-animation-name: scaleOut; + animation-name: scaleOut; +} + +/*-------------- + Slide +---------------*/ + +.ui.slide.down.transition.in { + -webkit-animation-name: slide; + animation-name: slide; + -webkit-transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + -webkit-transform-origin: 50% 0%; +} + +.ui.slide.down.transition.out { + -webkit-animation-name: slideOut; + animation-name: slideOut; + -webkit-transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + transform-origin: 50% 0%; + -ms-transform-origin: 50% 0%; + -webkit-transform-origin: 50% 0%; +} + +.ui.slide.up.transition.in { + -webkit-animation-name: slide; + animation-name: slide; + -webkit-transform-origin: 50% 100%; + -ms-transform-origin: 50% 100%; + transform-origin: 50% 100%; + -ms-transform-origin: 50% 100%; + -webkit-transform-origin: 50% 100%; +} + +.ui.slide.up.transition.out { + -webkit-animation-name: slideOut; + animation-name: slideOut; + -webkit-transform-origin: 50% 100%; + -ms-transform-origin: 50% 100%; + transform-origin: 50% 100%; + -ms-transform-origin: 50% 100%; + -webkit-transform-origin: 50% 100%; +} + +@-webkit-keyframes slide { + 0% { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); + } + + 100% { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + } +} + +@keyframes slide { + 0% { + opacity: 0; + -webkit-transform: scaleY(0); + -ms-transform: scaleY(0); + transform: scaleY(0); + } + + 100% { + opacity: 1; + -webkit-transform: scaleY(1); + -ms-transform: scaleY(1); + transform: scaleY(1); + } +} + +@-webkit-keyframes slideOut { + 0% { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + } + + 100% { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0); + } +} + +@keyframes slideOut { + 0% { + opacity: 1; + -webkit-transform: scaleY(1); + -ms-transform: scaleY(1); + transform: scaleY(1); + } + + 100% { + opacity: 0; + -webkit-transform: scaleY(0); + -ms-transform: scaleY(0); + transform: scaleY(0); + } +} + +/******************************* + Animations +*******************************/ + +/*-------------- + Emphasis +---------------*/ + +/* Flash */ + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +/* Shake */ + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translateX(-10px); + transform: translateX(-10px); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translateX(10px); + transform: translateX(10px); + } +} + +@keyframes shake { + 0%, 100% { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translateX(-10px); + -ms-transform: translateX(-10px); + transform: translateX(-10px); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translateX(10px); + -ms-transform: translateX(10px); + transform: translateX(10px); + } +} + +/* Bounce */ + +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 40% { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + } + + 60% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } +} + +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + 40% { + -webkit-transform: translateY(-30px); + -ms-transform: translateY(-30px); + transform: translateY(-30px); + } + + 60% { + -webkit-transform: translateY(-15px); + -ms-transform: translateY(-15px); + transform: translateY(-15px); + } +} + +/* Tada */ + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 10%, 20% { + -webkit-transform: scale(0.9) rotate(-3deg); + transform: scale(0.9) rotate(-3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale(1.1) rotate(3deg); + transform: scale(1.1) rotate(3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale(1.1) rotate(-3deg); + transform: scale(1.1) rotate(-3deg); + } + + 100% { + -webkit-transform: scale(1) rotate(0); + transform: scale(1) rotate(0); + } +} + +@keyframes tada { + 0% { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + + 10%, 20% { + -webkit-transform: scale(0.9) rotate(-3deg); + -ms-transform: scale(0.9) rotate(-3deg); + transform: scale(0.9) rotate(-3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale(1.1) rotate(3deg); + -ms-transform: scale(1.1) rotate(3deg); + transform: scale(1.1) rotate(3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale(1.1) rotate(-3deg); + -ms-transform: scale(1.1) rotate(-3deg); + transform: scale(1.1) rotate(-3deg); + } + + 100% { + -webkit-transform: scale(1) rotate(0); + -ms-transform: scale(1) rotate(0); + transform: scale(1) rotate(0); + } +} + +/* Pulse */ + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + + 50% { + -webkit-transform: scale(0.9); + transform: scale(0.9); + opacity: 0.7; + } + + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; + } + + 50% { + -webkit-transform: scale(0.9); + -ms-transform: scale(0.9); + transform: scale(0.9); + opacity: 0.7; + } + + 100% { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} + +/*-------------- + Flips +---------------*/ + +/* Horizontal */ + +@-webkit-keyframes horizontalFlip { + 0% { + -webkit-transform: rotateY(-90deg); + transform: rotateY(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateY(0deg); + transform: rotateY(0deg); + opacity: 1; + } +} + +@keyframes horizontalFlip { + 0% { + -webkit-transform: rotateY(-90deg); + -ms-transform: rotateY(-90deg); + transform: rotateY(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateY(0deg); + -ms-transform: rotateY(0deg); + transform: rotateY(0deg); + opacity: 1; + } +} + +/* Horizontal */ + +@-webkit-keyframes horizontalFlipOut { + 0% { + -webkit-transform: rotateY(0deg); + transform: rotateY(0deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateY(90deg); + transform: rotateY(90deg); + opacity: 1; + } +} + +@keyframes horizontalFlipOut { + 0% { + -webkit-transform: rotateY(0deg); + -ms-transform: rotateY(0deg); + transform: rotateY(0deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateY(90deg); + -ms-transform: rotateY(90deg); + transform: rotateY(90deg); + opacity: 1; + } +} + +/* Vertical */ + +@-webkit-keyframes verticalFlip { + 0% { + -webkit-transform: rotateX(-90deg); + transform: rotateX(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; + } +} + +@keyframes verticalFlip { + 0% { + -webkit-transform: rotateX(-90deg); + -ms-transform: rotateX(-90deg); + transform: rotateX(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform: rotateX(0deg); + -ms-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; + } +} + +@-webkit-keyframes verticalFlipOut { + 0% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; + } + + 100% { + -webkit-transform: rotateX(-90deg); + transform: rotateX(-90deg); + opacity: 0; + } +} + +@keyframes verticalFlipOut { + 0% { + -webkit-transform: rotateX(0deg); + -ms-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; + } + + 100% { + -webkit-transform: rotateX(-90deg); + -ms-transform: rotateX(-90deg); + transform: rotateX(-90deg); + opacity: 0; + } +} + +/*-------------- + Fades +---------------*/ + +/* Fade */ + +@-webkit-keyframes fade { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fade { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +/* Fade Up */ + +@-webkit-keyframes fadeUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes fadeUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes fadeUpOut { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } +} + +@keyframes fadeUpOut { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + -ms-transform: translateY(20px); + transform: translateY(20px); + } +} + +/* Fade Down */ + +@-webkit-keyframes fadeDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + transform: translateY(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes fadeDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes fadeDownOut { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + transform: translateY(-20px); + } +} + +@keyframes fadeDownOut { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + -ms-transform: translateY(-20px); + transform: translateY(-20px); + } +} + +/*-------------- + Scale +---------------*/ + +/* Scale */ + +@-webkit-keyframes scale { + 0% { + opacity: 0; + -webkit-transform: scale(0.7); + transform: scale(0.7); + } + + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes scale { + 0% { + opacity: 0; + -webkit-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } + + 100% { + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} + +@-webkit-keyframes scaleOut { + 0% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(0.7); + transform: scale(0.7); + } +} + +@keyframes scaleOut { + 0% { + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(0.7); + -ms-transform: scale(0.7); + transform: scale(0.7); + } +} +/* + * # Semantic - Video + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Video +*******************************/ + +.ui.video { + position: relative; + max-width: 100%; +} + +/*-------------- + Content +---------------*/ + +/* Placeholder Image */ + +.ui.video .placeholder { + background-color: #333333; +} + +/* Play Icon Overlay */ + +.ui.video .play { + cursor: pointer; + position: absolute; + top: 0px; + left: 0px; + z-index: 10; + width: 100%; + height: 100%; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; + filter: alpha(opacity=60); + opacity: 0.6; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} + +.ui.video .play.icon:before { + position: absolute; + top: 50%; + left: 50%; + z-index: 11; + font-size: 6rem; + margin: -3rem 0em 0em -3rem; + color: #FFFFFF; + text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4); +} + +.ui.video .placeholder { + display: block; + width: 100%; + height: 100%; +} + +/* IFrame Embed */ + +.ui.video .embed { + display: none; +} + +/******************************* + States +*******************************/ + +/*-------------- + Hover +---------------*/ + +.ui.video .play:hover { + opacity: 1; +} + +/*-------------- + Active +---------------*/ + +.ui.video.active .play, +.ui.video.active .placeholder { + display: none; +} + +.ui.video.active .embed { + display: block; +} +/* + * # Semantic Comment View + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + * Released: April 17 2013 + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Comments +---------------*/ + +.ui.comments a { + cursor: pointer; +} + +/*-------------- + Comment +---------------*/ + +.ui.comments .comment { + position: relative; + margin-top: 0.5em; + padding-top: 0.5em; +} + +.ui.comments .comment:first-child { + margin-top: 0em; + padding-top: 0em; +} + +/*-------------------- + Avatar (Optional) +---------------------*/ + +.ui.comments .comment .avatar { + display: block; + float: left; + width: 4em; +} + +.ui.comments .comment .avatar img { + display: block; + margin: 0em auto; + width: 3em; + height: 3em; + border-radius: 500px; +} + +/*-------------- + Content +---------------*/ + +.ui.comments .comment > .content, +.ui.comments .comment > .avatar { + display: block; +} + +.ui.comments .comment .avatar ~ .content { + padding: 0em 1em; +} + +/* If there is an avatar move content over */ + +.ui.comments .comment > .avatar ~ .content { + padding-top: 0.25em; + margin-left: 3.5em; +} + +.ui.comments .comment .metadata { + display: inline-block; + margin-left: 0.3em; + color: rgba(0, 0, 0, 0.4); +} + +.ui.comments .comment .metadata > * { + display: inline-block; + margin: 0em 0.3em 0em 0em; +} + +/*-------------------- + Comment Text +---------------------*/ + +.ui.comments .comment .text { + margin: 0.25em 0em 0.5em; + word-wrap: break-word; +} + +/*-------------------- + User Actions +---------------------*/ + +.ui.comments .comment .actions { + font-size: 0.9em; +} + +.ui.comments .comment .actions a { + display: inline-block; + margin: 0em 0.3em 0em 0em; + color: rgba(0, 0, 0, 0.3); +} + +.ui.comments .comment .actions a.active, +.ui.comments .comment .actions a:hover { + color: rgba(0, 0, 0, 0.6); +} + +/*-------------------- + Reply Form +---------------------*/ + +.ui.comments .reply.form { + margin-top: 0.75em; + width: 100%; + max-width: 30em; +} + +.ui.comments .comment .reply.form { + margin-left: 2em; +} + +.ui.comments > .reply.form { + margin-top: 1.5em; + max-width: 40em; +} + +.ui.comments .reply.form textarea { + height: 12em; +} + +/*-------------------- + Nested Comments +---------------------*/ + +.ui.comments .comment .comments { + margin-top: 0.5em; + padding-top: 0.5em; + padding-bottom: 1em; +} + +.ui.comments .comment .comments:before { + position: absolute; + top: 0px; + left: 0px; +} + +/* One Deep */ + +.ui.comments > .comment .comments { + margin-left: 2em; +} + +/* Two Deep */ + +.ui.comments > .comment > .comments > .comment > .comments { + margin-left: 1.75em; +} + +/* Three Deep */ + +.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments { + margin-left: 1.5em; +} + +/* Four Deep or more */ + +.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments { + margin-left: 0.5em; +} + +/******************************* + Variations +*******************************/ + +/*-------------------- + Threaded +---------------------*/ + +.ui.threaded.comments .comment .comments { + margin-left: 2em !important; + padding-left: 2em !important; + -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05); + box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05); +} + +/*-------------------- + Minimal +---------------------*/ + +.ui.minimal.comments .comment .actions { + opacity: 0; + -webkit-transition: opacity 0.1s ease-out; + transition: opacity 0.1s ease-out; + -webkit-transition-delay: 0.1s; + transition-delay: 0.1s; +} + +.ui.minimal.comments .comment > .content:hover > .actions { + opacity: 1; +} + +/*-------------------- + Sizes +---------------------*/ + +.ui.small.comments { + font-size: 0.875em; +} +/* + * # Activity Feed View + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + * Released: May 22, 2013 + */ + +/******************************* + Activity Feed +*******************************/ + +.ui.feed a { + cursor: pointer; +} + +.ui.feed, +.ui.feed .event, +.ui.feed .label, +.ui.feed .content, +.ui.feed .extra { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/******************************* + Content +*******************************/ + +/* Event */ + +.ui.feed .event { + width: 100%; + display: table; + padding: 1em; +} + +.ui.feed .event:first-child { + border-top: 0px; +} + +.ui.feed .event:last-child { + margin-bottom: 1em; +} + +/* Event Label */ + +.ui.feed .label { + width: 3em; + display: table-cell; + vertical-align: top; + text-align: left; +} + +.ui.feed .label .icon { + font-size: 1.5em; + padding: 0.5em; + margin: 0em; +} + +.ui.feed .label img { + width: 3em; + margin: 0em; + border-radius: 50em; +} + +.ui.feed .label + .content { + padding: 0.75em 1em 0em; +} + +/* Content */ + +.ui.feed .content { + display: table-cell; + vertical-align: top; + text-align: left; + word-wrap: break-word; +} + +/* Date */ + +.ui.feed .content .date { + float: right; + padding-left: 1em; + color: rgba(0, 0, 0, 0.4); +} + +/* Summary */ + +.ui.feed .content .summary { + color: rgba(0, 0, 0, 0.75); +} + +.ui.feed .content .summary img { + display: inline-block; + margin-right: 0.25em; + width: 4em; + border-radius: 500px; +} + +/* Additional Information */ + +.ui.feed .content .extra { + margin: 1em 0em 0em; + padding: 0.5em 0em 0em; + color: rgba(0, 0, 0, 0.5); +} + +.ui.feed .content .extra.images img { + display: inline-block; + margin-right: 0.25em; + width: 6em; +} + +.ui.feed .content .extra.text { + padding: 0.5em 1em; + border-left: 0.2em solid rgba(0, 0, 0, 0.1); +} + +/******************************* + Variations +*******************************/ + +.ui.small.feed { + font-size: 0.875em; +} + +.ui.small.feed .label img { + width: 2.5em; +} + +.ui.small.feed .label .icon { + font-size: 1.25em; +} + +.ui.feed .event { + padding: 0.75em 0em; +} + +.ui.small.feed .label + .content { + padding: 0.5em 0.5em 0; +} + +.ui.small.feed .content .extra.images img { + width: 5em; +} + +.ui.small.feed .content .extra { + margin: 0.5em 0em 0em; +} + +.ui.small.feed .content .extra.text { + padding: 0.25em 0.5em; +} +/* + * # Semantic Item View + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + * Released: April 17 2013 + */ + +/******************************* + Standard +*******************************/ + +/*-------------- + Items +---------------*/ + +.ui.items { + margin: 1em 0em 0em; +} + +.ui.items:first-child { + margin-top: 0em; +} + +.ui.items:last-child { + margin-bottom: -1em; +} + +/* Force Clearing */ + +.ui.items:after { + display: block; + content: ' '; + height: 0px; + clear: both; + overflow: hidden; + visibility: hidden; +} + +/*-------------- + Item +---------------*/ + +.ui.items > .row > .item, +.ui.items > .item { + display: block; + float: left; + position: relative; + top: 0px; + width: 316px; + min-height: 375px; + margin: 0em 0.5em 2.5em; + padding: 0em; + background-color: #FFFFFF; + line-height: 1.2; + font-size: 1em; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1); + border-bottom: 0.2em solid rgba(0, 0, 0, 0.2); + border-radius: 0.33em; + -webkit-transition: -webkit-box-shadow 0.2s ease; + transition: box-shadow 0.2s ease; + padding: 0.5em; +} + +.ui.items a.item, +.ui.items .item a { + cursor: pointer; +} + +.ui.items .item, +.ui.items .item > .image, +.ui.items .item > .image .overlay, +.ui.items .item > .content, +.ui.items .item > .content > .meta, +.ui.items .item > .content > .extra { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/*-------------- + Images +---------------*/ + +.ui.items .item > .image { + display: block; + position: relative; + background-color: rgba(0, 0, 0, 0.05); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0.2em; +} + +.ui.items .item > .image > img { + display: block; + width: 100%; +} + +/*-------------- + Content +---------------*/ + +.ui.items .item > .content { + padding: 0.75em 0.5em; +} + +.ui.items .item > .content > .name { + display: block; + font-size: 1.25em; + font-weight: bold; + margin-bottom: 0.2em; + color: rgba(0, 0, 0, 0.7); +} + +.ui.items .item > .content > .description { + clear: both; + margin: 0em 0em; + color: rgba(0, 0, 0, 0.45); +} + +.ui.items .item > .content > .description p { + margin: 0em 0em 0.2em; +} + +.ui.items .item > .content > .description p:last-child { + margin-bottom: 0em; +} + +/*-------------- + Meta +---------------*/ + +.ui.items .item .meta { + float: right; + color: rgba(0, 0, 0, 0.35); +} + +.ui.items .item > .content > .meta + .name { + float: left; +} + +/*-------------- + Labels +---------------*/ + +/*-----star----- */ + +/* hover */ + +.ui.items .item .star.label:hover::after { + border-right-color: #F6EFC3; +} + +.ui.items .item .star.label:hover::after { + border-top-color: #F6EFC3; +} + +.ui.items .item .star.label:hover .icon { + color: #ac9400; +} + +/* active */ + +.ui.items .item .star.label.active::after { + border-right-color: #F6EFC3; +} + +.ui.items .item .star.label.active::after { + border-top-color: #F6EFC3; +} + +.ui.items .item .star.label.active .icon { + color: #ac9400; +} + +/*-----like----- */ + +/* hover */ + +.ui.items .item .like.label:hover::after { + border-right-color: #F5E1E2; +} + +.ui.items .item .like.label.active::after { + border-top-color: #F5E1E2; +} + +.ui.items .item .like.label:hover .icon { + color: #ef404a; +} + +/* active */ + +.ui.items .item .like.label.active::after { + border-right-color: #F5E1E2; +} + +.ui.items .item .like.label.active::after { + border-top-color: #F5E1E2; +} + +.ui.items .item .like.label.active .icon { + color: #ef404a; +} + +/*-------------- + Extra +---------------*/ + +.ui.items .item .extra { + position: absolute; + width: 100%; + padding: 0em 0.5em; + bottom: -2em; + left: 0em; + height: 1.5em; + color: rgba(0, 0, 0, 0.25); + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +.ui.items .item .extra > img { + display: inline-block; + border-radius: 500px 500px 500px 500px; + margin-right: 0.25em; + vertical-align: middle; + width: 2em; +} + +.ui.items .item .extra .left { + float: left; +} + +.ui.items .item .extra .right { + float: right; +} + +/******************************* + States +*******************************/ + +.ui.items .item:hover { + cursor: pointer; + z-index: 5; + -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2); + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2); +} + +.ui.items .item:hover .extra { + color: rgba(0, 0, 0, 0.5); +} + +.ui.items .item:nth-of-type(n+1):hover { + border-bottom-color: #6ECFF5 !important; +} + +.ui.items .item:nth-of-type(n+2):hover { + border-bottom-color: #5C6166 !important; +} + +.ui.items .item:nth-of-type(n+3):hover { + border-bottom-color: #A1CF64 !important; +} + +.ui.items .item:nth-of-type(n+4):hover { + border-bottom-color: #D95C5C !important; +} + +.ui.items .item:nth-of-type(n+5):hover { + border-bottom-color: #564F8A !important; +} + +.ui.items .item:nth-of-type(n+6):hover { + border-bottom-color: #00B5AD !important; +} + +/******************************* + Variations +*******************************/ + +/*-------------- + Connected +---------------*/ + +.ui.connected.items { + display: table; + width: 100%; + margin-left: 0em !important; + margin-right: 0em !important; +} + +.ui.connected.items > .row > .item, +.ui.connected.items > .item { + float: none; + display: table-cell; + vertical-align: top; + height: auto; + border-radius: 0px; + margin: 0em; + width: 33.33%; +} + +.ui.connected.items > .row { + display: table; + margin: 0.5em 0em; +} + +.ui.connected.items > .row:first-child { + margin-top: 0em; +} + +/* Borders */ + +.ui.connected.items > .item, +.ui.connected.items > .row:last-child > .item { + border-bottom: 0.2em solid rgba(0, 0, 0, 0.2); +} + +.ui.connected.items > .row:last-child > .item:first-child, +.ui.connected.items > .item:first-child { + border-radius: 0em 0em 0em 0.33em; +} + +.ui.connected.items > .row:last-child > .item:last-child, +.ui.connected.items > .item:last-child { + border-radius: 0em 0em 0.33em 0em; +} + +/* Hover */ + +.ui.connected.items .item:hover { + border-bottom-width: 0.2em; +} + +/* Item Count */ + +.ui.one.connected.items > .row > .item, +.ui.one.connected.items > .item { + width: 50%; + padding-left: 2%; + padding-right: 2%; +} + +.ui.two.connected.items > .row > .item, +.ui.two.connected.items > .item { + width: 50%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.three.connected.items > .row > .item, +.ui.three.connected.items > .item { + width: 33.333%; + padding-left: 1%; + padding-right: 1%; +} + +.ui.four.connected.items > .row > .item, +.ui.four.connected.items > .item { + width: 25%; + padding-left: 0.5%; + padding-right: 0.5%; +} + +.ui.five.connected.items > .row > .item, +.ui.five.connected.items > .item { + width: 20%; + padding-left: 0.5%; + padding-right: 0.5%; +} + +.ui.six.connected.items > .row > .item, +.ui.six.connected.items > .item { + width: 16.66%; + padding-left: 0.5%; + padding-right: 0.5%; +} + +.ui.seven.connected.items > .row > .item, +.ui.seven.connected.items > .item { + width: 14.28%; + padding-left: 0.5%; + padding-right: 0.5%; +} + +.ui.eight.connected.items > .row > .item, +.ui.eight.connected.items > .item { + width: 12.5%; + padding-left: 0.25%; + padding-right: 0.25%; +} + +.ui.nine.connected.items > .row > .item, +.ui.nine.connected.items > .item { + width: 11.11%; + padding-left: 0.25%; + padding-right: 0.25%; +} + +.ui.ten.connected.items > .row > .item, +.ui.ten.connected.items > .item { + width: 10%; + padding-left: 0.2%; + padding-right: 0.2%; +} + +.ui.eleven.connected.items > .row > .item, +.ui.eleven.connected.items > .item { + width: 9.09%; + padding-left: 0.2%; + padding-right: 0.2%; +} + +.ui.twelve.connected.items > .row > .item, +.ui.twelve.connected.items > .item { + width: 8.3333%; + padding-left: 0.1%; + padding-right: 0.1%; +} + +/*------------------- + Responsive +--------------------*/ + +@media only screen and (max-width: 768px) { + .ui.stackable.items { + display: block !important; + } + + .ui.stackable.items > .item, + .ui.stackable.items > .row > .item { + display: block !important; + height: auto !important; + width: auto !important; + padding: 0% !important; + } +} + +/*-------------------- + Horizontal +---------------------*/ + +.ui.horizontal.items > .item, +.ui.items > .horizontal.item { + display: table; +} + +.ui.horizontal.items > .item > .image .ui.items > .horizontal.item > .image { + display: table-cell; + width: 50%; +} + +.ui.horizontal.items > .item > .image + .content, +.ui.items > .horizontal.item > .image + .content { + width: 50%; + display: table-cell; +} + +.ui.horizontal.items > .item > .content, +.ui.items > .horizontal.item > .content { + padding: 1% 1.7% 11% 3%; + vertical-align: top; +} + +.ui.horizontal.items > .item > .meta, +.ui.items > .horizontal.item > .meta { + position: absolute; + padding: 0%; + bottom: 7%; + left: 3%; + width: 94%; +} + +.ui.horizontal.items > .item > .image + .content + .meta, +.ui.items > .horizontal.item > .image + .content + .meta { + bottom: 7%; + left: 53%; + width: 44%; +} + +.ui.horizontal.items > .item .avatar, +.ui.items > .horizontal.item .avatar { + width: 11.5%; +} + +.ui.items > .item .avatar { + max-width: 25px; +} + +/*-------------- + Item Count +---------------*/ + +.ui.one.items { + margin-left: -2%; + margin-right: -2%; +} + +.ui.one.items > .item { + width: 100%; + margin-left: 2%; + margin-right: 2%; +} + +.ui.two.items { + margin-left: -1%; + margin-right: -1%; +} + +.ui.two.items > .item { + width: 48%; + margin-left: 1%; + margin-right: 1%; +} + +.ui.two.items > .item:nth-child(2n+1) { + clear: left; +} + +.ui.three.items { + margin-left: -1%; + margin-right: -1%; +} + +.ui.three.items > .item { + width: 31.333%; + margin-left: 1%; + margin-right: 1%; +} + +.ui.three.items > .item:nth-child(3n+1) { + clear: left; +} + +.ui.four.items { + margin-left: -0.5%; + margin-right: -0.5%; +} + +.ui.four.items > .item { + width: 24%; + margin-left: 0.5%; + margin-right: 0.5%; +} + +.ui.four.items > .item:nth-child(4n+1) { + clear: left; +} + +.ui.five.items { + margin-left: -0.5%; + margin-right: -0.5%; +} + +.ui.five.items > .item { + width: 19%; + margin-left: 0.5%; + margin-right: 0.5%; +} + +.ui.five.items > .item:nth-child(5n+1) { + clear: left; +} + +.ui.six.items { + margin-left: -0.5%; + margin-right: -0.5%; +} + +.ui.six.items > .item { + width: 15.66%; + margin-left: 0.5%; + margin-right: 0.5%; +} + +.ui.six.items > .item:nth-child(6n+1) { + clear: left; +} + +.ui.seven.items { + margin-left: -0.5%; + margin-right: -0.5%; +} + +.ui.seven.items > .item { + width: 13.28%; + margin-left: 0.5%; + margin-right: 0.5%; + font-size: 11px; +} + +.ui.seven.items > .item:nth-child(7n+1) { + clear: left; +} + +.ui.eight.items { + margin-left: -0.25%; + margin-right: -0.25%; +} + +.ui.eight.items > .item { + width: 12.0%; + margin-left: 0.25%; + margin-right: 0.25%; + font-size: 11px; +} + +.ui.eight.items > .item:nth-child(8n+1) { + clear: left; +} + +.ui.nine.items { + margin-left: -0.25%; + margin-right: -0.25%; +} + +.ui.nine.items > .item { + width: 10.61%; + margin-left: 0.25%; + margin-right: 0.25%; + font-size: 10px; +} + +.ui.nine.items > .item:nth-child(9n+1) { + clear: left; +} + +.ui.ten.items { + margin-left: -0.2%; + margin-right: -0.2%; +} + +.ui.ten.items > .item { + width: 9.6%; + margin-left: 0.2%; + margin-right: 0.2%; + font-size: 10px; +} + +.ui.ten.items > .item:nth-child(10n+1) { + clear: left; +} + +.ui.eleven.items { + margin-left: -0.2%; + margin-right: -0.2%; +} + +.ui.eleven.items > .item { + width: 8.69%; + margin-left: 0.2%; + margin-right: 0.2%; + font-size: 9px; +} + +.ui.eleven.items > .item:nth-child(11n+1) { + clear: left; +} + +.ui.twelve.items { + margin-left: -0.1%; + margin-right: -0.1%; +} + +.ui.twelve.items > .item { + width: 8.1333%; + margin-left: 0.1%; + margin-right: 0.1%; + font-size: 9px; +} + +.ui.twelve.items > .item:nth-child(12n+1) { + clear: left; +} +/* + * # Semantic List - Flat + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + * Released: April 26 2013 + */ + +/******************************* + List +*******************************/ + +ul.ui.list, +ol.ui.list, +.ui.list { + list-style-type: none; + margin: 1em 0em; + padding: 0em; +} + +ul.ui.list ul, +ol.ui.list ol, +.ui.list .list { + margin: 0em; + padding: 0.5em 0em 0.5em 1em; +} + +ul.ui.list:first-child, +ol.ui.list:first-child, +.ui.list:first-child { + margin-top: 0em; +} + +ul.ui.list:last-child, +ol.ui.list:last-child, +.ui.list:last-child { + margin-bottom: 0em; +} + +/******************************* + Content +*******************************/ + +/* List Item */ + +ul.ui.list li, +ol.ui.list li, +.ui.list .item { + display: list-item; + list-style-type: none; + list-style-position: inside; + padding: 0.3em 0em; + line-height: 1.2; +} + +.ui.list .item:after { + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/* Sub-List */ + +.ui.list .list { + clear: both; +} + +/* Icon */ + +.ui.list .item > .icon { + display: block; + float: left; + margin: 0em 1em 0em 0em; + padding: 0.1em 0em 0em 0em; +} + +.ui.list .item > .icon:only-child { + display: inline-block; +} + +.ui.horizontal.list .item > .icon { + margin: 0em; + padding: 0em 0.25em 0em 0em; +} + +.ui.horizontal.list .item > .icon, +.ui.horizontal.list .item > .icon + .content { + float: none; + display: inline-block; +} + +/* Image */ + +.ui.list .item > img { + display: block; + float: left; + margin-right: 1em; + vertical-align: middle; +} + +/* Content */ + +.ui.list .item > .content { + display: inline-block; + vertical-align: middle; + line-height: 1.2; +} + +.ui.list .item > .icon + .content { + display: table-cell; + vertical-align: top; +} + +/* Link */ + +.ui.list a { + cursor: pointer; +} + +.ui.list a .icon { + color: rgba(0, 0, 0, 0.6); + -webkit-transition: color 0.2s ease; + transition: color 0.2s ease; +} + +/* Header */ + +.ui.list .header { + font-weight: bold; +} + +.ui.list .description { + color: rgba(0, 0, 0, 0.5); +} + +/* Floated Content */ + +.ui.list .item > .left.floated { + margin-right: 1em; + float: left; +} + +.ui.list .item > .right.floated { + margin-left: 1em; + float: right; +} + +/******************************* + Types +*******************************/ + +/*------------------- + Horizontal +--------------------*/ + +.ui.horizontal.list { + display: inline-block; + font-size: 0em; +} + +.ui.horizontal.list > .item { + display: inline-block; + margin-left: 1em; + font-size: 1rem; +} + +.ui.horizontal.list > .item:first-child { + margin-left: 0em; +} + +.ui.horizontal.list .list { + padding-left: 0em; + padding-bottom: 0em; +} + +/******************************* + States +*******************************/ + +/*------------------- + Hover +--------------------*/ + +.ui.list a:hover .icon { + color: rgba(0, 0, 0, 0.8); +} + +/******************************* + Variations +*******************************/ + +/*------------------- + Inverted +--------------------*/ + +.ui.inverted.list a .icon { + color: rgba(255, 255, 255, 0.6); +} + +.ui.inverted.list .description { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.link.list .item { + color: rgba(255, 255, 255, 0.4); +} + +/*------------------- + Link +--------------------*/ + +.ui.link.list .item { + color: rgba(0, 0, 0, 0.3); +} + +.ui.link.list a.item, +.ui.link.list .item a { + color: rgba(0, 0, 0, 0.5); +} + +.ui.link.list a.item:hover, +.ui.link.list .item a:hover { + color: rgba(0, 0, 0, 0.8); +} + +.ui.link.list a.item:active, +.ui.link.list .item a:active { + color: rgba(0, 0, 0, 0.8); +} + +.ui.link.list a.active.item, +.ui.link.list .active.item a { + color: rgba(0, 0, 0, 0.8); +} + +/* Inverted */ + +.ui.inverted.link.list a.item, +.ui.inverted.link.list .item a { + color: rgba(255, 255, 255, 0.6); +} + +.ui.inverted.link.list a.item:hover, +.ui.inverted.link.list .item a:hover { + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.link.list a.item:active, +.ui.inverted.link.list .item a:active { + color: rgba(255, 255, 255, 0.9); +} + +.ui.inverted.link.list a.active.item, +.ui.inverted.link.list .active.item a { + color: rgba(255, 255, 255, 0.8); +} + +/*------------------- + Selection +--------------------*/ + +.ui.selection.list .item { + cursor: pointer; + color: rgba(0, 0, 0, 0.4); + padding: 0.5em; + -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease; + transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease; +} + +.ui.selection.list .item:hover { + background-color: rgba(0, 0, 0, 0.02); + color: rgba(0, 0, 0, 0.7); +} + +.ui.selection.list .item:active { + background-color: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.7); +} + +.ui.selection.list .item.active { + background-color: rgba(0, 0, 0, 0.04); + color: rgba(0, 0, 0, 0.7); +} + +.ui.animated.list .item { + -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease; + transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease; +} + +.ui.animated.list:not(.horizontal) .item:hover { + padding-left: 1em; +} + +.ui.animated.list:not(.horizontal) .item:hover .item:hover { + padding-left: 0.5em; +} + +/* Inverted */ + +.ui.inverted.selection.list .item { + color: rgba(255, 255, 255, 0.6); +} + +.ui.inverted.selection.list .item:hover { + background-color: rgba(255, 255, 255, 0.04); + color: rgba(255, 255, 255, 0.8); +} + +.ui.inverted.selection.list .item:active { + background-color: rgba(255, 255, 255, 0.1); + color: rgba(255, 255, 255, 0.7); +} + +.ui.inverted.selection.list .item.active { + background-color: rgba(255, 255, 255, 0.08); + color: #FFFFFF; +} + +/*------------------- + Bulleted +--------------------*/ + +ul.ui.list, +.ui.bulleted.list { + margin-left: 1.5em; +} + +ul.ui.list li, +.ui.bulleted.list .item { + position: relative; +} + +ul.ui.list li:before, +.ui.bulleted.list .item:before { + position: absolute; + left: -1.5em; + content: '•'; + line-height: 1.2rem; + vertical-align: top; +} + +ul.ui.list ul, +.ui.bulleted.list .list { + padding-left: 1.5em; +} + +/* Horizontal Bulleted */ + +ul.ui.horizontal.bulleted.list, +.ui.horizontal.bulleted.list { + margin-left: 0em; +} + +ul.ui.horizontal.bulleted.list li, +.ui.horizontal.bulleted.list .item { + margin-left: 1.5em; +} + +ul.ui.horizontal.bulleted.list li:before, +.ui.horizontal.bulleted.list .item:before { + left: -0.9em; +} + +ul.ui.horizontal.bulleted.list li:first-child, +.ui.horizontal.bulleted.list .item:first-child { + margin-left: 0em; +} + +ul.ui.horizontal.bulleted.list li:first-child::before, +.ui.horizontal.bulleted.list .item:first-child::before { + display: none; +} + +/*------------------- + Ordered +--------------------*/ + +ol.ui.list, +.ui.ordered.list { + counter-reset: ordered; + margin-left: 2em; + list-style-type: none; +} + +ol.ui.list li, +.ui.ordered.list .item { + list-style-type: none; + position: relative; +} + +ol.ui.list li:before, +.ui.ordered.list .item:before { + position: absolute; + left: -2em; + counter-increment: ordered; + content: counters(ordered, "."); + text-align: right; + vertical-align: top; + opacity: 0.75; +} + +ol.ui.list ol, +.ui.ordered.list .list { + counter-reset: ordered; + padding-left: 2.5em; +} + +ol.ui.list ol li:before, +.ui.ordered.list .list .item:before { + left: -2.5em; +} + +/* Horizontal Ordered */ + +ol.ui.horizontal.list, +.ui.ordered.horizontal.list { + margin-left: 0em; +} + +ol.ui.horizontal.list li:before, +.ui.ordered.horizontal.list .item:before { + position: static; + margin: 0em 0.5em 0em 0em; +} + +/*------------------- + Divided +--------------------*/ + +.ui.divided.list > .item, +.ui.divided.list:not(.horizontal) > .list { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-left: 0.5em; + padding-right: 0.5em; +} + +.ui.divided.list .item .menu .item { + border-width: 0px; +} + +.ui.divided.list .item:first-child { + border-top-width: 0px; +} + +/* Sub Menu */ + +.ui.divided.list:not(.horizontal) .list { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.divided.list:not(.horizontal) .list .item { + padding-left: 1em; + padding-right: 1em; +} + +.ui.divided.list:not(.horizontal) .list .item:first-child { + border-top-width: 1px; +} + +/* Divided bulleted */ + +.ui.divided.bulleted.list { + margin-left: 0em; +} + +.ui.divided.bulleted.list .item { + padding-left: 1.5em; +} + +.ui.divided.bulleted.list .item:before { + left: 0.5em; +} + +/* Divided ordered */ + +.ui.divided.ordered.list { + margin-left: 0em; +} + +.ui.divided.ordered.list > .item { + padding-left: 2em; + padding-right: 2em; +} + +.ui.divided.ordered.list > .item:before { + left: 0.5em; +} + +.ui.divided.ordered.list .item .list { + margin-left: -2em; + margin-right: -2em; +} + +/* Divided horizontal */ + +.ui.divided.horizontal.list { + margin-left: 0em; +} + +.ui.divided.horizontal.list > .item { + border-top: none; + border-left: 1px solid rgba(0, 0, 0, 0.1); + margin: 0em; + padding-left: 0.75em; + padding-right: 0.75em; + line-height: 0.6; +} + +.ui.horizontal.divided.list > .item:first-child { + border-left: none; + padding-left: 0em; +} + +/* Inverted */ + +.ui.divided.inverted.list > .item, +.ui.divided.inverted.list > .list { + border-color: rgba(255, 255, 255, 0.2); +} + +.ui.divided.inverted.horizontal.list .item { + border-color: rgba(255, 255, 255, 0.2); +} + +/*------------------- + Celled +--------------------*/ + +.ui.celled.list > .item, +.ui.celled.list > .list { + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-left: 0.5em; + padding-right: 0.5em; +} + +.ui.celled.list > .item:last-child { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +/* Sub Menu */ + +.ui.celled.list .item .list { + margin-left: -0.5em; + margin-right: -0.5em; +} + +.ui.celled.list .item .list .item { + border-width: 0px; +} + +.ui.celled.list .list .item:first-child { + border-top-width: 0px; +} + +/* Celled Bulleted */ + +.ui.celled.bulleted.list { + margin-left: 0em; +} + +.ui.celled.bulleted.list > .item { + padding-left: 1.5em; +} + +.ui.celled.bulleted.list > .item:before { + left: 0.5em; +} + +/* Celled Ordered */ + +.ui.celled.ordered.list { + margin-left: 0em; +} + +.ui.celled.ordered.list .item { + padding-left: 2em; + padding-right: 2em; +} + +.ui.celled.ordered.list .item:before { + left: 0.5em; +} + +.ui.celled.ordered.list .item .list { + margin-left: -2em; + margin-right: -2em; +} + +/* Celled Horizontal */ + +.ui.horizontal.celled.list { + margin-left: 0em; +} + +.ui.horizontal.celled.list .item { + border-top: none; + border-left: 1px solid rgba(0, 0, 0, 0.1); + margin: 0em; + padding-left: 0.75em; + padding-right: 0.75em; + line-height: 0.6; +} + +.ui.horizontal.celled.list .item:last-child { + border-bottom: none; + border-right: 1px solid rgba(0, 0, 0, 0.1); +} + +/* Inverted */ + +.ui.celled.inverted.list > .item, +.ui.celled.inverted.list > .list { + border-color: rgba(255, 255, 255, 0.2); +} + +.ui.celled.inverted.horizontal.list .item { + border-color: rgba(255, 255, 255, 0.2); +} + +/*------------------- + Relaxed +--------------------*/ + +.ui.relaxed.list:not(.horizontal) .item { + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +.ui.relaxed.list .header { + margin-bottom: 0.25em; +} + +.ui.horizontal.relaxed.list .item { + padding-left: 1.25em; + padding-right: 1.25em; +} + +.ui.very.relaxed.list:not(.horizontal) .item { + padding-top: 1em; + padding-bottom: 1em; +} + +.ui.very.relaxed.list .header { + margin-bottom: 0.5em; +} + +.ui.horizontal.very.relaxed.list .item { + padding-left: 2em; + padding-right: 2em; +} + +/*------------------- + Sizes +--------------------*/ + +.ui.mini.list .item { + font-size: 0.7rem; +} + +.ui.tiny.list .item { + font-size: 0.8125rem; +} + +.ui.small.list .item { + font-size: 0.875rem; +} + +.ui.list .item { + font-size: 1em; +} + +.ui.large.list .item { + font-size: 1.125rem; +} + +.ui.big.list .item { + font-size: 1.25rem; +} + +.ui.huge.list .item { + font-size: 1.375rem; +} + +.ui.massive.list .item { + font-size: 1.5rem; +} +/* + * # Statistic + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + * Released: Aug 20, 2013 + */ + +/******************************* + Statistic +*******************************/ + +.ui.statistic { + text-align: center; +} + +/******************************* + Content +*******************************/ + +.ui.statistic > .number { + font-size: 4em; + font-weight: bold; + color: rgba(0, 0, 0, 0.7); +} + +.ui.statistic > .description { + opacity: 0.8; +} diff --git a/public/resource/css/jquery.tagsinput.css b/public/resource/css/jquery.tagsinput.css new file mode 100644 index 0000000..b9af4f8 --- /dev/null +++ b/public/resource/css/jquery.tagsinput.css @@ -0,0 +1,22 @@ +div.tagsinput { border: 1px solid rgba(0, 0, 0, 0.15); background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto; border-radius: 0.3125em;-webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;-webkit-appearance: none;} +div.tagsinput span.tag { border: 1px solid #a5d24a; -moz-border-radius:2px; -webkit-border-radius:2px; display: block; float: left; padding: 5px; text-decoration:none; background: #cde69c; color: #638421; margin-right: 5px; margin-bottom:5px;font-family: helvetica; font-size:13px;} +div.tagsinput span.tag a { font-weight: bold; color: #82ad2b; text-decoration:none; font-size: 11px; } +div.tagsinput input { width:120px !important; margin:0px;font-size: 13px; border:1px solid transparent; padding:5px; background: transparent; color: #000; outline:0px; margin-right:5px; margin-bottom:5px; +-webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease; +transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease; +-webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset; +box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset; +-webkit-appearance: none; +-webkit-tap-highlight-color: rgba(255, 255, 255, 0); +} +div.tagsinput input:focus { + color: rgba(0, 0, 0, 0.85) !important; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + -webkit-appearance: none; + -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset; + box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset; +} +div.tagsinput div { display:block; float: left; } +.tags_clear { clear: both; width: 100%; height: 0px; } +.not_valid {background: #FBD8DB !important; color: #90111A !important;} diff --git a/public/resource/css/main.css b/public/resource/css/main.css new file mode 100644 index 0000000..e026be4 --- /dev/null +++ b/public/resource/css/main.css @@ -0,0 +1,418 @@ +/*framework edit*/ +html{ + height:100%; + font-size:100%; +} +body { + font: 14px 'Helvetica Neue','Microsoft YaHei','Hiragino Sans GB','WenQuanYi Micro Hei',Helvetica,Arial,Sans-serif; + line-height: 1.428571429; + color: #444; + margin:0px; + padding:0px; + height:100%; +} +ul,li{ + list-style:none; + margin:0; + padding:0; +} +a { + text-decoration:none; + color:#666; +} +.ui.dropdown > .text { + min-width:150px; +} +.ui.notif.menu { + box-shadow:none; +} +.ui.notif.menu .item { + padding:0 10px 0 0; + margin-right:16px +} +.ui.notif.menu .item:before{ + display:none; +} +.ui.notif.menu .item:hover{ + color:#666; +} +/*the style begin*/ +.page{ + min-height:100%; + width:100%; + min-width:1200px; + background: #fff; + box-shadow: 0px 4px 15px #181818; + padding-bottom:16px; + padding-bottom:1rem; +} +span.ui.checkbox { + padding-right:16px; +} +.ui.radio.checkbox{ + margin:16px 16px 8px 0 !important; +} +.ui.warning.message a{ + color:#96904D; +} +.ui.warning.message a:hover, .ui.warning.message a:focus { + text-decoration:underline; +} +.ui.feed a{ + color: #009FDA; +} +.ui.feed a:hover,.ui.feed a:focus{ + color:#00BAFF; + text-decoration:underline; +} +.ui.table { + font-size:14px; +} +/*select*/ +select { + text-transform: none; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.form-control { + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + vertical-align: middle; + color: rgba(0,0,0,.8); + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 4px; + cursor:pointer; +} +.form-control:focus { + outline: 0; +} +.form-control:-moz-placeholder { + color: #999999; +} +.form-control::-moz-placeholder { + color: #999999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999999; +} +.form-control::-webkit-input-placeholder { + color: #999999; +} +/*segment*/ +.ui.segment .right{ + float:right; +} +/*header*/ +header{ + position:relative; + height:72px; +} +#logo{ + float:left; + width:250px; + height:72px; + padding-top:15px; + font-size:30px; +} +#logo a{ + display:block; + width:180px; + height:72px; + text-indent: -999em; +} +header .user{ + display:inline; + float:right; + margin-top:22px; +} +/*main content*/ +.pageHeader, .verticalMenu{ + padding:16px 0; + padding:1rem 0; +} +/*show api key*/ +#showApiKey .segment{ + background:none; + box-shadow:none; + -webkit-box-shadow:none; +} +#showApiKey .segment label{ + font-size:16px; +} +#deviceQuickButton { + float:right; +} +/*index list*/ +#indexList{ + padding-top:2rem; +} +#indexList .segment{ + padding:0; +} +#indexList a.content{ + position:relative; + padding:1rem; + display:block; + min-height:13em; + z-index:100; +} +#indexList a.content:hover, #indexList a.content:focus{ + background-color:#b4ddf5 !important; +} +#indexList h4{ + margin:0; + color:#333; +} +#indexList p.deviceId{ + margin-top:0; +} +#indexList p.deviceDescription{ + height:84px; + overflow:auto; + margin:2rem 0; +} +#indexList h4.newDevice{ + padding:4.7em 0; + text-align:center; + top:50%; +} +#indexList h4.newDevice i.icon{ + display:initial; +} +#indexList p{ + margin:0; + font-size:14px; + font-size:0.875rem; +} +/*the device list*/ +.ui.device.segment{ + clear: both !important; +} +.ui.device.segment p{ + color:#666; + font-size:14px; + font-size:0.875rem; + margin:4px 0; + margin:0.25rem 0; +} +.ui.device.segment span.stress{ + font-size:16px; + font-size:1rem; + color:#333; +} +.ui.device.segment .verborder{ + border-left: 3px solid #007ad5; +} +.ui.device.segment p.sensorStatus{ + font-size:14px; + font-size:0.875rem; +} +.ui.device.segment .sub.header{ + line-height:1.4; +} +/*new device*/ +.locmap { + height: 180px; + background-color: #CCC; + text-align: center; + width: 100% !important; + border: #CCC 1px solid;z +} +#location label{ + margin: 0em 0em 0.3em; + display: block; + color: #555555; + font-size:14px; + font-size:0.875rem; +} +#location input{ + padding:0!important; + border: 1px solid transparent!important; + box-shadow:none!important; + -webkit-box-shadow:none!important; +} +/*the device manage page*/ +.ui.small.header{ + font-weight:normal; +} +.ui.grid.segment.sensor.segment{ + padding:32px 0 16px; + padding:2rem 0 1rem; + border-bottom:1px solid rgba(0,0,0,.1); +} +.ui.device.segment a.externalUrl { + color:#007ad5; +} +.ui.device.segment .sensorAction{ + margin-top:8px; + margin-top:0.5rem; +} +.ui.device.segment a.sensorEdit{ + margin-right:14px; + margin-right:0.875rem; +} +.ui.device.segment a.sensorEdit:hover, .ui.basic.attached.accordion .content a:hover,.ui.device.segment a.sensorEdit:focus, .ui.basic.attached.accordion .content a:focus{ + color:#333; +} +.ui.device.segment a:hover, .ui.device.segment a:focus{ + cursor:pointer; +} +.ui.device.segment a.externalUrl:hover, .ui.device.segment a.externalUrl:focus{ + text-decoration:underline; +} +.ui.vertical.center.segment{ + text-align:center; +} +.ui.data.segment{ + background: transparent; + box-shadow: none; + -webkit-box-shadow: none; + line-height:1.2; + text-align:center; + margin-top:22px !important; +} +.ui.data.segment p.data{ + font-size:48px; + font-size:3rem; +} +.ui.data.segment p.gps{ + font-size:32px; + font-size:2rem; +} +.ui.data.segment p.unit{ + font-size:12px; + font-size:0.75rem; + margin:0; +} +.ui.info.segment{ + padding-bottom:8px; + padding-bottom:0.5rem; +} +/* ui header*/ +h5.ui.header.sprite-icon { + padding-left:22px; + background:url(../images/icon-sprite.png) no-repeat top left; +} +h5.ui.header.sprite-icon.data{ background-position: 0 -68px;} +h5.ui.header.sprite-icon.bird{ background-position: 0 0;} +h5.ui.header.sprite-icon.gps{ background-position: 0 -136px;} +h5.ui.header.sprite-icon.key{ background-position: 0 -204px; } +h5.ui.header.sprite-icon.pic{ background-position: 0 -268px;} +h5.ui.header.sprite-icon.switchicon{ background-position: 0 -336px;} +/*label*/ +.ui.attached.label.show{ + z-index:99; + background: transparent; + color:#333; + right:14px !important; + top:8px; + padding-bottom: 2px; + border-radius: 0!important; +} +.ui.attached.label.show.active{ + background:#fff; + color: #333; + border-style:solid; + border-color:#ccc; + border-width:1px 1px 0px; + z-index:9999; +} +.ui.type.label{ + background-color:#47a447; + border-color:#47a447; + color:#fff;` + font-size:12px; + font-size:0.75rem; + padding:0 7px!important; + border-radius:.325em; + text-transform: uppercase; +} +.ui.label.error{ + border-color:#D24B4C; + color:#fff; +} +/*accordion*/ +.ui.basic.attached.accordion{ + width:inherit; + padding:0 28px 14px; +} +.ui.basic.attached.accordion.showChart .title{ + font-size:12px; + font-size:0.75rem; + position:absolute; + right:32px; + z-index:999; +} +.ui.basic.attached.accordion.action .title{ + margin:0; + padding-top:0; +} +.ui.basic.attached.accordion.action .content{ + margin-top:8px; +/* border-top:1px solid rgba(204, 204, 204, 0.3);*/ +} +/*chart*/ +.chartShow{ + position: absolute; + top: 38px; + right: 14px; + width: 96%; + height: 100%; + display: none; +} +.active.chartShow{ + display:block; +} +/*image box*/ +.field.devimage{ + overflow-x: scroll; + overflow-y: hidden; + position: relative; +} +.dev_img_inner { + width:7777px; + overflow: hidden; +} +/*footer start*/ +footer { + width:100%; + height:150px; + min-width:1200px; + background:#323232; + position:absolute; + z-index: -20; +} +#copyrights { + margin:0 auto; + height:140px; + position:fixed; + left:0px; + right:0px; + bottom:0px; + z-index: -15; +} +#copyrights .inset { + margin:0 auto; + padding:20px 50px 0; + position:relative; +} +#copyrights .logo { + width:164px; + height:40px; + background:url(../images/logo_footer.png); + text-indent:-999em; +} +#copyrights p { + font-size:12px; + color:#a0a0a0; + line-height:24px; +} +#copyrights .fl { + float:left; +} diff --git a/public/resource/css/switch.css b/public/resource/css/switch.css new file mode 100644 index 0000000..05cd4b3 --- /dev/null +++ b/public/resource/css/switch.css @@ -0,0 +1,65 @@ +label.switch { + margin: 1.5em auto; +} +input#switch { + position: absolute; + left: -9999px; +} +.switch { + position: relative; + display: block; + width: 5.5em; + height: 3em; + cursor: pointer; + border-radius: 1.5em; + -webkit-transition: 350ms; + transition: 350ms; + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.07)), to(rgba(255, 255, 255, 0))), #dddddd; + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0)), #dddddd; + background: linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0)), #dddddd; + -webkit-box-shadow: 0 0.07em 0.1em -0.1em rgba(0, 0, 0, 0.4) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7); + box-shadow: 0 0.07em 0.1em -0.1em rgba(0, 0, 0, 0.4) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7); +} +.switch::after { + position: absolute; + content: ''; + width: 2em; + height: 2em; + top: 0.5em; + left: 0.5em; + border-radius: 50%; + -webkit-transition: 250ms ease-in-out; + transition: 250ms ease-in-out; + background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#eeeeee)); + background: -webkit-linear-gradient(#f5f5f5 10%, #eeeeee); + background: linear-gradient(#f5f5f5 10%, #eeeeee); + -webkit-box-shadow: 0 0.1em 0.15em -0.05em rgba(255, 255, 255, 0.9) inset, 0 0.2em 0.2em -0.12em rgba(0, 0, 0, 0.5); + box-shadow: 0 0.1em 0.15em -0.05em rgba(255, 255, 255, 0.9) inset, 0 0.2em 0.2em -0.12em rgba(0, 0, 0, 0.5); +} +.switch::before { + position: absolute; + content: ''; + width: 4em; + height: 1.5em; + top: 0.75em; + left: 0.75em; + border-radius: 0.75em; + -webkit-transition: 250ms ease-in-out; + transition: 250ms ease-in-out; + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.07)), to(rgba(255, 255, 255, 0.1))), #d0d0d0; + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0.1)), #d0d0d0; + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.07)), to(rgba(255, 255, 255, 0.1))), #ec2727; + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0.1)), #ec2727; + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.07)), to(rgba(255, 255, 255, 0.1))), #D95C5C; + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0.1)), #D95C5C; + background: linear-gradient(rgba(0, 0, 0, 0.07), rgba(255, 255, 255, 0.1)), #D95C5C; + -webkit-box-shadow: 0 0.08em 0.15em -0.1em rgba(0, 0, 0, 0.5) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7), 0 0 0 0 rgba(68, 204, 102, 0.7) inset; + box-shadow: 0 0.08em 0.15em -0.1em rgba(0, 0, 0, 0.5) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7), 0 0 0 0 rgba(68, 204, 102, 0.7) inset; +} +input:checked + .switch::before { + -webkit-box-shadow: 0 0.08em 0.15em -0.1em rgba(0, 0, 0, 0.5) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7), 3em 0 0 0 rgba(68, 204, 102, 0.7) inset; + box-shadow: 0 0.08em 0.15em -0.1em rgba(0, 0, 0, 0.5) inset, 0 0.05em 0.08em -0.01em rgba(255, 255, 255, 0.7), 3em 0 0 0 rgba(68, 204, 102, 0.7) inset; +} +input:checked + .switch::after { + left: 3em; +} diff --git a/public/resource/fonts/basic.icons.eot b/public/resource/fonts/basic.icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..25066de069a62374b39f220581d1314fa60a5f45 GIT binary patch literal 40166 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 + + + +Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012 + By root +Copyright (C) 2012 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/resource/fonts/basic.icons.ttf b/public/resource/fonts/basic.icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..318a2643d3af55fe51b472e7769b99caf74ff7b0 GIT binary patch literal 39924 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 J*(!_){|Uh81M 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�-A&iY%khEsGVMaq&$BJA^QAs8x>7-g_ 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 k3oQ661F8F$xZIP$lY?c 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 literal 0 HcmV?d00001 diff --git a/public/resource/fonts/icons.svg b/public/resource/fonts/icons.svg new file mode 100644 index 0000000..2edb4ec --- /dev/null +++ b/public/resource/fonts/icons.svg @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/resource/fonts/icons.ttf b/public/resource/fonts/icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d3659246915cacb0c9204271f1f9fc5f77049eac GIT binary patch literal 79076 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 literal 0 HcmV?d00001 diff --git a/public/resource/images/arrow-white-l2r.png b/public/resource/images/arrow-white-l2r.png new file mode 100644 index 0000000000000000000000000000000000000000..a51d919e995f2b76c6f683258ec3341e2d92a19d GIT binary patch literal 225 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 UrrgAoe7I_CFAxxsgAfP+J2K4wJOBUy literal 0 HcmV?d00001 diff --git a/public/resource/images/bg-uniform.png b/public/resource/images/bg-uniform.png new file mode 100644 index 0000000000000000000000000000000000000000..4c28b63be859e1bdb354582673b8bdc7f7304e83 GIT binary patch literal 12563 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 Ywb`|toaOtlk$-gXYf;`f_V3jH0ce@7;s5{u literal 0 HcmV?d00001 diff --git a/public/resource/images/gopher-avatar.png b/public/resource/images/gopher-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..3d03c8bc2f4335e741e2ac07bc50506ca65d51b0 GIT binary patch literal 6040 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

m1avh%LU+Jzq zR;Q5y6;klOZx431wsuPDCf}o0+SfY2%q=7^0MK!}7z*Gv957wExpfb{%v25Kng^iA zM@Uw3o$gQVv!DIeM&9qnLHUFiQrQ7wj=o$MNvZ#Y?RF!fcSLku-TGQHS`o>4p8nJ- zxVlk9QWWxEe>-KhJ70WZ)Mo)!E#(RRh2(ToUHEyvzkeqGKk4L*4J$~>b^qW3KtJtn zX1s(SOxOV&t*GTvl8o}Xdb87M)^quQY_=lG_u-$j7moU$4xXX)iv2~@T{n1U+zzk> zKJS6FU1QcEfYN_`{uB;ZzuDFQz8{W+KEi)9b94efC9ngOVV+y$;a4aU3dKV=7WGdL zBJoft6yCr0@V4&4jfU(1gP-#N{O=#EK9O+s;KO&)4_{wy4yqCT(|G6?ReqXTxOUVI zz^f|x73^uN@sKVNJZ3^wj1rC*pW#n$uuFb5056=g1Kc}D(eGG>@B=T#Uo3#77 z{`koo;Mp~#brqa)RO4O%@z7tqjadEw=%pnmfNg$Jz}NLV|MBbq+y!U+x`_`#Esi6w z12|MQd;!$%d;r9&yrO|WfI255VF38~*x~>}@mJphdonf{w*jyvkr}Sv`r-$mYFWph z=?1*Ko&k7m|Ed|szGV_eB4HvC>xT!Bc`ZPiQy^miJc3a-k^cB#c0mODvYSgB@%=g@ zVT38q|9-VAUs04AM{XYPI9KxVH1o(Vb4Qt&H5C7U`x1{+MnX@XfNB~lL z`B=pxX8#Op|5S_xOKSL)#Yy9b+X$9$_17Gpm>Wwh6o6C?;6G#`XIND0@q2pwm@GcR z^Uc}W4Q$U7%}uvFEDwO>Yc1F_>eq*c-77%tzkmJpN6n*l;sNlJ4TcsBK+<-qko~u@ zQ4J?bGEO4rdjv!tvCD%D0B8H?Ok&xJVJ@ZF_hG$Cq&^$XEzpta04rwR6g2^2P8G|U z0J>~-ae<+P0buk%3jUt{F**0x4Djm`3;=hHa29~HS%=?*OB3MrE}jBl!%;iHm)A$5 zx+tc%p#bKeTmj2cog=^;35_o3*jUO)y#c_}94V!Km;SSw*ScTu*o9G+vzvTLGBb z{z5Brx+up#QtG9~@`}E+S9DoGT`a)X0szRK|MmdLgAinkQaMoq=r7_qSe$Tp0yO*< zcU^C!)XtAD(j;&u(iX_`Xbs&UAxe3Dl032MLkCC17P*lDYwgg7j_{Z z0PB`b(}IZ~fXzijjmr{001I*X%Mw2T^T*Rm6khkG1!5fJ$fMod;I2tGJXJd-a9~1 z+;G$%fWXllZ{sBku#g4O<%mB3ADfTgO!9t)kjUX^o_!LD1&9e8j&h!X;62GFZgCO$ z0}wZ!me?mEImdMh4Zv*K;sLaT9YPX&Ob}CEk0k}pXe6?k|8Y><B!P0I4>>-ED~MQjLV?*gm~%kxs56 z+P2Qy@A~1TD!>lF)pTcPNN9lmRb;xa_EtM2hX4%W&QKo%2%ObRU2}hVB=kZE0!06_ zFtxoo{4bFKPR-5D@$d^YFhE(~FKhsaJcMeWX{ zD1mi*e<&_8Kpm{3<@7OdePerSp(=1Ffhu6^lndQdjjXg0R;}>!?Y8^H=sH)&>tX-hpVShN~Q#^N|3{{64&q% z2M+Ogq)HC!3XsEG;^eR4>J=QWld6Qct9)8Ywo9I9sa8LICPkJ2Srt3oukN3n>TmB@ zUCgGl<%o7tQ*=u^uWL;Y=3?q!AM}z-f`3St7$TkPX+UbNkfrj0%~f+7OF`V~G)V~T zhvcwH{g%)Gefv{1oCS_+p#khq(QuZSPDBQ{c=iNni@Qq6d#IZQcoKNi9OrZo7T{Uj zbU;15H0lK~_k&o=6r2#GJORY5uB!l>9so&!qiNn_^$b8vCfW3Lz+OUub0j8saY06H)BzlnlTko&s8;Fw1=GL3#5(NVZHt_GLbH@3g?1zXN^% z9v1P$+VTY1m-*h+^8*1t0P{Z)y;SiAa6hW>&4oGqm<3qCbH7Uz-#I|}MC>`>nbZpoV7%ea5uhYE0CV8wdjs&SjfxIXu^$WY-sS*v zYVA7%U{Be4Zvf0udGE{yDwOynWNIk=fk z>V*bi&;EX2RSC{ff9z{qL@sP`-s{HJMnx_yN+agYa__4;%{e)nUEmOTeIU;szRmy) z1>P=%jgXHMp5}NB%Cg1JiLb#OfnBjQW?!t$IUq?~03WB{lNAneAE{4sUMJG{kMtS<-MER6ChXyMF;{^ah}1h0KxmQ2!jYG zVlD&76<}3}ya0_j)hvGi!J+`$kmVY$mf{m2`0(b_09#PE3E%|~ygzwk{VQNU#b7po z6F~IuuhqEq zI`Q!BpD@{28Um8ieK^EsFJc1-g+H*T-g^N&fL(tL;VVokXc==sl5%6X&yqvf?&v$m zwL#<<6gdE7;g)F!wJpL20OuWL!QFtHr2Z3zS^eIp=Dp+lq#}F87|Hn?nm@K$4WH0St`#e**4I0{D)Vh~IKoD4hXP@QH9={b_Cf{ZlwBkPJ2Z z0MN=Tf&pJ6-8zT+B5h}~U>t&qRX>Z6F~nb=aROK)=aS-I-9+f-{|Jx9TuK(7;JB7k z3N2;ebkC-YB0ea1J;1v*vD4%JL z0G=4_iR{4s^aRd*IEdi3bc#xy0U`(Vame9);Fz-HTIn7`bXM{RQ~1h!u&C|fI+=JTaYNIs#g4H@7)jG{e zE}hQj6)ZR~!;;UZ)0vHWr`A8Y#@~4!mI~{6}|S05o9#)Hq~2 z9>4QUjMRIsuN4P-!)M^j{a(A&SljeeU6U)x#nbo)Z=SdU;7Hmq1mXR!-l?e# zCAOMa!%`@a|7H_0=U~j`B13YdeR%)HwYK6I%q8}|seUXH$6+Xcjd|%()Vj`TeNPqV za5@U#F@NOtn`d!siIUyjbzYoN#U-Ih{SBut0EchX{657sr7V;NJI>Qb4EaCkPw-nq S2m6Eo0000KPyQqCXpzjc7TwKD%_BNK+W9aJybcp0f zh2Dys=Qkxmk-oycMpLF7kk>9WXw!cZ~ zmDGz+EGX1W+Gx0ZNY?J)@@^J3MuL(3kGQ2oj0G|4&9p$GW^J^TwzGEf%?Qhg+2SR1 zJz2Q6iV2`MC}aNa&uyD)MwE6xB<;OFSn@{`v`I$78avI%m^m{WjSO9c|+_}8aQ z$cZ^-ShHQw&e2|J#WQZh@;2;vJ(Xs}4hpMG2J>~U>462jTf;{9`A?<>d%@w6t^0ha zb(zjN%Fkfpsep#avUXB})(i%)P$wi!LIu8&TJ9ep722+e(ZKLZBJXe7z+(h(335eltYODimhV-$SXln5c~g0 ztJ^B8A0Hoj_PV;7L75nP(1=>C)9UAhO@BEFnMq(0uObjGW@iSe3Zeva1>!_&_#VJ` zqm3|W4LEIeeG242TjL9{;&G}_}~zv@NLnNna8{zz?~S&oJ;%;^LM0N%!CLK6Syd) zgbrI~t*-#(QJ|gDl#-oP1A`KQpt`90<>hDFBK+~}jrL4z3_zGqJHNrdbayvsf6S#p z{=%J6OjUDp{!eRtKW-M$P`z68h}#&2?YmUf)Kb82#}P~_o5O7seUexaQZ{?Y8=?}|) z9+jd{pU6ROU$L>PaBH3$@%u_J#dgf1lfmKsJX%&ul9IAGoWfLls>e65*Z0xAuw87< zoG*|FT*zo3%Ma+Hh9M@^ikt$VLiR@`>k?5j>8V<40WhbDrap*b)%>8({3rW^IVYJ} z8DJ6{ANpx#Pi(p)wgYZ?v~U`HB@&sQBg03yD2k!OT}6VQEV5a+(L}QVr=2!{cJdGb zaOHuY@GmG=#N(Ny=4PjeC#Gi{k|Zdk2R}4-iUPR}p_M9SR`z`G(DmI3|AUS8jP_L2 zYDpZsWIjl2xUi3MCYG_;KxO+RmUEDoa+gJb0+;v+vV#{!F$M-ipe z^{@ByU=FYE!n_=*Jg24wsa98jVO=JhJqnyI0gt-6Z1c;TUyX`e4Ymsi_rnfZI6xji zNFRe_Zz@CEy!3?cg(GGcw&0U*4Cpq91%U4L)Q zN-HIS0sHNwhb(aQh@{ZRO|Hq6ahSlCBSL z_rBgT)z%@nHkKq-8LG9umnM1i?=udZ@q9d=|D2bM>Zr_eOOMYp<8*}bc}L699kaCu z-CU*1#ia(ne*`BdhQ9;39WSsh^WNx-SSrn`z_6c(E~a;^xA&n)7rUf@P))6GwXF{3 zF7~*%LtP|QWckt(o({WPDFF2gTHa?Yi}N=N{fd@D-#nc&QjL{CwKF?@lP$Vg>KwH> zy1$OlB)}9dG`%hg0kOBbUHcAo9=-5*Tw--?>KxHx_51TK``r4`S@qe&yHoAfm$Q=> zhsA|;plZ-2Ct~(CO$@b=?~0kY5PHunPyYwb+cEr;Qi?@&^@t+j+OzoFt}p{|Wao@a z#{Ty3$aX~eMJXAv^QnE8YisYuWO*q9x$}o`HJ&^RYgi}7a|lf{bx0uKBQH8Qe}wz2 zlOX2pw&~_VVd<4CBXtWQFOaWw6tdQJ@MqzD4lFUC>sWbd_UkBu`c$|%xT2s@3PQ#H zReYKtT`&@zA?3%Z^H3E(AKXM4b*Q6Q}$0drT4Ury7U+in)^Ie zIKTLU6zFEmTVghkXpdf?CWK+L{Ouh$WMLo{LS-2Rg_F+=)YQm^Cu{i*+2`uVX0EX# z+-1wItK~gxiN60URt4X3On+W?>3-;ka<6bZDfeAgX!*{qTY_0o&%B*xNtlL_r!O@- zyRr23ndy-g*H33?wmcFY3L7Vsp%(77SiKmP72aOwed#q~ZW44}A`mlgfQ#HN!j(P0 zQI{!CBxYKu(BWb2KnLs5Q!YIU-T%lv44Xn;Ynr*{g7QY&fP`U1aEG=t|=er^OEHd2NUpa5=T*#N#_^o5s6yl6)4DvP)ekZYp2#3_em}ih|Qfbn~>#;(`#S0f9X|% zA}}u#f9Nd@8l66B{(I|KU_?NVPDSdh;a$yR_xZuXz1ekT z2Au#jRun&Y)3zEGk{tFmll3_F52Pq$i>rw&?|>NBYz4W~@M^A$; zyWdQ_D}$Fl@v-rosjP2oE=AfO|HKe5*xc+2(~#2m``~e-lp1&~_Ra1Ma2cVhdMq#? z3KAG8Z{UxIwPX&uvL9h94GHox2H<6(;qE3}AGlZE;cYWR&R;W%Q0x5pK7}A`m#oL zoe9t6?@-)b5Myl69BBfD3gKEp1T`==_%6=!0CMURi1Ut;XQ z{+59uPFN4BM&387T=Gk?T>5~RE}jJxR^ImS+bZOpoasq(CG$gb`tlnRBj=d{w#@L7 zCBDzGP6h3&bwLI`iy@@7t3x4^)u-|H;jvwsz9J;Ud}@}Ampm%XjCO`X*(?0*69A7M)X literal 0 HcmV?d00001 diff --git a/public/resource/images/icon_search.png b/public/resource/images/icon_search.png new file mode 100644 index 0000000000000000000000000000000000000000..282bd7896508f967229f6ee7e062ac59b8f2cb56 GIT binary patch literal 416 zcmV;R0bl-!P)Ju|kEC7Z3A0W;lB8)-7 za}S88;ZlPwnVJDHGZ1egB8~h7;!{9uLrOjng3=#}Oo)%5$(LvgUPEaKA}x>u;-{oo z0P^y8AWk5{aFEMgf%qV)8EqOg{i_p*8vt=2QXKJ6QWh~oGt*wAatM^W=L4}TG!KA)A30?a zG1vfzzd?giixw6zKucAa&xno#Qov#$76oEOY?6$ll|CT=5MTfnnhx$UmG(CP0000< KMNUMnLSTZl^`7?t literal 0 HcmV?d00001 diff --git a/public/resource/images/icon_weibo.png b/public/resource/images/icon_weibo.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f365e133b0b87c6083aa5caf3287ace8bdbecc GIT binary patch literal 530 zcmV+t0`2{YP)cbo0$_rc z4d@2mfG`1cf{F=JCP+I$(h1xR+6|fk5}CW|8BSNbia`D1q^H>N`E0*?XQ$4&68AJA_`Q{XCE2f5uPTKNtcZXGy@*wf0}%t&m-ZE+9}#A46|=@ zYVip|===ViuqQZyXXTR30I&u>(4<}JUF5(7x%{B-nf32%CShT!>#;FpZ&anjdN(A2BR zpP-He=Ur_@|CVH_zX9y{m- z)@V<)Bjh^`D9hVYjjf=jAA=%%GAnSqjPP#+_gY0Zq@vSxt*V%J_yKNx)pp{f206;r zspcYw=kEdNDAi<1M*(QM78JORB{}%u@cj?9+y^TBfa-3~_#V5!|9SMs*p~nU09k{H UHFOnW5&!@I07*qoM6N<$f-X?(FaQ7m literal 0 HcmV?d00001 diff --git a/public/resource/images/loader-large-inverted.gif b/public/resource/images/loader-large-inverted.gif new file mode 100644 index 0000000000000000000000000000000000000000..ee5283f10fc717f8a2335f8b8092e1adae642f92 GIT binary patch literal 10168 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 CvRK0a literal 0 HcmV?d00001 diff --git a/public/resource/images/loader-large.gif b/public/resource/images/loader-large.gif new file mode 100644 index 0000000000000000000000000000000000000000..519621ccde30027bee14c18a2c552def9f39f9e7 GIT binary patch literal 8492 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 literal 0 HcmV?d00001 diff --git a/public/resource/images/loader-mini-inverted.gif b/public/resource/images/loader-mini-inverted.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7c95b948d30a5a8ee87741d663b2e05c77db59b GIT binary patch literal 2722 zcmcJQe^8Ql9LFED zrgJ;b7M3NImX#|jYeJb>wz1}Z+MQ zu9PGt@`Fh5P4q*QLP0Qu=lS0AEP_tO<;zX8Rt=oC;h{ZSwCg_9?LSy}^NgPN{^Zfm zsgFN5r_N2S-ddfzBDecww^$?|yfO$doku!LHkJ&2Irwi9G+HT_xVUT3q4tAkd zzeC$X_dNe;$!kB99vm)3M^z>Us1O_i=2ENFZTs6mv8l1Cu&D5y>l_hBsF$ick9C4* z%dQr`9LnqHKjspywIs(=Lst_vCyR82QR$YOR7hP~cSP+_+3=$tyI#hdx=p6_2~G+W zj3ZzIMTP>T1kVXTmY2wbLA9@H6`2Z<0>QR}ZD4u*_Ii*-=Zy3php|8qt2Psqt9;T> zlt-}Gk!8n+2f5DA=?A|PD|M+f*Oa9G!nr%$j*^UaRm|wHVS(BlqATleMwYwfqE(JeB|a>slX|;O*bLdT z&{sk({rGhX4HxW#qj>KtuxJwuiAc zUb?;Mpu!1^FRpmJrQiq#we><073mK z#iaoVuz^c@qbtQWl!h@)GtGMpx9Ewc8(N1iqjK#t{wy z0H6r#1^}=FzyLhnOu!Dv2Ot4>6ei0p?-RXLfF{LbFRtcRt`9aWXh z1Y7_GL;wOrV49aDNT$oDC+|j&-8MGFCA&bnNq%b zyaI)_f+B%K0|jVL5P|TZOrdPXFHnv$@c9;PPU{lF$ft>FS{Mcvx}J?NNaJ18*an50 zf@XW7LE*^#C5rOgfimiJjfEdwv1_R*4=KqYVmW3GsRB z6Xx|?ZiWIH8$$HgC!~hX>+lcDB$t|(HCAXteqh#JAhgPK5 zq(zaX7dd<(H-z*JK_1_1e}BR$`1=#qbNv1k`OJPhHf=MX5>J<$i0#$u`*3E{WL~v> zM^ywDr8VOAXH{KI{CO?S*_BK>oBzBkrUPGzSD}s$-4bRMSwqHH z)Ufij5=^mkZ!c+Wy+4pKBv79sF~C3?-Vk8h0l;I3R17ds6<`!BKS06-qso6s80=J| zBKQxq|E$m~6pA@k)wO3wHelyfGo@#yQK#N|rqrozrLXNRCFm$EJ$n;^Qe)TH@lwKI zS)kA16>UBDzKDAtwf*8x>8bitt?ZZIM6sOMPIO^jjZ%RdOyGJKWr zp9*v#6lj5|n<0Jciyt|0Ga9o=ACe6N?)Rv(1XE5Kn!2&xg5&0stsg}t;zxtYi8h5j gW_w1fQu2_QnZPn3bFlfE(=lJv_)g~k=+Ak71CD7&bN~PV literal 0 HcmV?d00001 diff --git a/public/resource/images/loader-mini.gif b/public/resource/images/loader-mini.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f3e27c704155e5c2d5c4b7c776fd8f499f8e04f GIT binary patch literal 2548 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 literal 0 HcmV?d00001 diff --git a/public/resource/images/loader-small.gif b/public/resource/images/loader-small.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c9f60ee2944554b57e0c79b6ad70e515c2a257b GIT binary patch literal 3447 zcmchZc~nzp8i#Lg?!6=sAfaIq0TT=mAchF25nNcpBHKw26kMaC1Ox>|i&knvKo(hL zQE0|O1Pln4sf<;jPQb_*mx>zehKgvN;xeK#bz@4u0D*MIcIKR(Gx>*e63+KN@9%!^ z``n;Kf!w)ktRO4sAq16ImOpy@sO@;$&`(3MgECpQ?Abq_4gWk`US0m|$+O}2!*%ky zk&zKd_o0s%MFd1G_V?unxU)HU9QdC84j~dD62#K}kM>vynNgy4E{svID2kDSOd2AA zh>DOrxlPD7-=!trPe1x%*NYKlO-eA!y7*k28$5o3>EsDgP*wB22B37D>d-nRz$$!Th$%~E#!`GkTH zBv0jfnibuaTk_|c%s)pb5|nnZ(%tJl#qI{qvJxu3{A1hBOPkv751!Z+@ztFdZ#!1m z>RK?FY(WZ`K~5kr00~+E*dR*~DxhsU)du3!lD{7Y4UWMhOMBD%M`>vWkPZlP$ zuCHRPW;)lWdXh3ZXDP0mgm$F;(o_!WV}r|u-ZOP!m|(3!oL{cE zMW_(XQXw&rCi&cU98Fbg;k&mXZC3v5fYMv4AI!YOJ|`ZU6JydxL38u+_Z9?wjCO2f zv|xZ1%!n>rE$!ov(WV00Kr(F_1^d@E@p@%yiBG>IG6lxu7yV0RK}sxE-de#64DyX5 zEBj}*g+-?4RB#?3;jZ=3+vHqhQe%sGAVgJ7JJdJi?~$7PMt&r(ePGo|p1|eHed_VSTQh}hBdhcFP!N$Bpr(o9 zhy**PIYU7Dn}CYNDmu3-&XwZ!m>QisM8eaK*UjDVJq4mdA>7t`3C2^SDxP) zUZXa19VobW^vWl1%-N~&-6^!qXO?-g_Z|y=@a_v`B5m?u#ov z?Dx~-T$!M7U8{X(+p2a*^SY<}y& z1>cRQo!vsG&;E;$?i3qUe}?C_KDn=9?Ow2w*(`P4F{_I5K6PgwUvYQd&RIn}IHq#wvv24;5sy}e8NZHpnZM25 zF)4nyMZ8?(dbM!TN|S1I=DRC?74GbocNV&;#*P1Js zFl0Pu{Z*^A)m05xuiz?-sS4Bqn^#+^K`SyK5@3{xC=l5 z`_xWhnTZ*=Duji}e0^FGGGeH3(5+Mbh9_*L?fH1yn54AA0(u-(6#xO7Y_j2?k2UOV zbx;yzgk#EJf`>T-b;HMm5Z=<3*2!U6l_db2wa=Un0!Vz6qp!&sNd72-f!p%V9tq0l)}0^_D10}-Lth@O4|vM zIQTxgwGBkDgj1{v8ghO#e5omd#nT5hd>D3OU+)t!sm7TPs=|%!E)UX8W9Bux;&DVY z10~|b4)pPc^j>D9`mWNx5RB>y^f4wXpeWGCM6v)Bi7WZHhs(62<)tHgAyz+3zzK6P zG70f}T1JB~QkF>_FIb$Fc^IP695hTP*ZM~UR+!&FJ3>XW*OYQ?%#5V++uxGT1)|pc zfEBawIM^35|Fw3C{bbaf+BrwMCuu*>}n`sh%616hxx)5PVNT|3ZnGPX4AP>$Syzs3zzu$mioZ%ID znd4oT(z29!+=hUIo`yZ~YEuW=NdO&w4^WxBjH0fhBE^(P+rm3^kA% zED&UvqnzjhggtdZtYBraxsLjO^3$iHQ@uZLP~L(|qp~can~NVvLf;7Tx4E3jt+aE5 zx-O*gsCPn*NZfnR{UK@=$B!aSGT$Bi{cE%9xXS4GmsV%DCEhJAPIzq_FTBT!cc@KS zAypewT7;hN>p1QA55g#3ibpe$G!hzOx3thMiix_E5uZ~&=93`TV${;A>W&Z)H zhY4%R{#aSM%vwJC?t8&4v^bP@gJi<2-SinQw!C*x`N5WQ_WY|JmTfA0yDWa?s`N

xA+D)|B@z|0K+C literal 0 HcmV?d00001 diff --git a/public/resource/images/logo.png b/public/resource/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1822ad406fd382e19e061362ee69a441ca463ee0 GIT binary patch literal 4347 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%0A^ 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 literal 0 HcmV?d00001 diff --git a/public/resource/javascript/alert.js b/public/resource/javascript/alert.js new file mode 100644 index 0000000..0076a69 --- /dev/null +++ b/public/resource/javascript/alert.js @@ -0,0 +1,78 @@ ++function ($) { "use strict"; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.hasClass('alert') ? $this : $this.parent() + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent.trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one($.support.transition.end, removeElement) + .emulateTransitionEnd(150) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(jQuery); diff --git a/public/resource/javascript/framework.js b/public/resource/javascript/framework.js new file mode 100644 index 0000000..c59d007 --- /dev/null +++ b/public/resource/javascript/framework.js @@ -0,0 +1,11647 @@ +/* + * # Semantic - Accordion + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.accordion = function(parameters) { + var + $allModules = $(this), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.accordion.settings, parameters) + : $.extend({}, $.fn.accordion.settings), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + $module = $(this), + $title = $module.find(selector.title), + $content = $module.find(selector.content), + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.debug('Initializing accordion with bound events', $module); + // initializing + $title + .on('click' + eventNamespace, module.event.click) + ; + module.instantiate(); + }, + + instantiate: function() { + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.debug('Destroying previous accordion for', $module); + $module + .removeData(moduleNamespace) + ; + $title + .off(eventNamespace) + ; + }, + + event: { + click: function() { + module.verbose('Title clicked', this); + var + $activeTitle = $(this), + index = $title.index($activeTitle) + ; + module.toggle(index); + }, + resetStyle: function() { + module.verbose('Resetting styles on element', this); + $(this) + .attr('style', '') + .removeAttr('style') + .children() + .attr('style', '') + .removeAttr('style') + ; + } + }, + + toggle: function(index) { + module.debug('Toggling content content at index', index); + var + $activeTitle = $title.eq(index), + $activeContent = $activeTitle.next($content), + contentIsOpen = $activeContent.is(':visible') + ; + if(contentIsOpen) { + if(settings.collapsible) { + module.close(index); + } + else { + module.debug('Cannot close accordion content collapsing is disabled'); + } + } + else { + module.open(index); + } + }, + + open: function(index) { + var + $activeTitle = $title.eq(index), + $activeContent = $activeTitle.next($content), + $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active), + $previousContent = $previousTitle.next($title), + contentIsOpen = ($previousTitle.size() > 0) + ; + if( !$activeContent.is(':animated') ) { + module.debug('Opening accordion content', $activeTitle); + if(settings.exclusive && contentIsOpen) { + $previousTitle + .removeClass(className.active) + ; + $previousContent + .stop() + .children() + .animate({ + opacity: 0 + }, settings.duration, module.event.resetStyle) + .end() + .slideUp(settings.duration , settings.easing, function() { + $previousContent + .removeClass(className.active) + .attr('style', '') + .removeAttr('style') + .children() + .attr('style', '') + .removeAttr('style') + ; + }) + ; + } + $activeTitle + .addClass(className.active) + ; + $activeContent + .stop() + .children() + .attr('style', '') + .removeAttr('style') + .end() + .slideDown(settings.duration, settings.easing, function() { + $activeContent + .addClass(className.active) + .attr('style', '') + .removeAttr('style') + ; + $.proxy(settings.onOpen, $activeContent)(); + $.proxy(settings.onChange, $activeContent)(); + }) + ; + } + }, + + close: function(index) { + var + $activeTitle = $title.eq(index), + $activeContent = $activeTitle.next($content) + ; + module.debug('Closing accordion content', $activeContent); + $activeTitle + .removeClass(className.active) + ; + $activeContent + .removeClass(className.active) + .show() + .stop() + .children() + .animate({ + opacity: 0 + }, settings.duration, module.event.resetStyle) + .end() + .slideUp(settings.duration, settings.easing, function(){ + $activeContent + .attr('style', '') + .removeAttr('style') + ; + $.proxy(settings.onClose, $activeContent)(); + $.proxy(settings.onChange, $activeContent)(); + }) + ; + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + module.debug('Changing internal', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else { + module[name] = value; + } + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.accordion.settings = { + name : 'Accordion', + namespace : 'accordion', + + debug : true, + verbose : true, + performance : true, + + exclusive : true, + collapsible : true, + + duration : 400, + easing : 'easeInOutQuint', + + onOpen : function(){}, + onClose : function(){}, + onChange : function(){}, + + error: { + method : 'The method you called is not defined' + }, + + className : { + active : 'active' + }, + + selector : { + title : '.title', + content : '.content' + } + + +}; + +// Adds easing +$.extend( $.easing, { + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + } +}); + +})( jQuery, window , document ); + + +/* + * # Semantic - API + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + + $.api = $.fn.api = function(parameters) { + + var + settings = $.extend(true, {}, $.api.settings, parameters), + + // if this keyword isn't a jQuery object, create one + context = (typeof this != 'function') + ? this + : $('

'), + // context defines the element used for loading/error state + $context = (settings.stateContext) + ? $(settings.stateContext) + : $(context), + // module is the thing that initiates the api action, can be independent of context + $module = typeof this == 'object' + ? $(context) + : $context, + + element = this, + time = new Date().getTime(), + performance = [], + + moduleSelector = $module.selector || '', + moduleNamespace = settings.namespace + '-module', + + className = settings.className, + metadata = settings.metadata, + error = settings.error, + + instance = $module.data(moduleNamespace), + + query = arguments[0], + methodInvoked = (instance !== undefined && typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + module, + returnedValue + ; + + module = { + initialize: function() { + var + runSettings, + + loadingTimer = new Date().getTime(), + loadingDelay, + + promise, + url, + + formData = {}, + data, + + ajaxSettings = {}, + xhr + ; + + // serialize parent form if requested! + if(settings.serializeForm && $(this).toJSON() !== undefined) { + formData = module.get.formData(); + module.debug('Adding form data to API Request', formData); + $.extend(true, settings.data, formData); + } + + // let beforeSend change settings object + runSettings = $.proxy(settings.beforeSend, $module)(settings); + + // check for exit conditions + if(runSettings !== undefined && !runSettings) { + module.error(error.beforeSend); + module.reset(); + return; + } + + // get real url from template + url = module.get.url( module.get.templateURL() ); + + // exit conditions reached from missing url parameters + if( !url ) { + module.error(error.missingURL); + module.reset(); + return; + } + + // promise handles notification on api request, so loading min. delay can occur for all notifications + promise = + $.Deferred() + .always(function() { + if(settings.stateContext) { + $context + .removeClass(className.loading) + ; + } + $.proxy(settings.complete, $module)(); + }) + .done(function(response) { + module.debug('API request successful'); + // take a stab at finding success state if json + if(settings.dataType == 'json') { + if (response.error !== undefined) { + $.proxy(settings.failure, $context)(response.error, settings, $module); + } + else if ($.isArray(response.errors)) { + $.proxy(settings.failure, $context)(response.errors[0], settings, $module); + } + else { + $.proxy(settings.success, $context)(response, settings, $module); + } + } + // otherwise + else { + $.proxy(settings.success, $context)(response, settings, $module); + } + }) + .fail(function(xhr, status, httpMessage) { + var + errorMessage = (settings.error[status] !== undefined) + ? settings.error[status] + : httpMessage, + response + ; + // let em know unless request aborted + if(xhr !== undefined) { + // readyState 4 = done, anything less is not really sent + if(xhr.readyState !== undefined && xhr.readyState == 4) { + + // if http status code returned and json returned error, look for it + if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') { + module.error(error.statusMessage + httpMessage); + } + else { + if(status == 'error' && settings.dataType == 'json') { + try { + response = $.parseJSON(xhr.responseText); + if(response && response.error !== undefined) { + errorMessage = response.error; + } + } + catch(error) { + module.error(error.JSONParse); + } + } + } + $context + .removeClass(className.loading) + .addClass(className.error) + ; + // show error state only for duration specified in settings + if(settings.errorLength > 0) { + setTimeout(function(){ + $context + .removeClass(className.error) + ; + }, settings.errorLength); + } + module.debug('API Request error:', errorMessage); + $.proxy(settings.failure, $context)(errorMessage, settings, this); + } + else { + module.debug('Request Aborted (Most likely caused by page change)'); + } + } + }) + ; + + // look for params in data + $.extend(true, ajaxSettings, settings, { + success : function(){}, + failure : function(){}, + complete : function(){}, + type : settings.method || settings.type, + data : data, + url : url, + beforeSend : settings.beforeXHR + }); + + if(settings.stateContext) { + $context + .addClass(className.loading) + ; + } + + if(settings.progress) { + module.verbose('Adding progress events'); + $.extend(true, ajaxSettings, { + xhr: function() { + var + xhr = new window.XMLHttpRequest() + ; + xhr.upload.addEventListener('progress', function(event) { + var + percentComplete + ; + if (event.lengthComputable) { + percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%'; + $.proxy(settings.progress, $context)(percentComplete, event); + } + }, false); + xhr.addEventListener('progress', function(event) { + var + percentComplete + ; + if (event.lengthComputable) { + percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%'; + $.proxy(settings.progress, $context)(percentComplete, event); + } + }, false); + return xhr; + } + }); + } + + module.verbose('Creating AJAX request with settings: ', ajaxSettings); + xhr = + $.ajax(ajaxSettings) + .always(function() { + // calculate if loading time was below minimum threshold + loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) ); + settings.loadingDelay = loadingDelay < 0 + ? 0 + : loadingDelay + ; + }) + .done(function(response) { + var + context = this + ; + setTimeout(function(){ + promise.resolveWith(context, [response]); + }, settings.loadingDelay); + }) + .fail(function(xhr, status, httpMessage) { + var + context = this + ; + // page triggers abort on navigation, dont show error + if(status != 'abort') { + setTimeout(function(){ + promise.rejectWith(context, [xhr, status, httpMessage]); + }, settings.loadingDelay); + } + else { + $context + .removeClass(className.error) + .removeClass(className.loading) + ; + } + }) + ; + if(settings.stateContext) { + $module + .data(metadata.promise, promise) + .data(metadata.xhr, xhr) + ; + } + }, + + get: { + formData: function() { + return $module + .closest('form') + .toJSON() + ; + }, + templateURL: function() { + var + action = $module.data(settings.metadata.action) || settings.action || false, + url + ; + if(action) { + module.debug('Creating url for: ', action); + if(settings.api[action] !== undefined) { + url = settings.api[action]; + } + else { + module.error(error.missingAction); + } + } + // override with url if specified + if(settings.url) { + url = settings.url; + module.debug('Getting url', url); + } + return url; + }, + url: function(url, urlData) { + var + urlVariables + ; + if(url) { + urlVariables = url.match(settings.regExpTemplate); + urlData = urlData || settings.urlData; + + if(urlVariables) { + module.debug('Looking for URL variables', urlVariables); + $.each(urlVariables, function(index, templateValue){ + var + term = templateValue.substr( 2, templateValue.length - 3), + termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined) + ? urlData[term] + : ($module.data(term) !== undefined) + ? $module.data(term) + : urlData[term] + ; + module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]); + // remove optional value + if(termValue === false) { + module.debug('Removing variable from URL', urlVariables); + url = url.replace('/' + templateValue, ''); + } + // undefined condition + else if(termValue === undefined || !termValue) { + module.error(error.missingParameter + term); + url = false; + return false; + } + else { + url = url.replace(templateValue, termValue); + } + }); + } + } + return url; + } + }, + + // reset api request + reset: function() { + $module + .data(metadata.promise, false) + .data(metadata.xhr, false) + ; + $context + .removeClass(className.error) + .removeClass(className.loading) + ; + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + return (returnedValue !== undefined) + ? returnedValue + : this + ; + }; + + // handle DOM attachment to API functionality + $.fn.apiButton = function(parameters) { + $(this) + .each(function(){ + var + // if only function passed it is success callback + $module = $(this), + selector = $(this).selector || '', + + settings = ( $.isFunction(parameters) ) + ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters }) + : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters), + module + ; + module = { + initialize: function() { + if(settings.context && selector !== '') { + $(settings.context) + .on(selector, 'click.' + settings.namespace, module.click) + ; + } + else { + $module + .on('click.' + settings.namespace, module.click) + ; + } + }, + click: function() { + if(!settings.filter || $(this).filter(settings.filter).size() === 0) { + $.proxy( $.api, this )(settings); + } + } + }; + module.initialize(); + }) + ; + return this; + }; + + $.api.settings = { + + name : 'API', + namespace : 'api', + + debug : true, + verbose : true, + performance : true, + + api : {}, + + beforeSend : function(settings) { + return settings; + }, + beforeXHR : function(xhr) {}, + success : function(response) {}, + complete : function(response) {}, + failure : function(errorCode) {}, + progress : false, + + error : { + missingAction : 'API action used but no url was defined', + missingURL : 'URL not specified for the API action', + missingParameter : 'Missing an essential URL parameter: ', + + timeout : 'Your request timed out', + error : 'There was an error with your request', + parseError : 'There was an error parsing your request', + JSONParse : 'JSON could not be parsed during error handling', + statusMessage : 'Server gave an error: ', + beforeSend : 'The before send function has aborted the request', + exitConditions : 'API Request Aborted. Exit conditions met' + }, + + className: { + loading : 'loading', + error : 'error' + }, + + metadata: { + action : 'action', + promise : 'promise', + xhr : 'xhr' + }, + + regExpTemplate: /\{\$([A-z]+)\}/g, + + action : false, + url : false, + urlData : false, + serializeForm : false, + + stateContext : false, + + method : 'get', + data : {}, + dataType : 'json', + cache : true, + + loadingLength : 200, + errorLength : 2000 + + }; + + $.fn.apiButton.settings = { + filter : '.disabled, .loading', + context : false, + stateContext : false + }; + +})( jQuery, window , document ); +/* + * # Semantic - Colorize + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + + $.fn.colorize = function(parameters) { + var + settings = $.extend(true, {}, $.fn.colorize.settings, parameters), + // hoist arguments + moduleArguments = arguments || false + ; + $(this) + .each(function(instanceIndex) { + + var + $module = $(this), + + mainCanvas = $('')[0], + imageCanvas = $('')[0], + overlayCanvas = $('')[0], + + backgroundImage = new Image(), + + // defs + mainContext, + imageContext, + overlayContext, + + image, + imageName, + + width, + height, + + // shortucts + colors = settings.colors, + paths = settings.paths, + namespace = settings.namespace, + error = settings.error, + + // boilerplate + instance = $module.data('module-' + namespace), + module + ; + + module = { + + checkPreconditions: function() { + module.debug('Checking pre-conditions'); + + if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) { + module.error(error.undefinedColors); + return false; + } + return true; + }, + + async: function(callback) { + if(settings.async) { + setTimeout(callback, 0); + } + else { + callback(); + } + }, + + getMetadata: function() { + module.debug('Grabbing metadata'); + image = $module.data('image') || settings.image || undefined; + imageName = $module.data('name') || settings.name || instanceIndex; + width = settings.width || $module.width(); + height = settings.height || $module.height(); + if(width === 0 || height === 0) { + module.error(error.undefinedSize); + } + }, + + initialize: function() { + module.debug('Initializing with colors', colors); + if( module.checkPreconditions() ) { + + module.async(function() { + module.getMetadata(); + module.canvas.create(); + + module.draw.image(function() { + module.draw.colors(); + module.canvas.merge(); + }); + $module + .data('module-' + namespace, module) + ; + }); + } + }, + + redraw: function() { + module.debug('Redrawing image'); + module.async(function() { + module.canvas.clear(); + module.draw.colors(); + module.canvas.merge(); + }); + }, + + change: { + color: function(colorName, color) { + module.debug('Changing color', colorName); + if(colors[colorName] === undefined) { + module.error(error.missingColor); + return false; + } + colors[colorName] = color; + module.redraw(); + } + }, + + canvas: { + create: function() { + module.debug('Creating canvases'); + + mainCanvas.width = width; + mainCanvas.height = height; + imageCanvas.width = width; + imageCanvas.height = height; + overlayCanvas.width = width; + overlayCanvas.height = height; + + mainContext = mainCanvas.getContext('2d'); + imageContext = imageCanvas.getContext('2d'); + overlayContext = overlayCanvas.getContext('2d'); + + $module + .append( mainCanvas ) + ; + mainContext = $module.children('canvas')[0].getContext('2d'); + }, + clear: function(context) { + module.debug('Clearing canvas'); + overlayContext.fillStyle = '#FFFFFF'; + overlayContext.fillRect(0, 0, width, height); + }, + merge: function() { + if( !$.isFunction(mainContext.blendOnto) ) { + module.error(error.missingPlugin); + return; + } + mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0); + overlayContext.blendOnto(mainContext, 'multiply'); + } + }, + + draw: { + + image: function(callback) { + module.debug('Drawing image'); + callback = callback || function(){}; + if(image) { + backgroundImage.src = image; + backgroundImage.onload = function() { + imageContext.drawImage(backgroundImage, 0, 0); + callback(); + }; + } + else { + module.error(error.noImage); + callback(); + } + }, + + colors: function() { + module.debug('Drawing color overlays', colors); + $.each(colors, function(colorName, color) { + settings.onDraw(overlayContext, imageName, colorName, color); + }); + } + + }, + + debug: function(message, variableName) { + if(settings.debug) { + if(variableName !== undefined) { + console.info(settings.name + ': ' + message, variableName); + } + else { + console.info(settings.name + ': ' + message); + } + } + }, + error: function(errorMessage) { + console.warn(settings.name + ': ' + errorMessage); + }, + invoke: function(methodName, context, methodArguments) { + var + method + ; + methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 ); + + if(typeof methodName == 'string' && instance !== undefined) { + methodName = methodName.split('.'); + $.each(methodName, function(index, name) { + if( $.isPlainObject( instance[name] ) ) { + instance = instance[name]; + return true; + } + else if( $.isFunction( instance[name] ) ) { + method = instance[name]; + return true; + } + module.error(settings.error.method); + return false; + }); + } + return ( $.isFunction( method ) ) + ? method.apply(context, methodArguments) + : false + ; + } + + }; + if(instance !== undefined && moduleArguments) { + // simpler than invoke realizing to invoke itself (and losing scope due prototype.call() + if(moduleArguments[0] == 'invoke') { + moduleArguments = Array.prototype.slice.call( moduleArguments, 1 ); + } + return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) ); + } + // initializing + module.initialize(); + }) + ; + return this; + }; + + $.fn.colorize.settings = { + name : 'Image Colorizer', + debug : true, + namespace : 'colorize', + + onDraw : function(overlayContext, imageName, colorName, color) {}, + + // whether to block execution while updating canvas + async : true, + // object containing names and default values of color regions + colors : {}, + + metadata: { + image : 'image', + name : 'name' + }, + + error: { + noImage : 'No tracing image specified', + undefinedColors : 'No default colors specified.', + missingColor : 'Attempted to change color that does not exist', + missingPlugin : 'Blend onto plug-in must be included', + undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.' + } + + }; + +})( jQuery, window , document ); + +/* + * # Semantic - Form Validation + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.form = function(fields, parameters) { + var + $allModules = $(this), + + settings = $.extend(true, {}, $.fn.form.settings, parameters), + validation = $.extend({}, $.fn.form.settings.defaults, fields), + + namespace = settings.namespace, + metadata = settings.metadata, + selector = settings.selector, + className = settings.className, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $allModules + .each(function() { + var + $module = $(this), + $field = $(this).find(selector.field), + $group = $(this).find(selector.group), + $message = $(this).find(selector.message), + $prompt = $(this).find(selector.prompt), + $submit = $(this).find(selector.submit), + + formErrors = [], + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing form validation', $module, validation, settings); + if(settings.keyboardShortcuts) { + $field + .on('keydown' + eventNamespace, module.event.field.keydown) + ; + } + $module + .on('submit' + eventNamespace, module.validate.form) + ; + $field + .on('blur' + eventNamespace, module.event.field.blur) + ; + $submit + .on('click' + eventNamespace, module.submit) + ; + $field + .on(module.get.changeEvent() + eventNamespace, module.event.field.change) + ; + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', instance); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $field = $module.find(selector.field); + }, + + submit: function() { + module.verbose('Submitting form', $module); + $module + .submit() + ; + }, + + event: { + field: { + keydown: function(event) { + var + $field = $(this), + key = event.which, + keyCode = { + enter : 13, + escape : 27 + } + ; + if( key == keyCode.escape) { + module.verbose('Escape key pressed blurring field'); + $field + .blur() + ; + } + if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) { + module.debug('Enter key pressed, submitting form'); + $submit + .addClass(className.down) + ; + $field + .one('keyup' + eventNamespace, module.event.field.keyup) + ; + event.preventDefault(); + return false; + } + }, + keyup: function() { + module.verbose('Doing keyboard shortcut form submit'); + $submit.removeClass(className.down); + module.submit(); + }, + blur: function() { + var + $field = $(this), + $fieldGroup = $field.closest($group) + ; + if( $fieldGroup.hasClass(className.error) ) { + module.debug('Revalidating field', $field, module.get.validation($field)); + module.validate.field( module.get.validation($field) ); + } + else if(settings.on == 'blur' || settings.on == 'change') { + module.validate.field( module.get.validation($field) ); + } + }, + change: function() { + var + $field = $(this), + $fieldGroup = $field.closest($group) + ; + if( $fieldGroup.hasClass(className.error) ) { + module.debug('Revalidating field', $field, module.get.validation($field)); + module.validate.field( module.get.validation($field) ); + } + else if(settings.on == 'change') { + module.validate.field( module.get.validation($field) ); + } + } + } + + }, + + get: { + changeEvent: function() { + return (document.createElement('input').oninput !== undefined) + ? 'input' + : (document.createElement('input').onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + }, + field: function(identifier) { + module.verbose('Finding field with identifier', identifier); + if( $field.filter('#' + identifier).size() > 0 ) { + return $field.filter('#' + identifier); + } + else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) { + return $field.filter('[name="' + identifier +'"]'); + } + else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) { + return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]'); + } + return $(''); + }, + validation: function($field) { + var + rules + ; + $.each(validation, function(fieldName, field) { + if( module.get.field(field.identifier).get(0) == $field.get(0) ) { + rules = field; + } + }); + return rules || false; + } + }, + + has: { + + field: function(identifier) { + module.verbose('Checking for existence of a field with identifier', identifier); + if( $field.filter('#' + identifier).size() > 0 ) { + return true; + } + else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) { + return true; + } + else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) { + return true; + } + return false; + } + + }, + + add: { + prompt: function(field, errors) { + var + $field = module.get.field(field.identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.find(selector.prompt), + promptExists = ($prompt.size() !== 0) + ; + module.verbose('Adding inline error', field); + $fieldGroup + .addClass(className.error) + ; + if(settings.inline) { + if(!promptExists) { + $prompt = settings.templates.prompt(errors); + $prompt + .appendTo($fieldGroup) + ; + } + $prompt + .html(errors[0]) + ; + if(!promptExists) { + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + module.verbose('Displaying error with css transition', settings.transition); + $prompt.transition(settings.transition + ' in', settings.duration); + } + else { + module.verbose('Displaying error with fallback javascript animation'); + $prompt + .fadeIn(settings.duration) + ; + } + } + } + }, + errors: function(errors) { + module.debug('Adding form error messages', errors); + $message + .html( settings.templates.error(errors) ) + ; + } + }, + + remove: { + prompt: function(field) { + var + $field = module.get.field(field.identifier), + $fieldGroup = $field.closest($group), + $prompt = $fieldGroup.find(selector.prompt) + ; + $fieldGroup + .removeClass(className.error) + ; + if(settings.inline && $prompt.is(':visible')) { + module.verbose('Removing prompt for field', field); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $prompt.transition(settings.transition + ' out', settings.duration, function() { + $prompt.remove(); + }); + } + else { + $prompt + .fadeOut(settings.duration, function(){ + $prompt.remove(); + }) + ; + } + } + } + }, + + validate: { + + form: function(event) { + var + allValid = true + ; + // reset errors + formErrors = []; + $.each(validation, function(fieldName, field) { + if( !( module.validate.field(field) ) ) { + allValid = false; + } + }); + if(allValid) { + module.debug('Form has no validation errors, submitting'); + $module + .removeClass(className.error) + .addClass(className.success) + ; + $.proxy(settings.onSuccess, this)(event); + } + else { + module.debug('Form has errors'); + $module.addClass(className.error); + if(!settings.inline) { + module.add.errors(formErrors); + } + return $.proxy(settings.onFailure, this)(formErrors); + } + }, + + // takes a validation object and returns whether field passes validation + field: function(field) { + var + $field = module.get.field(field.identifier), + fieldValid = true, + fieldErrors = [] + ; + if(field.rules !== undefined) { + $.each(field.rules, function(index, rule) { + if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) { + module.debug('Field is invalid', field.identifier, rule.type); + fieldErrors.push(rule.prompt); + fieldValid = false; + } + }); + } + if(fieldValid) { + module.remove.prompt(field, fieldErrors); + $.proxy(settings.onValid, $field)(); + } + else { + formErrors = formErrors.concat(fieldErrors); + module.add.prompt(field, fieldErrors); + $.proxy(settings.onInvalid, $field)(fieldErrors); + return false; + } + return true; + }, + + // takes validation rule and returns whether field passes rule + rule: function(field, validation) { + var + $field = module.get.field(field.identifier), + type = validation.type, + value = $field.val() + '', + + bracketRegExp = /\[(.*?)\]/i, + bracket = bracketRegExp.exec(type), + isValid = true, + ancillary, + functionType + ; + // if bracket notation is used, pass in extra parameters + if(bracket !== undefined && bracket !== null) { + ancillary = '' + bracket[1]; + functionType = type.replace(bracket[0], ''); + isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary); + } + // normal notation + else { + isValid = $.proxy(settings.rules[type], $field)(value); + } + return isValid; + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.form.settings = { + + name : 'Form', + namespace : 'form', + + debug : true, + verbose : true, + performance : true, + + + keyboardShortcuts : true, + on : 'submit', + inline : false, + + transition : 'scale', + duration : 150, + + + onValid : function() {}, + onInvalid : function() {}, + onSuccess : function() { return true; }, + onFailure : function() { return false; }, + + metadata : { + validate: 'validate' + }, + + selector : { + message : '.error.message', + field : 'input, textarea, select', + group : '.field', + input : 'input', + prompt : '.prompt', + submit : '.submit' + }, + + className : { + error : 'error', + success : 'success', + down : 'down', + label : 'ui label prompt' + }, + + // errors + error: { + method : 'The method you called is not defined.' + }, + + + + templates: { + error: function(errors) { + var + html = '
    ' + ; + $.each(errors, function(index, value) { + html += '
  • ' + value + '
  • '; + }); + html += '
'; + return $(html); + }, + prompt: function(errors) { + return $('
') + .addClass('ui red pointing prompt label') + .html(errors[0]) + ; + } + }, + + rules: { + checked: function() { + return ($(this).filter(':checked').size() > 0); + }, + empty: function(value) { + return !(value === undefined || '' === value); + }, + email: function(value){ + var + emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?") + ; + return emailRegExp.test(value); + }, + length: function(value, requiredLength) { + return (value !== undefined) + ? (value.length >= requiredLength) + : false + ; + }, + not: function(value, notValue) { + return (value != notValue); + }, + contains: function(value, text) { + text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + return (value.search(text) !== -1); + }, + is: function(value, text) { + return (value == text); + }, + maxLength: function(value, maxLength) { + return (value !== undefined) + ? (value.length <= maxLength) + : false + ; + }, + match: function(value, fieldIdentifier) { + // use either id or name of field + var + $form = $(this), + matchingValue + ; + if($form.find('#' + fieldIdentifier).size() > 0) { + matchingValue = $form.find('#' + fieldIdentifier).val(); + } + else if($form.find('[name=' + fieldIdentifier +']').size() > 0) { + matchingValue = $form.find('[name=' + fieldIdentifier + ']').val(); + } + else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) { + matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val(); + } + return (matchingValue !== undefined) + ? ( value.toString() == matchingValue.toString() ) + : false + ; + }, + url: function(value) { + var + urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ + ; + return urlRegExp.test(value); + } + } + +}; + +})( jQuery, window , document ); + +/* + * # Semantic - State + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.state = function(parameters) { + var + $allModules = $(this), + settings = $.extend(true, {}, $.fn.state.settings, parameters), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + // shortcuts + error = settings.error, + metadata = settings.metadata, + className = settings.className, + namespace = settings.namespace, + states = settings.states, + text = settings.text, + + eventNamespace = '.' + namespace, + moduleNamespace = namespace + '-module', + + + returnedValue + ; + $allModules + .each(function() { + var + $module = $(this), + + element = this, + instance = $module.data(moduleNamespace), + + module + ; + module = { + + initialize: function() { + module.verbose('Initializing module'); + + // allow module to guess desired state based on element + if(settings.automatic) { + module.add.defaults(); + } + + // bind events with delegated events + if(settings.context && moduleSelector !== '') { + if( module.allows('hover') ) { + $(element, settings.context) + .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover) + .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover) + ; + } + if( module.allows('down') ) { + $(element, settings.context) + .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down) + .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down) + ; + } + if( module.allows('focus') ) { + $(element, settings.context) + .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus) + .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus) + ; + } + $(settings.context) + .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text) + .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text) + .on(moduleSelector, 'click' + eventNamespace, module.toggle.state) + ; + } + else { + if( module.allows('hover') ) { + $module + .on('mouseenter' + eventNamespace, module.enable.hover) + .on('mouseleave' + eventNamespace, module.disable.hover) + ; + } + if( module.allows('down') ) { + $module + .on('mousedown' + eventNamespace, module.enable.down) + .on('mouseup' + eventNamespace, module.disable.down) + ; + } + if( module.allows('focus') ) { + $module + .on('focus' + eventNamespace, module.enable.focus) + .on('blur' + eventNamespace, module.disable.focus) + ; + } + $module + .on('mouseenter' + eventNamespace, module.change.text) + .on('mouseleave' + eventNamespace, module.reset.text) + .on('click' + eventNamespace, module.toggle.state) + ; + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', instance); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $module = $(element); + }, + + add: { + defaults: function() { + var + userStates = parameters && $.isPlainObject(parameters.states) + ? parameters.states + : {} + ; + $.each(settings.defaults, function(type, typeStates) { + if( module.is[type] !== undefined && module.is[type]() ) { + module.verbose('Adding default states', type, element); + $.extend(settings.states, typeStates, userStates); + } + }); + } + }, + + is: { + + active: function() { + return $module.hasClass(className.active); + }, + loading: function() { + return $module.hasClass(className.loading); + }, + inactive: function() { + return !( $module.hasClass(className.active) ); + }, + + enabled: function() { + return !( $module.is(settings.filter.active) ); + }, + disabled: function() { + return ( $module.is(settings.filter.active) ); + }, + textEnabled: function() { + return !( $module.is(settings.filter.text) ); + }, + + // definitions for automatic type detection + button: function() { + return $module.is('.button:not(a, .submit)'); + }, + input: function() { + return $module.is('input'); + } + }, + + allow: function(state) { + module.debug('Now allowing state', state); + states[state] = true; + }, + disallow: function(state) { + module.debug('No longer allowing', state); + states[state] = false; + }, + + allows: function(state) { + return states[state] || false; + }, + + enable: { + state: function(state) { + if(module.allows(state)) { + $module.addClass( className[state] ); + } + }, + // convenience + focus: function() { + $module.addClass(className.focus); + }, + hover: function() { + $module.addClass(className.hover); + }, + down: function() { + $module.addClass(className.down); + }, + }, + + disable: { + state: function(state) { + if(module.allows(state)) { + $module.removeClass( className[state] ); + } + }, + // convenience + focus: function() { + $module.removeClass(className.focus); + }, + hover: function() { + $module.removeClass(className.hover); + }, + down: function() { + $module.removeClass(className.down); + }, + }, + + toggle: { + state: function() { + var + apiRequest = $module.data(metadata.promise) + ; + if( module.allows('active') && module.is.enabled() ) { + module.refresh(); + if(apiRequest !== undefined) { + module.listenTo(apiRequest); + } + else { + module.change.state(); + } + } + } + }, + + listenTo: function(apiRequest) { + module.debug('API request detected, waiting for state signal', apiRequest); + if(apiRequest) { + if(text.loading) { + module.update.text(text.loading); + } + $.when(apiRequest) + .then(function() { + if(apiRequest.state() == 'resolved') { + module.debug('API request succeeded'); + settings.activateTest = function(){ return true; }; + settings.deactivateTest = function(){ return true; }; + } + else { + module.debug('API request failed'); + settings.activateTest = function(){ return false; }; + settings.deactivateTest = function(){ return false; }; + } + module.change.state(); + }) + ; + } + // xhr exists but set to false, beforeSend killed the xhr + else { + settings.activateTest = function(){ return false; }; + settings.deactivateTest = function(){ return false; }; + } + }, + + // checks whether active/inactive state can be given + change: { + + state: function() { + module.debug('Determining state change direction'); + // inactive to active change + if( module.is.inactive() ) { + module.activate(); + } + else { + module.deactivate(); + } + if(settings.sync) { + module.sync(); + } + $.proxy(settings.onChange, element)(); + }, + + text: function() { + if( module.is.textEnabled() ) { + if( module.is.active() ) { + if(text.hover) { + module.verbose('Changing text to hover text', text.hover); + module.update.text(text.hover); + } + else if(text.disable) { + module.verbose('Changing text to disable text', text.disable); + module.update.text(text.disable); + } + } + else { + if(text.hover) { + module.verbose('Changing text to hover text', text.disable); + module.update.text(text.hover); + } + else if(text.enable){ + module.verbose('Changing text to enable text', text.enable); + module.update.text(text.enable); + } + } + } + } + + }, + + activate: function() { + if( $.proxy(settings.activateTest, element)() ) { + module.debug('Setting state to active'); + $module + .addClass(className.active) + ; + module.update.text(text.active); + } + $.proxy(settings.onActivate, element)(); + }, + + deactivate: function() { + if($.proxy(settings.deactivateTest, element)() ) { + module.debug('Setting state to inactive'); + $module + .removeClass(className.active) + ; + module.update.text(text.inactive); + } + $.proxy(settings.onDeactivate, element)(); + }, + + sync: function() { + module.verbose('Syncing other buttons to current state'); + if( module.is.active() ) { + $allModules + .not($module) + .state('activate'); + } + else { + $allModules + .not($module) + .state('deactivate') + ; + } + }, + + get: { + text: function() { + return (settings.selector.text) + ? $module.find(settings.selector.text).text() + : $module.html() + ; + }, + textFor: function(state) { + return text[state] || false; + } + }, + + flash: { + text: function(text, duration) { + var + previousText = module.get.text() + ; + module.debug('Flashing text message', text, duration); + text = text || settings.text.flash; + duration = duration || settings.flashDuration; + module.update.text(text); + setTimeout(function(){ + module.update.text(previousText); + }, duration); + } + }, + + reset: { + // on mouseout sets text to previous value + text: function() { + var + activeText = text.active || $module.data(metadata.storedText), + inactiveText = text.inactive || $module.data(metadata.storedText) + ; + if( module.is.textEnabled() ) { + if( module.is.active() && activeText) { + module.verbose('Resetting active text', activeText); + module.update.text(activeText); + } + else if(inactiveText) { + module.verbose('Resetting inactive text', activeText); + module.update.text(inactiveText); + } + } + } + }, + + update: { + text: function(text) { + var + currentText = module.get.text() + ; + if(text && text !== currentText) { + module.debug('Updating text', text); + if(settings.selector.text) { + $module + .data(metadata.storedText, text) + .find(settings.selector.text) + .text(text) + ; + } + else { + $module + .data(metadata.storedText, text) + .html(text) + ; + } + } + else { + module.debug('Text is already sane, ignoring update', text); + } + } + }, + + setting: function(name, value) { + module.debug('Changing setting', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + module.debug('Changing internal', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else { + module[name] = value; + } + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.state.settings = { + + // module info + name : 'State', + + // debug output + debug : true, + + // verbose debug output + verbose : true, + + // namespace for events + namespace : 'state', + + // debug data includes performance + performance: true, + + // callback occurs on state change + onActivate : function() {}, + onDeactivate : function() {}, + onChange : function() {}, + + // state test functions + activateTest : function() { return true; }, + deactivateTest : function() { return true; }, + + // whether to automatically map default states + automatic : true, + + // activate / deactivate changes all elements instantiated at same time + sync : false, + + // default flash text duration, used for temporarily changing text of an element + flashDuration : 3000, + + // selector filter + filter : { + text : '.loading, .disabled', + active : '.disabled' + }, + + context : false, + + // error + error: { + method : 'The method you called is not defined.' + }, + + // metadata + metadata: { + promise : 'promise', + storedText : 'stored-text' + }, + + // change class on state + className: { + focus : 'focus', + hover : 'hover', + down : 'down', + active : 'active', + loading : 'loading' + }, + + selector: { + // selector for text node + text: false + }, + + defaults : { + input: { + hover : true, + focus : true, + down : true, + loading : false, + active : false + }, + button: { + hover : true, + focus : false, + down : true, + active : true, + loading : true + } + }, + + states : { + hover : true, + focus : true, + down : true, + loading : false, + active : false + }, + + text : { + flash : false, + hover : false, + active : false, + inactive : false, + enable : false, + disable : false + } + +}; + + + +})( jQuery, window , document ); + +/* + * # Semantic - Chatroom + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.chatroom = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $(this) + .each(function() { + var + settings = $.extend(true, {}, $.fn.chatroom.settings, parameters), + + className = settings.className, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + $module = $(this), + + $expandButton = $module.find(selector.expandButton), + $userListButton = $module.find(selector.userListButton), + + $userList = $module.find(selector.userList), + $room = $module.find(selector.room), + $userCount = $module.find(selector.userCount), + + $log = $module.find(selector.log), + $message = $module.find(selector.message), + + $messageInput = $module.find(selector.messageInput), + $messageButton = $module.find(selector.messageButton), + + instance = $module.data('module'), + element = this, + + html = '', + users = {}, + + channel, + loggedInUser, + + message, + count, + + height, + + pusher, + module + ; + + module = { + + width: { + log : $log.width(), + userList : $userList.outerWidth() + }, + + initialize: function() { + + // check error conditions + if(Pusher === undefined) { + module.error(error.pusher); + } + if(settings.key === undefined || settings.channelName === undefined) { + module.error(error.key); + return false; + } + else if( !(settings.endpoint.message || settings.endpoint.authentication) ) { + module.error(error.endpoint); + return false; + } + + // define pusher + pusher = new Pusher(settings.key); + Pusher.channel_auth_endpoint = settings.endpoint.authentication; + + channel = pusher.subscribe(settings.channelName); + + channel.bind('pusher:subscription_succeeded', module.user.list.create); + channel.bind('pusher:subscription_error', module.error); + channel.bind('pusher:member_added', module.user.joined); + channel.bind('pusher:member_removed', module.user.left); + channel.bind('update_messages', module.message.receive); + + $.each(settings.customEvents, function(label, value) { + channel.bind(label, value); + }); + + // bind module events + $userListButton + .on('click.' + namespace, module.event.toggleUserList) + ; + $expandButton + .on('click.' + namespace, module.event.toggleExpand) + ; + $messageInput + .on('keydown.' + namespace, module.event.input.keydown) + .on('keyup.' + namespace, module.event.input.keyup) + ; + $messageButton + .on('mouseenter.' + namespace, module.event.hover) + .on('mouseleave.' + namespace, module.event.hover) + .on('click.' + namespace, module.event.submit) + ; + // scroll to bottom of chat log + $log + .animate({ + scrollTop: $log.prop('scrollHeight') + }, 400) + ; + $module + .data('module', module) + .addClass(className.loading) + ; + + }, + + // refresh module + refresh: function() { + // reset width calculations + $userListButton + .removeClass(className.active) + ; + module.width = { + log : $log.width(), + userList : $userList.outerWidth() + }; + if( $userListButton.hasClass(className.active) ) { + module.user.list.hide(); + } + $module.data('module', module); + }, + + user: { + + updateCount: function() { + if(settings.userCount) { + users = $module.data('users'); + count = 0; + $.each(users, function() { + count++; + }); + $userCount + .html( settings.templates.userCount(count) ) + ; + } + }, + + // add user to user list + joined: function(member) { + users = $module.data('users'); + if(member.id != 'anonymous' && users[ member.id ] === undefined ) { + users[ member.id ] = member.info; + if(settings.randomColor && member.info.color === undefined) { + member.info.color = settings.templates.color(member.id); + } + html = settings.templates.userList(member.info); + if(member.info.isAdmin) { + $(html) + .prependTo($userList) + ; + } + else { + $(html) + .appendTo($userList) + ; + } + if(settings.partingMessages) { + $log + .append( settings.templates.joined(member.info) ) + ; + module.message.scroll.test(); + } + module.user.updateCount(); + } + }, + + // remove user from user list + left: function(member) { + users = $module.data('users'); + if(member !== undefined && member.id !== 'anonymous') { + delete users[ member.id ]; + $module + .data('users', users) + ; + $userList + .find('[data-id='+ member.id + ']') + .remove() + ; + if(settings.partingMessages) { + $log + .append( settings.templates.left(member.info) ) + ; + module.message.scroll.test(); + } + module.user.updateCount(); + } + }, + + list: { + + // receives list of members and generates user list + create: function(members) { + users = {}; + members.each(function(member) { + if(member.id !== 'anonymous' && member.id !== 'undefined') { + if(settings.randomColor && member.info.color === undefined) { + member.info.color = settings.templates.color(member.id); + } + // sort list with admin first + html = (member.info.isAdmin) + ? settings.templates.userList(member.info) + html + : html + settings.templates.userList(member.info) + ; + users[ member.id ] = member.info; + } + }); + $module + .data('users', users) + .data('user', users[members.me.id] ) + .removeClass(className.loading) + ; + $userList + .html(html) + ; + module.user.updateCount(); + $.proxy(settings.onJoin, $userList.children())(); + }, + + // shows user list + show: function() { + $log + .animate({ + width: (module.width.log - module.width.userList) + }, { + duration : settings.speed, + easing : settings.easing, + complete : module.message.scroll.move + }) + ; + }, + + // hides user list + hide: function() { + $log + .stop() + .animate({ + width: (module.width.log) + }, { + duration : settings.speed, + easing : settings.easing, + complete : module.message.scroll.move + }) + ; + } + + } + + }, + + message: { + + // handles scrolling of chat log + scroll: { + test: function() { + height = $log.prop('scrollHeight') - $log.height(); + if( Math.abs($log.scrollTop() - height) < settings.scrollArea) { + module.message.scroll.move(); + } + }, + + move: function() { + height = $log.prop('scrollHeight') - $log.height(); + $log + .scrollTop(height) + ; + } + }, + + // sends chat message + send: function(message) { + if( !module.utils.emptyString(message) ) { + $.api({ + url : settings.endpoint.message, + method : 'POST', + data : { + 'message': { + content : message, + timestamp : new Date().getTime() + } + } + }); + } + }, + + // receives chat response and processes + receive: function(response) { + message = response.data; + users = $module.data('users'); + loggedInUser = $module.data('user'); + if(users[ message.userID] !== undefined) { + // logged in user's messages already pushed instantly + if(loggedInUser === undefined || loggedInUser.id != message.userID) { + message.user = users[ message.userID ]; + module.message.display(message); + } + } + }, + + // displays message in chat log + display: function(message) { + $log + .append( settings.templates.message(message) ) + ; + module.message.scroll.test(); + $.proxy(settings.onMessage, $log.children().last() )(); + } + + }, + + expand: function() { + $module + .addClass(className.expand) + ; + $.proxy(settings.onExpand, $module )(); + module.refresh(); + }, + + contract: function() { + $module + .removeClass(className.expand) + ; + $.proxy(settings.onContract, $module )(); + module.refresh(); + }, + + event: { + + input: { + + keydown: function(event) { + if(event.which == 13) { + $messageButton + .addClass(className.down) + ; + } + }, + + keyup: function(event) { + if(event.which == 13) { + $messageButton + .removeClass(className.down) + ; + module.event.submit(); + } + } + + }, + + // handles message form submit + submit: function() { + var + message = $messageInput.val(), + loggedInUser = $module.data('user') + ; + if(loggedInUser !== undefined && !module.utils.emptyString(message)) { + module.message.send(message); + // display immediately + module.message.display({ + user: loggedInUser, + text: message + }); + module.message.scroll.move(); + $messageInput + .val('') + ; + + } + }, + + // handles button click on expand button + toggleExpand: function() { + if( !$module.hasClass(className.expand) ) { + $expandButton + .addClass(className.active) + ; + module.expand(); + } + else { + $expandButton + .removeClass(className.active) + ; + module.contract(); + } + }, + + // handles button click on user list button + toggleUserList: function() { + if( !$log.is(':animated') ) { + if( !$userListButton.hasClass(className.active) ) { + $userListButton + .addClass(className.active) + ; + module.user.list.show(); + } + else { + $userListButton + .removeClass('active') + ; + module.user.list.hide(); + } + } + + } + }, + + utils: { + + emptyString: function(string) { + if(typeof string == 'string') { + return (string.search(/\S/) == -1); + } + return false; + } + + }, + + setting: function(name, value) { + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else { + settings[name] = value; + } + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + } + else { + module.error(error.method, query); + } + }); + } + if ( $.isFunction( found ) ) { + return found.apply(context, passedArguments); + } + return found || false; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) +; + + return (returnedValue) + ? returnedValue + : this + ; +}; + + $.fn.chatroom.settings = { + + name : 'Chat', + debug : false, + namespace : 'chat', + + channel : 'present-chat', + + onJoin : function(){}, + onMessage : function(){}, + onExpand : function(){}, + onContract : function(){}, + + customEvents : {}, + + partingMessages : false, + userCount : true, + randomColor : true, + + speed : 300, + easing : 'easeOutQuint', + + // pixels from bottom of chat log that should trigger auto scroll to bottom + scrollArea : 9999, + + endpoint : { + message : false, + authentication : false + }, + + error: { + method : 'The method you called is not defined', + endpoint : 'Please define a message and authentication endpoint.', + key : 'You must specify a pusher key and channel.', + pusher : 'You must include the Pusher library.' + }, + + className : { + expand : 'expand', + active : 'active', + hover : 'hover', + down : 'down', + loading : 'loading' + }, + + selector : { + userCount : '.actions .message', + userListButton : '.actions .list.button', + expandButton : '.actions .expand.button', + room : '.room', + userList : '.room .list', + log : '.room .log', + message : '.room .log .message', + author : '.room log .message .author', + messageInput : '.talk input', + messageButton : '.talk .send.button' + }, + + templates: { + + userCount: function(number) { + return number + ' users in chat'; + }, + + color: function(userID) { + var + colors = [ + '#000000', + '#333333', + '#666666', + '#999999', + '#CC9999', + '#CC6666', + '#CC3333', + '#993333', + '#663333', + '#CC6633', + '#CC9966', + '#CC9933', + '#999966', + '#CCCC66', + '#99CC66', + '#669933', + '#669966', + '#33A3CC', + '#336633', + '#33CCCC', + '#339999', + '#336666', + '#336699', + '#6666CC', + '#9966CC', + '#333399', + '#663366', + '#996699', + '#993366', + '#CC6699' + ] + ; + return colors[ Math.floor( Math.random() * colors.length) ]; + }, + + message: function(message) { + var + html = '' + ; + if(message.user.isAdmin) { + message.user.color = '#55356A'; + html += '
'; + html += ''; + } + /* + else if(message.user.isPro) { + html += '
'; + html += ''; + } + */ + else { + html += '
'; + } + html += '

'; + if(message.user.color !== undefined) { + html += '' + message.user.name + ': '; + } + else { + html += '' + message.user.name + ': '; + } + html += '' + + message.text + + '

' + + '
' + ; + return html; + }, + + joined: function(member) { + return (typeof member.name !== undefined) + ? '
' + member.name + ' has joined the chat.
' + : false + ; + }, + left: function(member) { + return (typeof member.name !== undefined) + ? '
' + member.name + ' has left the chat.
' + : false + ; + }, + + userList: function(member) { + var + html = '' + ; + if(member.isAdmin) { + member.color = '#55356A'; + } + html += '' + + '
'; + return html; + } + + } + + }; + +})( jQuery, window , document ); + +/* + * # Semantic - Checkbox + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.checkbox = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + settings = $.extend(true, {}, $.fn.checkbox.settings, parameters), + + className = settings.className, + namespace = settings.namespace, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $label = $(this).next(settings.selector.label).first(), + $input = $(this).find(settings.selector.input), + + selector = $module.selector || '', + instance = $module.data(moduleNamespace), + + element = this, + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing checkbox', settings); + if(settings.context && selector !== '') { + module.verbose('Adding delegated events'); + $(element, settings.context) + .on(selector, 'click' + eventNamespace, module.toggle) + .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle) + ; + } + else { + $module + .on('click' + eventNamespace, module.toggle) + .data(moduleNamespace, module) + ; + $label + .on('click' + eventNamespace, module.toggle) + ; + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module'); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + is: { + radio: function() { + return $module.hasClass(className.radio); + }, + enabled: function() { + return $input.prop('checked') !== undefined && $input.prop('checked'); + }, + disabled: function() { + return !module.is.enabled(); + } + }, + + can: { + disable: function() { + return (typeof settings.required === 'boolean') + ? settings.required + : !module.is.radio() + ; + } + }, + + enable: function() { + module.debug('Enabling checkbox', $input); + $input + .prop('checked', true) + ; + $.proxy(settings.onChange, $input.get())(); + $.proxy(settings.onEnable, $input.get())(); + }, + + disable: function() { + module.debug('Disabling checkbox'); + $input + .prop('checked', false) + ; + $.proxy(settings.onChange, $input.get())(); + $.proxy(settings.onDisable, $input.get())(); + }, + + toggle: function(event) { + module.verbose('Determining new checkbox state'); + if( module.is.disabled() ) { + module.enable(); + } + else if( module.is.enabled() && module.can.disable() ) { + module.disable(); + } + }, + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.checkbox.settings = { + + name : 'Checkbox', + namespace : 'checkbox', + + verbose : true, + debug : true, + performance : true, + + // delegated event context + context : false, + required : 'auto', + + onChange : function(){}, + onEnable : function(){}, + onDisable : function(){}, + + error : { + method : 'The method you called is not defined.' + }, + + selector : { + input : 'input[type=checkbox], input[type=radio]', + label : 'label' + }, + + className : { + radio : 'radio' + } + +}; + +})( jQuery, window , document ); + +/* + * # Semantic - Dimmer + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.dimmer = function(parameters) { + var + $allModules = $(this), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.dimmer.settings, parameters) + : $.extend({}, $.fn.dimmer.settings), + + selector = settings.selector, + namespace = settings.namespace, + className = settings.className, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + clickEvent = ('ontouchstart' in document.documentElement) + ? 'touchstart' + : 'click', + + $module = $(this), + $dimmer, + $dimmable, + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + preinitialize: function() { + if( module.is.dimmer() ) { + $dimmable = $module.parent(); + $dimmer = $module; + } + else { + $dimmable = $module; + if( module.has.dimmer() ) { + $dimmer = $dimmable.children(selector.dimmer).first(); + } + else { + $dimmer = module.create(); + } + } + }, + + initialize: function() { + module.debug('Initializing dimmer', settings); + if(settings.on == 'hover') { + $dimmable + .on('mouseenter' + eventNamespace, module.show) + .on('mouseleave' + eventNamespace, module.hide) + ; + } + else if(settings.on == 'click') { + $dimmable + .on(clickEvent + eventNamespace, module.toggle) + ; + } + + if( module.is.page() ) { + module.debug('Setting as a page dimmer', $dimmable); + module.set.pageDimmer(); + } + + if(settings.closable) { + module.verbose('Adding dimmer close event', $dimmer); + $dimmer + .on(clickEvent + eventNamespace, module.event.click) + ; + } + module.set.dimmable(); + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module', $dimmer); + $module + .removeData(moduleNamespace) + ; + $dimmable + .off(eventNamespace) + ; + $dimmer + .off(eventNamespace) + ; + }, + + event: { + + click: function(event) { + module.verbose('Determining if event occured on dimmer', event); + if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) { + module.hide(); + event.stopImmediatePropagation(); + } + } + + }, + + addContent: function(element) { + var + $content = $(element).detach() + ; + module.debug('Add content to dimmer', $content); + if($content.parent()[0] !== $dimmer[0]) { + $dimmer.append($content); + } + }, + + create: function() { + return $( settings.template.dimmer() ).appendTo($dimmable); + }, + + animate: { + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.set.dimmed(); + if(settings.useCSS && $.fn.transition !== undefined && $module.transition('is supported')) { + $dimmer + .transition({ + animation : settings.transition + ' in', + queue : true, + duration : module.get.duration(), + complete : function() { + module.set.active(); + callback(); + } + }) + ; + } + else { + module.verbose('Showing dimmer animation with javascript'); + $dimmer + .stop() + .css({ + opacity : 0, + width : '100%', + height : '100%' + }) + .fadeTo(module.get.duration(), 1, function() { + $dimmer.removeAttr('style'); + module.set.active(); + callback(); + }) + ; + } + }, + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if(settings.useCSS && $.fn.transition !== undefined && $module.transition('is supported')) { + module.verbose('Hiding dimmer with css'); + $dimmer + .transition({ + animation : settings.transition + ' out', + duration : module.get.duration(), + queue : true, + complete : function() { + module.remove.dimmed(); + module.remove.active(); + callback(); + } + }) + ; + } + else { + module.verbose('Hiding dimmer with javascript'); + $dimmer + .stop() + .fadeOut(module.get.duration(), function() { + $dimmer.removeAttr('style'); + module.remove.dimmed(); + module.remove.active(); + callback(); + }) + ; + } + } + }, + + get: { + dimmer: function() { + return $dimmer; + }, + duration: function() { + if(typeof settings.duration == 'object') { + if( module.is.active() ) { + return settings.duration.hide; + } + else { + return settings.duration.show; + } + } + return settings.duration; + } + }, + + has: { + dimmer: function() { + return ( $module.children(selector.dimmer).size() > 0 ); + } + }, + + is: { + active: function() { + return $dimmer.hasClass(className.active); + }, + animating: function() { + return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) ); + }, + dimmer: function() { + return $module.is(selector.dimmer); + }, + dimmable: function() { + return $module.is(selector.dimmable); + }, + dimmed: function() { + return $dimmable.hasClass(className.dimmed); + }, + disabled: function() { + return $dimmable.hasClass(className.disabled); + }, + enabled: function() { + return !module.is.disabled(); + }, + page: function () { + return $dimmable.is('body'); + }, + pageDimmer: function() { + return $dimmer.hasClass(className.pageDimmer); + } + }, + + can: { + show: function() { + return !$dimmer.hasClass(className.disabled); + } + }, + + set: { + active: function() { + module.set.dimmed(); + $dimmer + .removeClass(className.transition) + .addClass(className.active) + ; + }, + dimmable: function() { + $dimmable.addClass(className.dimmable); + }, + dimmed: function() { + $dimmable.addClass(className.dimmed); + }, + pageDimmer: function() { + $dimmer.addClass(className.pageDimmer); + }, + disabled: function() { + $dimmer.addClass(className.disabled); + } + }, + + remove: { + active: function() { + $dimmer + .removeClass(className.transition) + .removeClass(className.active) + ; + }, + dimmed: function() { + $dimmable.removeClass(className.dimmed); + }, + disabled: function() { + $dimmer.removeClass(className.disabled); + } + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.debug('Showing dimmer', $dimmer, settings); + if( !module.is.active() && module.is.enabled() ) { + module.animate.show(callback); + $.proxy(settings.onShow, element)(); + $.proxy(settings.onChange, element)(); + } + else { + module.debug('Dimmer is already shown or disabled'); + } + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.active() || module.is.animating() ) { + module.debug('Hiding dimmer', $dimmer); + module.animate.hide(callback); + $.proxy(settings.onHide, element)(); + $.proxy(settings.onChange, element)(); + } + else { + module.debug('Dimmer is not visible'); + } + }, + + toggle: function() { + module.verbose('Toggling dimmer visibility', $dimmer); + if( !module.is.dimmed() ) { + module.show(); + } + else { + module.hide(); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + module.preinitialize(); + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.dimmer.settings = { + + name : 'Dimmer', + namespace : 'dimmer', + + debug : true, + verbose : true, + performance : true, + + transition : 'fade', + useCSS : true, + on : false, + closable : true, + + duration : { + show : 500, + hide : 500 + }, + + onChange : function(){}, + onShow : function(){}, + onHide : function(){}, + + error : { + method : 'The method you called is not defined.' + }, + + selector: { + dimmable : '.ui.dimmable', + dimmer : '.ui.dimmer', + content : '.ui.dimmer > .content, .ui.dimmer > .content > .center' + }, + + template: { + dimmer: function() { + return $('
').attr('class', 'ui dimmer'); + } + }, + + className : { + active : 'active', + dimmable : 'ui dimmable', + dimmed : 'dimmed', + disabled : 'disabled', + pageDimmer : 'page', + hide : 'hide', + show : 'show', + transition : 'transition' + } + +}; + +})( jQuery, window , document ); +/* + * # Semantic - Dropdown + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ +;(function ( $, window, document, undefined ) { + +$.fn.dropdown = function(parameters) { + var + $allModules = $(this), + $document = $(document), + + moduleSelector = $allModules.selector || '', + + hasTouch = ('ontouchstart' in document.documentElement), + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.dropdown.settings, parameters) + : $.extend({}, $.fn.dropdown.settings), + + className = settings.className, + metadata = settings.metadata, + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $item = $module.find(selector.item), + $text = $module.find(selector.text), + $input = $module.find(selector.input), + + $menu = $module.children(selector.menu), + + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.debug('Initializing dropdown', settings); + + module.set.selected(); + + if(hasTouch) { + module.bind.touchEvents(); + } + // no use detecting mouse events because touch devices emulate them + module.bind.mouseEvents(); + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of dropdown', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous dropdown for', $module); + $item + .off(eventNamespace) + ; + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + bind: { + touchEvents: function() { + module.debug('Touch device detected binding touch events'); + $module + .on('touchstart' + eventNamespace, module.event.test.toggle) + ; + $item + .on('touchstart' + eventNamespace, module.event.item.mouseenter) + .on('touchstart' + eventNamespace, module.event.item.click) + ; + }, + mouseEvents: function() { + module.verbose('Mouse detected binding mouse events'); + if(settings.on == 'click') { + $module + .on('click' + eventNamespace, module.event.test.toggle) + ; + } + else if(settings.on == 'hover') { + $module + .on('mouseenter' + eventNamespace, module.delay.show) + .on('mouseleave' + eventNamespace, module.delay.hide) + ; + } + else { + $module + .on(settings.on + eventNamespace, module.toggle) + ; + } + $item + .on('mouseenter' + eventNamespace, module.event.item.mouseenter) + .on('mouseleave' + eventNamespace, module.event.item.mouseleave) + .on('click' + eventNamespace, module.event.item.click) + ; + }, + intent: function() { + module.verbose('Binding hide intent event to document'); + if(hasTouch) { + $document + .on('touchstart' + eventNamespace, module.event.test.touch) + .on('touchmove' + eventNamespace, module.event.test.touch) + ; + } + $document + .on('click' + eventNamespace, module.event.test.hide) + ; + } + }, + + unbind: { + intent: function() { + module.verbose('Removing hide intent event from document'); + if(hasTouch) { + $document + .off('touchstart' + eventNamespace) + ; + } + $document + .off('click' + eventNamespace) + ; + } + }, + + event: { + test: { + toggle: function(event) { + if( module.determine.intent(event, module.toggle) ) { + event.preventDefault(); + } + }, + touch: function(event) { + module.determine.intent(event, function() { + if(event.type == 'touchstart') { + module.timer = setTimeout(module.hide, settings.delay.touch); + } + else if(event.type == 'touchmove') { + clearTimeout(module.timer); + } + }); + event.stopPropagation(); + }, + hide: function(event) { + module.determine.intent(event, module.hide); + } + }, + + item: { + + mouseenter: function(event) { + var + $currentMenu = $(this).find(selector.menu), + $otherMenus = $(this).siblings(selector.item).children(selector.menu) + ; + if( $currentMenu.size() > 0 ) { + clearTimeout(module.itemTimer); + module.itemTimer = setTimeout(function() { + module.animate.hide(false, $otherMenus); + module.verbose('Showing sub-menu', $currentMenu); + module.animate.show(false, $currentMenu); + }, settings.delay.show * 2); + event.preventDefault(); + } + }, + + mouseleave: function(event) { + var + $currentMenu = $(this).find(selector.menu) + ; + if($currentMenu.size() > 0) { + clearTimeout(module.itemTimer); + module.itemTimer = setTimeout(function() { + module.verbose('Hiding sub-menu', $currentMenu); + module.animate.hide(false, $currentMenu); + }, settings.delay.hide); + } + }, + + click: function (event) { + var + $choice = $(this), + text = ( $choice.data(metadata.text) !== undefined ) + ? $choice.data(metadata.text) + : $choice.text(), + value = ( $choice.data(metadata.value) !== undefined) + ? $choice.data(metadata.value) + : text.toLowerCase() + ; + if( $choice.find(selector.menu).size() === 0 ) { + module.determine.selectAction(text, value); + $.proxy(settings.onChange, element)(value, text); + } + } + + }, + + resetStyle: function() { + $(this).removeAttr('style'); + } + + }, + + determine: { + selectAction: function(text, value) { + module.verbose('Determining action', settings.action); + if( $.isFunction( module.action[settings.action] ) ) { + module.verbose('Triggering preset action', settings.action, text, value); + module.action[ settings.action ](text, value); + } + else if( $.isFunction(settings.action) ) { + module.verbose('Triggering user action', settings.action, text, value); + settings.action(text, value); + } + else { + module.error(error.action, settings.action); + } + }, + intent: function(event, callback) { + module.debug('Determining whether event occurred in dropdown', event.target); + callback = callback || function(){}; + if( $(event.target).closest($menu).size() === 0 ) { + module.verbose('Triggering event', callback); + callback(); + return true; + } + else { + module.verbose('Event occurred in dropdown, canceling callback'); + return false; + } + } + }, + + action: { + + nothing: function() {}, + + hide: function() { + module.hide(); + }, + + activate: function(text, value) { + value = (value !== undefined) + ? value + : text + ; + module.set.selected(value); + module.set.value(value); + module.hide(); + }, + + /* Deprecated */ + auto: function(text, value) { + value = (value !== undefined) + ? value + : text + ; + module.set.selected(value); + module.set.value(value); + module.hide(); + }, + + /* Deprecated */ + changeText: function(text, value) { + value = (value !== undefined) + ? value + : text + ; + module.set.selected(value); + module.hide(); + }, + + /* Deprecated */ + updateForm: function(text, value) { + value = (value !== undefined) + ? value + : text + ; + module.set.selected(value); + module.set.value(value); + module.hide(); + } + + }, + + get: { + text: function() { + return $text.text(); + }, + value: function() { + return $input.val(); + }, + item: function(value) { + var + $selectedItem + ; + value = (value !== undefined) + ? value + : ( module.get.value() !== undefined) + ? module.get.value() + : module.get.text() + ; + if(value) { + $item + .each(function() { + var + $choice = $(this), + optionText = ( $choice.data(metadata.text) !== undefined ) + ? $choice.data(metadata.text) + : $choice.text(), + optionValue = ( $choice.data(metadata.value) !== undefined ) + ? $choice.data(metadata.value) + : optionText.toLowerCase() + ; + if( optionValue == value || optionText == value ) { + $selectedItem = $(this); + return false; + } + }) + ; + } + else { + value = module.get.text(); + } + return $selectedItem || false; + } + }, + + set: { + text: function(text) { + module.debug('Changing text', text, $text); + $text.removeClass(className.placeholder); + $text.text(text); + }, + value: function(value) { + module.debug('Adding selected value to hidden input', value, $input); + $input.val(value); + }, + active: function() { + $module.addClass(className.active); + }, + visible: function() { + $module.addClass(className.visible); + }, + selected: function(value) { + var + $selectedItem = module.get.item(value), + selectedText + ; + if($selectedItem) { + module.debug('Setting selected menu item to', $selectedItem); + selectedText = ($selectedItem.data(metadata.text) !== undefined) + ? $selectedItem.data(metadata.text) + : $selectedItem.text() + ; + $item + .removeClass(className.active) + ; + $selectedItem + .addClass(className.active) + ; + module.set.text(selectedText); + } + } + }, + + remove: { + active: function() { + $module.removeClass(className.active); + }, + visible: function() { + $module.removeClass(className.visible); + } + }, + + is: { + selection: function() { + return $module.hasClass(className.selection); + }, + animated: function($subMenu) { + return ($subMenu) + ? $subMenu.is(':animated') || $subMenu.transition('is animating') + : $menu.is(':animated') || $menu.transition('is animating') + ; + }, + visible: function($subMenu) { + return ($subMenu) + ? $subMenu.is(':visible') + : $menu.is(':visible') + ; + }, + hidden: function($subMenu) { + return ($subMenu) + ? $subMenu.is(':not(:visible)') + : $menu.is(':not(:visible)') + ; + } + }, + + can: { + click: function() { + return (hasTouch || settings.on == 'click'); + }, + show: function() { + return !$module.hasClass(className.disabled); + } + }, + + animate: { + show: function(callback, $subMenu) { + var + $currentMenu = $subMenu || $menu + ; + callback = callback || function(){}; + if( module.is.hidden($currentMenu) ) { + module.verbose('Doing menu show animation', $currentMenu); + if(settings.transition == 'none') { + callback(); + } + else if($.fn.transition !== undefined && $module.transition('is supported')) { + $currentMenu.transition({ + animation : settings.transition + ' in', + duration : settings.duration, + complete : callback, + queue : false + }); + } + else if(settings.transition == 'slide down') { + $currentMenu + .hide() + .clearQueue() + .children() + .clearQueue() + .css('opacity', 0) + .delay(50) + .animate({ + opacity : 1 + }, settings.duration, 'easeOutQuad', module.event.resetStyle) + .end() + .slideDown(100, 'easeOutQuad', function() { + $.proxy(module.event.resetStyle, this)(); + callback(); + }) + ; + } + else if(settings.transition == 'fade') { + $currentMenu + .hide() + .clearQueue() + .fadeIn(settings.duration, function() { + $.proxy(module.event.resetStyle, this)(); + callback(); + }) + ; + } + else { + module.error(error.transition, settings.transition); + } + } + }, + hide: function(callback, $subMenu) { + var + $currentMenu = $subMenu || $menu + ; + callback = callback || function(){}; + if(module.is.visible($currentMenu) ) { + module.verbose('Doing menu hide animation', $currentMenu); + if($.fn.transition !== undefined && $module.transition('is supported')) { + $currentMenu.transition({ + animation : settings.transition + ' out', + duration : settings.duration, + complete : callback, + queue : false + }); + } + else if(settings.transition == 'none') { + callback(); + } + else if(settings.transition == 'slide down') { + $currentMenu + .show() + .clearQueue() + .children() + .clearQueue() + .css('opacity', 1) + .animate({ + opacity : 0 + }, 100, 'easeOutQuad', module.event.resetStyle) + .end() + .delay(50) + .slideUp(100, 'easeOutQuad', function() { + $.proxy(module.event.resetStyle, this)(); + callback(); + }) + ; + } + else if(settings.transition == 'fade') { + $currentMenu + .show() + .clearQueue() + .fadeOut(150, function() { + $.proxy(module.event.resetStyle, this)(); + callback(); + }) + ; + } + else { + module.error(error.transition); + } + } + } + }, + + show: function() { + module.debug('Checking if dropdown can show'); + if( module.is.hidden() ) { + module.hideOthers(); + module.set.active(); + module.animate.show(function() { + if( module.can.click() ) { + module.bind.intent(); + } + module.set.visible(); + }); + $.proxy(settings.onShow, element)(); + } + }, + + hide: function() { + if( !module.is.animated() && module.is.visible() ) { + module.debug('Hiding dropdown'); + if( module.can.click() ) { + module.unbind.intent(); + } + module.remove.active(); + module.animate.hide(module.remove.visible); + $.proxy(settings.onHide, element)(); + } + }, + + delay: { + show: function() { + module.verbose('Delaying show event to ensure user intent'); + clearTimeout(module.timer); + module.timer = setTimeout(module.show, settings.delay.show); + }, + hide: function() { + module.verbose('Delaying hide event to ensure user intent'); + clearTimeout(module.timer); + module.timer = setTimeout(module.hide, settings.delay.hide); + } + }, + + hideOthers: function() { + module.verbose('Finding other dropdowns to hide'); + $allModules + .not($module) + .has(selector.menu + ':visible') + .dropdown('hide') + ; + }, + + toggle: function() { + module.verbose('Toggling menu visibility'); + if( module.is.hidden() ) { + module.show(); + } + else { + module.hide(); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue) + ? returnedValue + : this + ; +}; + +$.fn.dropdown.settings = { + + name : 'Dropdown', + namespace : 'dropdown', + + verbose : true, + debug : true, + performance : true, + + on : 'click', + action : 'activate', + + delay: { + show : 200, + hide : 300, + touch : 50 + }, + + transition : 'slide down', + duration : 250, + + onChange : function(value, text){}, + onShow : function(){}, + onHide : function(){}, + + error : { + action : 'You called a dropdown action that was not defined', + method : 'The method you called is not defined.', + transition : 'The requested transition was not found' + }, + + metadata: { + text : 'text', + value : 'value' + }, + + selector : { + menu : '.menu', + item : '.menu > .item', + text : '> .text', + input : '> input[type="hidden"]' + }, + + className : { + active : 'active', + placeholder : 'default', + disabled : 'disabled', + visible : 'visible', + selection : 'selection' + } + +}; + +})( jQuery, window , document ); +/* + * # Semantic - Modal + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.modal = function(parameters) { + var + $allModules = $(this), + $window = $(window), + $document = $(document), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.modal.settings, parameters) + : $.extend({}, $.fn.modal.settings), + + selector = settings.selector, + className = settings.className, + namespace = settings.namespace, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + moduleSelector = $allModules.selector || '', + + $module = $(this), + $context = $(settings.context), + $close = $module.find(selector.close), + + $allModals, + $otherModals, + $focusedElement, + $dimmable, + $dimmer, + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing dimmer', $context); + + if(typeof $.fn.dimmer === undefined) { + module.error(error.dimmer); + return; + } + $dimmable = $context + .dimmer({ + closable : false, + useCSS : module.is.modernBrowser(), + show : settings.duration * 0.9, + hide : settings.duration * 1.1 + }) + .dimmer('add content', $module) + ; + $dimmer = $dimmable + .dimmer('get dimmer') + ; + + $otherModals = $module.siblings(selector.modal); + $allModals = $otherModals.add($module); + + module.verbose('Attaching close events', $close); + $close + .on('click' + eventNamespace, module.event.close) + ; + $window + .on('resize' + eventNamespace, function() { + module.event.debounce(module.refresh, 50); + }) + ; + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of modal'); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous modal'); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + $close + .off(eventNamespace) + ; + $context + .dimmer('destroy') + ; + }, + + refresh: function() { + module.remove.scrolling(); + module.cacheSizes(); + module.set.type(); + module.set.position(); + }, + + attachEvents: function(selector, event) { + var + $toggle = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($toggle.size() > 0) { + module.debug('Attaching modal events to element', selector, event); + $toggle + .off(eventNamespace) + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound); + } + }, + + event: { + close: function() { + module.verbose('Closing element pressed'); + if( $(this).is(selector.approve) ) { + if($.proxy(settings.onApprove, element)() !== false) { + module.hide(); + } + else { + module.verbose('Approve callback returned false cancelling hide'); + } + } + else if( $(this).is(selector.deny) ) { + if($.proxy(settings.onDeny, element)() !== false) { + module.hide(); + } + else { + module.verbose('Deny callback returned false cancelling hide'); + } + } + else { + module.hide(); + } + }, + click: function(event) { + if( $(event.target).closest(selector.modal).size() === 0 ) { + module.debug('Dimmer clicked, hiding all modals'); + module.hideAll(); + event.stopImmediatePropagation(); + } + }, + debounce: function(method, delay) { + clearTimeout(module.timer); + module.timer = setTimeout(method, delay); + }, + keyboard: function(event) { + var + keyCode = event.which, + escapeKey = 27 + ; + if(keyCode == escapeKey) { + if(settings.closable) { + module.debug('Escape key pressed hiding modal'); + module.hide(); + } + else { + module.debug('Escape key pressed, but closable is set to false'); + } + event.preventDefault(); + } + }, + resize: function() { + if( $dimmable.dimmer('is active') ) { + module.refresh(); + } + } + }, + + toggle: function() { + if( module.is.active() ) { + module.hide(); + } + else { + module.show(); + } + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.showDimmer(); + module.showModal(callback); + }, + + showModal: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( !module.is.active() ) { + module.debug('Showing modal'); + module.cacheSizes(); + module.set.position(); + module.set.type(); + + if( $otherModals.filter(':visible').size() > 0 ) { + module.debug('Other modals visible, queueing show animation'); + module.hideOthers(module.showModal); + } + else { + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $module + .transition(settings.transition + ' in', settings.duration, function() { + module.set.active(); + callback(); + }) + ; + } + else { + $module + .fadeIn(settings.duration, settings.easing, function() { + module.set.active(); + callback(); + }) + ; + } + $.proxy(settings.onShow, element)(); + } + } + else { + module.debug('Modal is already visible'); + } + }, + + showDimmer: function() { + if( !$dimmable.dimmer('is active') ) { + module.debug('Showing dimmer'); + $dimmable.dimmer('show'); + } + else { + module.debug('Dimmer already visible'); + } + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.hideDimmer(); + module.hideModal(callback); + }, + + hideDimmer: function() { + if( $dimmable.dimmer('is active') ) { + module.debug('Hiding dimmer'); + if(settings.closable) { + $dimmer + .off('click' + eventNamespace) + ; + } + $dimmable.dimmer('hide'); + } + else { + module.debug('Dimmer is not visible cannot hide'); + } + }, + + hideModal: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( module.is.active() ) { + module.debug('Hiding modal'); + module.remove.keyboardShortcuts(); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $module + .transition(settings.transition + ' out', settings.duration, function() { + module.remove.active(); + module.restore.focus(); + callback(); + }) + ; + } + else { + $module + .fadeOut(settings.duration, settings.easing, function() { + module.remove.active(); + module.restore.focus(); + callback(); + }) + ; + } + $.proxy(settings.onHide, element)(); + } + }, + + hideAll: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( $allModals.is(':visible') ) { + module.debug('Hiding all visible modals'); + module.hideDimmer(); + $allModals + .filter(':visible') + .modal('hide modal', callback) + ; + } + }, + + hideOthers: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + if( $otherModals.is(':visible') ) { + module.debug('Hiding other modals'); + $otherModals + .filter(':visible') + .modal('hide modal', callback) + ; + } + }, + + add: { + keyboardShortcuts: function() { + module.verbose('Adding keyboard shortcuts'); + $document + .on('keyup' + eventNamespace, module.event.keyboard) + ; + } + }, + + save: { + focus: function() { + $focusedElement = $(document.activeElement).blur(); + } + }, + + restore: { + focus: function() { + if($focusedElement && $focusedElement.size() > 0) { + $focusedElement.focus(); + } + } + }, + + remove: { + active: function() { + $module.removeClass(className.active); + }, + keyboardShortcuts: function() { + module.verbose('Removing keyboard shortcuts'); + $document + .off('keyup' + eventNamespace) + ; + }, + scrolling: function() { + $dimmable.removeClass(className.scrolling); + $module.removeClass(className.scrolling); + } + }, + + cacheSizes: function() { + module.cache = { + height : $module.outerHeight() + settings.offset, + contextHeight : (settings.context == 'body') + ? $(window).height() + : $dimmable.height() + }; + module.debug('Caching modal and container sizes', module.cache); + }, + + can: { + fit: function() { + return (module.cache.height < module.cache.contextHeight); + } + }, + + is: { + active: function() { + return $module.hasClass(className.active); + }, + modernBrowser: function() { + // lol + return (navigator.appName !== 'Microsoft Internet Explorer'); + } + }, + + set: { + active: function() { + module.add.keyboardShortcuts(); + module.save.focus(); + $module + .addClass(className.active) + ; + if(settings.closable) { + $dimmer + .off('click' + eventNamespace) + .on('click' + eventNamespace, module.event.click) + ; + } + }, + scrolling: function() { + $dimmable.addClass(className.scrolling); + $module.addClass(className.scrolling); + }, + type: function() { + if(module.can.fit()) { + module.verbose('Modal fits on screen'); + module.remove.scrolling(); + } + else { + module.verbose('Modal cannot fit on screen setting to scrolling'); + module.set.scrolling(); + } + }, + position: function() { + module.verbose('Centering modal on page', module.cache, module.cache.height / 2); + if(module.can.fit()) { + $module + .css({ + top: '', + marginTop: -(module.cache.height / 2) + }) + ; + } + else { + $module + .css({ + marginTop : '1em', + top : $document.scrollTop() + }) + ; + } + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.modal.settings = { + + name : 'Modal', + namespace : 'modal', + + debug : true, + verbose : true, + performance : true, + + closable : true, + context : 'body', + duration : 400, + easing : 'easeOutExpo', + offset : 0, + transition : 'fade down', + + onShow : function(){}, + onHide : function(){}, + onApprove : function(){ return true; }, + onDeny : function(){ return true; }, + + selector : { + close : '.close, .actions .button', + approve : '.actions .positive, .actions .approve', + deny : '.actions .negative, .actions .cancel', + modal : '.ui.modal' + }, + error : { + dimmer : 'UI Dimmer, a required component is not included in this page', + method : 'The method you called is not defined.' + }, + className : { + active : 'active', + scrolling : 'scrolling' + } +}; + + +})( jQuery, window , document ); +/* + * # Semantic - Nag + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.nag = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $(this) + .each(function() { + var + settings = $.extend(true, {}, $.fn.nag.settings, parameters), + + className = settings.className, + selector = settings.selector, + error = settings.error, + namespace = settings.namespace, + + eventNamespace = '.' + namespace, + moduleNamespace = namespace + '-module', + + $module = $(this), + + $close = $module.find(selector.close), + $context = $(settings.context), + + + element = this, + instance = $module.data(moduleNamespace), + + moduleOffset, + moduleHeight, + + contextWidth, + contextHeight, + contextOffset, + + yOffset, + yPosition, + + timer, + module, + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); } + ; + module = { + + initialize: function() { + module.verbose('Initializing element'); + // calculate module offset once + moduleOffset = $module.offset(); + moduleHeight = $module.outerHeight(); + contextWidth = $context.outerWidth(); + contextHeight = $context.outerHeight(); + contextOffset = $context.offset(); + + $module + .data(moduleNamespace, module) + ; + $close + .on('click' + eventNamespace, module.dismiss) + ; + // lets avoid javascript if we dont need to reposition + if(settings.context == window && settings.position == 'fixed') { + $module + .addClass(className.fixed) + ; + } + if(settings.sticky) { + module.verbose('Adding scroll events'); + // retrigger on scroll for absolute + if(settings.position == 'absolute') { + $context + .on('scroll' + eventNamespace, module.event.scroll) + .on('resize' + eventNamespace, module.event.scroll) + ; + } + // fixed is always relative to window + else { + $(window) + .on('scroll' + eventNamespace, module.event.scroll) + .on('resize' + eventNamespace, module.event.scroll) + ; + } + // fire once to position on init + $.proxy(module.event.scroll, this)(); + } + + if(settings.displayTime > 0) { + setTimeout(module.hide, settings.displayTime); + } + if(module.should.show()) { + if( !$module.is(':visible') ) { + module.show(); + } + } + else { + module.hide(); + } + }, + + destroy: function() { + module.verbose('Destroying instance'); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + if(settings.sticky) { + $context + .off(eventNamespace) + ; + } + }, + + refresh: function() { + module.debug('Refreshing cached calculations'); + moduleOffset = $module.offset(); + moduleHeight = $module.outerHeight(); + contextWidth = $context.outerWidth(); + contextHeight = $context.outerHeight(); + contextOffset = $context.offset(); + }, + + show: function() { + module.debug('Showing nag', settings.animation.show); + if(settings.animation.show == 'fade') { + $module + .fadeIn(settings.duration, settings.easing) + ; + } + else { + $module + .slideDown(settings.duration, settings.easing) + ; + } + }, + + hide: function() { + module.debug('Showing nag', settings.animation.hide); + if(settings.animation.show == 'fade') { + $module + .fadeIn(settings.duration, settings.easing) + ; + } + else { + $module + .slideUp(settings.duration, settings.easing) + ; + } + }, + + onHide: function() { + module.debug('Removing nag', settings.animation.hide); + $module.remove(); + if (settings.onHide) { + settings.onHide(); + } + }, + + stick: function() { + module.refresh(); + + if(settings.position == 'fixed') { + var + windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(), + fixedOffset = ( $module.hasClass(className.bottom) ) + ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll + : contextOffset.top - windowScroll + ; + $module + .css({ + position : 'fixed', + top : fixedOffset, + left : contextOffset.left, + width : contextWidth - settings.scrollBarWidth + }) + ; + } + else { + $module + .css({ + top : yPosition + }) + ; + } + }, + unStick: function() { + $module + .css({ + top : '' + }) + ; + }, + dismiss: function(event) { + if(settings.storageMethod) { + module.storage.set(settings.storedKey, settings.storedValue); + } + module.hide(); + event.stopImmediatePropagation(); + event.preventDefault(); + }, + + should: { + show: function() { + if(settings.persist) { + module.debug('Persistent nag is set, can show nag'); + return true; + } + if(module.storage.get(settings.storedKey) != settings.storedValue) { + module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey)); + return true; + } + module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey)); + return false; + }, + stick: function() { + yOffset = $context.prop('pageYOffset') || $context.scrollTop(); + yPosition = ( $module.hasClass(className.bottom) ) + ? (contextHeight - $module.outerHeight() ) + yOffset + : yOffset + ; + // absolute position calculated when y offset met + if(yPosition > moduleOffset.top) { + return true; + } + else if(settings.position == 'fixed') { + return true; + } + return false; + } + }, + + storage: { + + set: function(key, value) { + module.debug('Setting stored value', key, value, settings.storageMethod); + if(settings.storageMethod == 'local' && window.store !== undefined) { + window.store.set(key, value); + } + // store by cookie + else if($.cookie !== undefined) { + $.cookie(key, value); + } + else { + module.error(error.noStorage); + } + }, + get: function(key) { + module.debug('Getting stored value', key, settings.storageMethod); + if(settings.storageMethod == 'local' && window.store !== undefined) { + return window.store.get(key); + } + // get by cookie + else if($.cookie !== undefined) { + return $.cookie(key); + } + else { + module.error(error.noStorage); + } + } + + }, + + event: { + scroll: function() { + if(timer !== undefined) { + clearTimeout(timer); + } + timer = setTimeout(function() { + if(module.should.stick() ) { + requestAnimationFrame(module.stick); + } + else { + module.unStick(); + } + }, settings.lag); + } + }, + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + module.debug('Changing internal', name, value); + if(value !== undefined) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else { + module[name] = value; + } + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.nag.settings = { + + name : 'Nag', + + verbose : true, + debug : true, + performance : true, + + namespace : 'Nag', + + // allows cookie to be overriden + persist : false, + + // set to zero to manually dismiss, otherwise hides on its own + displayTime : 0, + + animation : { + show: 'slide', + hide: 'slide' + }, + + // method of stickyness + position : 'fixed', + scrollBarWidth : 18, + + // type of storage to use + storageMethod : 'cookie', + + // value to store in dismissed localstorage/cookie + storedKey : 'nag', + storedValue : 'dismiss', + + // need to calculate stickyness on scroll + sticky : false, + + // how often to check scroll event + lag : 0, + + // context for scroll event + context : window, + + error: { + noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state', + method : 'The method you called is not defined.' + }, + + className : { + bottom : 'bottom', + fixed : 'fixed' + }, + + selector : { + close: '.icon.close' + }, + + speed : 500, + easing : 'easeOutQuad', + + onHide: function() {} + +}; + +})( jQuery, window , document ); + +/* + * # Semantic - Popup + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.popup = function(parameters) { + var + $allModules = $(this), + $document = $(document), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.popup.settings, parameters) + : $.extend({}, $.fn.popup.settings), + + selector = settings.selector, + className = settings.className, + error = settings.error, + metadata = settings.metadata, + namespace = settings.namespace, + + eventNamespace = '.' + settings.namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $context = $(settings.context), + $target = (settings.target) + ? $(settings.target) + : $module, + + $window = $(window), + + $offsetParent = (settings.inline) + ? $target.offsetParent() + : $window, + $popup = (settings.inline) + ? $target.next(settings.selector.popup) + : $window.children(settings.selector.popup).last(), + + searchDepth = 0, + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + // binds events + initialize: function() { + module.debug('Initializing module', $module); + if(settings.on == 'click') { + $module + .on('click', module.toggle) + ; + } + else { + $module + .on(module.get.startEvent() + eventNamespace, module.event.start) + .on(module.get.endEvent() + eventNamespace, module.event.end) + ; + } + if(settings.target) { + module.debug('Target set to element', $target); + } + $window + .on('resize' + eventNamespace, module.event.resize) + ; + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + refresh: function() { + if(settings.inline) { + $popup = $target.next(selector.popup); + $offsetParent = $target.offsetParent(); + } + else { + $popup = $window.children(selector.popup).last(); + } + }, + + destroy: function() { + module.debug('Destroying previous module'); + $window + .off(eventNamespace) + ; + $popup + .remove() + ; + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + event: { + start: function(event) { + module.timer = setTimeout(function() { + if( module.is.hidden() ) { + module.show(); + } + }, settings.delay); + }, + end: function() { + clearTimeout(module.timer); + if( module.is.visible() ) { + module.hide(); + } + }, + resize: function() { + if( module.is.visible() ) { + module.set.position(); + } + } + }, + + // generates popup html from metadata + create: function() { + module.debug('Creating pop-up html'); + var + html = $module.data(metadata.html) || settings.html, + variation = $module.data(metadata.variation) || settings.variation, + title = $module.data(metadata.title) || settings.title, + content = $module.data(metadata.content) || $module.attr('title') || settings.content + ; + if(html || content || title) { + if(!html) { + html = settings.template({ + title : title, + content : content + }); + } + $popup = $('
') + .addClass(className.popup) + .addClass(variation) + .html(html) + ; + if(settings.inline) { + module.verbose('Inserting popup element inline', $popup); + $popup + .insertAfter($module) + ; + } + else { + module.verbose('Appending popup element to body', $popup); + $popup + .appendTo( $context ) + ; + } + $.proxy(settings.onCreate, $popup)(); + } + else { + module.error(error.content); + } + }, + + // determines popup state + toggle: function() { + module.debug('Toggling pop-up'); + if( module.is.hidden() ) { + module.hideAll(); + module.show(); + } + else { + module.hide(); + } + }, + + show: function(callback) { + callback = callback || function(){}; + module.debug('Showing pop-up', settings.transition); + if(!settings.preserve) { + module.refresh(); + } + if( !module.exists() ) { + module.create(); + } + module.set.position(); + module.animate.show(callback); + }, + + + hide: function(callback) { + callback = callback || function(){}; + $module + .removeClass(className.visible) + ; + module.unbind.close(); + if( module.is.visible() ) { + module.animate.hide(callback); + } + }, + + hideAll: function() { + $(selector.popup) + .filter(':visible') + .popup('hide') + ; + }, + + hideGracefully: function(event) { + // don't close on clicks inside popup + if( $(event.target).closest(selector.popup).size() === 0) { + module.hide(); + } + }, + + exists: function() { + if(settings.inline) { + return ( $popup.size() !== 0 ); + } + else { + return ( $popup.parent($context).size() ); + } + }, + + remove: function() { + module.debug('Removing popup'); + $popup + .remove() + ; + }, + + animate: { + show: function(callback) { + callback = callback || function(){}; + $module + .addClass(className.visible) + ; + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $popup + .transition(settings.transition + ' in', settings.duration, function() { + module.bind.close(); + $.proxy(callback, element)(); + }) + ; + } + else { + $popup + .stop() + .fadeIn(settings.duration, settings.easing, function() { + module.bind.close(); + $.proxy(callback, element)(); + }) + ; + } + $.proxy(settings.onShow, element)(); + }, + hide: function(callback) { + callback = callback || function(){}; + module.debug('Hiding pop-up'); + if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { + $popup + .transition(settings.transition + ' out', settings.duration, function() { + module.reset(); + callback(); + }) + ; + } + else { + $popup + .stop() + .fadeOut(settings.duration, settings.easing, function() { + module.reset(); + callback(); + }) + ; + } + $.proxy(settings.onHide, element)(); + } + }, + + get: { + startEvent: function() { + if(settings.on == 'hover') { + return 'mouseenter'; + } + else if(settings.on == 'focus') { + return 'focus'; + } + }, + endEvent: function() { + if(settings.on == 'hover') { + return 'mouseleave'; + } + else if(settings.on == 'focus') { + return 'blur'; + } + }, + offstagePosition: function() { + var + boundary = { + top : $(window).scrollTop(), + bottom : $(window).scrollTop() + $(window).height(), + left : 0, + right : $(window).width() + }, + popup = { + width : $popup.width(), + height : $popup.outerHeight(), + position : $popup.offset() + }, + offstage = {}, + offstagePositions = [] + ; + if(popup.position) { + offstage = { + top : (popup.position.top < boundary.top), + bottom : (popup.position.top + popup.height > boundary.bottom), + right : (popup.position.left + popup.width > boundary.right), + left : (popup.position.left < boundary.left) + }; + } + module.verbose('Checking if outside viewable area', popup.position); + // return only boundaries that have been surpassed + $.each(offstage, function(direction, isOffstage) { + if(isOffstage) { + offstagePositions.push(direction); + } + }); + return (offstagePositions.length > 0) + ? offstagePositions.join(' ') + : false + ; + }, + nextPosition: function(position) { + switch(position) { + case 'top left': + position = 'bottom left'; + break; + case 'bottom left': + position = 'top right'; + break; + case 'top right': + position = 'bottom right'; + break; + case 'bottom right': + position = 'top center'; + break; + case 'top center': + position = 'bottom center'; + break; + case 'bottom center': + position = 'right center'; + break; + case 'right center': + position = 'left center'; + break; + case 'left center': + position = 'top center'; + break; + } + return position; + } + }, + + set: { + position: function(position, arrowOffset) { + var + windowWidth = $(window).width(), + windowHeight = $(window).height(), + + width = $target.outerWidth(), + height = $target.outerHeight(), + + popupWidth = $popup.width(), + popupHeight = $popup.outerHeight(), + + parentWidth = $offsetParent.outerWidth(), + parentHeight = $offsetParent.outerHeight(), + + distanceAway = settings.distanceAway, + + offset = (settings.inline) + ? $target.position() + : $target.offset(), + + positioning, + offstagePosition + ; + position = position || $module.data(metadata.position) || settings.position; + arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset; + // adjust for margin when inline + if(settings.inline) { + if(position == 'left center' || position == 'right center') { + arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10); + distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10); + } + else { + arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10); + distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10); + } + } + module.debug('Calculating offset for position', position); + switch(position) { + case 'top left': + positioning = { + bottom : parentHeight - offset.top + distanceAway, + right : parentWidth - offset.left - arrowOffset, + top : 'auto', + left : 'auto' + }; + break; + case 'top center': + positioning = { + bottom : parentHeight - offset.top + distanceAway, + left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset, + top : 'auto', + right : 'auto' + }; + break; + case 'top right': + positioning = { + top : 'auto', + bottom : parentHeight - offset.top + distanceAway, + left : offset.left + width + arrowOffset, + right : 'auto' + }; + break; + case 'left center': + positioning = { + top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset, + right : parentWidth - offset.left + distanceAway, + left : 'auto', + bottom : 'auto' + }; + break; + case 'right center': + positioning = { + top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset, + left : offset.left + width + distanceAway, + bottom : 'auto', + right : 'auto' + }; + break; + case 'bottom left': + positioning = { + top : offset.top + height + distanceAway, + right : parentWidth - offset.left - arrowOffset, + left : 'auto', + bottom : 'auto' + }; + break; + case 'bottom center': + positioning = { + top : offset.top + height + distanceAway, + left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset, + bottom : 'auto', + right : 'auto' + }; + break; + case 'bottom right': + positioning = { + top : offset.top + height + distanceAway, + left : offset.left + width + arrowOffset, + bottom : 'auto', + right : 'auto' + }; + break; + } + // tentatively place on stage + $popup + .css(positioning) + .removeClass(className.position) + .addClass(position) + .addClass(className.loading) + ; + // check if is offstage + offstagePosition = module.get.offstagePosition(); + + // recursively find new positioning + if(offstagePosition) { + module.debug('Element is outside boundaries', offstagePosition); + if(searchDepth < settings.maxSearchDepth) { + position = module.get.nextPosition(position); + searchDepth++; + module.debug('Trying new position', position); + return module.set.position(position); + } + else { + module.error(error.recursion); + searchDepth = 0; + module.reset(); + return false; + } + } + else { + module.debug('Position is on stage', position); + searchDepth = 0; + return true; + } + + $module.removeClass(className.loading); + } + + }, + + bind: { + close:function() { + if(settings.on == 'click' && settings.closable) { + module.verbose('Binding popup close event to document'); + $document + .on('click' + eventNamespace, module.hideGracefully) + ; + } + } + }, + + unbind: { + close: function() { + if(settings.on == 'click' && settings.closable) { + module.verbose('Removing close event from document'); + $document + .off('click' + eventNamespace) + ; + } + } + }, + + is: { + visible: function() { + return $popup.is(':visible'); + }, + hidden: function() { + return !module.is.visible(); + } + }, + + reset: function() { + $popup + .attr('style', '') + .removeAttr('style') + ; + if(!settings.preserve) { + module.remove(); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.popup.settings = { + + name : 'Popup', + debug : true, + verbose : true, + performance : true, + namespace : 'popup', + + onCreate : function(){}, + onShow : function(){}, + onHide : function(){}, + + variation : '', + content : false, + html : false, + title : false, + + on : 'hover', + target : false, + closable : true, + + context : 'body', + position : 'top center', + delay : 150, + inline : false, + preserve : false, + + duration : 250, + easing : 'easeOutQuint', + transition : 'scale', + + distanceAway : 0, + offset : 0, + maxSearchDepth : 10, + + error: { + content : 'Your popup has no content specified', + method : 'The method you called is not defined.', + recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.' + }, + + metadata: { + content : 'content', + html : 'html', + offset : 'offset', + position : 'position', + title : 'title', + variation : 'variation' + }, + + className : { + loading : 'loading', + popup : 'ui popup', + position : 'top left center bottom right', + visible : 'visible' + }, + + selector : { + popup : '.ui.popup' + }, + + template: function(text) { + var html = ''; + if(typeof text !== undefined) { + if(typeof text.title !== undefined && text.title) { + html += '
' + text.title + '
'; + } + if(typeof text.content !== undefined && text.content) { + html += '
' + text.content + '
'; + } + } + return html; + } + +}; + +})( jQuery, window , document ); + +/* + * # Semantic - Rating + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.rating = function(parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.rating.settings, parameters) + : $.extend({}, $.fn.rating.settings), + + namespace = settings.namespace, + className = settings.className, + metadata = settings.metadata, + selector = settings.selector, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + element = this, + instance = $(this).data(moduleNamespace), + + $module = $(this), + $icon = $module.find(selector.icon), + + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing rating module', settings); + + if(settings.interactive) { + module.enable(); + } + else { + module.disable(); + } + + if(settings.initialRating) { + module.debug('Setting initial rating'); + module.setRating(settings.initialRating); + } + if( $module.data(metadata.rating) ) { + module.debug('Rating found in metadata'); + module.setRating( $module.data(metadata.rating) ); + } + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Instantiating module', settings); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous instance', instance); + $module + .removeData(moduleNamespace) + ; + $icon + .off(eventNamespace) + ; + }, + + event: { + mouseenter: function() { + var + $activeIcon = $(this) + ; + $activeIcon + .nextAll() + .removeClass(className.hover) + ; + $module + .addClass(className.hover) + ; + $activeIcon + .addClass(className.hover) + .prevAll() + .addClass(className.hover) + ; + }, + mouseleave: function() { + $module + .removeClass(className.hover) + ; + $icon + .removeClass(className.hover) + ; + }, + click: function() { + var + $activeIcon = $(this), + currentRating = module.getRating(), + rating = $icon.index($activeIcon) + 1 + ; + if(settings.clearable && currentRating == rating) { + module.clearRating(); + } + else { + module.setRating( rating ); + } + } + }, + + clearRating: function() { + module.debug('Clearing current rating'); + module.setRating(0); + }, + + getRating: function() { + var + currentRating = $icon.filter('.' + className.active).size() + ; + module.verbose('Current rating retrieved', currentRating); + return currentRating; + }, + + enable: function() { + module.debug('Setting rating to interactive mode'); + $icon + .on('mouseenter' + eventNamespace, module.event.mouseenter) + .on('mouseleave' + eventNamespace, module.event.mouseleave) + .on('click' + eventNamespace, module.event.click) + ; + $module + .addClass(className.active) + ; + }, + + disable: function() { + module.debug('Setting rating to read-only mode'); + $icon + .off(eventNamespace) + ; + $module + .removeClass(className.active) + ; + }, + + setRating: function(rating) { + var + ratingIndex = (rating - 1 >= 0) + ? (rating - 1) + : 0, + $activeIcon = $icon.eq(ratingIndex) + ; + $module + .removeClass(className.hover) + ; + $icon + .removeClass(className.hover) + .removeClass(className.active) + ; + if(rating > 0) { + module.verbose('Setting current rating to', rating); + $activeIcon + .addClass(className.active) + .prevAll() + .addClass(className.active) + ; + } + $.proxy(settings.onRate, element)(rating); + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.rating.settings = { + + name : 'Rating', + namespace : 'rating', + + verbose : true, + debug : true, + performance : true, + + initialRating : 0, + interactive : true, + clearable : false, + + onRate : function(rating){}, + + error : { + method : 'The method you called is not defined' + }, + + metadata: { + rating: 'rating' + }, + + className : { + active : 'active', + hover : 'hover', + loading : 'loading' + }, + + selector : { + icon : '.icon' + } + +}; + +})( jQuery, window , document ); + +/* + * # Semantic - Search + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ($, window, document, undefined) { + +$.fn.search = function(source, parameters) { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + $(this) + .each(function() { + var + settings = $.extend(true, {}, $.fn.search.settings, parameters), + + className = settings.className, + selector = settings.selector, + error = settings.error, + namespace = settings.namespace, + + eventNamespace = '.' + namespace, + moduleNamespace = namespace + '-module', + + $module = $(this), + $prompt = $module.find(selector.prompt), + $searchButton = $module.find(selector.searchButton), + $results = $module.find(selector.results), + $result = $module.find(selector.result), + $category = $module.find(selector.category), + + element = this, + instance = $module.data(moduleNamespace), + + module + ; + module = { + + initialize: function() { + module.verbose('Initializing module'); + var + prompt = $prompt[0], + inputEvent = (prompt.oninput !== undefined) + ? 'input' + : (prompt.onpropertychange !== undefined) + ? 'propertychange' + : 'keyup' + ; + // attach events + $prompt + .on('focus' + eventNamespace, module.event.focus) + .on('blur' + eventNamespace, module.event.blur) + .on('keydown' + eventNamespace, module.handleKeyboard) + ; + if(settings.automatic) { + $prompt + .on(inputEvent + eventNamespace, module.search.throttle) + ; + } + $searchButton + .on('click' + eventNamespace, module.search.query) + ; + $results + .on('click' + eventNamespace, selector.result, module.results.select) + ; + module.instantiate(); + }, + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + destroy: function() { + module.verbose('Destroying instance'); + $module + .removeData(moduleNamespace) + ; + }, + event: { + focus: function() { + $module + .addClass(className.focus) + ; + module.results.show(); + }, + blur: function() { + module.search.cancel(); + $module + .removeClass(className.focus) + ; + module.results.hide(); + } + }, + handleKeyboard: function(event) { + var + // force latest jq dom + $result = $module.find(selector.result), + $category = $module.find(selector.category), + keyCode = event.which, + keys = { + backspace : 8, + enter : 13, + escape : 27, + upArrow : 38, + downArrow : 40 + }, + activeClass = className.active, + currentIndex = $result.index( $result.filter('.' + activeClass) ), + resultSize = $result.size(), + newIndex + ; + // search shortcuts + if(keyCode == keys.escape) { + module.verbose('Escape key pressed, blurring search field'); + $prompt + .trigger('blur') + ; + } + // result shortcuts + if($results.filter(':visible').size() > 0) { + if(keyCode == keys.enter) { + module.verbose('Enter key pressed, selecting active result'); + if( $result.filter('.' + activeClass).exists() ) { + $.proxy(module.results.select, $result.filter('.' + activeClass) )(); + event.preventDefault(); + return false; + } + } + else if(keyCode == keys.upArrow) { + module.verbose('Up key pressed, changing active result'); + newIndex = (currentIndex - 1 < 0) + ? currentIndex + : currentIndex - 1 + ; + $category + .removeClass(activeClass) + ; + $result + .removeClass(activeClass) + .eq(newIndex) + .addClass(activeClass) + .closest($category) + .addClass(activeClass) + ; + event.preventDefault(); + } + else if(keyCode == keys.downArrow) { + module.verbose('Down key pressed, changing active result'); + newIndex = (currentIndex + 1 >= resultSize) + ? currentIndex + : currentIndex + 1 + ; + $category + .removeClass(activeClass) + ; + $result + .removeClass(activeClass) + .eq(newIndex) + .addClass(activeClass) + .closest($category) + .addClass(activeClass) + ; + event.preventDefault(); + } + } + else { + // query shortcuts + if(keyCode == keys.enter) { + module.verbose('Enter key pressed, executing query'); + module.search.query(); + $searchButton + .addClass(className.down) + ; + $prompt + .one('keyup', function(){ + $searchButton + .removeClass(className.down) + ; + }) + ; + } + } + }, + search: { + cancel: function() { + var + xhr = $module.data('xhr') || false + ; + if( xhr && xhr.state() != 'resolved') { + module.debug('Cancelling last search'); + xhr.abort(); + } + }, + throttle: function() { + var + searchTerm = $prompt.val(), + numCharacters = searchTerm.length + ; + clearTimeout(module.timer); + if(numCharacters >= settings.minCharacters) { + module.timer = setTimeout(module.search.query, settings.searchThrottle); + } + else { + module.results.hide(); + } + }, + query: function() { + var + searchTerm = $prompt.val(), + cachedHTML = module.search.cache.read(searchTerm) + ; + if(cachedHTML) { + module.debug("Reading result for '" + searchTerm + "' from cache"); + module.results.add(cachedHTML); + } + else { + module.debug("Querying for '" + searchTerm + "'"); + if(typeof source == 'object') { + module.search.local(searchTerm); + } + else { + module.search.remote(searchTerm); + } + $.proxy(settings.onSearchQuery, $module)(searchTerm); + } + }, + local: function(searchTerm) { + var + results = [], + fullTextResults = [], + searchFields = $.isArray(settings.searchFields) + ? settings.searchFields + : [settings.searchFields], + + searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'), + fullTextRegExp = new RegExp(searchTerm, 'i'), + searchHTML + ; + $module + .addClass(className.loading) + ; + // iterate through search fields in array order + $.each(searchFields, function(index, field) { + $.each(source, function(label, thing) { + if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) { + if( searchRegExp.test( thing[field] ) ) { + results.push(thing); + } + else if( fullTextRegExp.test( thing[field] ) ) { + fullTextResults.push(thing); + } + } + }); + }); + searchHTML = module.results.generate({ + results: $.merge(results, fullTextResults) + }); + $module + .removeClass(className.loading) + ; + module.search.cache.write(searchTerm, searchHTML); + module.results.add(searchHTML); + }, + remote: function(searchTerm) { + var + apiSettings = { + stateContext : $module, + url : source, + urlData: { query: searchTerm }, + success : function(response) { + searchHTML = module.results.generate(response); + module.search.cache.write(searchTerm, searchHTML); + module.results.add(searchHTML); + }, + failure : module.error + }, + searchHTML + ; + module.search.cancel(); + module.debug('Executing search'); + $.extend(true, apiSettings, settings.apiSettings); + $.api(apiSettings); + }, + + cache: { + read: function(name) { + var + cache = $module.data('cache') + ; + return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) ) + ? cache[name] + : false + ; + }, + write: function(name, value) { + var + cache = ($module.data('cache') !== undefined) + ? $module.data('cache') + : {} + ; + cache[name] = value; + $module + .data('cache', cache) + ; + } + } + }, + + results: { + generate: function(response) { + module.debug('Generating html from response', response); + var + template = settings.templates[settings.type], + html = '' + ; + if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) { + if(settings.maxResults > 0) { + response.results = $.makeArray(response.results).slice(0, settings.maxResults); + } + if(response.results.length > 0) { + if($.isFunction(template)) { + html = template(response); + } + else { + module.error(error.noTemplate, false); + } + } + } + else { + html = module.message(error.noResults, 'empty'); + } + $.proxy(settings.onResults, $module)(response); + return html; + }, + add: function(html) { + if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') { + $results + .html(html) + ; + } + module.results.show(); + }, + show: function() { + if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') { + $results + .stop() + .fadeIn(200) + ; + $.proxy(settings.onResultsOpen, $results)(); + } + }, + hide: function() { + if($results.filter(':visible').size() > 0) { + $results + .stop() + .fadeOut(200) + ; + $.proxy(settings.onResultsClose, $results)(); + } + }, + select: function(event) { + module.debug('Search result selected'); + var + $result = $(this), + $title = $result.find('.title'), + title = $title.html() + ; + if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') { + var + $link = $result.find('a[href]').eq(0), + href = $link.attr('href') || false, + target = $link.attr('target') || false + ; + module.results.hide(); + $prompt + .val(title) + ; + if(href) { + if(target == '_blank' || event.ctrlKey) { + window.open(href); + } + else { + window.location.href = (href); + } + } + } + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.search.settings = { + + name : 'Search Module', + namespace : 'search', + + debug : true, + verbose : true, + performance : true, + + // onSelect default action is defined in module + onSelect : 'default', + onResultsAdd : 'default', + + onSearchQuery : function(){}, + onResults : function(response){}, + + onResultsOpen : function(){}, + onResultsClose : function(){}, + + automatic : 'true', + type : 'simple', + minCharacters : 3, + searchThrottle : 300, + maxResults : 7, + cache : true, + + searchFields : [ + 'title', + 'description' + ], + + // api config + apiSettings: { + + }, + + className: { + active : 'active', + down : 'down', + focus : 'focus', + empty : 'empty', + loading : 'loading' + }, + + error : { + noResults : 'Your search returned no results', + logging : 'Error in debug logging, exiting.', + noTemplate : 'A valid template name was not specified.', + serverError : 'There was an issue with querying the server.', + method : 'The method you called is not defined.' + }, + + selector : { + prompt : '.prompt', + searchButton : '.search.button', + results : '.results', + category : '.category', + result : '.result' + }, + + templates: { + message: function(message, type) { + var + html = '' + ; + if(message !== undefined && type !== undefined) { + html += '' + + '
' + ; + // message type + if(type == 'empty') { + html += '' + + '
No Results
' + + '
' + message + '
' + ; + } + else { + html += '
' + message + '
'; + } + html += '
'; + } + return html; + }, + categories: function(response) { + var + html = '' + ; + if(response.results !== undefined) { + // each category + $.each(response.results, function(index, category) { + if(category.results !== undefined && category.results.length > 0) { + html += '' + + '
' + + '
' + category.name + '
' + ; + // each item inside category + $.each(category.results, function(index, result) { + html += '
'; + html += ''; + if(result.image !== undefined) { + html+= '' + + '
' + + ' ' + + '
' + ; + } + html += '
'; + if(result.price !== undefined) { + html+= '
' + result.price + '
'; + } + if(result.title !== undefined) { + html+= '
' + result.title + '
'; + } + if(result.description !== undefined) { + html+= '
' + result.description + '
'; + } + html += '' + + '
' + + '
' + ; + }); + html += '' + + '
' + ; + } + }); + if(response.resultPage) { + html += '' + + '' + + response.resultPage.text + + ''; + } + return html; + } + return false; + }, + simple: function(response) { + var + html = '' + ; + if(response.results !== undefined) { + + // each result + $.each(response.results, function(index, result) { + html += ''; + if(result.image !== undefined) { + html+= '' + + '
' + + ' ' + + '
' + ; + } + html += '
'; + if(result.price !== undefined) { + html+= '
' + result.price + '
'; + } + if(result.title !== undefined) { + html+= '
' + result.title + '
'; + } + if(result.description !== undefined) { + html+= '
' + result.description + '
'; + } + html += '' + + '
' + + '
' + ; + }); + + if(response.resultPage) { + html += '' + + '' + + response.resultPage.text + + ''; + } + return html; + } + return false; + } + } +}; + +})( jQuery, window , document ); +/* + * # Semantic - Shape + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.shape = function(parameters) { + var + $allModules = $(this), + $body = $('body'), + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + moduleSelector = $allModules.selector || '', + settings = $.extend(true, {}, $.fn.shape.settings, parameters), + + // internal aliases + namespace = settings.namespace, + selector = settings.selector, + error = settings.error, + className = settings.className, + + // define namespaces for modules + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + // selector cache + $module = $(this), + $sides = $module.find(selector.sides), + $side = $module.find(selector.side), + + // private variables + nextSelector = false, + $activeSide, + $nextSide, + + // standard module + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.verbose('Initializing module for', element); + module.set.defaultSide(); + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', element); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache for', element); + $module = $(element); + $sides = $(this).find(selector.shape); + $side = $(this).find(selector.side); + }, + + repaint: function() { + module.verbose('Forcing repaint event'); + var + shape = $sides.get(0) || document.createElement('div'), + fakeAssignment = shape.offsetWidth + ; + }, + + animate: function(propertyObject, callback) { + module.verbose('Animating box with properties', propertyObject); + callback = callback || function(event) { + module.verbose('Executing animation callback'); + if(event !== undefined) { + event.stopPropagation(); + } + module.reset(); + module.set.active(); + }; + $.proxy(settings.beforeChange, $nextSide[0])(); + if(module.get.transitionEvent()) { + module.verbose('Starting CSS animation'); + $module + .addClass(className.animating) + ; + module.repaint(); + $module + .addClass(className.animating) + ; + $activeSide + .addClass(className.hidden) + ; + $sides + .css(propertyObject) + .one(module.get.transitionEvent(), callback) + ; + module.set.duration(settings.duration); + } + else { + callback(); + } + }, + + queue: function(method) { + module.debug('Queueing animation of', method); + $sides + .one(module.get.transitionEvent(), function() { + module.debug('Executing queued animation'); + setTimeout(function(){ + $module.shape(method); + }, 0); + }) + ; + }, + + reset: function() { + module.verbose('Animating states reset'); + $module + .removeClass(className.animating) + .attr('style', '') + .removeAttr('style') + ; + // removeAttr style does not consistently work in safari + $sides + .attr('style', '') + .removeAttr('style') + ; + $side + .attr('style', '') + .removeAttr('style') + .removeClass(className.hidden) + ; + $nextSide + .removeClass(className.animating) + .attr('style', '') + .removeAttr('style') + ; + }, + + is: { + animating: function() { + return $module.hasClass(className.animating); + } + }, + + set: { + + defaultSide: function() { + $activeSide = $module.find('.' + settings.className.active); + $nextSide = ( $activeSide.next(selector.side).size() > 0 ) + ? $activeSide.next(selector.side) + : $module.find(selector.side).first() + ; + nextSelector = false; + module.verbose('Active side set to', $activeSide); + module.verbose('Next side set to', $nextSide); + }, + + duration: function(duration) { + duration = duration || settings.duration; + duration = (typeof duration == 'number') + ? duration + 'ms' + : duration + ; + module.verbose('Setting animation duration', duration); + $sides.add($side) + .css({ + '-webkit-transition-duration': duration, + '-moz-transition-duration': duration, + '-ms-transition-duration': duration, + '-o-transition-duration': duration, + 'transition-duration': duration + }) + ; + }, + + stageSize: function() { + var + $clone = $module.clone().addClass(className.loading), + $activeSide = $clone.find('.' + settings.className.active), + $nextSide = (nextSelector) + ? $clone.find(nextSelector) + : ( $activeSide.next(selector.side).size() > 0 ) + ? $activeSide.next(selector.side) + : $clone.find(selector.side).first(), + newSize = {} + ; + $activeSide.removeClass(className.active); + $nextSide.addClass(className.active); + $clone.prependTo($body); + newSize = { + width : $nextSide.outerWidth(), + height : $nextSide.outerHeight() + }; + $clone.remove(); + $module + .css(newSize) + ; + module.verbose('Resizing stage to fit new content', newSize); + }, + + nextSide: function(selector) { + nextSelector = selector; + $nextSide = $module.find(selector); + if($nextSide.size() === 0) { + module.error(error.side); + } + module.verbose('Next side manually set to', $nextSide); + }, + + active: function() { + module.verbose('Setting new side to active', $nextSide); + $side + .removeClass(className.active) + ; + $nextSide + .addClass(className.active) + ; + $.proxy(settings.onChange, $nextSide[0])(); + module.set.defaultSide(); + } + }, + + flip: { + + up: function() { + module.debug('Flipping up', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.above(); + module.animate( module.get.transform.up() ); + } + else { + module.queue('flip up'); + } + }, + + down: function() { + module.debug('Flipping down', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.below(); + module.animate( module.get.transform.down() ); + } + else { + module.queue('flip down'); + } + }, + + left: function() { + module.debug('Flipping left', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.left(); + module.animate(module.get.transform.left() ); + } + else { + module.queue('flip left'); + } + }, + + right: function() { + module.debug('Flipping right', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.right(); + module.animate(module.get.transform.right() ); + } + else { + module.queue('flip right'); + } + }, + + over: function() { + module.debug('Flipping over', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.behind(); + module.animate(module.get.transform.over() ); + } + else { + module.queue('flip over'); + } + }, + + back: function() { + module.debug('Flipping back', $nextSide); + if( !module.is.animating() ) { + module.set.stageSize(); + module.stage.behind(); + module.animate(module.get.transform.back() ); + } + else { + module.queue('flip back'); + } + } + + }, + + get: { + + transform: { + up: function() { + var + translate = { + y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2), + z: -($activeSide.outerHeight() / 2) + } + ; + return { + transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)' + }; + }, + + down: function() { + var + translate = { + y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2), + z: -($activeSide.outerHeight() / 2) + } + ; + return { + transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)' + }; + }, + + left: function() { + var + translate = { + x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2), + z : -($activeSide.outerWidth() / 2) + } + ; + return { + transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)' + }; + }, + + right: function() { + var + translate = { + x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2), + z : -($activeSide.outerWidth() / 2) + } + ; + return { + transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)' + }; + }, + + over: function() { + var + translate = { + x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2) + } + ; + return { + transform: 'translateX(' + translate.x + 'px) rotateY(180deg)' + }; + }, + + back: function() { + var + translate = { + x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2) + } + ; + return { + transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)' + }; + } + }, + + transitionEvent: function() { + var + element = document.createElement('element'), + transitions = { + 'transition' :'transitionend', + 'OTransition' :'oTransitionEnd', + 'MozTransition' :'transitionend', + 'WebkitTransition' :'webkitTransitionEnd' + }, + transition + ; + for(transition in transitions){ + if( element.style[transition] !== undefined ){ + return transitions[transition]; + } + } + }, + + nextSide: function() { + return ( $activeSide.next(selector.side).size() > 0 ) + ? $activeSide.next(selector.side) + : $module.find(selector.side).first() + ; + } + + }, + + stage: { + + above: function() { + var + box = { + origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2), + depth : { + active : ($nextSide.outerHeight() / 2), + next : ($activeSide.outerHeight() / 2) + } + } + ; + module.verbose('Setting the initial animation position as above', $nextSide, box); + $activeSide + .css({ + 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)' + }) + ; + $nextSide + .addClass(className.animating) + .css({ + 'display' : 'block', + 'top' : box.origin + 'px', + 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)' + }) + ; + }, + + below: function() { + var + box = { + origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2), + depth : { + active : ($nextSide.outerHeight() / 2), + next : ($activeSide.outerHeight() / 2) + } + } + ; + module.verbose('Setting the initial animation position as below', $nextSide, box); + $activeSide + .css({ + 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)' + }) + ; + $nextSide + .addClass(className.animating) + .css({ + 'display' : 'block', + 'top' : box.origin + 'px', + 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)' + }) + ; + }, + + left: function() { + var + box = { + origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2), + depth : { + active : ($nextSide.outerWidth() / 2), + next : ($activeSide.outerWidth() / 2) + } + } + ; + module.verbose('Setting the initial animation position as left', $nextSide, box); + $activeSide + .css({ + 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)' + }) + ; + $nextSide + .addClass(className.animating) + .css({ + 'display' : 'block', + 'left' : box.origin + 'px', + 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)' + }) + ; + }, + + right: function() { + var + box = { + origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2), + depth : { + active : ($nextSide.outerWidth() / 2), + next : ($activeSide.outerWidth() / 2) + } + } + ; + module.verbose('Setting the initial animation position as left', $nextSide, box); + $activeSide + .css({ + 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)' + }) + ; + $nextSide + .addClass(className.animating) + .css({ + 'display' : 'block', + 'left' : box.origin + 'px', + 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)' + }) + ; + }, + + behind: function() { + var + box = { + origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2), + depth : { + active : ($nextSide.outerWidth() / 2), + next : ($activeSide.outerWidth() / 2) + } + } + ; + module.verbose('Setting the initial animation position as behind', $nextSide, box); + $activeSide + .css({ + 'transform' : 'rotateY(0deg)' + }) + ; + $nextSide + .addClass(className.animating) + .css({ + 'display' : 'block', + 'left' : box.origin + 'px', + 'transform' : 'rotateY(-180deg)' + }) + ; + } + }, + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.shape.settings = { + + // module info + name : 'Shape', + + // debug content outputted to console + debug : true, + + // verbose debug output + verbose : true, + + // performance data output + performance: true, + + // event namespace + namespace : 'shape', + + // callback occurs on side change + beforeChange : function() {}, + onChange : function() {}, + + // animation duration + duration : 700, + + // possible errors + error: { + side : 'You tried to switch to a side that does not exist.', + method : 'The method you called is not defined' + }, + + // classnames used + className : { + animating : 'animating', + hidden : 'hidden', + loading : 'loading', + active : 'active' + }, + + // selectors used + selector : { + sides : '.sides', + side : '.side' + } + +}; + + +})( jQuery, window , document ); +/* + * # Semantic - Dropdown + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.sidebar = function(parameters) { + var + $allModules = $(this), + $body = $('body'), + $head = $('head'), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.sidebar.settings, parameters) + : $.extend({}, $.fn.sidebar.settings), + + selector = settings.selector, + className = settings.className, + namespace = settings.namespace, + error = settings.error, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $style = $('style[title=' + namespace + ']'), + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.debug('Initializing sidebar', $module); + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', $module); + $module + .off(eventNamespace) + .removeData(moduleNamespace) + ; + }, + + refresh: function() { + module.verbose('Refreshing selector cache'); + $style = $('style[title=' + namespace + ']'); + }, + + attachEvents: function(selector, event) { + var + $toggle = $(selector) + ; + event = $.isFunction(module[event]) + ? module[event] + : module.toggle + ; + if($toggle.size() > 0) { + module.debug('Attaching sidebar events to element', selector, event); + $toggle + .off(eventNamespace) + .on('click' + eventNamespace, event) + ; + } + else { + module.error(error.notFound); + } + }, + + show: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.debug('Showing sidebar', callback); + if(module.is.closed()) { + if(!settings.overlay) { + if(settings.exclusive) { + module.hideAll(); + } + module.pushPage(); + } + module.set.active(); + callback(); + $.proxy(settings.onChange, element)(); + $.proxy(settings.onShow, element)(); + } + else { + module.debug('Sidebar is already visible'); + } + }, + + hide: function(callback) { + callback = $.isFunction(callback) + ? callback + : function(){} + ; + module.debug('Hiding sidebar', callback); + if(module.is.open()) { + if(!settings.overlay) { + module.pullPage(); + module.remove.pushed(); + } + module.remove.active(); + callback(); + $.proxy(settings.onChange, element)(); + $.proxy(settings.onHide, element)(); + } + }, + + hideAll: function() { + $(selector.sidebar) + .filter(':visible') + .sidebar('hide') + ; + }, + + toggle: function() { + if(module.is.closed()) { + module.show(); + } + else { + module.hide(); + } + }, + + pushPage: function() { + var + direction = module.get.direction(), + distance = (module.is.vertical()) + ? $module.outerHeight() + : $module.outerWidth() + ; + if(settings.useCSS) { + module.debug('Using CSS to animate body'); + module.add.bodyCSS(direction, distance); + module.set.pushed(); + } + else { + module.animatePage(direction, distance, module.set.pushed); + } + }, + + pullPage: function() { + var + direction = module.get.direction() + ; + if(settings.useCSS) { + module.debug('Resetting body position css'); + module.remove.bodyCSS(); + } + else { + module.debug('Resetting body position using javascript'); + module.animatePage(direction, 0); + } + module.remove.pushed(); + }, + + animatePage: function(direction, distance) { + var + animateSettings = {} + ; + animateSettings['padding-' + direction] = distance; + module.debug('Using javascript to animate body', animateSettings); + $body + .animate(animateSettings, settings.duration, module.set.pushed) + ; + }, + + add: { + bodyCSS: function(direction, distance) { + var + style + ; + if(direction !== className.bottom) { + style = '' + + '' + ; + } + $head.append(style); + module.debug('Adding body css to head', $style); + } + }, + + remove: { + bodyCSS: function() { + module.debug('Removing body css styles', $style); + module.refresh(); + $style.remove(); + }, + active: function() { + $module.removeClass(className.active); + }, + pushed: function() { + module.verbose('Removing body push state', module.get.direction()); + $body + .removeClass(className[ module.get.direction() ]) + .removeClass(className.pushed) + ; + } + }, + + set: { + active: function() { + $module.addClass(className.active); + }, + pushed: function() { + module.verbose('Adding body push state', module.get.direction()); + $body + .addClass(className[ module.get.direction() ]) + .addClass(className.pushed) + ; + } + }, + + get: { + direction: function() { + if($module.hasClass(className.top)) { + return className.top; + } + else if($module.hasClass(className.right)) { + return className.right; + } + else if($module.hasClass(className.bottom)) { + return className.bottom; + } + else { + return className.left; + } + }, + transitionEvent: function() { + var + element = document.createElement('element'), + transitions = { + 'transition' :'transitionend', + 'OTransition' :'oTransitionEnd', + 'MozTransition' :'transitionend', + 'WebkitTransition' :'webkitTransitionEnd' + }, + transition + ; + for(transition in transitions){ + if( element.style[transition] !== undefined ){ + return transitions[transition]; + } + } + } + }, + + is: { + open: function() { + return $module.is(':animated') || $module.hasClass(className.active); + }, + closed: function() { + return !module.is.open(); + }, + vertical: function() { + return $module.hasClass(className.top); + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.sidebar.settings = { + + name : 'Sidebar', + namespace : 'sidebar', + + verbose : true, + debug : true, + performance : true, + + useCSS : true, + exclusive : true, + overlay : false, + duration : 300, + + onChange : function(){}, + onShow : function(){}, + onHide : function(){}, + + className: { + active : 'active', + pushed : 'pushed', + top : 'top', + left : 'left', + right : 'right', + bottom : 'bottom' + }, + + selector: { + sidebar: '.ui.sidebar' + }, + + error : { + method : 'The method you called is not defined.', + notFound : 'There were no elements that matched the specified selector' + } + +}; + +})( jQuery, window , document ); +/* + * # Semantic - Tab + * http://github.com/jlukic/semantic-ui/ + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + + +;(function ($, window, document, undefined) { + + $.fn.tab = function(parameters) { + + var + settings = $.extend(true, {}, $.fn.tab.settings, parameters), + + $module = $(this), + $tabs = $(settings.context).find(settings.selector.tabs), + + moduleSelector = $module.selector || '', + + cache = {}, + firstLoad = true, + recursionDepth = 0, + + activeTabPath, + parameterArray, + historyEvent, + + element = this, + time = new Date().getTime(), + performance = [], + + className = settings.className, + metadata = settings.metadata, + error = settings.error, + + eventNamespace = '.' + settings.namespace, + moduleNamespace = 'module-' + settings.namespace, + + instance = $module.data(moduleNamespace), + + query = arguments[0], + methodInvoked = (instance !== undefined && typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + module, + returnedValue + ; + + module = { + + initialize: function() { + module.debug('Initializing Tabs', $module); + + // set up automatic routing + if(settings.auto) { + module.verbose('Setting up automatic tab retrieval from server'); + settings.apiSettings = { + url: settings.path + '/{$tab}' + }; + } + + // attach history events + if(settings.history) { + module.debug('Initializing page state'); + if( $.address === undefined ) { + module.error(error.state); + return false; + } + else { + if(settings.historyType == 'html5') { + module.debug('Using HTML5 to manage state'); + if(settings.path !== false) { + $.address + .history(true) + .state(settings.path) + ; + } + else { + module.error(error.path); + return false; + } + } + $.address + .unbind('change') + .bind('change', module.event.history.change) + ; + } + } + + // attach events if navigation wasn't set to window + if( !$.isWindow( element ) ) { + module.debug('Attaching tab activation events to element', $module); + $module + .on('click' + eventNamespace, module.event.click) + ; + } + module.instantiate(); + }, + + instantiate: function () { + module.verbose('Storing instance of module', module); + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.debug('Destroying tabs', $module); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + }, + + event: { + click: function(event) { + var + tabPath = $(this).data(metadata.tab) + ; + if(tabPath !== undefined) { + if(settings.history) { + module.verbose('Updating page state', event); + $.address.value(tabPath); + } + else { + module.verbose('Changing tab without state management', event); + module.changeTab(tabPath); + } + event.preventDefault(); + } + else { + module.debug('No tab specified'); + } + }, + history: { + change: function(event) { + var + tabPath = event.pathNames.join('/') || module.get.initialPath(), + pageTitle = settings.templates.determineTitle(tabPath) || false + ; + module.debug('History change event', tabPath, event); + historyEvent = event; + if(tabPath !== undefined) { + module.changeTab(tabPath); + } + if(pageTitle) { + $.address.title(pageTitle); + } + } + } + }, + + refresh: function() { + if(activeTabPath) { + module.debug('Refreshing tab', activeTabPath); + module.changeTab(activeTabPath); + } + }, + + cache: { + + read: function(cacheKey) { + return (cacheKey !== undefined) + ? cache[cacheKey] + : false + ; + }, + add: function(cacheKey, content) { + cacheKey = cacheKey || activeTabPath; + module.debug('Adding cached content for', cacheKey); + cache[cacheKey] = content; + }, + remove: function(cacheKey) { + cacheKey = cacheKey || activeTabPath; + module.debug('Removing cached content for', cacheKey); + delete cache[cacheKey]; + } + }, + + set: { + state: function(url) { + $.address.value(url); + } + }, + + changeTab: function(tabPath) { + var + pushStateAvailable = (window.history && window.history.pushState), + shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad), + remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ), + // only get default path if not remote content + pathArray = (remoteContent && !shouldIgnoreLoad) + ? module.utilities.pathToArray(tabPath) + : module.get.defaultPathArray(tabPath) + ; + tabPath = module.utilities.arrayToPath(pathArray); + module.deactivate.all(); + $.each(pathArray, function(index, tab) { + var + currentPathArray = pathArray.slice(0, index + 1), + currentPath = module.utilities.arrayToPath(currentPathArray), + + isTab = module.is.tab(currentPath), + isLastIndex = (index + 1 == pathArray.length), + + $tab = module.get.tabElement(currentPath), + nextPathArray, + nextPath, + isLastTab + ; + module.verbose('Looking for tab', tab); + if(isTab) { + module.verbose('Tab was found', tab); + + // scope up + activeTabPath = currentPath; + parameterArray = module.utilities.filterArray(pathArray, currentPathArray); + + if(isLastIndex) { + isLastTab = true; + } + else { + nextPathArray = pathArray.slice(0, index + 2); + nextPath = module.utilities.arrayToPath(nextPathArray); + isLastTab = ( !module.is.tab(nextPath) ); + if(isLastTab) { + module.verbose('Tab parameters found', nextPathArray); + } + } + if(isLastTab && remoteContent) { + if(!shouldIgnoreLoad) { + module.activate.navigation(currentPath); + module.content.fetch(currentPath, tabPath); + } + else { + module.debug('Ignoring remote content on first tab load', currentPath); + firstLoad = false; + module.cache.add(tabPath, $tab.html()); + module.activate.all(currentPath); + $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent); + $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent); + } + return false; + } + else { + module.debug('Opened local tab', currentPath); + module.activate.all(currentPath); + if( !module.cache.read(currentPath) ) { + module.cache.add(currentPath, true); + module.debug('First time tab loaded calling tab init'); + $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent); + } + $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent); + } + } + else { + module.error(error.missingTab, tab); + return false; + } + }); + }, + + content: { + + fetch: function(tabPath, fullTabPath) { + var + $tab = module.get.tabElement(tabPath), + apiSettings = { + dataType : 'html', + stateContext : $tab, + success : function(response) { + module.cache.add(fullTabPath, response); + module.content.update(tabPath, response); + if(tabPath == activeTabPath) { + module.debug('Content loaded', tabPath); + module.activate.tab(tabPath); + } + else { + module.debug('Content loaded in background', tabPath); + } + $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent); + $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent); + }, + urlData: { tab: fullTabPath } + }, + request = $tab.data(metadata.promise) || false, + existingRequest = ( request && request.state() === 'pending' ), + requestSettings, + cachedContent + ; + + fullTabPath = fullTabPath || tabPath; + cachedContent = module.cache.read(fullTabPath); + + if(settings.cache && cachedContent) { + module.debug('Showing existing content', fullTabPath); + module.content.update(tabPath, cachedContent); + module.activate.tab(tabPath); + $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent); + } + else if(existingRequest) { + module.debug('Content is already loading', fullTabPath); + $tab + .addClass(className.loading) + ; + } + else if($.api !== undefined) { + console.log(settings.apiSettings); + requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings); + module.debug('Retrieving remote content', fullTabPath, requestSettings); + $.api( requestSettings ); + } + else { + module.error(error.api); + } + }, + + update: function(tabPath, html) { + module.debug('Updating html for', tabPath); + var + $tab = module.get.tabElement(tabPath) + ; + $tab + .html(html) + ; + } + }, + + activate: { + all: function(tabPath) { + module.activate.tab(tabPath); + module.activate.navigation(tabPath); + }, + tab: function(tabPath) { + var + $tab = module.get.tabElement(tabPath) + ; + module.verbose('Showing tab content for', $tab); + $tab.addClass(className.active); + }, + navigation: function(tabPath) { + var + $navigation = module.get.navElement(tabPath) + ; + module.verbose('Activating tab navigation for', $navigation, tabPath); + $navigation.addClass(className.active); + } + }, + + deactivate: { + all: function() { + module.deactivate.navigation(); + module.deactivate.tabs(); + }, + navigation: function() { + $module + .removeClass(className.active) + ; + }, + tabs: function() { + $tabs + .removeClass(className.active + ' ' + className.loading) + ; + } + }, + + is: { + tab: function(tabName) { + return (tabName !== undefined) + ? ( module.get.tabElement(tabName).size() > 0 ) + : false + ; + } + }, + + get: { + initialPath: function() { + return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab); + }, + path: function() { + return $.address.value(); + }, + // adds default tabs to tab path + defaultPathArray: function(tabPath) { + return module.utilities.pathToArray( module.get.defaultPath(tabPath) ); + }, + defaultPath: function(tabPath) { + var + $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0), + defaultTab = $defaultNav.data(metadata.tab) || false + ; + if( defaultTab ) { + module.debug('Found default tab', defaultTab); + if(recursionDepth < settings.maxDepth) { + recursionDepth++; + return module.get.defaultPath(defaultTab); + } + module.error(error.recursion); + } + else { + module.debug('No default tabs found for', tabPath, $tabs); + } + recursionDepth = 0; + return tabPath; + }, + navElement: function(tabPath) { + tabPath = tabPath || activeTabPath; + return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]'); + }, + tabElement: function(tabPath) { + var + $fullPathTab, + $simplePathTab, + tabPathArray, + lastTab + ; + tabPath = tabPath || activeTabPath; + tabPathArray = module.utilities.pathToArray(tabPath); + lastTab = module.utilities.last(tabPathArray); + $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]'); + $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]'); + return ($fullPathTab.size() > 0) + ? $fullPathTab + : $simplePathTab + ; + }, + tab: function() { + return activeTabPath; + } + }, + + utilities: { + filterArray: function(keepArray, removeArray) { + return $.grep(keepArray, function(keepValue) { + return ( $.inArray(keepValue, removeArray) == -1); + }); + }, + last: function(array) { + return $.isArray(array) + ? array[ array.length - 1] + : false + ; + }, + pathToArray: function(pathName) { + if(pathName === undefined) { + pathName = activeTabPath; + } + return typeof pathName == 'string' + ? pathName.split('/') + : [pathName] + ; + }, + arrayToPath: function(pathArray) { + return $.isArray(pathArray) + ? pathArray.join('/') + : false + ; + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + + return (returnedValue !== undefined) + ? returnedValue + : this + ; + + }; + + // shortcut for tabbed content with no defined navigation + $.tab = function(settings) { + $(window).tab(settings); + }; + + $.fn.tab.settings = { + + name : 'Tab', + verbose : true, + debug : true, + performance : true, + namespace : 'tab', + + // only called first time a tab's content is loaded (when remote source) + onTabInit : function(tabPath, parameterArray, historyEvent) {}, + // called on every load + onTabLoad : function(tabPath, parameterArray, historyEvent) {}, + + templates : { + determineTitle: function(tabArray) {} + }, + + // uses pjax style endpoints fetching content from same url with remote-content headers + auto : false, + history : true, + historyType : 'hash', + path : false, + + context : 'body', + + // max depth a tab can be nested + maxDepth : 25, + // dont load content on first load + ignoreFirstLoad : false, + // load tab content new every tab click + alwaysRefresh : false, + // cache the content requests to pull locally + cache : true, + // settings for api call + apiSettings : false, + + error: { + api : 'You attempted to load content without API module', + method : 'The method you called is not defined', + missingTab : 'Tab cannot be found', + noContent : 'The tab you specified is missing a content url.', + path : 'History enabled, but no path was specified', + recursion : 'Max recursive depth reached', + state : 'The state library has not been initialized' + }, + + metadata : { + tab : 'tab', + loaded : 'loaded', + promise: 'promise' + }, + + className : { + loading : 'loading', + active : 'active' + }, + + selector : { + tabs : '.ui.tab' + } + + }; + +})( jQuery, window , document ); + +/* + * # Semantic - Transition + * http://github.com/jlukic/semantic-ui/ + * + * + * Copyright 2013 Contributors + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +;(function ( $, window, document, undefined ) { + +$.fn.transition = function() { + var + $allModules = $(this), + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + moduleArguments = arguments, + query = moduleArguments[0], + queryArguments = [].slice.call(arguments, 1), + methodInvoked = (typeof query === 'string'), + + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + + returnedValue + ; + $allModules + .each(function() { + var + $module = $(this), + element = this, + + // set at run time + settings, + instance, + + error, + className, + metadata, + animationEnd, + animationName, + + namespace, + moduleNamespace, + module + ; + + module = { + + initialize: function() { + // get settings + settings = module.get.settings.apply(element, moduleArguments); + module.verbose('Converted arguments into settings object', settings); + + // set shortcuts + error = settings.error; + className = settings.className; + namespace = settings.namespace; + metadata = settings.metadata; + moduleNamespace = 'module-' + namespace; + + animationEnd = module.get.animationEvent(); + animationName = module.get.animationName(); + + instance = $module.data(moduleNamespace); + + if(instance === undefined) { + module.instantiate(); + } + if(methodInvoked) { + methodInvoked = module.invoke(query); + } + // no internal method was found matching query or query not made + if(methodInvoked === false) { + module.animate(); + } + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, instance) + ; + }, + + destroy: function() { + module.verbose('Destroying previous module for', element); + $module + .removeData(moduleNamespace) + ; + }, + + animate: function(overrideSettings) { + settings = overrideSettings || settings; + if(!module.is.supported()) { + module.error(error.support); + return false; + } + module.debug('Preparing animation', settings.animation); + if(module.is.animating()) { + if(settings.queue) { + module.queue(settings.animation); + } + return false; + } + module.save.conditions(); + module.set.duration(settings.duration); + module.set.animating(); + module.repaint(); + $module + .addClass(className.transition) + .addClass(settings.animation) + .one(animationEnd, module.complete) + ; + if(!module.has.direction() && module.can.transition()) { + module.set.direction(); + } + if(!module.has.transitionAvailable) { + module.restore.conditions(); + module.error(error.noAnimation); + return false; + } + module.show(); + module.debug('Starting tween', settings.animation, $module.attr('class')); + }, + + queue: function(animation) { + module.debug('Queueing animation of', animation); + instance.queuing = true; + $module + .one(animationEnd, function() { + instance.queuing = false; + module.animate.apply(this, settings); + }) + ; + }, + + complete: function () { + module.verbose('CSS animation complete', settings.animation); + if(!module.is.looping()) { + if($module.hasClass(className.outward)) { + module.restore.conditions(); + module.hide(); + $.proxy(settings.onHide, this)(); + } + else if($module.hasClass(className.inward)) { + module.restore.conditions(); + module.show(); + $.proxy(settings.onShow, this)(); + } + else { + module.restore.conditions(); + } + module.remove.animating(); + } + $.proxy(settings.complete, this)(); + }, + + repaint: function(fakeAssignment) { + module.verbose('Forcing repaint event'); + fakeAssignment = element.offsetWidth; + }, + + has: { + direction: function(animation) { + animation = animation || settings.animation; + if( $module.hasClass(className.inward) || $module.hasClass(className.outward) ) { + return true; + } + }, + transitionAvailable: function() { + if($module.css(animationName) !== 'none') { + module.debug('CSS definition found'); + return true; + } + else { + module.debug('Unable to find css definition'); + return false; + } + } + }, + + set: { + + animating: function() { + $module.addClass(className.animating); + }, + + direction: function() { + if($module.is(':visible')) { + module.debug('Automatically determining the direction of animation', 'Outward'); + $module + .addClass(className.outward) + .removeClass(className.inward) + ; + } + else { + module.debug('Automatically determining the direction of animation', 'Inward'); + $module + .addClass(className.inward) + .removeClass(className.outward) + ; + } + }, + + looping: function() { + module.debug('Transition set to loop'); + $module + .addClass(className.looping) + ; + }, + + duration: function(duration) { + duration = duration || settings.duration; + duration = (typeof duration == 'number') + ? duration + 'ms' + : duration + ; + module.verbose('Setting animation duration', duration); + $module + .css({ + '-webkit-animation-duration': duration, + '-moz-animation-duration': duration, + '-ms-animation-duration': duration, + '-o-animation-duration': duration, + 'animation-duration': duration + }) + ; + } + }, + + save: { + conditions: function() { + module.cache = { + className : $module.attr('class'), + style : $module.attr('style') + }; + module.verbose('Saving original attributes', module.cache); + } + }, + + restore: { + conditions: function() { + if(typeof module.cache === undefined) { + module.error(error.cache); + return false; + } + if(module.cache.className) { + $module.attr('class', module.cache.className); + } + else { + $module.removeAttr('class'); + } + if(module.cache.style) { + $module.attr('style', module.cache.style); + } + else { + $module.removeAttr('style'); + } + if(module.is.looping()) { + module.remove.looping(); + } + module.verbose('Restoring original attributes', module.cache); + } + }, + + remove: { + + animating: function() { + $module.removeClass(className.animating); + }, + + looping: function() { + module.debug('Transitions are no longer looping'); + $module + .removeClass(className.looping) + ; + module.repaint(); + } + + }, + + get: { + + settings: function(animation, duration, complete) { + // single settings object + if($.isPlainObject(animation)) { + return $.extend(true, {}, $.fn.transition.settings, animation); + } + // all arguments provided + else if(typeof complete == 'function') { + return $.extend(true, {}, $.fn.transition.settings, { + animation : animation, + complete : complete, + duration : duration + }); + } + // only duration provided + else if(typeof duration == 'string' || typeof duration == 'number') { + return $.extend(true, {}, $.fn.transition.settings, { + animation : animation, + duration : duration + }); + } + // duration is actually settings object + else if(typeof duration == 'object') { + return $.extend(true, {}, $.fn.transition.settings, duration, { + animation : animation + }); + } + // duration is actually callback + else if(typeof duration == 'function') { + return $.extend(true, {}, $.fn.transition.settings, { + animation : animation, + complete : duration + }); + } + // only animation provided + else { + return $.extend(true, {}, $.fn.transition.settings, { + animation : animation + }); + } + return $.extend({}, $.fn.transition.settings); + }, + + animationName: function() { + var + element = document.createElement('div'), + animations = { + 'animation' :'animationName', + 'OAnimation' :'oAnimationName', + 'MozAnimation' :'mozAnimationName', + 'WebkitAnimation' :'webkitAnimationName' + }, + animation + ; + for(animation in animations){ + if( element.style[animation] !== undefined ){ + module.verbose('Determined animation vendor name property', animations[animation]); + return animations[animation]; + } + } + return false; + }, + + animationEvent: function() { + var + element = document.createElement('div'), + animations = { + 'animation' :'animationend', + 'OAnimation' :'oAnimationEnd', + 'MozAnimation' :'mozAnimationEnd', + 'WebkitAnimation' :'webkitAnimationEnd' + }, + animation + ; + for(animation in animations){ + if( element.style[animation] !== undefined ){ + module.verbose('Determined animation vendor end event', animations[animation]); + return animations[animation]; + } + } + return false; + } + + }, + + can: { + transition: function() { + var + $clone = $('
').addClass( $module.attr('class') ).appendTo($('body')), + currentAnimation = $clone.css(animationName), + inAnimation = $clone.addClass(className.inward).css(animationName) + ; + if(currentAnimation != inAnimation) { + module.debug('In/out transitions exist'); + $clone.remove(); + return true; + } + else { + module.debug('Static animation found'); + $clone.remove(); + return false; + } + } + }, + + is: { + animating: function() { + return $module.hasClass(className.animating); + }, + looping: function() { + return $module.hasClass(className.looping); + }, + visible: function() { + return $module.is(':visible'); + }, + supported: function() { + return(animationName !== false && animationEnd !== false); + } + }, + + hide: function() { + module.verbose('Hiding element'); + $module + .removeClass(className.visible) + .addClass(className.transition) + .addClass(className.hidden) + ; + module.repaint(); + }, + show: function() { + module.verbose('Showing element'); + $module + .removeClass(className.hidden) + .addClass(className.transition) + .addClass(className.visible) + ; + module.repaint(); + }, + + start: function() { + module.verbose('Starting animation'); + $module.removeClass(className.disabled); + }, + + stop: function() { + module.debug('Stopping animation'); + $module.addClass(className.disabled); + }, + + toggle: function() { + module.debug('Toggling play status'); + $module.toggleClass(className.disabled); + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found || false; + } + }; + module.initialize(); + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.transition.settings = { + + // module info + name : 'Transition', + + // debug content outputted to console + debug : false, + + // verbose debug output + verbose : true, + + // performance data output + performance : true, + + // event namespace + namespace : 'transition', + + // animation complete event + complete : function() {}, + onShow : function() {}, + onHide : function() {}, + + // animation duration + animation : 'fade', + duration : '700ms', + + // new animations will occur after previous ones + queue : true, + + className : { + animating : 'animating', + disabled : 'disabled', + hidden : 'hidden', + inward : 'in', + loading : 'loading', + looping : 'looping', + outward : 'out', + transition : 'ui transition', + visible : 'visible' + }, + + // possible errors + error: { + noAnimation : 'There is no css animation matching the one you specified.', + method : 'The method you called is not defined', + support : 'This browser does not support CSS animations' + } + +}; + + +})( jQuery, window , document ); + +/* ****************************** + Module - Video + Author: Jack Lukic + + This is a video playlist and video embed plugin which helps + provide helpers for adding embed code for vimeo and youtube and + abstracting event handlers for each library + +****************************** */ + +;(function ($, window, document, undefined) { + +$.fn.video = function(parameters) { + + var + $allModules = $(this), + + moduleSelector = $allModules.selector || '', + + time = new Date().getTime(), + performance = [], + + query = arguments[0], + methodInvoked = (typeof query == 'string'), + queryArguments = [].slice.call(arguments, 1), + + returnedValue + ; + + $allModules + .each(function() { + var + settings = ( $.isPlainObject(parameters) ) + ? $.extend(true, {}, $.fn.video.settings, parameters) + : $.extend({}, $.fn.video.settings), + + selector = settings.selector, + className = settings.className, + error = settings.error, + metadata = settings.metadata, + namespace = settings.namespace, + + eventNamespace = '.' + namespace, + moduleNamespace = 'module-' + namespace, + + $module = $(this), + $placeholder = $module.find(selector.placeholder), + $playButton = $module.find(selector.playButton), + $embed = $module.find(selector.embed), + + element = this, + instance = $module.data(moduleNamespace), + module + ; + + module = { + + initialize: function() { + module.debug('Initializing video'); + $placeholder + .on('click' + eventNamespace, module.play) + ; + $playButton + .on('click' + eventNamespace, module.play) + ; + module.instantiate(); + }, + + instantiate: function() { + module.verbose('Storing instance of module', module); + instance = module; + $module + .data(moduleNamespace, module) + ; + }, + + destroy: function() { + module.verbose('Destroying previous instance of video'); + $module + .removeData(moduleNamespace) + .off(eventNamespace) + ; + $placeholder + .off(eventNamespace) + ; + $playButton + .off(eventNamespace) + ; + }, + + // sets new video + change: function(source, id, url) { + module.debug('Changing video to ', source, id, url); + $module + .data(metadata.source, source) + .data(metadata.id, id) + .data(metadata.url, url) + ; + settings.onChange(); + }, + + // clears video embed + reset: function() { + module.debug('Clearing video embed and showing placeholder'); + $module + .removeClass(className.active) + ; + $embed + .html(' ') + ; + $placeholder + .show() + ; + settings.onReset(); + }, + + // plays current video + play: function() { + module.debug('Playing video'); + var + source = $module.data(metadata.source) || false, + url = $module.data(metadata.url) || false, + id = $module.data(metadata.id) || false + ; + $embed + .html( module.generate.html(source, id, url) ) + ; + $module + .addClass(className.active) + ; + settings.onPlay(); + }, + + generate: { + // generates iframe html + html: function(source, id, url) { + module.debug('Generating embed html'); + var + width = (settings.width == 'auto') + ? $module.width() + : settings.width, + height = (settings.height == 'auto') + ? $module.height() + : settings.height, + html + ; + if(source && id) { + if(source == 'vimeo') { + html = '' + + '' + ; + } + else if(source == 'youtube') { + html = '' + + '' + ; + } + } + else if(url) { + html = '' + + '' + ; + } + else { + module.error(error.noVideo); + } + return html; + }, + + // generate url parameters + url: function(source) { + var + api = (settings.api) + ? 1 + : 0, + autoplay = (settings.autoplay) + ? 1 + : 0, + hd = (settings.hd) + ? 1 + : 0, + showUI = (settings.showUI) + ? 1 + : 0, + // opposite used for some params + hideUI = !(settings.showUI) + ? 1 + : 0, + url = '' + ; + if(source == 'vimeo') { + url = '' + + 'api=' + api + + '&title=' + showUI + + '&byline=' + showUI + + '&portrait=' + showUI + + '&autoplay=' + autoplay + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + if(source == 'ustream') { + url = '' + + 'autoplay=' + autoplay + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + else if(source == 'youtube') { + url = '' + + 'enablejsapi=' + api + + '&autoplay=' + autoplay + + '&autohide=' + hideUI + + '&hq=' + hd + + '&modestbranding=1' + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + return url; + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.video.settings = { + + name : 'Video', + namespace : 'video', + + debug : true, + verbose : true, + performance : true, + + metadata : { + source : 'source', + id : 'id', + url : 'url' + }, + + onPlay : function(){}, + onReset : function(){}, + onChange : function(){}, + + // callbacks not coded yet (needs to use jsapi) + onPause : function() {}, + onStop : function() {}, + + width : 'auto', + height : 'auto', + + autoplay : false, + color : '#442359', + hd : true, + showUI : false, + api : true, + + error : { + noVideo : 'No video specified', + method : 'The method you called is not defined' + }, + + className : { + active : 'active' + }, + + selector : { + embed : '.embed', + placeholder : '.placeholder', + playButton : '.play' + } +}; + + +})( jQuery, window , document ); diff --git a/public/resource/javascript/jquery.min.js b/public/resource/javascript/jquery.min.js new file mode 100644 index 0000000..2d871b9 --- /dev/null +++ b/public/resource/javascript/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t) +};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("' + ; + } + else if(source == 'youtube') { + html = '' + + '' + ; + } + } + else if(url) { + html = '' + + '' + ; + } + else { + module.error(error.noVideo); + } + return html; + }, + + // generate url parameters + url: function(source) { + var + api = (settings.api) + ? 1 + : 0, + autoplay = (settings.autoplay) + ? 1 + : 0, + hd = (settings.hd) + ? 1 + : 0, + showUI = (settings.showUI) + ? 1 + : 0, + // opposite used for some params + hideUI = !(settings.showUI) + ? 1 + : 0, + url = '' + ; + if(source == 'vimeo') { + url = '' + + 'api=' + api + + '&title=' + showUI + + '&byline=' + showUI + + '&portrait=' + showUI + + '&autoplay=' + autoplay + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + if(source == 'ustream') { + url = '' + + 'autoplay=' + autoplay + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + else if(source == 'youtube') { + url = '' + + 'enablejsapi=' + api + + '&autoplay=' + autoplay + + '&autohide=' + hideUI + + '&hq=' + hd + + '&modestbranding=1' + ; + if(settings.color) { + url += '&color=' + settings.color; + } + } + return url; + } + }, + + setting: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, settings, name); + } + else if(value !== undefined) { + settings[name] = value; + } + else { + return settings[name]; + } + }, + internal: function(name, value) { + if( $.isPlainObject(name) ) { + $.extend(true, module, name); + } + else if(value !== undefined) { + module[name] = value; + } + else { + return module[name]; + } + }, + debug: function() { + if(settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.debug.apply(console, arguments); + } + } + }, + verbose: function() { + if(settings.verbose && settings.debug) { + if(settings.performance) { + module.performance.log(arguments); + } + else { + module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); + module.verbose.apply(console, arguments); + } + } + }, + error: function() { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + }, + performance: { + log: function(message) { + var + currentTime, + executionTime, + previousTime + ; + if(settings.performance) { + currentTime = new Date().getTime(); + previousTime = time || currentTime; + executionTime = currentTime - previousTime; + time = currentTime; + performance.push({ + 'Element' : element, + 'Name' : message[0], + 'Arguments' : [].slice.call(message, 1) || '', + 'Execution Time' : executionTime + }); + } + clearTimeout(module.performance.timer); + module.performance.timer = setTimeout(module.performance.display, 100); + }, + display: function() { + var + title = settings.name + ':', + totalTime = 0 + ; + time = false; + clearTimeout(module.performance.timer); + $.each(performance, function(index, data) { + totalTime += data['Execution Time']; + }); + title += ' ' + totalTime + 'ms'; + if(moduleSelector) { + title += ' \'' + moduleSelector + '\''; + } + if($allModules.size() > 1) { + title += ' ' + '(' + $allModules.size() + ')'; + } + if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { + console.groupCollapsed(title); + if(console.table) { + console.table(performance); + } + else { + $.each(performance, function(index, data) { + console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); + }); + } + console.groupEnd(); + } + performance = []; + } + }, + invoke: function(query, passedArguments, context) { + var + maxDepth, + found, + response + ; + passedArguments = passedArguments || queryArguments; + context = element || context; + if(typeof query == 'string' && instance !== undefined) { + query = query.split(/[\. ]/); + maxDepth = query.length - 1; + $.each(query, function(depth, value) { + var camelCaseValue = (depth != maxDepth) + ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) + : query + ; + if( $.isPlainObject( instance[camelCaseValue] ) && (depth != maxDepth) ) { + instance = instance[camelCaseValue]; + } + else if( instance[camelCaseValue] !== undefined ) { + found = instance[camelCaseValue]; + return false; + } + else if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { + instance = instance[value]; + } + else if( instance[value] !== undefined ) { + found = instance[value]; + return false; + } + else { + module.error(error.method, query); + return false; + } + }); + } + if ( $.isFunction( found ) ) { + response = found.apply(context, passedArguments); + } + else if(found !== undefined) { + response = found; + } + if($.isArray(returnedValue)) { + returnedValue.push(response); + } + else if(returnedValue !== undefined) { + returnedValue = [returnedValue, response]; + } + else if(response !== undefined) { + returnedValue = response; + } + return found; + } + }; + + if(methodInvoked) { + if(instance === undefined) { + module.initialize(); + } + module.invoke(query); + } + else { + if(instance !== undefined) { + module.destroy(); + } + module.initialize(); + } + }) + ; + return (returnedValue !== undefined) + ? returnedValue + : this + ; +}; + +$.fn.video.settings = { + + name : 'Video', + namespace : 'video', + + debug : true, + verbose : true, + performance : true, + + metadata : { + source : 'source', + id : 'id', + url : 'url' + }, + + onPlay : function(){}, + onReset : function(){}, + onChange : function(){}, + + // callbacks not coded yet (needs to use jsapi) + onPause : function() {}, + onStop : function() {}, + + width : 'auto', + height : 'auto', + + autoplay : false, + color : '#442359', + hd : true, + showUI : false, + api : true, + + error : { + noVideo : 'No video specified', + method : 'The method you called is not defined' + }, + + className : { + active : 'active' + }, + + selector : { + embed : '.embed', + placeholder : '.placeholder', + playButton : '.play' + } +}; + + +})( jQuery, window , document ); diff --git a/public/resource/javascript/semantic.min.js b/public/resource/javascript/semantic.min.js new file mode 100644 index 0000000..36283d4 --- /dev/null +++ b/public/resource/javascript/semantic.min.js @@ -0,0 +1,16 @@ +/** # Semantic UI +* Version: 0.10.3 +* http://github.com/jlukic/semantic-ui +* +* +* Copyright 2013 Contributors +* Released under the MIT license +* http://opensource.org/licenses/MIT +* +* Release Date: 12/22/2013 +*/ +!function(a,b,c,d){a.fn.accordion=function(b){var c,e=a(this),f=(new Date).getTime(),g=[],h=arguments[0],i="string"==typeof h,j=[].slice.call(arguments,1);return e.each(function(){var k,l=a.isPlainObject(b)?a.extend(!0,{},a.fn.accordion.settings,b):a.extend({},a.fn.accordion.settings),m=l.className,n=l.namespace,o=l.selector,p=l.error,q="."+n,r="module-"+n,s=e.selector||"",t=a(this),u=t.find(o.title),v=t.find(o.content),w=this,x=t.data(r);k={initialize:function(){k.debug("Initializing accordion with bound events",t),u.on("click"+q,k.event.click),k.instantiate()},instantiate:function(){x=k,t.data(r,k)},destroy:function(){k.debug("Destroying previous accordion for",t),t.removeData(r),u.off(q)},event:{click:function(){k.verbose("Title clicked",this);var b=a(this),c=u.index(b);k.toggle(c)},resetStyle:function(){k.verbose("Resetting styles on element",this),a(this).attr("style","").removeAttr("style").children().attr("style","").removeAttr("style")}},toggle:function(a){k.debug("Toggling content content at index",a);var b=u.eq(a),c=b.next(v),d=c.is(":visible");d?l.collapsible?k.close(a):k.debug("Cannot close accordion content collapsing is disabled"):k.open(a)},open:function(b){var c=u.eq(b),d=c.next(v),e=c.siblings(o.title).filter("."+m.active),f=e.next(u),g=e.size()>0;d.is(":animated")||(k.debug("Opening accordion content",c),l.exclusive&&g&&(e.removeClass(m.active),f.stop().children().animate({opacity:0},l.duration,k.event.resetStyle).end().slideUp(l.duration,l.easing,function(){f.removeClass(m.active).attr("style","").removeAttr("style").children().attr("style","").removeAttr("style")})),c.addClass(m.active),d.stop().children().attr("style","").removeAttr("style").end().slideDown(l.duration,l.easing,function(){d.addClass(m.active).attr("style","").removeAttr("style"),a.proxy(l.onOpen,d)(),a.proxy(l.onChange,d)()}))},close:function(b){var c=u.eq(b),d=c.next(v);k.debug("Closing accordion content",d),c.removeClass(m.active),d.removeClass(m.active).show().stop().children().animate({opacity:0},l.duration,k.event.resetStyle).end().slideUp(l.duration,l.easing,function(){d.attr("style","").removeAttr("style"),a.proxy(l.onClose,d)(),a.proxy(l.onChange,d)()})},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){return k.debug("Changing internal",b,c),c===d?k[b]:(a.isPlainObject(b)?a.extend(!0,k,b):k[b]=c,void 0)},debug:function(){l.debug&&(l.performance?k.performance.log(arguments):(k.debug=Function.prototype.bind.call(console.info,console,l.name+":"),k.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?k.performance.log(arguments):(k.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),k.verbose.apply(console,arguments)))},error:function(){k.error=Function.prototype.bind.call(console.error,console,l.name+":"),k.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=f||b,c=b-d,f=b,g.push({Element:w,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(k.performance.timer),k.performance.timer=setTimeout(k.performance.display,100)},display:function(){var b=l.name+":",c=0;f=!1,clearTimeout(k.performance.timer),a.each(g,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",s&&(b+=" '"+s+"'"),(console.group!==d||console.table!==d)&&g.length>0&&(console.groupCollapsed(b),console.table?console.table(g):a.each(g,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(b,e,f){var g,h,i;return e=e||j,f=w||f,"string"==typeof b&&x!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(x[f])&&c!=g)x=x[f];else{if(x[f]!==d)return h=x[f],!1;if(!a.isPlainObject(x[e])||c==g)return x[e]!==d?(h=x[e],!1):(k.error(p.method,b),!1);x=x[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},i?(x===d&&k.initialize(),k.invoke(h)):(x!==d&&k.destroy(),k.initialize())}),c!==d?c:this},a.fn.accordion.settings={name:"Accordion",namespace:"accordion",debug:!0,verbose:!0,performance:!0,exclusive:!0,collapsible:!0,duration:500,easing:"easeInOutQuint",onOpen:function(){},onClose:function(){},onChange:function(){},error:{method:"The method you called is not defined"},className:{active:"active"},selector:{title:".title",content:".content"}},a.extend(a.easing,{easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c}})}(jQuery,window,document),function(a,b,c,d){a.api=a.fn.api=function(c){var e,f,g=a.extend(!0,{},a.api.settings,c),h="function"!=typeof this?this:a("
"),i=g.stateContext?a(g.stateContext):a(h),j="object"==typeof this?a(h):i,k=this,l=(new Date).getTime(),m=[],n=j.selector||"",o=g.namespace+"-module",p=g.className,q=g.metadata,r=g.error,s=j.data(o),t=arguments[0],u=s!==d&&"string"==typeof t,v=[].slice.call(arguments,1);return e={initialize:function(){var c,f,h,k,l,m,n=(new Date).getTime(),o={},s={};return g.serializeForm&&a(this).toJSON()!==d&&(o=e.get.formData(),e.debug("Adding form data to API Request",o),a.extend(!0,g.data,o)),c=a.proxy(g.beforeSend,j)(g),c===d||c?(k=e.get.url(e.get.templateURL()))?(h=a.Deferred().always(function(){g.stateContext&&i.removeClass(p.loading),a.proxy(g.complete,j)()}).done(function(b){e.debug("API request successful"),"json"==g.dataType?b.error!==d?a.proxy(g.failure,i)(b.error,g,j):a.isArray(b.errors)?a.proxy(g.failure,i)(b.errors[0],g,j):a.proxy(g.success,i)(b,g,j):a.proxy(g.success,i)(b,g,j)}).fail(function(b,c,f){var h,j=g.error[c]!==d?g.error[c]:f;if(b!==d)if(b.readyState!==d&&4==b.readyState){if(200!=b.status&&f!==d&&""!==f)e.error(k.statusMessage+f);else if("error"==c&&"json"==g.dataType)try{h=a.parseJSON(b.responseText),h&&h.error!==d&&(j=h.error)}catch(k){e.error(k.JSONParse)}i.removeClass(p.loading).addClass(p.error),g.errorLength>0&&setTimeout(function(){i.removeClass(p.error)},g.errorLength),e.debug("API Request error:",j),a.proxy(g.failure,i)(j,g,this)}else e.debug("Request Aborted (Most likely caused by page change)")}),a.extend(!0,s,g,{success:function(){},failure:function(){},complete:function(){},type:g.method||g.type,data:l,url:k,beforeSend:g.beforeXHR}),g.stateContext&&i.addClass(p.loading),g.progress&&(e.verbose("Adding progress events"),a.extend(!0,s,{xhr:function(){var c=new b.XMLHttpRequest;return c.upload.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c}})),e.verbose("Creating AJAX request with settings: ",s),m=a.ajax(s).always(function(){f=g.loadingLength-((new Date).getTime()-n),g.loadingDelay=0>f?0:f}).done(function(a){var b=this;setTimeout(function(){h.resolveWith(b,[a])},g.loadingDelay)}).fail(function(a,b,c){var d=this;"abort"!=b?setTimeout(function(){h.rejectWith(d,[a,b,c])},g.loadingDelay):i.removeClass(p.error).removeClass(p.loading)}),g.stateContext&&j.data(q.promise,h).data(q.xhr,m),void 0):(e.error(r.missingURL),e.reset(),void 0):(e.error(r.beforeSend),e.reset(),void 0)},get:{formData:function(){return j.closest("form").toJSON()},templateURL:function(){var a,b=j.data(g.metadata.action)||g.action||!1;return b&&(e.debug("Creating url for: ",b),g.api[b]!==d?a=g.api[b]:e.error(r.missingAction)),g.url&&(a=g.url,e.debug("Getting url",a)),a},url:function(b,c){var f;return b&&(f=b.match(g.regExpTemplate),c=c||g.urlData,f&&(e.debug("Looking for URL variables",f),a.each(f,function(g,h){var i=h.substr(2,h.length-3),k=a.isPlainObject(c)&&c[i]!==d?c[i]:j.data(i)!==d?j.data(i):c[i];if(e.verbose("Looking for variable",i,j,j.data(i),c[i]),k===!1)e.debug("Removing variable from URL",f),b=b.replace("/"+h,"");else{if(k===d||!k)return e.error(r.missingParameter+i),b=!1,!1;b=b.replace(h,k)}}))),b}},reset:function(){j.data(q.promise,!1).data(q.xhr,!1),i.removeClass(p.error).removeClass(p.loading)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,g,b);else{if(c===d)return g[b];g[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){g.debug&&(g.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,g.name+":"),e.debug.apply(console,arguments)))},verbose:function(){g.verbose&&g.debug&&(g.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,g.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,g.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;g.performance&&(b=(new Date).getTime(),d=l||b,c=b-d,l=b,m.push({Element:k,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=g.name+":",c=0;l=!1,clearTimeout(e.performance.timer),a.each(m,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",n&&(b+=" '"+n+"'"),(console.group!==d||console.table!==d)&&m.length>0&&(console.groupCollapsed(b),console.table?console.table(m):a.each(m,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),m=[]}},invoke:function(b,c,g){var h,i,j;return c=c||v,g=k||g,"string"==typeof b&&s!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(c,f){var g=c!=h?f+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(s[f])&&c!=h)s=s[f];else{if(!a.isPlainObject(s[g])||c==h)return s[f]!==d?(i=s[f],!1):s[g]!==d?(i=s[g],!1):(e.error(r.method,b),!1);s=s[g]}})),a.isFunction(i)?j=i.apply(g,c):i!==d&&(j=i),a.isArray(f)?f.push(j):f!==d?f=[f,j]:j!==d&&(f=j),i}},u?(s===d&&e.initialize(),e.invoke(t)):(s!==d&&e.destroy(),e.initialize()),f!==d?f:this},a.fn.apiButton=function(b){return a(this).each(function(){var c,d=a(this),e=a(this).selector||"",f=a.isFunction(b)?a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this,success:b}):a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this},b);c={initialize:function(){f.context&&""!==e?a(f.context).on(e,"click."+f.namespace,c.click):d.on("click."+f.namespace,c.click)},click:function(){f.filter&&0!==a(this).filter(f.filter).size()||a.proxy(a.api,this)(f)}},c.initialize()}),this},a.api.settings={name:"API",namespace:"api",debug:!0,verbose:!0,performance:!0,api:{},beforeSend:function(a){return a},beforeXHR:function(){},success:function(){},complete:function(){},failure:function(){},progress:!1,error:{missingAction:"API action used but no url was defined",missingURL:"URL not specified for the API action",missingParameter:"Missing an essential URL parameter: ",timeout:"Your request timed out",error:"There was an error with your request",parseError:"There was an error parsing your request",JSONParse:"JSON could not be parsed during error handling",statusMessage:"Server gave an error: ",beforeSend:"The before send function has aborted the request",exitConditions:"API Request Aborted. Exit conditions met"},className:{loading:"loading",error:"error"},metadata:{action:"action",promise:"promise",xhr:"xhr"},regExpTemplate:/\{\$([A-z]+)\}/g,action:!1,url:!1,urlData:!1,serializeForm:!1,stateContext:!1,method:"get",data:{},dataType:"json",cache:!0,loadingLength:200,errorLength:2e3},a.fn.apiButton.settings={filter:".disabled, .loading",context:!1,stateContext:!1}}(jQuery,window,document),function(a,b,c,d){a.fn.colorize=function(b){var c=a.extend(!0,{},a.fn.colorize.settings,b),e=arguments||!1;return a(this).each(function(b){var f,g,h,i,j,k,l,m,n=a(this),o=a("")[0],p=a("")[0],q=a("")[0],r=new Image,s=c.colors,t=(c.paths,c.namespace),u=c.error,v=n.data("module-"+t);return m={checkPreconditions:function(){return m.debug("Checking pre-conditions"),!a.isPlainObject(s)||a.isEmptyObject(s)?(m.error(u.undefinedColors),!1):!0},async:function(a){c.async?setTimeout(a,0):a()},getMetadata:function(){m.debug("Grabbing metadata"),i=n.data("image")||c.image||d,j=n.data("name")||c.name||b,k=c.width||n.width(),l=c.height||n.height(),(0===k||0===l)&&m.error(u.undefinedSize)},initialize:function(){m.debug("Initializing with colors",s),m.checkPreconditions()&&m.async(function(){m.getMetadata(),m.canvas.create(),m.draw.image(function(){m.draw.colors(),m.canvas.merge()}),n.data("module-"+t,m)})},redraw:function(){m.debug("Redrawing image"),m.async(function(){m.canvas.clear(),m.draw.colors(),m.canvas.merge()})},change:{color:function(a,b){return m.debug("Changing color",a),s[a]===d?(m.error(u.missingColor),!1):(s[a]=b,m.redraw(),void 0)}},canvas:{create:function(){m.debug("Creating canvases"),o.width=k,o.height=l,p.width=k,p.height=l,q.width=k,q.height=l,f=o.getContext("2d"),g=p.getContext("2d"),h=q.getContext("2d"),n.append(o),f=n.children("canvas")[0].getContext("2d")},clear:function(){m.debug("Clearing canvas"),h.fillStyle="#FFFFFF",h.fillRect(0,0,k,l)},merge:function(){return a.isFunction(f.blendOnto)?(f.putImageData(g.getImageData(0,0,k,l),0,0),h.blendOnto(f,"multiply"),void 0):(m.error(u.missingPlugin),void 0)}},draw:{image:function(a){m.debug("Drawing image"),a=a||function(){},i?(r.src=i,r.onload=function(){g.drawImage(r,0,0),a()}):(m.error(u.noImage),a())},colors:function(){m.debug("Drawing color overlays",s),a.each(s,function(a,b){c.onDraw(h,j,a,b)})}},debug:function(a,b){c.debug&&(b!==d?console.info(c.name+": "+a,b):console.info(c.name+": "+a))},error:function(a){console.warn(c.name+": "+a)},invoke:function(b,e,f){var g;return f=f||Array.prototype.slice.call(arguments,2),"string"==typeof b&&v!==d&&(b=b.split("."),a.each(b,function(b,d){return a.isPlainObject(v[d])?(v=v[d],!0):a.isFunction(v[d])?(g=v[d],!0):(m.error(c.error.method),!1)})),a.isFunction(g)?g.apply(e,f):!1}},v!==d&&e?("invoke"==e[0]&&(e=Array.prototype.slice.call(e,1)),m.invoke(e[0],this,Array.prototype.slice.call(e,1))):(m.initialize(),void 0)}),this},a.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document),function(a,b,c,d){a.fn.form=function(b,e){var f,g=a(this),h=a.extend(!0,{},a.fn.form.settings,e),i=a.extend({},a.fn.form.settings.defaults,b),j=h.namespace,k=h.metadata,l=h.selector,m=h.className,n=h.error,o="."+j,p="module-"+j,q=g.selector||"",r=(new Date).getTime(),s=[],t=arguments[0],u="string"==typeof t,v=[].slice.call(arguments,1);return g.each(function(){var b,e=a(this),j=a(this).find(l.field),w=a(this).find(l.group),x=a(this).find(l.message),y=(a(this).find(l.prompt),a(this).find(l.submit)),z=[],A=this,B=e.data(p);b={initialize:function(){b.verbose("Initializing form validation",e,i,h),h.keyboardShortcuts&&j.on("keydown"+o,b.event.field.keydown),e.on("submit"+o,b.validate.form),j.on("blur"+o,b.event.field.blur),y.on("click"+o,b.submit),j.on(b.get.changeEvent()+o,b.event.field.change),b.instantiate()},instantiate:function(){b.verbose("Storing instance of module",b),B=b,e.data(p,b)},destroy:function(){b.verbose("Destroying previous module",B),e.off(o).removeData(p)},refresh:function(){b.verbose("Refreshing selector cache"),j=e.find(l.field)},submit:function(){b.verbose("Submitting form",e),e.submit()},event:{field:{keydown:function(c){var d=a(this),e=c.which,f={enter:13,escape:27};return e==f.escape&&(b.verbose("Escape key pressed blurring field"),d.blur()),!c.ctrlKey&&e==f.enter&&d.is(l.input)?(b.debug("Enter key pressed, submitting form"),y.addClass(m.down),d.one("keyup"+o,b.event.field.keyup),c.preventDefault(),!1):void 0},keyup:function(){b.verbose("Doing keyboard shortcut form submit"),y.removeClass(m.down),b.submit()},blur:function(){var c=a(this),d=c.closest(w);d.hasClass(m.error)?(b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))):("blur"==h.on||"change"==h.on)&&b.validate.field(b.get.validation(c))},change:function(){var c=a(this),d=c.closest(w);("change"==h.on||d.hasClass(m.error)&&h.revalidate)&&(clearTimeout(b.timer),b.timer=setTimeout(function(){b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))},h.delay))}}},get:{changeEvent:function(){return c.createElement("input").oninput!==d?"input":c.createElement("input").onpropertychange!==d?"propertychange":"keyup"},field:function(c){return b.verbose("Finding field with identifier",c),j.filter("#"+c).size()>0?j.filter("#"+c):j.filter('[name="'+c+'"]').size()>0?j.filter('[name="'+c+'"]'):j.filter("[data-"+k.validate+'="'+c+'"]').size()>0?j.filter("[data-"+k.validate+'="'+c+'"]'):a("")},validation:function(c){var d;return a.each(i,function(a,e){b.get.field(e.identifier).get(0)==c.get(0)&&(d=e)}),d||!1}},has:{field:function(a){return b.verbose("Checking for existence of a field with identifier",a),j.filter("#"+a).size()>0?!0:j.filter('[name="'+a+'"]').size()>0?!0:j.filter("[data-"+k.validate+'="'+a+'"]').size()>0?!0:!1}},add:{prompt:function(c,f){var g=b.get.field(c.identifier),i=g.closest(w),j=i.find(l.prompt),k=0!==j.size();b.verbose("Adding inline error",c),i.addClass(m.error),h.inline&&(k||(j=h.templates.prompt(f),j.appendTo(i)),j.html(f[0]),k||(h.transition&&a.fn.transition!==d&&e.transition("is supported")?(b.verbose("Displaying error with css transition",h.transition),j.transition(h.transition+" in",h.duration)):(b.verbose("Displaying error with fallback javascript animation"),j.fadeIn(h.duration))))},errors:function(a){b.debug("Adding form error messages",a),x.html(h.templates.error(a))}},remove:{prompt:function(c){var f=b.get.field(c.identifier),g=f.closest(w),i=g.find(l.prompt);g.removeClass(m.error),h.inline&&i.is(":visible")&&(b.verbose("Removing prompt for field",c),h.transition&&a.fn.transition!==d&&e.transition("is supported")?i.transition(h.transition+" out",h.duration,function(){i.remove()}):i.fadeOut(h.duration,function(){i.remove()}))}},validate:{form:function(c){var d=!0;return z=[],a.each(i,function(a,c){b.validate.field(c)||(d=!1)}),d?(b.debug("Form has no validation errors, submitting"),e.removeClass(m.error).addClass(m.success),a.proxy(h.onSuccess,this)(c),void 0):(b.debug("Form has errors"),e.addClass(m.error),h.inline||b.add.errors(z),a.proxy(h.onFailure,this)(z))},field:function(c){var e=b.get.field(c.identifier),f=!0,g=[];return c.rules!==d&&a.each(c.rules,function(a,d){b.has.field(c.identifier)&&!b.validate.rule(c,d)&&(b.debug("Field is invalid",c.identifier,d.type),g.push(d.prompt),f=!1)}),f?(b.remove.prompt(c,g),a.proxy(h.onValid,e)(),!0):(z=z.concat(g),b.add.prompt(c,g),a.proxy(h.onInvalid,e)(g),!1)},rule:function(c,f){var g,i,j=b.get.field(c.identifier),k=f.type,l=j.val()+"",m=/\[(.*?)\]/i,n=m.exec(k),o=!0;return n!==d&&null!==n?(g=""+n[1],i=k.replace(n[0],""),o=a.proxy(h.rules[i],e)(l,g)):o=a.proxy(h.rules[k],j)(l),o}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},internal:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},debug:function(){h.debug&&(h.performance?b.performance.log(arguments):(b.debug=Function.prototype.bind.call(console.info,console,h.name+":"),b.debug.apply(console,arguments)))},verbose:function(){h.verbose&&h.debug&&(h.performance?b.performance.log(arguments):(b.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),b.verbose.apply(console,arguments)))},error:function(){b.error=Function.prototype.bind.call(console.error,console,h.name+":"),b.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;h.performance&&(c=(new Date).getTime(),e=r||c,d=c-e,r=c,s.push({Element:A,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(b.performance.timer),b.performance.timer=setTimeout(b.performance.display,100)},display:function(){var c=h.name+":",e=0;r=!1,clearTimeout(b.performance.timer),a.each(s,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",q&&(c+=" '"+q+"'"),g.size()>1&&(c+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&s.length>0&&(console.groupCollapsed(c),console.table?console.table(s):a.each(s,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(c,e,g){var h,i,j;return e=e||v,g=A||g,"string"==typeof c&&B!==d&&(c=c.split(/[\. ]/),h=c.length-1,a.each(c,function(e,f){var g=e!=h?f+c[e+1].charAt(0).toUpperCase()+c[e+1].slice(1):c;if(a.isPlainObject(B[g])&&e!=h)B=B[g];else{if(B[g]!==d)return i=B[g],!1;if(!a.isPlainObject(B[f])||e==h)return B[f]!==d?(i=B[f],!1):(b.error(n.method,c),!1);B=B[f]}})),a.isFunction(i)?j=i.apply(g,e):i!==d&&(j=i),a.isArray(f)?f.push(j):f!==d?f=[f,j]:j!==d&&(f=j),i}},u?(B===d&&b.initialize(),b.invoke(t)):(B!==d&&b.destroy(),b.initialize())}),f!==d?f:this},a.fn.form.settings={name:"Form",namespace:"form",debug:!0,verbose:!0,performance:!0,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:150,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{validate:"validate"},selector:{message:".error.message",field:"input, textarea, select",group:".field",input:"input",prompt:".prompt",submit:".submit"},className:{error:"error",success:"success",down:"down",label:"ui label prompt"},error:{method:"The method you called is not defined."},templates:{error:function(b){var c='
    ';return a.each(b,function(a,b){c+="
  • "+b+"
  • "}),c+="
",a(c)},prompt:function(b){return a("
").addClass("ui red pointing prompt label").html(b[0])}},rules:{checked:function(){return a(this).filter(":checked").size()>0},empty:function(a){return!(a===d||""===a)},email:function(a){var b=new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","i");return b.test(a)},length:function(a,b){return a!==d?a.length>=b:!1},not:function(a,b){return a!=b},contains:function(a,b){return b=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),-1!==a.search(b)},is:function(a,b){return a==b},maxLength:function(a,b){return a!==d?a.length<=b:!1},match:function(b,c){var e,f=a(this);return f.find("#"+c).size()>0?e=f.find("#"+c).val():f.find("[name="+c+"]").size()>0?e=f.find("[name="+c+"]").val():f.find('[data-validate="'+c+'"]').size()>0&&(e=f.find('[data-validate="'+c+'"]').val()),e!==d?b.toString()==e.toString():!1},url:function(a){var b=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return b.test(a)}}}}(jQuery,window,document),function(a,b,c,d){a.fn.state=function(b){var c,e=a(this),f=a.extend(!0,{},a.fn.state.settings,b),g=e.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1),m=f.error,n=f.metadata,o=f.className,p=f.namespace,q=f.states,r=f.text,s="."+p,t=p+"-module";return e.each(function(){var p,u=a(this),v=this,w=u.data(t);p={initialize:function(){p.verbose("Initializing module"),f.automatic&&p.add.defaults(),f.context&&""!==g?(p.allows("hover")&&a(v,f.context).on(g,"mouseenter"+s,p.enable.hover).on(g,"mouseleave"+s,p.disable.hover),p.allows("down")&&a(v,f.context).on(g,"mousedown"+s,p.enable.down).on(g,"mouseup"+s,p.disable.down),p.allows("focus")&&a(v,f.context).on(g,"focus"+s,p.enable.focus).on(g,"blur"+s,p.disable.focus),a(f.context).on(g,"mouseenter"+s,p.change.text).on(g,"mouseleave"+s,p.reset.text).on(g,"click"+s,p.toggle.state)):(p.allows("hover")&&u.on("mouseenter"+s,p.enable.hover).on("mouseleave"+s,p.disable.hover),p.allows("down")&&u.on("mousedown"+s,p.enable.down).on("mouseup"+s,p.disable.down),p.allows("focus")&&u.on("focus"+s,p.enable.focus).on("blur"+s,p.disable.focus),u.on("mouseenter"+s,p.change.text).on("mouseleave"+s,p.reset.text).on("click"+s,p.toggle.state)),p.instantiate()},instantiate:function(){p.verbose("Storing instance of module",p),w=p,u.data(t,p)},destroy:function(){p.verbose("Destroying previous module",w),u.off(s).removeData(t)},refresh:function(){p.verbose("Refreshing selector cache"),u=a(v)},add:{defaults:function(){var c=b&&a.isPlainObject(b.states)?b.states:{};a.each(f.defaults,function(b,e){p.is[b]!==d&&p.is[b]()&&(p.verbose("Adding default states",b,v),a.extend(f.states,e,c))})}},is:{active:function(){return u.hasClass(o.active)},loading:function(){return u.hasClass(o.loading)},inactive:function(){return!u.hasClass(o.active)},enabled:function(){return!u.is(f.filter.active)},disabled:function(){return u.is(f.filter.active)},textEnabled:function(){return!u.is(f.filter.text)},button:function(){return u.is(".button:not(a, .submit)")},input:function(){return u.is("input")}},allow:function(a){p.debug("Now allowing state",a),q[a]=!0},disallow:function(a){p.debug("No longer allowing",a),q[a]=!1},allows:function(a){return q[a]||!1},enable:{state:function(a){p.allows(a)&&u.addClass(o[a])},focus:function(){u.addClass(o.focus)},hover:function(){u.addClass(o.hover)},down:function(){u.addClass(o.down)}},disable:{state:function(a){p.allows(a)&&u.removeClass(o[a])},focus:function(){u.removeClass(o.focus)},hover:function(){u.removeClass(o.hover)},down:function(){u.removeClass(o.down)}},toggle:{state:function(){var a=u.data(n.promise);p.allows("active")&&p.is.enabled()&&(p.refresh(),a!==d?p.listenTo(a):p.change.state())}},listenTo:function(b){p.debug("API request detected, waiting for state signal",b),b?(r.loading&&p.update.text(r.loading),a.when(b).then(function(){"resolved"==b.state()?(p.debug("API request succeeded"),f.activateTest=function(){return!0},f.deactivateTest=function(){return!0}):(p.debug("API request failed"),f.activateTest=function(){return!1},f.deactivateTest=function(){return!1}),p.change.state()})):(f.activateTest=function(){return!1},f.deactivateTest=function(){return!1})},change:{state:function(){p.debug("Determining state change direction"),p.is.inactive()?p.activate():p.deactivate(),f.sync&&p.sync(),a.proxy(f.onChange,v)()},text:function(){p.is.textEnabled()&&(p.is.active()?r.hover?(p.verbose("Changing text to hover text",r.hover),p.update.text(r.hover)):r.disable&&(p.verbose("Changing text to disable text",r.disable),p.update.text(r.disable)):r.hover?(p.verbose("Changing text to hover text",r.disable),p.update.text(r.hover)):r.enable&&(p.verbose("Changing text to enable text",r.enable),p.update.text(r.enable)))}},activate:function(){a.proxy(f.activateTest,v)()&&(p.debug("Setting state to active"),u.addClass(o.active),p.update.text(r.active)),a.proxy(f.onActivate,v)()},deactivate:function(){a.proxy(f.deactivateTest,v)()&&(p.debug("Setting state to inactive"),u.removeClass(o.active),p.update.text(r.inactive)),a.proxy(f.onDeactivate,v)()},sync:function(){p.verbose("Syncing other buttons to current state"),p.is.active()?e.not(u).state("activate"):e.not(u).state("deactivate")},get:{text:function(){return f.selector.text?u.find(f.selector.text).text():u.html()},textFor:function(a){return r[a]||!1}},flash:{text:function(a,b){var c=p.get.text();p.debug("Flashing text message",a,b),a=a||f.text.flash,b=b||f.flashDuration,p.update.text(a),setTimeout(function(){p.update.text(c)},b)}},reset:{text:function(){var a=r.active||u.data(n.storedText),b=r.inactive||u.data(n.storedText);p.is.textEnabled()&&(p.is.active()&&a?(p.verbose("Resetting active text",a),p.update.text(a)):b&&(p.verbose("Resetting inactive text",a),p.update.text(b)))}},update:{text:function(a){var b=p.get.text();a&&a!==b?(p.debug("Updating text",a),f.selector.text?u.data(n.storedText,a).find(f.selector.text).text(a):u.data(n.storedText,a).html(a)):p.debug("Text is already sane, ignoring update",a)}},setting:function(b,c){return p.debug("Changing setting",b,c),c===d?f[b]:(a.isPlainObject(b)?a.extend(!0,f,b):f[b]=c,void 0)},internal:function(b,c){return p.debug("Changing internal",b,c),c===d?p[b]:(a.isPlainObject(b)?a.extend(!0,p,b):p[b]=c,void 0)},debug:function(){f.debug&&(f.performance?p.performance.log(arguments):(p.debug=Function.prototype.bind.call(console.info,console,f.name+":"),p.debug.apply(console,arguments)))},verbose:function(){f.verbose&&f.debug&&(f.performance?p.performance.log(arguments):(p.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),p.verbose.apply(console,arguments)))},error:function(){p.error=Function.prototype.bind.call(console.error,console,f.name+":"),p.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;f.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(p.performance.timer),p.performance.timer=setTimeout(p.performance.display,100)},display:function(){var b=f.name+":",c=0;h=!1,clearTimeout(p.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,e,f){var g,h,i;return e=e||l,f=v||f,"string"==typeof b&&w!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(w[f])&&c!=g)w=w[f];else{if(w[f]!==d)return h=w[f],!1;if(!a.isPlainObject(w[e])||c==g)return w[e]!==d?(h=w[e],!1):(p.error(m.method,b),!1);w=w[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},k?(w===d&&p.initialize(),p.invoke(j)):(w!==d&&p.destroy(),p.initialize())}),c!==d?c:this},a.fn.state.settings={name:"State",debug:!0,verbose:!0,namespace:"state",performance:!0,onActivate:function(){},onDeactivate:function(){},onChange:function(){},activateTest:function(){return!0},deactivateTest:function(){return!0},automatic:!0,sync:!1,flashDuration:3e3,filter:{text:".loading, .disabled",active:".disabled"},context:!1,error:{method:"The method you called is not defined."},metadata:{promise:"promise",storedText:"stored-text"},className:{focus:"focus",hover:"hover",down:"down",active:"active",loading:"loading"},selector:{text:!1},defaults:{input:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},button:{hover:!0,focus:!1,down:!0,active:!0,loading:!0}},states:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},text:{flash:!1,hover:!1,active:!1,inactive:!1,enable:!1,disable:!1}}}(jQuery,window,document),function(a,b,c,d){a.fn.chatroom=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return a(this).each(function(){var c,e,l,m,n,o,p,q=a.extend(!0,{},a.fn.chatroom.settings,b),r=q.className,s=q.namespace,t=q.selector,u=q.error,v=a(this),w=v.find(t.expandButton),x=v.find(t.userListButton),y=v.find(t.userList),z=(v.find(t.room),v.find(t.userCount)),A=v.find(t.log),B=(v.find(t.message),v.find(t.messageInput)),C=v.find(t.messageButton),D=v.data("module"),E=this,F="",G={};p={width:{log:A.width(),userList:y.outerWidth()},initialize:function(){return Pusher===d&&p.error(u.pusher),q.key===d||q.channelName===d?(p.error(u.key),!1):q.endpoint.message||q.endpoint.authentication?(o=new Pusher(q.key),Pusher.channel_auth_endpoint=q.endpoint.authentication,c=o.subscribe(q.channelName),c.bind("pusher:subscription_succeeded",p.user.list.create),c.bind("pusher:subscription_error",p.error),c.bind("pusher:member_added",p.user.joined),c.bind("pusher:member_removed",p.user.left),c.bind("update_messages",p.message.receive),a.each(q.customEvents,function(a,b){c.bind(a,b)}),x.on("click."+s,p.event.toggleUserList),w.on("click."+s,p.event.toggleExpand),B.on("keydown."+s,p.event.input.keydown).on("keyup."+s,p.event.input.keyup),C.on("mouseenter."+s,p.event.hover).on("mouseleave."+s,p.event.hover).on("click."+s,p.event.submit),A.animate({scrollTop:A.prop("scrollHeight")},400),v.data("module",p).addClass(r.loading),void 0):(p.error(u.endpoint),!1) +},refresh:function(){x.removeClass(r.active),p.width={log:A.width(),userList:y.outerWidth()},x.hasClass(r.active)&&p.user.list.hide(),v.data("module",p)},user:{updateCount:function(){q.userCount&&(G=v.data("users"),m=0,a.each(G,function(){m++}),z.html(q.templates.userCount(m)))},joined:function(b){G=v.data("users"),"anonymous"!=b.id&&G[b.id]===d&&(G[b.id]=b.info,q.randomColor&&b.info.color===d&&(b.info.color=q.templates.color(b.id)),F=q.templates.userList(b.info),b.info.isAdmin?a(F).prependTo(y):a(F).appendTo(y),q.partingMessages&&(A.append(q.templates.joined(b.info)),p.message.scroll.test()),p.user.updateCount())},left:function(a){G=v.data("users"),a!==d&&"anonymous"!==a.id&&(delete G[a.id],v.data("users",G),y.find("[data-id="+a.id+"]").remove(),q.partingMessages&&(A.append(q.templates.left(a.info)),p.message.scroll.test()),p.user.updateCount())},list:{create:function(b){G={},b.each(function(a){"anonymous"!==a.id&&"undefined"!==a.id&&(q.randomColor&&a.info.color===d&&(a.info.color=q.templates.color(a.id)),F=a.info.isAdmin?q.templates.userList(a.info)+F:F+q.templates.userList(a.info),G[a.id]=a.info)}),v.data("users",G).data("user",G[b.me.id]).removeClass(r.loading),y.html(F),p.user.updateCount(),a.proxy(q.onJoin,y.children())()},show:function(){A.animate({width:p.width.log-p.width.userList},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})},hide:function(){A.stop().animate({width:p.width.log},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})}}},message:{scroll:{test:function(){n=A.prop("scrollHeight")-A.height(),Math.abs(A.scrollTop()-n)0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,e){var f,g;return c=c||k,e=E||e,"string"==typeof b&&D!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){a.isPlainObject(D[e])&&c!=f?D=D[e]:D[e]!==d?g=D[e]:p.error(u.method,b)})),a.isFunction(g)?g.apply(e,c):g||!1}},j?(D===d&&p.initialize(),p.invoke(i)):(D!==d&&p.destroy(),p.initialize())}),c?c:this},a.fn.chatroom.settings={name:"Chat",debug:!1,namespace:"chat",channel:"present-chat",onJoin:function(){},onMessage:function(){},onExpand:function(){},onContract:function(){},customEvents:{},partingMessages:!1,userCount:!0,randomColor:!0,speed:300,easing:"easeOutQuint",scrollArea:9999,endpoint:{message:!1,authentication:!1},error:{method:"The method you called is not defined",endpoint:"Please define a message and authentication endpoint.",key:"You must specify a pusher key and channel.",pusher:"You must include the Pusher library."},className:{expand:"expand",active:"active",hover:"hover",down:"down",loading:"loading"},selector:{userCount:".actions .message",userListButton:".actions .list.button",expandButton:".actions .expand.button",room:".room",userList:".room .list",log:".room .log",message:".room .log .message",author:".room log .message .author",messageInput:".talk input",messageButton:".talk .send.button"},templates:{userCount:function(a){return a+" users in chat"},color:function(){var a=["#000000","#333333","#666666","#999999","#CC9999","#CC6666","#CC3333","#993333","#663333","#CC6633","#CC9966","#CC9933","#999966","#CCCC66","#99CC66","#669933","#669966","#33A3CC","#336633","#33CCCC","#339999","#336666","#336699","#6666CC","#9966CC","#333399","#663366","#996699","#993366","#CC6699"];return a[Math.floor(Math.random()*a.length)]},message:function(a){var b="";return a.user.isAdmin?(a.user.color="#55356A",b+='
',b+=''):b+='
',b+="

",b+=a.user.color!==d?''+a.user.name+": ":''+a.user.name+": ",b+=""+a.text+"

"},joined:function(a){return typeof a.name!==d?'
'+a.name+" has joined the chat.
":!1},left:function(a){return typeof a.name!==d?'
'+a.name+" has left the chat.
":!1},userList:function(a){var b="";return a.isAdmin&&(a.color="#55356A"),b+='
',b+=a.color!==d?'

'+a.name+"

":'

'+a.name+"

",b+="
"}}}}(jQuery,window,document),function(a,b,c,d){a.fn.checkbox=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var e,l=a.extend(!0,{},a.fn.checkbox.settings,b),m=l.className,n=l.namespace,o=l.error,p="."+n,q="module-"+n,r=a(this),s=a(this).next(l.selector.label).first(),t=a(this).find(l.selector.input),u=r.selector||"",v=r.data(q),w=this;e={initialize:function(){e.verbose("Initializing checkbox",l),l.context&&""!==u?(e.verbose("Adding delegated events"),a(w,l.context).on(u,"click"+p,e.toggle).on(u+" + "+l.selector.label,"click"+p,e.toggle)):(r.on("click"+p,e.toggle).data(q,e),s.on("click"+p,e.toggle)),e.instantiate()},instantiate:function(){e.verbose("Storing instance of module",e),v=e,r.data(q,e)},destroy:function(){e.verbose("Destroying previous module"),r.off(p).removeData(q)},is:{radio:function(){return r.hasClass(m.radio)},enabled:function(){return t.prop("checked")!==d&&t.prop("checked")},disabled:function(){return!e.is.enabled()}},can:{disable:function(){return"boolean"==typeof l.required?l.required:!e.is.radio()}},enable:function(){e.debug("Enabling checkbox",t),t.prop("checked",!0),a.proxy(l.onChange,t.get())(),a.proxy(l.onEnable,t.get())()},disable:function(){e.debug("Disabling checkbox"),t.prop("checked",!1),a.proxy(l.onChange,t.get())(),a.proxy(l.onDisable,t.get())()},toggle:function(){e.verbose("Determining new checkbox state"),e.is.disabled()?e.enable():e.is.enabled()&&e.can.disable()&&e.disable()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){l.debug&&(l.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,l.name+":"),e.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,l.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:w,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=l.name+":",c=0;g=!1,clearTimeout(e.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,f,g){var h,i,j;return f=f||k,g=w||g,"string"==typeof b&&v!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(c,f){var g=c!=h?f+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(v[g])&&c!=h)v=v[g];else{if(v[g]!==d)return i=v[g],!1;if(!a.isPlainObject(v[f])||c==h)return v[f]!==d?(i=v[f],!1):(e.error(o.method,b),!1);v=v[f]}})),a.isFunction(i)?j=i.apply(g,f):i!==d&&(j=i),a.isArray(c)?c.push(j):c!==d?c=[c,j]:j!==d&&(c=j),i}},j?(v===d&&e.initialize(),e.invoke(i)):(v!==d&&e.destroy(),e.initialize())}),c!==d?c:this},a.fn.checkbox.settings={name:"Checkbox",namespace:"checkbox",verbose:!0,debug:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},error:{method:"The method you called is not defined."},selector:{input:"input[type=checkbox], input[type=radio]",label:"label"},className:{radio:"radio"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dimmer=function(b){var e,f=a(this),g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return f.each(function(){var l,m,n,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dimmer.settings,b):a.extend({},a.fn.dimmer.settings),p=o.selector,q=o.namespace,r=o.className,s=o.error,t="."+q,u="module-"+q,v=f.selector||"",w="ontouchstart"in c.documentElement?"touchstart":"click",x=a(this),y=this,z=x.data(u);n={preinitialize:function(){n.is.dimmer()?(m=x.parent(),l=x):(m=x,l=n.has.dimmer()?m.children(p.dimmer).first():n.create())},initialize:function(){n.debug("Initializing dimmer",o),"hover"==o.on?m.on("mouseenter"+t,n.show).on("mouseleave"+t,n.hide):"click"==o.on&&m.on(w+t,n.toggle),n.is.page()&&(n.debug("Setting as a page dimmer",m),n.set.pageDimmer()),o.closable&&(n.verbose("Adding dimmer close event",l),l.on(w+t,n.event.click)),n.set.dimmable(),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),z=n,x.data(u,z)},destroy:function(){n.verbose("Destroying previous module",l),x.removeData(u),m.off(t),l.off(t)},event:{click:function(b){n.verbose("Determining if event occured on dimmer",b),(0===l.find(b.target).size()||a(b.target).is(p.content))&&(n.hide(),b.stopImmediatePropagation())}},addContent:function(b){var c=a(b);n.debug("Add content to dimmer",c),c.parent()[0]!==l[0]&&c.detach().appendTo(l)},create:function(){return a(o.template.dimmer()).appendTo(m)},animate:{show:function(b){b=a.isFunction(b)?b:function(){},n.set.dimmed(),o.useCSS&&a.fn.transition!==d&&x.transition("is supported")?l.transition({animation:o.transition+" in",queue:!0,duration:n.get.duration(),complete:function(){n.set.active(),b()}}):(n.verbose("Showing dimmer animation with javascript"),l.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(n.get.duration(),1,function(){l.removeAttr("style"),n.set.active(),b()}))},hide:function(b){b=a.isFunction(b)?b:function(){},o.useCSS&&a.fn.transition!==d&&x.transition("is supported")?(n.verbose("Hiding dimmer with css"),l.transition({animation:o.transition+" out",duration:n.get.duration(),queue:!0,complete:function(){n.remove.dimmed(),n.remove.active(),b()}})):(n.verbose("Hiding dimmer with javascript"),l.stop().fadeOut(n.get.duration(),function(){l.removeAttr("style"),n.remove.dimmed(),n.remove.active(),b()}))}},get:{dimmer:function(){return l},duration:function(){return"object"==typeof o.duration?n.is.active()?o.duration.hide:o.duration.show:o.duration}},has:{dimmer:function(){return x.children(p.dimmer).size()>0}},is:{active:function(){return l.hasClass(r.active)},animating:function(){return l.is(":animated")||l.hasClass(r.transition)},dimmer:function(){return x.is(p.dimmer)},dimmable:function(){return x.is(p.dimmable)},dimmed:function(){return m.hasClass(r.dimmed)},disabled:function(){return m.hasClass(r.disabled)},enabled:function(){return!n.is.disabled()},page:function(){return m.is("body")},pageDimmer:function(){return l.hasClass(r.pageDimmer)}},can:{show:function(){return!l.hasClass(r.disabled)}},set:{active:function(){n.set.dimmed(),l.removeClass(r.transition).addClass(r.active)},dimmable:function(){m.addClass(r.dimmable)},dimmed:function(){m.addClass(r.dimmed)},pageDimmer:function(){l.addClass(r.pageDimmer)},disabled:function(){l.addClass(r.disabled)}},remove:{active:function(){l.removeClass(r.transition).removeClass(r.active)},dimmed:function(){m.removeClass(r.dimmed)},disabled:function(){l.removeClass(r.disabled)}},show:function(b){b=a.isFunction(b)?b:function(){},n.debug("Showing dimmer",l,o),!n.is.active()&&n.is.enabled()?(n.animate.show(b),a.proxy(o.onShow,y)(),a.proxy(o.onChange,y)()):n.debug("Dimmer is already shown or disabled")},hide:function(b){b=a.isFunction(b)?b:function(){},n.is.active()||n.is.animating()?(n.debug("Hiding dimmer",l),n.animate.hide(b),a.proxy(o.onHide,y)(),a.proxy(o.onChange,y)()):n.debug("Dimmer is not visible")},toggle:function(){n.verbose("Toggling dimmer visibility",l),n.is.dimmed()?n.hide():n.show()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;g=!1,clearTimeout(n.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",v&&(b+=" '"+v+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,f){var g,h,i;return c=c||k,f=y||f,"string"==typeof b&&z!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(z[f])&&c!=g)z=z[f];else{if(!a.isPlainObject(z[e])||c==g)return z[e]!==d?(h=z[e],!1):z[f]!==d?(h=z[f],!1):(n.error(s.method,b),!1);z=z[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},n.preinitialize(),j?(z===d&&n.initialize(),n.invoke(i)):(z!==d&&n.destroy(),n.initialize())}),e!==d?e:this},a.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",debug:!0,verbose:!0,performance:!0,transition:"fade",useCSS:!0,on:!1,closable:!0,duration:{show:500,hide:500},onChange:function(){},onShow:function(){},onHide:function(){},error:{method:"The method you called is not defined."},selector:{dimmable:".ui.dimmable",dimmer:".ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(){return a("
").attr("class","ui dimmer")}},className:{active:"active",dimmable:"ui dimmable",dimmed:"dimmed",disabled:"disabled",pageDimmer:"page",hide:"hide",show:"show",transition:"transition"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dropdown=function(b){var e,f=a(this),g=a(c),h=f.selector||"",i="ontouchstart"in c.documentElement,j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var c,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dropdown.settings,b):a.extend({},a.fn.dropdown.settings),p=o.className,q=o.metadata,r=o.namespace,s=o.selector,t=o.error,u="."+r,v="module-"+r,w=a(this),x=w.find(s.item),y=w.find(s.text),z=w.find(s.input),A=w.children(s.menu),B=this,C=w.data(v);c={initialize:function(){c.debug("Initializing dropdown",o),c.set.selected(),i&&c.bind.touchEvents(),c.bind.mouseEvents(),c.instantiate()},instantiate:function(){c.verbose("Storing instance of dropdown",c),C=c,w.data(v,c)},destroy:function(){c.verbose("Destroying previous dropdown for",w),x.off(u),w.off(u).removeData(v)},bind:{touchEvents:function(){c.debug("Touch device detected binding touch events"),w.on("touchstart"+u,c.event.test.toggle),x.on("touchstart"+u,c.event.item.mouseenter).on("touchstart"+u,c.event.item.click)},mouseEvents:function(){c.verbose("Mouse detected binding mouse events"),"click"==o.on?w.on("click"+u,c.event.test.toggle):"hover"==o.on?w.on("mouseenter"+u,c.delay.show).on("mouseleave"+u,c.delay.hide):w.on(o.on+u,c.toggle),x.on("mouseenter"+u,c.event.item.mouseenter).on("mouseleave"+u,c.event.item.mouseleave).on("click"+u,c.event.item.click)},intent:function(){c.verbose("Binding hide intent event to document"),i&&g.on("touchstart"+u,c.event.test.touch).on("touchmove"+u,c.event.test.touch),g.on("click"+u,c.event.test.hide)}},unbind:{intent:function(){c.verbose("Removing hide intent event from document"),i&&g.off("touchstart"+u),g.off("click"+u)}},event:{test:{toggle:function(a){c.determine.intent(a,c.toggle)&&a.preventDefault()},touch:function(a){c.determine.intent(a,function(){"touchstart"==a.type?c.timer=setTimeout(c.hide,o.delay.touch):"touchmove"==a.type&&clearTimeout(c.timer)}),a.stopPropagation()},hide:function(a){c.determine.intent(a,c.hide)}},item:{mouseenter:function(b){var d=a(this).find(s.menu),e=a(this).siblings(s.item).children(s.menu);d.size()>0&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){c.animate.hide(!1,e),c.verbose("Showing sub-menu",d),c.animate.show(!1,d)},2*o.delay.show),b.preventDefault())},mouseleave:function(){var b=a(this).find(s.menu);b.size()>0&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){c.verbose("Hiding sub-menu",b),c.animate.hide(!1,b)},o.delay.hide))},click:function(){var b=a(this),e=b.data(q.text)!==d?b.data(q.text):b.text(),f=b.data(q.value)!==d?b.data(q.value):e.toLowerCase();0===b.find(s.menu).size()&&(c.determine.selectAction(e,f),a.proxy(o.onChange,B)(f,e))}},resetStyle:function(){a(this).removeAttr("style")}},determine:{selectAction:function(b,d){c.verbose("Determining action",o.action),a.isFunction(c.action[o.action])?(c.verbose("Triggering preset action",o.action,b,d),c.action[o.action](b,d)):a.isFunction(o.action)?(c.verbose("Triggering user action",o.action,b,d),o.action(b,d)):c.error(t.action,o.action)},intent:function(b,d){return c.debug("Determining whether event occurred in dropdown",b.target),d=d||function(){},0===a(b.target).closest(A).size()?(c.verbose("Triggering event",d),d(),!0):(c.verbose("Event occurred in dropdown, canceling callback"),!1)}},action:{nothing:function(){},hide:function(){c.hide()},activate:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},auto:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},changeText:function(a,b){b=b!==d?b:a,c.set.selected(b),c.hide()},updateForm:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()}},get:{text:function(){return y.text()},value:function(){return z.size()>0?z.val():w.data(q.value)},item:function(b){var e;return b=b!==d?b:c.get.value()!==d?c.get.value():c.get.text(),b!==d?x.each(function(){var c=a(this),f=c.data(q.text)!==d?c.data(q.text):c.text(),g=c.data(q.value)!==d?c.data(q.value):f.toLowerCase();return g==b||f==b?(e=a(this),!1):void 0}):b=c.get.text(),e||!1}},set:{text:function(a){c.debug("Changing text",a,y),y.removeClass(p.placeholder),y.text(a)},value:function(a){c.debug("Adding selected value to hidden input",a,z),z.size()>0?z.val(a):w.data(q.value,a)},active:function(){w.addClass(p.active)},visible:function(){w.addClass(p.visible)},selected:function(a){var b,e=c.get.item(a);e&&(c.debug("Setting selected menu item to",e),b=e.data(q.text)!==d?e.data(q.text):e.text(),x.removeClass(p.active),e.addClass(p.active),c.set.text(b))}},remove:{active:function(){w.removeClass(p.active)},visible:function(){w.removeClass(p.visible)}},is:{selection:function(){return w.hasClass(p.selection)},animated:function(a){return a?a.is(":animated")||a.transition("is animating"):A.is(":animated")||A.transition("is animating")},visible:function(a){return a?a.is(":visible"):A.is(":visible")},hidden:function(a){return a?a.is(":not(:visible)"):A.is(":not(:visible)")}},can:{click:function(){return i||"click"==o.on},show:function(){return!w.hasClass(p.disabled)}},animate:{show:function(b,e){var f=e||A;b=b||function(){},c.is.hidden(f)&&(c.verbose("Doing menu show animation",f),"none"==o.transition?b():a.fn.transition!==d&&w.transition("is supported")?(f.transition({animation:o.transition+" in",duration:o.duration,complete:b,queue:!1}),f.transition("force repaint")):"slide down"==o.transition?f.hide().clearQueue().children().clearQueue().css("opacity",0).delay(50).animate({opacity:1},o.duration,"easeOutQuad",c.event.resetStyle).end().slideDown(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.hide().clearQueue().fadeIn(o.duration,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition,o.transition))},hide:function(b,e){var f=e||A;b=b||function(){},c.is.visible(f)&&(c.verbose("Doing menu hide animation",f),a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" out",duration:o.duration,complete:b,queue:!1}):"none"==o.transition?b():"slide down"==o.transition?f.show().clearQueue().children().clearQueue().css("opacity",1).animate({opacity:0},100,"easeOutQuad",c.event.resetStyle).end().delay(50).slideUp(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.show().clearQueue().fadeOut(150,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition))}},show:function(){c.debug("Checking if dropdown can show"),c.is.hidden()&&(c.hideOthers(),c.set.active(),c.animate.show(function(){c.can.click()&&c.bind.intent(),c.set.visible()}),a.proxy(o.onShow,B)())},hide:function(){!c.is.animated()&&c.is.visible()&&(c.debug("Hiding dropdown"),c.can.click()&&c.unbind.intent(),c.remove.active(),c.animate.hide(c.remove.visible),a.proxy(o.onHide,B)())},delay:{show:function(){c.verbose("Delaying show event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.show,o.delay.show)},hide:function(){c.verbose("Delaying hide event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.hide,o.delay.hide)}},hideOthers:function(){c.verbose("Finding other dropdowns to hide"),f.not(w).has(s.menu+":visible").dropdown("hide")},toggle:function(){c.verbose("Toggling menu visibility"),c.is.hidden()?c.show():c.hide()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,e){if(a.isPlainObject(b))a.extend(!0,c,b);else{if(e===d)return c[b];c[b]=e}},debug:function(){o.debug&&(o.performance?c.performance.log(arguments):(c.debug=Function.prototype.bind.call(console.info,console,o.name+":"),c.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?c.performance.log(arguments):(c.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),c.verbose.apply(console,arguments)))},error:function(){c.error=Function.prototype.bind.call(console.error,console,o.name+":"),c.error.apply(console,arguments)},performance:{log:function(a){var b,d,e;o.performance&&(b=(new Date).getTime(),e=j||b,d=b-e,j=b,k.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(c.performance.timer),c.performance.timer=setTimeout(c.performance.display,100)},display:function(){var b=o.name+":",e=0;j=!1,clearTimeout(c.performance.timer),a.each(k,function(a,b){e+=b["Execution Time"]}),b+=" "+e+"ms",h&&(b+=" '"+h+"'"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,f,g){var h,i,j;return f=f||n,g=B||g,"string"==typeof b&&C!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(e,f){var g=e!=h?f+b[e+1].charAt(0).toUpperCase()+b[e+1].slice(1):b;if(a.isPlainObject(C[g])&&e!=h)C=C[g];else{if(C[g]!==d)return i=C[g],!1;if(!a.isPlainObject(C[f])||e==h)return C[f]!==d?(i=C[f],!1):(c.error(t.method,b),!1);C=C[f]}})),a.isFunction(i)?j=i.apply(g,f):i!==d&&(j=i),a.isArray(e)?e.push(j):e!==d?e=[e,j]:j!==d&&(e=j),i}},m?(C===d&&c.initialize(),c.invoke(l)):(C!==d&&c.destroy(),c.initialize())}),e?e:this},a.fn.dropdown.settings={name:"Dropdown",namespace:"dropdown",verbose:!0,debug:!0,performance:!0,on:"click",action:"activate",delay:{show:200,hide:300,touch:50},transition:"slide down",duration:250,onChange:function(){},onShow:function(){},onHide:function(){},error:{action:"You called a dropdown action that was not defined",method:"The method you called is not defined.",transition:"The requested transition was not found"},metadata:{text:"text",value:"value"},selector:{menu:".menu",item:".menu > .item",text:"> .text",input:'> input[type="hidden"]'},className:{active:"active",placeholder:"default",disabled:"disabled",visible:"visible",selection:"selection"}},a.extend(a.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})}(jQuery,window,document),function(a,b,c,d){a.fn.modal=function(e){var f,g=a(this),h=a(b),i=a(c),j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return g.each(function(){var o,p,q,r,s,t,u=a.isPlainObject(e)?a.extend(!0,{},a.fn.modal.settings,e):a.extend({},a.fn.modal.settings),v=u.selector,w=u.className,x=u.namespace,y=u.error,z="."+x,A="module-"+x,B=g.selector||"",C=a(this),D=a(u.context),E=C.find(v.close),F=this,G=C.data(A);t={initialize:function(){return t.verbose("Initializing dimmer",D),typeof a.fn.dimmer===d?(t.error(y.dimmer),void 0):(r=D.dimmer({closable:!1,useCSS:t.is.modernBrowser(),show:.9*u.duration,hide:1.1*u.duration}).dimmer("add content",C),s=r.dimmer("get dimmer"),p=C.siblings(v.modal),o=p.add(C),t.verbose("Attaching close events",E),E.on("click"+z,t.event.close),h.on("resize"+z,function(){t.event.debounce(t.refresh,50)}),t.instantiate(),void 0)},instantiate:function(){t.verbose("Storing instance of modal"),G=t,C.data(A,G)},destroy:function(){t.verbose("Destroying previous modal"),C.removeData(A).off(z),E.off(z),D.dimmer("destroy")},refresh:function(){t.remove.scrolling(),t.cacheSizes(),t.set.type(),t.set.position()},attachEvents:function(b,c){var d=a(b);c=a.isFunction(t[c])?t[c]:t.toggle,d.size()>0?(t.debug("Attaching modal events to element",b,c),d.off(z).on("click"+z,c)):t.error(y.notFound)},event:{close:function(){t.verbose("Closing element pressed"),a(this).is(v.approve)?a.proxy(u.onApprove,F)()!==!1?t.hide():t.verbose("Approve callback returned false cancelling hide"):a(this).is(v.deny)?a.proxy(u.onDeny,F)()!==!1?t.hide():t.verbose("Deny callback returned false cancelling hide"):t.hide()},click:function(b){0===a(b.target).closest(v.modal).size()&&(t.debug("Dimmer clicked, hiding all modals"),t.hideAll(),b.stopImmediatePropagation())},debounce:function(a,b){clearTimeout(t.timer),t.timer=setTimeout(a,b)},keyboard:function(a){var b=a.which,c=27;b==c&&(u.closable?(t.debug("Escape key pressed hiding modal"),t.hide()):t.debug("Escape key pressed, but closable is set to false"),a.preventDefault())},resize:function(){r.dimmer("is active")&&t.refresh()}},toggle:function(){t.is.active()?t.hide():t.show()},show:function(b){b=a.isFunction(b)?b:function(){},t.showDimmer(),t.showModal(b)},showModal:function(b){b=a.isFunction(b)?b:function(){},t.is.active()?t.debug("Modal is already visible"):(t.cacheSizes(),t.set.position(),t.set.type(),p.filter(":visible").size()>0?(t.debug("Other modals visible, queueing show animation"),t.hideOthers(t.showModal)):(u.transition&&a.fn.transition!==d&&C.transition("is supported")?(t.debug("Showing modal with css animations"),C.transition(u.transition+" in",u.duration,function(){t.set.active(),b()})):(t.debug("Showing modal with javascript"),C.fadeIn(u.duration,u.easing,function(){t.set.active(),b()})),a.proxy(u.onShow,F)()))},showDimmer:function(){r.dimmer("is active")?t.debug("Dimmer already visible"):(t.debug("Showing dimmer"),r.dimmer("show"))},hide:function(b){b=a.isFunction(b)?b:function(){},t.hideDimmer(),t.hideModal(b)},hideDimmer:function(){r.dimmer("is active")?(t.debug("Hiding dimmer"),u.closable&&s.off("click"+z),r.dimmer("hide")):t.debug("Dimmer is not visible cannot hide")},hideModal:function(b){b=a.isFunction(b)?b:function(){},t.is.active()&&(t.debug("Hiding modal"),t.remove.keyboardShortcuts(),u.transition&&a.fn.transition!==d&&C.transition("is supported")?C.transition(u.transition+" out",u.duration,function(){t.remove.active(),t.restore.focus(),b()}):C.fadeOut(u.duration,u.easing,function(){t.remove.active(),t.restore.focus(),b()}),a.proxy(u.onHide,F)())},hideAll:function(b){b=a.isFunction(b)?b:function(){},o.is(":visible")&&(t.debug("Hiding all visible modals"),t.hideDimmer(),o.filter(":visible").modal("hide modal",b))},hideOthers:function(b){b=a.isFunction(b)?b:function(){},p.is(":visible")&&(t.debug("Hiding other modals"),p.filter(":visible").modal("hide modal",b))},add:{keyboardShortcuts:function(){t.verbose("Adding keyboard shortcuts"),i.on("keyup"+z,t.event.keyboard)}},save:{focus:function(){q=a(c.activeElement).blur()}},restore:{focus:function(){q&&q.size()>0&&q.focus()}},remove:{active:function(){C.removeClass(w.active)},keyboardShortcuts:function(){t.verbose("Removing keyboard shortcuts"),i.off("keyup"+z)},scrolling:function(){r.removeClass(w.scrolling),C.removeClass(w.scrolling)}},cacheSizes:function(){t.cache={height:C.outerHeight()+u.offset,contextHeight:"body"==u.context?a(b).height():r.height()},t.debug("Caching modal and container sizes",t.cache)},can:{fit:function(){return t.cache.height0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,e){var g,h,i;return c=c||n,e=F||e,"string"==typeof b&&G!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(G[f])&&c!=g)G=G[f];else{if(G[f]!==d)return h=G[f],!1;if(!a.isPlainObject(G[e])||c==g)return G[e]!==d?(h=G[e],!1):(t.error(y.method,b),!1);G=G[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},m?(G===d&&t.initialize(),t.invoke(l)):(G!==d&&t.destroy(),t.initialize())}),f!==d?f:this},a.fn.modal.settings={name:"Modal",namespace:"modal",debug:!0,verbose:!0,performance:!0,closable:!0,context:"body",duration:500,easing:"easeOutExpo",offset:0,transition:"scale",onShow:function(){},onHide:function(){},onApprove:function(){return!0},onDeny:function(){return!0},selector:{close:".close, .actions .button",approve:".actions .positive, .actions .approve",deny:".actions .negative, .actions .cancel",modal:".ui.modal"},error:{dimmer:"UI Dimmer, a required component is not included in this page",method:"The method you called is not defined."},className:{active:"active",scrolling:"scrolling"}}}(jQuery,window,document),function(a,b,c,d){a.fn.nag=function(c){var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return a(this).each(function(){var m,n,o,p,q,r,s,t,u,v=a.extend(!0,{},a.fn.nag.settings,c),w=v.className,x=v.selector,y=v.error,z=v.namespace,A="."+z,B=z+"-module",C=a(this),D=C.find(x.close),E=a(v.context),F=this,G=C.data(B),H=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};u={initialize:function(){u.verbose("Initializing element"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset(),C.data(B,u),D.on("click"+A,u.dismiss),v.context==b&&"fixed"==v.position&&C.addClass(w.fixed),v.sticky&&(u.verbose("Adding scroll events"),"absolute"==v.position?E.on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll):a(b).on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll),a.proxy(u.event.scroll,this)()),v.displayTime>0&&setTimeout(u.hide,v.displayTime),u.should.show()?C.is(":visible")||u.show():u.hide()},destroy:function(){u.verbose("Destroying instance"),C.removeData(B).off(A),v.sticky&&E.off(A)},refresh:function(){u.debug("Refreshing cached calculations"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset()},show:function(){u.debug("Showing nag",v.animation.show),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideDown(v.duration,v.easing)},hide:function(){u.debug("Showing nag",v.animation.hide),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideUp(v.duration,v.easing)},onHide:function(){u.debug("Removing nag",v.animation.hide),C.remove(),v.onHide&&v.onHide()},stick:function(){if(u.refresh(),"fixed"==v.position){var c=a(b).prop("pageYOffset")||a(b).scrollTop(),d=C.hasClass(w.bottom)?q.top+(p-n)-c:q.top-c;C.css({position:"fixed",top:d,left:q.left,width:o-v.scrollBarWidth})}else C.css({top:s})},unStick:function(){C.css({top:""})},dismiss:function(a){v.storageMethod&&u.storage.set(v.storedKey,v.storedValue),u.hide(),a.stopImmediatePropagation(),a.preventDefault()},should:{show:function(){return v.persist?(u.debug("Persistent nag is set, can show nag"),!0):u.storage.get(v.storedKey)!=v.storedValue?(u.debug("Stored value is not set, can show nag",u.storage.get(v.storedKey)),!0):(u.debug("Stored value is set, cannot show nag",u.storage.get(v.storedKey)),!1)},stick:function(){return r=E.prop("pageYOffset")||E.scrollTop(),s=C.hasClass(w.bottom)?p-C.outerHeight()+r:r,s>m.top?!0:"fixed"==v.position?!0:!1}},storage:{set:function(c,e){u.debug("Setting stored value",c,e,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.set(c,e):a.cookie!==d?a.cookie(c,e):u.error(y.noStorage)},get:function(c){return u.debug("Getting stored value",c,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.get(c):a.cookie!==d?a.cookie(c):(u.error(y.noStorage),void 0)}},event:{scroll:function(){t!==d&&clearTimeout(t),t=setTimeout(function(){u.should.stick()?H(u.stick):u.unStick()},v.lag)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},internal:function(b,c){return u.debug("Changing internal",b,c),c===d?u[b]:(a.isPlainObject(b)?a.extend(!0,u,b):u[b]=c,void 0)},debug:function(){v.debug&&(v.performance?u.performance.log(arguments):(u.debug=Function.prototype.bind.call(console.info,console,v.name+":"),u.debug.apply(console,arguments)))},verbose:function(){v.verbose&&v.debug&&(v.performance?u.performance.log(arguments):(u.verbose=Function.prototype.bind.call(console.info,console,v.name+":"),u.verbose.apply(console,arguments)))},error:function(){u.error=Function.prototype.bind.call(console.error,console,v.name+":"),u.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;v.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:F,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(u.performance.timer),u.performance.timer=setTimeout(u.performance.display,100)},display:function(){var b=v.name+":",c=0;h=!1,clearTimeout(u.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i;return c=c||l,f=F||f,"string"==typeof b&&G!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(G[f])&&c!=g)G=G[f];else{if(G[f]!==d)return h=G[f],!1;if(!a.isPlainObject(G[e])||c==g)return G[e]!==d?(h=G[e],!1):(u.error(y.method,b),!1);G=G[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(G===d&&u.initialize(),u.invoke(j)):(G!==d&&u.destroy(),u.initialize())}),e!==d?e:this},a.fn.nag.settings={name:"Nag",verbose:!0,debug:!0,performance:!0,namespace:"Nag",persist:!1,displayTime:0,animation:{show:"slide",hide:"slide"},position:"fixed",scrollBarWidth:18,storageMethod:"cookie",storedKey:"nag",storedValue:"dismiss",sticky:!1,lag:0,context:b,error:{noStorage:"Neither $.cookie or store is defined. A storage solution is required for storing state",method:"The method you called is not defined."},className:{bottom:"bottom",fixed:"fixed"},selector:{close:".icon.close"},speed:500,easing:"easeOutQuad",onHide:function(){}}}(jQuery,window,document),function(a,b,c,d){a.fn.popup=function(e){var f,g=a(this),h=a(c),i=g.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return g.each(function(){var c,g=a.isPlainObject(e)?a.extend(!0,{},a.fn.popup.settings,e):a.extend({},a.fn.popup.settings),o=g.selector,p=g.className,q=g.error,r=g.metadata,s=g.namespace,t="."+g.namespace,u="module-"+s,v=a(this),w=a(g.context),x=g.target?a(g.target):v,y=a(b),z=g.inline?x.offsetParent():y,A=g.inline?x.next(g.selector.popup):y.children(g.selector.popup).last(),B=0,C=this,D=v.data(u);c={initialize:function(){c.debug("Initializing module",v),"click"==g.on?v.on("click",c.toggle):v.on(c.get.startEvent()+t,c.event.start).on(c.get.endEvent()+t,c.event.end),g.target&&c.debug("Target set to element",x),y.on("resize"+t,c.event.resize),c.instantiate()},instantiate:function(){c.verbose("Storing instance of module",c),D=c,v.data(u,D)},refresh:function(){g.inline?(A=x.next(o.popup),z=x.offsetParent()):A=y.children(o.popup).last()},destroy:function(){c.debug("Destroying previous module"),y.off(t),A.remove(),v.off(t).removeData(u)},event:{start:function(){c.timer=setTimeout(function(){c.is.hidden()&&c.show()},g.delay)},end:function(){clearTimeout(c.timer),c.is.visible()&&c.hide()},resize:function(){c.is.visible()&&c.set.position()}},create:function(){c.debug("Creating pop-up html");var b=v.data(r.html)||g.html,d=v.data(r.variation)||g.variation,e=v.data(r.title)||g.title,f=v.data(r.content)||v.attr("title")||g.content;b||f||e?(b||(b=g.template({title:e,content:f})),A=a("
").addClass(p.popup).addClass(d).html(b),g.inline?(c.verbose("Inserting popup element inline",A),A.insertAfter(v)):(c.verbose("Appending popup element to body",A),A.appendTo(w)),a.proxy(g.onCreate,A)()):c.error(q.content)},toggle:function(){c.debug("Toggling pop-up"),c.is.hidden()?(c.hideAll(),c.show()):c.hide()},show:function(a){a=a||function(){},c.debug("Showing pop-up",g.transition),g.preserve||c.refresh(),c.exists()||c.create(),c.save.conditions(),c.set.position(),c.animate.show(a)},hide:function(a){a=a||function(){},v.removeClass(p.visible),c.restore.conditions(),c.unbind.close(),c.is.visible()&&c.animate.hide(a)},hideAll:function(){a(o.popup).filter(":visible").popup("hide")},hideGracefully:function(b){0===a(b.target).closest(o.popup).size()&&c.hide()},exists:function(){return g.inline?0!==A.size():A.parent(w).size()},remove:function(){c.debug("Removing popup"),A.remove()},save:{conditions:function(){c.cache={title:v.attr("title")},c.cache.title&&v.removeAttr("title"),c.verbose("Saving original attributes",c.cache.title)}},restore:{conditions:function(){return c.cache===d?(c.error(q.cache),!1):(c.cache.title&&v.attr("title",c.cache.title),c.verbose("Restoring original attributes",c.cache.title),!0)}},animate:{show:function(b){b=b||function(){},v.addClass(p.visible),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" in",g.duration,function(){c.bind.close(),a.proxy(b,C)()}):A.stop().fadeIn(g.duration,g.easing,function(){c.bind.close(),a.proxy(b,C)()}),a.proxy(g.onShow,C)()},hide:function(b){b=b||function(){},c.debug("Hiding pop-up"),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" out",g.duration,function(){c.reset(),b()}):A.stop().fadeOut(g.duration,g.easing,function(){c.reset(),b()}),a.proxy(g.onHide,C)()}},get:{startEvent:function(){return"hover"==g.on?"mouseenter":"focus"==g.on?"focus":void 0},endEvent:function(){return"hover"==g.on?"mouseleave":"focus"==g.on?"blur":void 0},offstagePosition:function(){var d={top:a(b).scrollTop(),bottom:a(b).scrollTop()+a(b).height(),left:0,right:a(b).width()},e={width:A.width(),height:A.outerHeight(),position:A.offset()},f={},g=[];return e.position&&(f={top:e.position.topd.bottom,right:e.position.left+e.width>d.right,left:e.position.left0?g.join(" "):!1},nextPosition:function(a){switch(a){case"top left":a="bottom left";break;case"bottom left":a="top right";break;case"top right":a="bottom right";break;case"bottom right":a="top center";break;case"top center":a="bottom center";break;case"bottom center":a="right center";break;case"right center":a="left center";break;case"left center":a="top center"}return a}},set:{position:function(d,e){var f,h,i=(a(b).width(),a(b).height(),x.outerWidth()),j=x.outerHeight(),k=A.width(),l=A.outerHeight(),m=z.outerWidth(),n=z.outerHeight(),o=g.distanceAway,s=g.inline?x.position():x.offset();switch(d=d||v.data(r.position)||g.position,e=e||v.data(r.offset)||g.offset,g.inline&&("left center"==d||"right center"==d?(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10),o+=-parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10)):(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10),o+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10))),c.debug("Calculating offset for position",d),d){case"top left":f={bottom:n-s.top+o,right:m-s.left-e,top:"auto",left:"auto"};break;case"top center":f={bottom:n-s.top+o,left:s.left+i/2-k/2+e,top:"auto",right:"auto"};break;case"top right":f={top:"auto",bottom:n-s.top+o,left:s.left+i+e,right:"auto"};break;case"left center":f={top:s.top+j/2-l/2+e,right:m-s.left+o,left:"auto",bottom:"auto"};break;case"right center":f={top:s.top+j/2-l/2+e,left:s.left+i+o,bottom:"auto",right:"auto"};break;case"bottom left":f={top:s.top+j+o,right:m-s.left-e,left:"auto",bottom:"auto"};break;case"bottom center":f={top:s.top+j+o,left:s.left+i/2-k/2+e,bottom:"auto",right:"auto"};break;case"bottom right":f={top:s.top+j+o,left:s.left+i+e,bottom:"auto",right:"auto"}}return A.css(f).removeClass(p.position).addClass(d).addClass(p.loading),h=c.get.offstagePosition(),h?(c.debug("Element is outside boundaries",h),B0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,e,g){var h,i,j;return e=e||n,g=C||g,"string"==typeof b&&D!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(e,f){var g=e!=h?f+b[e+1].charAt(0).toUpperCase()+b[e+1].slice(1):b;if(a.isPlainObject(D[f])&&e!=h)D=D[f];else{if(!a.isPlainObject(D[g])||e==h)return D[f]!==d?(i=D[f],!1):D[g]!==d?(i=D[g],!1):(c.error(q.method,b),!1);D=D[g]}})),a.isFunction(i)?j=i.apply(g,e):i!==d&&(j=i),a.isArray(f)?f.push(j):f!==d?f=[f,j]:j!==d&&(f=j),i}},m?(D===d&&c.initialize(),c.invoke(l)):(D!==d&&c.destroy(),c.initialize())}),f!==d?f:this},a.fn.popup.settings={name:"Popup",debug:!0,verbose:!0,performance:!0,namespace:"popup",onCreate:function(){},onShow:function(){},onHide:function(){},variation:"",content:!1,html:!1,title:!1,on:"hover",target:!1,closable:!0,context:"body",position:"top center",delay:150,inline:!1,preserve:!1,duration:250,easing:"easeOutQuint",transition:"scale",distanceAway:0,offset:0,maxSearchDepth:10,error:{content:"Your popup has no content specified",method:"The method you called is not defined.",recursion:"Popup attempted to reposition element to fit, but could not find an adequate position."},metadata:{content:"content",html:"html",offset:"offset",position:"position",title:"title",variation:"variation"},className:{loading:"loading",popup:"ui popup",position:"top left center bottom right",visible:"visible"},selector:{popup:".ui.popup"},template:function(a){var b="";return typeof a!==d&&(typeof a.title!==d&&a.title&&(b+='
'+a.title+'
'),typeof a.content!==d&&a.content&&(b+='
'+a.content+"
")),b}}}(jQuery,window,document),function(a,b,c,d){a.fn.rating=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.rating.settings,b):a.extend({},a.fn.rating.settings),n=m.namespace,o=m.className,p=m.metadata,q=m.selector,r=m.error,s="."+n,t="module-"+n,u=this,v=a(this).data(t),w=a(this),x=w.find(q.icon);l={initialize:function(){l.verbose("Initializing rating module",m),m.interactive?l.enable():l.disable(),m.initialRating&&(l.debug("Setting initial rating"),l.setRating(m.initialRating)),w.data(p.rating)&&(l.debug("Rating found in metadata"),l.setRating(w.data(p.rating))),l.instantiate()},instantiate:function(){l.verbose("Instantiating module",m),v=l,w.data(t,l)},destroy:function(){l.verbose("Destroying previous instance",v),w.removeData(t),x.off(s)},event:{mouseenter:function(){var b=a(this);b.nextAll().removeClass(o.hover),w.addClass(o.hover),b.addClass(o.hover).prevAll().addClass(o.hover)},mouseleave:function(){w.removeClass(o.hover),x.removeClass(o.hover)},click:function(){var b=a(this),c=l.getRating(),d=x.index(b)+1;m.clearable&&c==d?l.clearRating():l.setRating(d)}},clearRating:function(){l.debug("Clearing current rating"),l.setRating(0)},getRating:function(){var a=x.filter("."+o.active).size();return l.verbose("Current rating retrieved",a),a},enable:function(){l.debug("Setting rating to interactive mode"),x.on("mouseenter"+s,l.event.mouseenter).on("mouseleave"+s,l.event.mouseleave).on("click"+s,l.event.click),w.removeClass(o.disabled)},disable:function(){l.debug("Setting rating to read-only mode"),x.off(s),w.addClass(o.disabled)},setRating:function(b){var c=b-1>=0?b-1:0,d=x.eq(c);w.removeClass(o.hover),x.removeClass(o.hover).removeClass(o.active),b>0&&(l.verbose("Setting current rating to",b),d.addClass(o.active).prevAll().addClass(o.active)),a.proxy(m.onRate,u)(b)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:u,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i;return e=e||k,f=u||f,"string"==typeof b&&v!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(v[f])&&c!=g)v=v[f];else{if(v[f]!==d)return h=v[f],!1;if(!a.isPlainObject(v[e])||c==g)return v[e]!==d?(h=v[e],!1):(l.error(r.method,b),!1);v=v[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(v===d&&l.initialize(),l.invoke(i)):(v!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.rating.settings={name:"Rating",namespace:"rating",verbose:!0,debug:!0,performance:!0,initialRating:0,interactive:!0,clearable:!1,onRate:function(){},error:{method:"The method you called is not defined"},metadata:{rating:"rating"},className:{active:"active",disabled:"disabled",hover:"hover",loading:"loading"},selector:{icon:".icon"}}}(jQuery,window,document),function(a,b,c,d){a.fn.search=function(c,e){var f,g=a(this),h=g.selector||"",i=(new Date).getTime(),j=[],k=arguments[0],l="string"==typeof k,m=[].slice.call(arguments,1);return a(this).each(function(){var n,o=a.extend(!0,{},a.fn.search.settings,e),p=o.className,q=o.selector,r=o.error,s=o.namespace,t="."+s,u=s+"-module",v=a(this),w=v.find(q.prompt),x=v.find(q.searchButton),y=v.find(q.results),z=(v.find(q.result),v.find(q.category),this),A=v.data(u);n={initialize:function(){n.verbose("Initializing module");var a=w[0],b=a.oninput!==d?"input":a.onpropertychange!==d?"propertychange":"keyup";w.on("focus"+t,n.event.focus).on("blur"+t,n.event.blur).on("keydown"+t,n.handleKeyboard),o.automatic&&w.on(b+t,n.search.throttle),x.on("click"+t,n.search.query),y.on("click"+t,q.result,n.results.select),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),A=n,v.data(u,n)},destroy:function(){n.verbose("Destroying instance"),v.removeData(u)},event:{focus:function(){v.addClass(p.focus),n.results.show()},blur:function(){n.search.cancel(),v.removeClass(p.focus),n.results.hide()}},handleKeyboard:function(b){var c,d=v.find(q.result),e=v.find(q.category),f=b.which,g={backspace:8,enter:13,escape:27,upArrow:38,downArrow:40},h=p.active,i=d.index(d.filter("."+h)),j=d.size();if(f==g.escape&&(n.verbose("Escape key pressed, blurring search field"),w.trigger("blur")),y.filter(":visible").size()>0)if(f==g.enter){if(n.verbose("Enter key pressed, selecting active result"),d.filter("."+h).exists())return a.proxy(n.results.select,d.filter("."+h))(),b.preventDefault(),!1}else f==g.upArrow?(n.verbose("Up key pressed, changing active result"),c=0>i-1?i:i-1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault()):f==g.downArrow&&(n.verbose("Down key pressed, changing active result"),c=i+1>=j?i:i+1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault());else f==g.enter&&(n.verbose("Enter key pressed, executing query"),n.search.query(),x.addClass(p.down),w.one("keyup",function(){x.removeClass(p.down)}))},search:{cancel:function(){var a=v.data("xhr")||!1;a&&"resolved"!=a.state()&&(n.debug("Cancelling last search"),a.abort())},throttle:function(){var a=w.val(),b=a.length;clearTimeout(n.timer),b>=o.minCharacters?n.timer=setTimeout(n.search.query,o.searchThrottle):n.results.hide()},query:function(){var b=w.val(),d=n.search.cache.read(b);d?(n.debug("Reading result for '"+b+"' from cache"),n.results.add(d)):(n.debug("Querying for '"+b+"'"),"object"==typeof c?n.search.local(b):n.search.remote(b),a.proxy(o.onSearchQuery,v)(b))},local:function(b){var d,e=[],f=[],g=a.isArray(o.searchFields)?o.searchFields:[o.searchFields],h=new RegExp("(?:s|^)"+b,"i"),i=new RegExp(b,"i");v.addClass(p.loading),a.each(g,function(b,d){a.each(c,function(b,c){"string"==typeof c[d]&&-1==a.inArray(c,e)&&-1==a.inArray(c,f)&&(h.test(c[d])?e.push(c):i.test(c[d])&&f.push(c))})}),d=n.results.generate({results:a.merge(e,f)}),v.removeClass(p.loading),n.search.cache.write(b,d),n.results.add(d)},remote:function(b){var d,e={stateContext:v,url:c,urlData:{query:b},success:function(a){d=n.results.generate(a),n.search.cache.write(b,d),n.results.add(d)},failure:n.error};n.search.cancel(),n.debug("Executing search"),a.extend(!0,e,o.apiSettings),a.api(e)},cache:{read:function(a){var b=v.data("cache");return o.cache&&"object"==typeof b&&b[a]!==d?b[a]:!1},write:function(a,b){var c=v.data("cache")!==d?v.data("cache"):{};c[a]=b,v.data("cache",c)}}},results:{generate:function(b){n.debug("Generating html from response",b);var c=o.templates[o.type],d="";return a.isPlainObject(b.results)&&!a.isEmptyObject(b.results)||a.isArray(b.results)&&b.results.length>0?(o.maxResults>0&&(b.results=a.makeArray(b.results).slice(0,o.maxResults)),b.results.length>0&&(a.isFunction(c)?d=c(b):n.error(r.noTemplate,!1))):d=n.message(r.noResults,"empty"),a.proxy(o.onResults,v)(b),d},add:function(b){("default"==o.onResultsAdd||"default"==a.proxy(o.onResultsAdd,y)(b))&&y.html(b),n.results.show()},show:function(){0===y.filter(":visible").size()&&w.filter(":focus").size()>0&&""!==y.html()&&(y.stop().fadeIn(200),a.proxy(o.onResultsOpen,y)())},hide:function(){y.filter(":visible").size()>0&&(y.stop().fadeOut(200),a.proxy(o.onResultsClose,y)())},select:function(c){n.debug("Search result selected");var d=a(this),e=d.find(".title"),f=e.html();if("default"==o.onSelect||"default"==a.proxy(o.onSelect,this)(c)){var g=d.find("a[href]").eq(0),h=g.attr("href")||!1,i=g.attr("target")||!1;n.results.hide(),w.val(f),h&&("_blank"==i||c.ctrlKey?b.open(h):b.location.href=h)}}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=i||b,c=b-d,i=b,j.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;i=!1,clearTimeout(n.performance.timer),a.each(j,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",h&&(b+=" '"+h+"'"),g.size()>1&&(b+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&j.length>0&&(console.groupCollapsed(b),console.table?console.table(j):a.each(j,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),j=[]}},invoke:function(b,c,e){var g,h,i;return c=c||m,e=z||e,"string"==typeof b&&A!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(A[f])&&c!=g)A=A[f];else{if(A[f]!==d)return h=A[f],!1;if(!a.isPlainObject(A[e])||c==g)return A[e]!==d?(h=A[e],!1):(n.error(r.method,b),!1);A=A[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},l?(A===d&&n.initialize(),n.invoke(k)):(A!==d&&n.destroy(),n.initialize())}),f!==d?f:this},a.fn.search.settings={name:"Search Module",namespace:"search",debug:!0,verbose:!0,performance:!0,onSelect:"default",onResultsAdd:"default",onSearchQuery:function(){},onResults:function(){},onResultsOpen:function(){},onResultsClose:function(){},automatic:"true",type:"simple",minCharacters:3,searchThrottle:300,maxResults:7,cache:!0,searchFields:["title","description"],apiSettings:{},className:{active:"active",down:"down",focus:"focus",empty:"empty",loading:"loading"},error:{noResults:"Your search returned no results",logging:"Error in debug logging, exiting.",noTemplate:"A valid template name was not specified.",serverError:"There was an issue with querying the server.",method:"The method you called is not defined."},selector:{prompt:".prompt",searchButton:".search.button",results:".results",category:".category",result:".result"},templates:{message:function(a,b){var c="";return a!==d&&b!==d&&(c+='
',c+="empty"==b?'
No Results
'+a+'
':'
'+a+"
",c+="
"),c},categories:function(b){var c="";return b.results!==d?(a.each(b.results,function(b,e){e.results!==d&&e.results.length>0&&(c+='
'+e.name+"
",a.each(e.results,function(a,b){c+='
',c+='',b.image!==d&&(c+='
'),c+='
',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),c+="
")}),b.resultPage&&(c+=''+b.resultPage.text+""),c):!1},simple:function(b){var c="";return b.results!==d?(a.each(b.results,function(a,b){c+='',b.image!==d&&(c+='
'),c+='
',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),b.resultPage&&(c+=''+b.resultPage.text+""),c):!1}}}}(jQuery,window,document),function(a,b,c,d){a.fn.shape=function(b){var e,f=a(this),g=a("body"),h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return f.each(function(){var m,n,o,p=f.selector||"",q=a.extend(!0,{},a.fn.shape.settings,b),r=q.namespace,s=q.selector,t=q.error,u=q.className,v="."+r,w="module-"+r,x=a(this),y=x.find(s.sides),z=x.find(s.side),A=!1,B=this,C=x.data(w);o={initialize:function(){o.verbose("Initializing module for",B),o.set.defaultSide(),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),C=o,x.data(w,C)},destroy:function(){o.verbose("Destroying previous module for",B),x.removeData(w).off(v)},refresh:function(){o.verbose("Refreshing selector cache for",B),x=a(B),y=a(this).find(s.shape),z=a(this).find(s.side)},repaint:function(){o.verbose("Forcing repaint event");{var a=y.get(0)||c.createElement("div");a.offsetWidth}},animate:function(b,c){o.verbose("Animating box with properties",b),c=c||function(a){o.verbose("Executing animation callback"),a!==d&&a.stopPropagation(),o.reset(),o.set.active() +},a.proxy(q.beforeChange,n[0])(),o.get.transitionEvent()?(o.verbose("Starting CSS animation"),x.addClass(u.animating),o.repaint(),x.addClass(u.animating),m.addClass(u.hidden),y.css(b).one(o.get.transitionEvent(),c),o.set.duration(q.duration)):c()},queue:function(a){o.debug("Queueing animation of",a),y.one(o.get.transitionEvent(),function(){o.debug("Executing queued animation"),setTimeout(function(){x.shape(a)},0)})},reset:function(){o.verbose("Animating states reset"),x.removeClass(u.animating).attr("style","").removeAttr("style"),y.attr("style","").removeAttr("style"),z.attr("style","").removeAttr("style").removeClass(u.hidden),n.removeClass(u.animating).attr("style","").removeAttr("style")},is:{animating:function(){return x.hasClass(u.animating)}},set:{defaultSide:function(){m=x.find("."+q.className.active),n=m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first(),A=!1,o.verbose("Active side set to",m),o.verbose("Next side set to",n)},duration:function(a){a=a||q.duration,a="number"==typeof a?a+"ms":a,o.verbose("Setting animation duration",a),y.add(z).css({"-webkit-transition-duration":a,"-moz-transition-duration":a,"-ms-transition-duration":a,"-o-transition-duration":a,"transition-duration":a})},stageSize:function(){var a=x.clone().addClass(u.loading),b=a.find("."+q.className.active),c=A?a.find(A):b.next(s.side).size()>0?b.next(s.side):a.find(s.side).first(),d={};b.removeClass(u.active),c.addClass(u.active),a.prependTo(g),d={width:c.outerWidth(),height:c.outerHeight()},a.remove(),x.css(d),o.verbose("Resizing stage to fit new content",d)},nextSide:function(a){A=a,n=x.find(a),0===n.size()&&o.error(t.side),o.verbose("Next side manually set to",n)},active:function(){o.verbose("Setting new side to active",n),z.removeClass(u.active),n.addClass(u.active),a.proxy(q.onChange,n[0])(),o.set.defaultSide()}},flip:{up:function(){o.debug("Flipping up",n),o.is.animating()?o.queue("flip up"):(o.set.stageSize(),o.stage.above(),o.animate(o.get.transform.up()))},down:function(){o.debug("Flipping down",n),o.is.animating()?o.queue("flip down"):(o.set.stageSize(),o.stage.below(),o.animate(o.get.transform.down()))},left:function(){o.debug("Flipping left",n),o.is.animating()?o.queue("flip left"):(o.set.stageSize(),o.stage.left(),o.animate(o.get.transform.left()))},right:function(){o.debug("Flipping right",n),o.is.animating()?o.queue("flip right"):(o.set.stageSize(),o.stage.right(),o.animate(o.get.transform.right()))},over:function(){o.debug("Flipping over",n),o.is.animating()?o.queue("flip over"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.over()))},back:function(){o.debug("Flipping back",n),o.is.animating()?o.queue("flip back"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.back()))}},get:{transform:{up:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(-90deg)"}},down:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(90deg)"}},left:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(90deg)"}},right:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(-90deg)"}},over:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(180deg)"}},back:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(-180deg)"}}},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]},nextSide:function(){return m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first()}},stage:{above:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as above",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(90deg) translateZ("+a.depth.next+"px)"})},below:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as below",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(-90deg) translateZ("+a.depth.next+"px)"})},left:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-90deg) translateZ("+a.depth.next+"px)"})},right:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(90deg) translateZ("+a.depth.next+"px)"})},behind:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as behind",n,a),m.css({transform:"rotateY(0deg)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-180deg)"})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,q,b);else{if(c===d)return q[b];q[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){q.debug&&(q.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,q.name+":"),o.debug.apply(console,arguments)))},verbose:function(){q.verbose&&q.debug&&(q.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,q.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,q.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;q.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=q.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",p&&(b+=" '"+p+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i;return c=c||l,f=B||f,"string"==typeof b&&C!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(C[f])&&c!=g)C=C[f];else{if(C[f]!==d)return h=C[f],!1;if(!a.isPlainObject(C[e])||c==g)return C[e]!==d?(h=C[e],!1):(o.error(t.method,b),!1);C=C[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(C===d&&o.initialize(),o.invoke(j)):(C!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.shape.settings={name:"Shape",debug:!0,verbose:!0,performance:!0,namespace:"shape",beforeChange:function(){},onChange:function(){},duration:700,error:{side:"You tried to switch to a side that does not exist.",method:"The method you called is not defined"},className:{animating:"animating",hidden:"hidden",loading:"loading",active:"active"},selector:{sides:".sides",side:".side"}}}(jQuery,window,document),function(a,b,c,d){a.fn.sidebar=function(b){var e,f=a(this),g=a("body"),h=a("head"),i=f.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var o,p=a.isPlainObject(b)?a.extend(!0,{},a.fn.sidebar.settings,b):a.extend({},a.fn.sidebar.settings),q=p.selector,r=p.className,s=p.namespace,t=p.error,u="."+s,v="module-"+s,w=a(this),x=a("style[title="+s+"]"),y=this,z=w.data(v);o={initialize:function(){o.debug("Initializing sidebar",w),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),z=o,w.data(v,o)},destroy:function(){o.verbose("Destroying previous module for",w),w.off(u).removeData(v)},refresh:function(){o.verbose("Refreshing selector cache"),x=a("style[title="+s+"]")},attachEvents:function(b,c){var d=a(b);c=a.isFunction(o[c])?o[c]:o.toggle,d.size()>0?(o.debug("Attaching sidebar events to element",b,c),d.off(u).on("click"+u,c)):o.error(t.notFound)},show:function(b){b=a.isFunction(b)?b:function(){},o.debug("Showing sidebar",b),o.is.closed()?(p.overlay||(p.exclusive&&o.hideAll(),o.pushPage()),o.set.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onShow,y)()):o.debug("Sidebar is already visible")},hide:function(b){b=a.isFunction(b)?b:function(){},o.debug("Hiding sidebar",b),o.is.open()&&(p.overlay||(o.pullPage(),o.remove.pushed()),o.remove.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onHide,y)())},hideAll:function(){a(q.sidebar).filter(":visible").sidebar("hide")},toggle:function(){o.is.closed()?o.show():o.hide()},pushPage:function(){var a=o.get.direction(),b=o.is.vertical()?w.outerHeight():w.outerWidth();p.useCSS?(o.debug("Using CSS to animate body"),o.add.bodyCSS(a,b),o.set.pushed()):o.animatePage(a,b,o.set.pushed)},pullPage:function(){var a=o.get.direction();p.useCSS?(o.debug("Resetting body position css"),o.remove.bodyCSS()):(o.debug("Resetting body position using javascript"),o.animatePage(a,0)),o.remove.pushed()},animatePage:function(a,b){var c={};c["padding-"+a]=b,o.debug("Using javascript to animate body",c),g.animate(c,p.duration,o.set.pushed)},add:{bodyCSS:function(a,b){var c,d;a!==r.bottom&&(c="right"===a?-1:1,d='"),h.append(d),o.debug("Adding body css to head",x)}},remove:{bodyCSS:function(){o.debug("Removing body css styles",x),o.refresh(),x.remove()},active:function(){w.removeClass(r.active)},pushed:function(){o.verbose("Removing body push state",o.get.direction()),g.removeClass(r[o.get.direction()]).removeClass(r.pushed)}},set:{active:function(){w.addClass(r.active)},pushed:function(){o.verbose("Adding body push state",o.get.direction()),g.addClass(r[o.get.direction()]).addClass(r.pushed)}},get:{direction:function(){return w.hasClass(r.top)?r.top:w.hasClass(r.right)?r.right:w.hasClass(r.bottom)?r.bottom:r.left},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]}},is:{open:function(){return w.is(":animated")||w.hasClass(r.active)},closed:function(){return!o.is.open()},vertical:function(){return w.hasClass(r.top)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,p,b);else{if(c===d)return p[b];p[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){p.debug&&(p.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,p.name+":"),o.debug.apply(console,arguments)))},verbose:function(){p.verbose&&p.debug&&(p.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,p.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;p.performance&&(b=(new Date).getTime(),d=j||b,c=b-d,j=b,k.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=p.name+":",c=0;j=!1,clearTimeout(o.performance.timer),a.each(k,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",i&&(b+=" '"+i+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,f){var g,h,i;return c=c||n,f=y||f,"string"==typeof b&&z!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(z[f])&&c!=g)z=z[f];else{if(z[f]!==d)return h=z[f],!1;if(!a.isPlainObject(z[e])||c==g)return z[e]!==d?(h=z[e],!1):(o.error(t.method,b),!1);z=z[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},m?(z===d&&o.initialize(),o.invoke(l)):(z!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.sidebar.settings={name:"Sidebar",namespace:"sidebar",verbose:!0,debug:!0,performance:!0,useCSS:!0,exclusive:!0,overlay:!1,duration:300,onChange:function(){},onShow:function(){},onHide:function(){},className:{active:"active",pushed:"pushed",top:"top",left:"left",right:"right",bottom:"bottom"},selector:{sidebar:".ui.sidebar"},error:{method:"The method you called is not defined.",notFound:"There were no elements that matched the specified selector"}}}(jQuery,window,document),function(a,b,c,d){a.fn.tab=function(c){var e,f,g,h,i,j=a.extend(!0,{},a.fn.tab.settings,c),k=a(this),l=a(j.context).find(j.selector.tabs),m=k.selector||"",n={},o=!0,p=0,q=this,r=(new Date).getTime(),s=[],t=j.className,u=j.metadata,v=j.error,w="."+j.namespace,x="module-"+j.namespace,y=k.data(x),z=arguments[0],A=y!==d&&"string"==typeof z,B=[].slice.call(arguments,1);return h={initialize:function(){if(h.debug("Initializing Tabs",k),j.auto&&(h.verbose("Setting up automatic tab retrieval from server"),j.apiSettings={url:j.path+"/{$tab}"}),j.history){if(h.debug("Initializing page state"),a.address===d)return h.error(v.state),!1;if("hash"==j.historyType&&h.debug("Using hash state change to manage state"),"html5"==j.historyType){if(h.debug("Using HTML5 to manage state"),j.path===!1)return h.error(v.path),!1;a.address.history(!0).state(j.path)}a.address.unbind("change").bind("change",h.event.history.change)}a.isWindow(q)||(h.debug("Attaching tab activation events to element",k),k.on("click"+w,h.event.click)),h.instantiate()},instantiate:function(){h.verbose("Storing instance of module",h),k.data(x,h)},destroy:function(){h.debug("Destroying tabs",k),k.removeData(x).off(w)},event:{click:function(b){var c=a(this).data(u.tab);c!==d?(j.history?(h.verbose("Updating page state",b),a.address.value(c)):(h.verbose("Changing tab without state management",b),h.changeTab(c)),b.preventDefault()):h.debug("No tab specified")},history:{change:function(b){var c=b.pathNames.join("/")||h.get.initialPath(),e=j.templates.determineTitle(c)||!1;h.debug("History change event",c,b),g=b,c!==d&&h.changeTab(c),e&&a.address.title(e)}}},refresh:function(){e&&(h.debug("Refreshing tab",e),h.changeTab(e))},cache:{read:function(a){return a!==d?n[a]:!1},add:function(a,b){a=a||e,h.debug("Adding cached content for",a),n[a]=b},remove:function(a){a=a||e,h.debug("Removing cached content for",a),delete n[a]}},set:{state:function(b){a.address.value(b)}},changeTab:function(c){var d=b.history&&b.history.pushState,i=d&&j.ignoreFirstLoad&&o,k=j.auto||a.isPlainObject(j.apiSettings),l=k&&!i?h.utilities.pathToArray(c):h.get.defaultPathArray(c);c=h.utilities.arrayToPath(l),h.deactivate.all(),a.each(l,function(b,d){var m,n,p,q=l.slice(0,b+1),r=h.utilities.arrayToPath(q),s=h.is.tab(r),t=b+1==l.length,u=h.get.tabElement(r);return h.verbose("Looking for tab",d),s?(h.verbose("Tab was found",d),e=r,f=h.utilities.filterArray(l,q),t?p=!0:(m=l.slice(0,b+2),n=h.utilities.arrayToPath(m),p=!h.is.tab(n),p&&h.verbose("Tab parameters found",m)),p&&k?(i?(h.debug("Ignoring remote content on first tab load",r),o=!1,h.cache.add(c,u.html()),h.activate.all(r),a.proxy(j.onTabInit,u)(r,f,g),a.proxy(j.onTabLoad,u)(r,f,g)):(h.activate.navigation(r),h.content.fetch(r,c)),!1):(h.debug("Opened local tab",r),h.activate.all(r),h.cache.read(r)||(h.cache.add(r,!0),h.debug("First time tab loaded calling tab init"),a.proxy(j.onTabInit,u)(r,f,g)),a.proxy(j.onTabLoad,u)(r,f,g),void 0)):(h.error(v.missingTab,d),!1)})},content:{fetch:function(b,c){var i,k,l=h.get.tabElement(b),m={dataType:"html",stateContext:l,success:function(d){h.cache.add(c,d),h.content.update(b,d),b==e?(h.debug("Content loaded",b),h.activate.tab(b)):h.debug("Content loaded in background",b),a.proxy(j.onTabInit,l)(b,f,g),a.proxy(j.onTabLoad,l)(b,f,g)},urlData:{tab:c}},n=l.data(u.promise)||!1,o=n&&"pending"===n.state();c=c||b,k=h.cache.read(c),j.cache&&k?(h.debug("Showing existing content",c),h.content.update(b,k),h.activate.tab(b),a.proxy(j.onTabLoad,l)(b,f,g)):o?(h.debug("Content is already loading",c),l.addClass(t.loading)):a.api!==d?(console.log(j.apiSettings),i=a.extend(!0,{headers:{"X-Remote":!0}},j.apiSettings,m),h.debug("Retrieving remote content",c,i),a.api(i)):h.error(v.api)},update:function(a,b){h.debug("Updating html for",a);var c=h.get.tabElement(a);c.html(b)}},activate:{all:function(a){h.activate.tab(a),h.activate.navigation(a)},tab:function(a){var b=h.get.tabElement(a);h.verbose("Showing tab content for",b),b.addClass(t.active)},navigation:function(a){var b=h.get.navElement(a);h.verbose("Activating tab navigation for",b,a),b.addClass(t.active)}},deactivate:{all:function(){h.deactivate.navigation(),h.deactivate.tabs()},navigation:function(){k.removeClass(t.active)},tabs:function(){l.removeClass(t.active+" "+t.loading)}},is:{tab:function(a){return a!==d?h.get.tabElement(a).size()>0:!1}},get:{initialPath:function(){return k.eq(0).data(u.tab)||l.eq(0).data(u.tab)},path:function(){return a.address.value()},defaultPathArray:function(a){return h.utilities.pathToArray(h.get.defaultPath(a))},defaultPath:function(a){var b=k.filter("[data-"+u.tab+'^="'+a+'/"]').eq(0),c=b.data(u.tab)||!1;if(c){if(h.debug("Found default tab",c),p0?b:c},tab:function(){return e}},utilities:{filterArray:function(b,c){return a.grep(b,function(b){return-1==a.inArray(b,c)})},last:function(b){return a.isArray(b)?b[b.length-1]:!1},pathToArray:function(a){return a===d&&(a=e),"string"==typeof a?a.split("/"):[a]},arrayToPath:function(b){return a.isArray(b)?b.join("/"):!1}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,j,b);else{if(c===d)return j[b];j[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},debug:function(){j.debug&&(j.performance?h.performance.log(arguments):(h.debug=Function.prototype.bind.call(console.info,console,j.name+":"),h.debug.apply(console,arguments)))},verbose:function(){j.verbose&&j.debug&&(j.performance?h.performance.log(arguments):(h.verbose=Function.prototype.bind.call(console.info,console,j.name+":"),h.verbose.apply(console,arguments)))},error:function(){h.error=Function.prototype.bind.call(console.error,console,j.name+":"),h.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;j.performance&&(b=(new Date).getTime(),d=r||b,c=b-d,r=b,s.push({Element:q,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(h.performance.timer),h.performance.timer=setTimeout(h.performance.display,100)},display:function(){var b=j.name+":",c=0;r=!1,clearTimeout(h.performance.timer),a.each(s,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",m&&(b+=" '"+m+"'"),(console.group!==d||console.table!==d)&&s.length>0&&(console.groupCollapsed(b),console.table?console.table(s):a.each(s,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(b,c,e){var f,g,j;return c=c||B,e=q||e,"string"==typeof b&&y!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){var i=c!=f?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(y[e])&&c!=f)y=y[e];else{if(!a.isPlainObject(y[i])||c==f)return y[e]!==d?(g=y[e],!1):y[i]!==d?(g=y[i],!1):(h.error(v.method,b),!1);y=y[i]}})),a.isFunction(g)?j=g.apply(e,c):g!==d&&(j=g),a.isArray(i)?i.push(j):i!==d?i=[i,j]:j!==d&&(i=j),g}},A?(y===d&&h.initialize(),h.invoke(z)):(y!==d&&h.destroy(),h.initialize()),i!==d?i:this},a.tab=function(c){a(b).tab(c)},a.fn.tab.settings={name:"Tab",verbose:!0,debug:!0,performance:!0,namespace:"tab",onTabInit:function(){},onTabLoad:function(){},templates:{determineTitle:function(){}},auto:!1,history:!0,historyType:"hash",path:!1,context:"body",maxDepth:25,ignoreFirstLoad:!1,alwaysRefresh:!1,cache:!0,apiSettings:!1,error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Tab cannot be found",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",state:"The state library has not been initialized"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab"}}}(jQuery,window,document),function(a,b,c,d){a.fn.transition=function(){{var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments,k=j[0],l=[].slice.call(arguments,1),m="string"==typeof k;b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)}}return f.each(function(){var b,n,o,p,q,r,s,t,u,v,w=a(this),x=this;v={initialize:function(){b=v.get.settings.apply(x,j),v.verbose("Converted arguments into settings object",b),o=b.error,p=b.className,t=b.namespace,q=b.metadata,u="module-"+t,r=v.get.animationEvent(),s=v.get.animationName(),n=w.data(u),n===d&&v.instantiate(),m&&(m=v.invoke(k)),m===!1&&v.animate()},instantiate:function(){v.verbose("Storing instance of module",v),n=v,w.data(u,n)},destroy:function(){v.verbose("Destroying previous module for",x),w.removeData(u)},animate:function(a){return b=a||b,v.is.supported()?(v.debug("Preparing animation",b.animation),v.is.animating()?(b.queue&&v.queue(b.animation),!1):(v.save.conditions(),v.set.duration(b.duration),v.set.animating(),v.repaint(),w.addClass(p.transition).addClass(b.animation).one(r,v.complete),!v.has.direction()&&v.can.transition()&&v.set.direction(),v.has.transitionAvailable()?(v.show(),v.debug("Starting tween",b.animation,w.attr("class")),void 0):(v.restore.conditions(),v.error(o.noAnimation,b.animation),!1))):(v.error(o.support),!1)},queue:function(a){v.debug("Queueing animation of",a),n.queuing=!0,w.one(r,function(){n.queuing=!1,v.animate.apply(this,b)})},complete:function(){v.verbose("CSS animation complete",b.animation),v.is.looping()||(w.hasClass(p.outward)?(v.restore.conditions(),v.hide(),a.proxy(b.onHide,this)()):w.hasClass(p.inward)?(v.restore.conditions(),v.show(),a.proxy(b.onShow,this)()):v.restore.conditions(),v.remove.animating()),a.proxy(b.complete,this)()},forceRepaint:function(){v.verbose("Forcing element repaint");var a=w.parent(),b=w.next();0===b.size()?w.detach().appendTo(a):w.detach().insertBefore(b)},repaint:function(){v.verbose("Repainting element");x.offsetWidth},has:{direction:function(a){return a=a||b.animation,w.hasClass(p.inward)||w.hasClass(p.outward)?!0:void 0},transitionAvailable:function(){return"none"!==w.css(s)?(v.debug("CSS definition found"),!0):(v.debug("Unable to find css definition"),!1)}},set:{animating:function(){w.addClass(p.animating)},direction:function(){w.is(":visible")?(v.debug("Automatically determining the direction of animation","Outward"),w.addClass(p.outward).removeClass(p.inward)):(v.debug("Automatically determining the direction of animation","Inward"),w.addClass(p.inward).removeClass(p.outward))},looping:function(){v.debug("Transition set to loop"),w.addClass(p.looping)},duration:function(a){a=a||b.duration,a="number"==typeof a?a+"ms":a,v.verbose("Setting animation duration",a),w.css({"-webkit-animation-duration":a,"-moz-animation-duration":a,"-ms-animation-duration":a,"-o-animation-duration":a,"animation-duration":a})}},save:{conditions:function(){v.cache={className:w.attr("class"),style:w.attr("style")},v.verbose("Saving original attributes",v.cache)}},restore:{conditions:function(){return typeof v.cache===d?(v.error(o.cache),!1):(v.cache.className?w.attr("class",v.cache.className):w.removeAttr("class"),v.cache.style?w.attr("style",v.cache.style):w.removeAttr("style"),v.is.looping()&&v.remove.looping(),v.verbose("Restoring original attributes",v.cache),void 0)}},remove:{animating:function(){w.removeClass(p.animating)},looping:function(){v.debug("Transitions are no longer looping"),w.removeClass(p.looping),v.forceRepaint()}},get:{settings:function(b,c,d){return a.isPlainObject(b)?a.extend(!0,{},a.fn.transition.settings,b):"function"==typeof d?a.extend(!0,{},a.fn.transition.settings,{animation:b,complete:d,duration:c}):"string"==typeof c||"number"==typeof c?a.extend(!0,{},a.fn.transition.settings,{animation:b,duration:c}):"object"==typeof c?a.extend(!0,{},a.fn.transition.settings,c,{animation:b}):"function"==typeof c?a.extend(!0,{},a.fn.transition.settings,{animation:b,complete:c}):a.extend(!0,{},a.fn.transition.settings,{animation:b})},animationName:function(){var a,b=c.createElement("div"),e={animation:"animationName",OAnimation:"oAnimationName",MozAnimation:"mozAnimationName",WebkitAnimation:"webkitAnimationName"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor name property",e[a]),e[a];return!1},animationEvent:function(){var a,b=c.createElement("div"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"mozAnimationEnd",WebkitAnimation:"webkitAnimationEnd"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor end event",e[a]),e[a];return!1}},can:{transition:function(){var b=a("
").addClass(w.attr("class")).appendTo(a("body")),c=b.css(s),d=b.addClass(p.inward).css(s);return c!=d?(v.debug("In/out transitions exist"),b.remove(),!0):(v.debug("Static animation found"),b.remove(),!1)}},is:{animating:function(){return w.hasClass(p.animating)},looping:function(){return w.hasClass(p.looping)},visible:function(){return w.is(":visible")},supported:function(){return s!==!1&&r!==!1}},hide:function(){v.verbose("Hiding element"),w.removeClass(p.visible).addClass(p.transition).addClass(p.hidden),v.repaint()},show:function(){v.verbose("Showing element"),w.removeClass(p.hidden).addClass(p.transition).addClass(p.visible),v.repaint()},start:function(){v.verbose("Starting animation"),w.removeClass(p.disabled)},stop:function(){v.debug("Stopping animation"),w.addClass(p.disabled)},toggle:function(){v.debug("Toggling play status"),w.toggleClass(p.disabled)},setting:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){b.debug&&(b.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,b.name+":"),v.debug.apply(console,arguments)))},verbose:function(){b.verbose&&b.debug&&(b.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,b.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,b.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;b.performance&&(c=(new Date).getTime(),e=h||c,d=c-e,h=c,i.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var c=b.name+":",e=0;h=!1,clearTimeout(v.performance.timer),a.each(i,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",g&&(c+=" '"+g+"'"),f.size()>1&&(c+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(c),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i;return c=c||l,f=x||f,"string"==typeof b&&n!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(n[f])&&c!=g)n=n[f];else{if(n[f]!==d)return h=n[f],!1;if(!a.isPlainObject(n[e])||c==g)return n[e]!==d?(h=n[e],!1):!1;n=n[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h||!1}},v.initialize()}),e!==d?e:this},a.fn.transition.settings={name:"Transition",debug:!1,verbose:!0,performance:!0,namespace:"transition",complete:function(){},onShow:function(){},onHide:function(){},animation:"fade",duration:"700ms",queue:!0,className:{animating:"animating",disabled:"disabled",hidden:"hidden",inward:"in",loading:"loading",looping:"looping",outward:"out",transition:"ui transition",visible:"visible"},error:{noAnimation:"There is no css animation matching the one you specified.",method:"The method you called is not defined",support:"This browser does not support CSS animations"}}}(jQuery,window,document),function(a,b,c,d){a.fn.video=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.video.settings,b):a.extend({},a.fn.video.settings),n=m.selector,o=m.className,p=m.error,q=m.metadata,r=m.namespace,s="."+r,t="module-"+r,u=a(this),v=u.find(n.placeholder),w=u.find(n.playButton),x=u.find(n.embed),y=this,z=u.data(t);l={initialize:function(){l.debug("Initializing video"),v.on("click"+s,l.play),w.on("click"+s,l.play),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),z=l,u.data(t,l)},destroy:function(){l.verbose("Destroying previous instance of video"),u.removeData(t).off(s),v.off(s),w.off(s)},change:function(a,b,c){l.debug("Changing video to ",a,b,c),u.data(q.source,a).data(q.id,b).data(q.url,c),m.onChange()},reset:function(){l.debug("Clearing video embed and showing placeholder"),u.removeClass(o.active),x.html(" "),v.show(),m.onReset()},play:function(){l.debug("Playing video");var a=u.data(q.source)||!1,b=u.data(q.url)||!1,c=u.data(q.id)||!1;x.html(l.generate.html(a,c,b)),u.addClass(o.active),m.onPlay()},generate:{html:function(a,b,c){l.debug("Generating embed html");var d,e="auto"==m.width?u.width():m.width,f="auto"==m.height?u.height():m.height;return a&&b?"vimeo"==a?d='':"youtube"==a&&(d=''):c?d='':l.error(p.noVideo),d},url:function(a){var b=m.api?1:0,c=m.autoplay?1:0,d=m.hd?1:0,e=m.showUI?1:0,f=m.showUI?0:1,g="";return"vimeo"==a&&(g="api="+b+"&title="+e+"&byline="+e+"&portrait="+e+"&autoplay="+c,m.color&&(g+="&color="+m.color)),"ustream"==a?(g="autoplay="+c,m.color&&(g+="&color="+m.color)):"youtube"==a&&(g="enablejsapi="+b+"&autoplay="+c+"&autohide="+f+"&hq="+d+"&modestbranding=1",m.color&&(g+="&color="+m.color)),g +}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i;return e=e||k,f=y||f,"string"==typeof b&&z!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(z[f])&&c!=g)z=z[f];else{if(z[f]!==d)return h=z[f],!1;if(!a.isPlainObject(z[e])||c==g)return z[e]!==d?(h=z[e],!1):(l.error(p.method,b),!1);z=z[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(z===d&&l.initialize(),l.invoke(i)):(z!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.video.settings={name:"Video",namespace:"video",debug:!0,verbose:!0,performance:!0,metadata:{source:"source",id:"id",url:"url"},onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}}}(jQuery,window,document); diff --git a/public/resource/javascript/user_new_devices.js b/public/resource/javascript/user_new_devices.js new file mode 100644 index 0000000..14eb640 --- /dev/null +++ b/public/resource/javascript/user_new_devices.js @@ -0,0 +1,60 @@ +$(document).ready(function() { + //the dropdown menu + $('.ui.dropdown') + .dropdown({ + on:'hover' + }); + + $('.ui.selection.dropdown') + .dropdown(); + + $('.field .ui.image') + .dimmer({on: 'hover'}) + .dimmer('setting','duration',{ + show: 1, + hide: 100 + }); + + Gmap(); + function Gmap() { + var centerMarker = null; // 中心标记 + var center = new google.maps.LatLng(36.071883,120.4339423); + var initOptions = { + zoom: 10, + center: center, + mapTypeControl: false, + mapTypeId: google.maps.MapTypeId.ROADMAP + }; + + var map = new google.maps.Map(document.getElementById("locmap"), initOptions); + + google.maps.event.addListener(map, "click", function(event) { + if(centerMarker == null) + { + centerMarker = new google.maps.Marker( {position:new google.maps.LatLng(event.latLng.lat(), event.latLng.lng()), draggable:true, map:map} ); + google.maps.event.addListener(centerMarker, "dragend", function(event) { + var centerMarkerPos = centerMarker.getPosition(); + $("#device_lng").val(centerMarkerPos.lng()); + $("#device_lat").val(centerMarkerPos.lat()); + }); + } + else + { + centerMarker.setPosition(new google.maps.LatLng(event.latLng.lat(),event.latLng.lng())); + } + $("#device_lng").val(event.latLng.lng()); + $("#device_lat").val(event.latLng.lat()); + }); + + if($(".locmap").attr('edit_device') == "true") + { + centerMarker = new google.maps.Marker( {position:new google.maps.LatLng($("#device_lat").val(), $("#device_lng").val()), draggable:true, map:map} ); + google.maps.event.addListener(centerMarker, "dragend", function(event) { + var centerMarkerPos = centerMarker.getPosition(); + $("#device_lng").val(centerMarkerPos.lng()); + $("#device_lat").val(centerMarkerPos.lat()); + }); + } + } + +});