diff --git a/.travis.yml b/.travis.yml index e11ea2a4e..d3b5d276d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,38 @@ +sudo: false + +notifications: + email: false + language: php +cache: + directories: + - $HOME/.composer/cache + php: - 5.4 - 5.5 - - 5.6 env: - - DB=mysql - - DB=pgsql + matrix: + - DB=mysql + - DB=pgsql + global: + - PHPCS=0 + +matrix: + fast_finish: true + + include: + - php: 5.6 + env: PHPCS=1 DB=mysql + - php: 5.6 + env: DB=pgsql before_script: - - composer install -d app -o + - composer self-update + - composer install -d app --prefer-dist -o + - sh -c "if [ '$PHPCS' = '1' ]; then app/Vendor/bin/phpcs --config-set installed_paths app/Vendor/cakephp/cakephp-codesniffer; fi" - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE cakephp_test;'; fi" - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE cakephp_test;' -U postgres; fi" - chmod -R 777 ./app/tmp @@ -71,6 +93,4 @@ before_script: script: - ./app/Console/cake testsuite app All --stderr - -notifications: - email: false + - sh -c "if [ '$PHPCS' = '1' ]; then app/Vendor/bin/phpcs --standard=app/Test/ruleset.xml --warning-severity=8 -p app/Controller app/Model app/Lib app/Test app/View app/Plugin; fi" diff --git a/app/Config/bootstrap.php b/app/Config/bootstrap.php index 863211719..627c76ce7 100755 --- a/app/Config/bootstrap.php +++ b/app/Config/bootstrap.php @@ -220,7 +220,7 @@ * Add additional buttons to editor * @td document in namespace */ -Configure::write('Saito.markItUp.nextCssId', 10); +Configure::write('Saito.markItUp.nextCssId', 11); //= attach Saito event manager to Cake event manager App::uses('SaitoEventManager', 'Lib/Saito/Event'); diff --git a/app/Config/version.php b/app/Config/version.php index 2703ce321..61c2e9706 100644 --- a/app/Config/version.php +++ b/app/Config/version.php @@ -1,4 +1,4 @@ Security->unlockedActions = ['preview', 'solve', 'view']; $this->Auth->allow('feed', 'index', 'view', 'mix', 'update'); - if ($this->request->action === 'index') { - $this->_setAutoRefreshTime(); + switch ($this->request->action) { + case 'index': + $this->_setAutoRefreshTime(); + break; + case 'add': + case 'edit': + if ($this->Components->enabled('Security')) { + $this->Components->disable('Security'); + } } Stopwatch::stop('Entries->beforeFilter()'); diff --git a/app/Controller/SearchesController.php b/app/Controller/SearchesController.php index 3d09d3073..74565eb7f 100644 --- a/app/Controller/SearchesController.php +++ b/app/Controller/SearchesController.php @@ -41,7 +41,10 @@ public function simple() { // @todo pgsql $db = $this->Entry->getDataSource(); + // @codingStandardsIgnoreStart + // on 5.5 phpcs assumes this is the deprecated PHP MySQL extension if (!($db instanceof Mysql)) { + // @codingStandardsIgnoreEnd $this->redirect(['action' => 'advanced']); return; } diff --git a/app/Plugin/BbcodeParser/Lib/Editor.php b/app/Plugin/BbcodeParser/Lib/Editor.php index b52fb508a..83f2b43e3 100644 --- a/app/Plugin/BbcodeParser/Lib/Editor.php +++ b/app/Plugin/BbcodeParser/Lib/Editor.php @@ -56,6 +56,13 @@ public function getMarkupSet() { 'openWith' => '[spoiler]', 'closeWith' => '[/spoiler]' ], + 'Quote' => [ + 'name' => "", + 'className' => 'btn-markItUp-Quote', + 'title' => __('Cite'), + 'openWith' => '[quote]', + 'closeWith' => '[/quote]' + ], 'separator', 'Link' => array( 'name' => "", diff --git a/app/Plugin/BbcodeParser/Lib/Parser.php b/app/Plugin/BbcodeParser/Lib/Parser.php index 105f84e91..da61cfdab 100644 --- a/app/Plugin/BbcodeParser/Lib/Parser.php +++ b/app/Plugin/BbcodeParser/Lib/Parser.php @@ -54,7 +54,7 @@ class Parser extends \Saito\Markup\Parser { 'float' => [ 'type' => 'replacement', 'title' => 'float', - 'replacement' => '
{param}
' + 'replacement' => '
{param}
' ], // email 'email' => [ @@ -120,6 +120,12 @@ class Parser extends \Saito\Markup\Parser { 'type' => 'class', 'title' => 'urlWithAttributes' ], + // quotes + 'quote' => [ + 'type' => 'replacement', + 'title' => 'quote', + 'replacement' => '
{param}
' + ] ], 'multimedia' => [ 'embed' => [ diff --git a/app/Plugin/BbcodeParser/Test/Case/Lib/BbcodeParserTest.php b/app/Plugin/BbcodeParser/Test/Case/Lib/BbcodeParserTest.php index 912ef99a8..553ffa24d 100755 --- a/app/Plugin/BbcodeParser/Test/Case/Lib/BbcodeParserTest.php +++ b/app/Plugin/BbcodeParser/Test/Case/Lib/BbcodeParserTest.php @@ -28,6 +28,13 @@ public function testBold() { $this->assertTags($result, $expected); } + public function testQuoteblock() { + $input = '[quote]foo bar[/quote]'; + $expected = array('blockquote' => array(), 'foo bar', '/blockquote'); + $result = $this->_Parser->parse($input); + $this->assertTags($result, $expected); + } + public function testEmphasis() { $input = '[i]italic[/i]'; $expected = array('em' => array(), 'italic', '/em'); @@ -412,7 +419,9 @@ public function testFlash() { public function testFloat() { $expected = [ - 'div' => ['class' => 'richtext-float'], + ['div' => ['class' => 'clearfix']], + '/div', + ['div' => ['class' => 'richtext-float']], 'text', '/div', 'more' @@ -619,25 +628,25 @@ public function testExternalImage() { // test for standard URIs $input = '[img]http://localhost/img/macnemo.png[/img]'; - $expected = ''; + $expected = ''; $result = $this->_Parser->parse($input); $this->assertEquals($expected, $result); // test for URIs without protocol $input = '[img]/somewhere/macnemo.png[/img]'; - $expected = ''; + $expected = ''; $result = $this->_Parser->parse($input); $this->assertEquals($expected, $result); // test scaling with 1 parameter $input = '[img=50]http://localhost/img/macnemo.png[/img]'; - $expected = ''; + $expected = ''; $result = $this->_Parser->parse($input); $this->assertEquals($expected, $result); // test scaling with 2 parameters $input = '[img=50x100]http://localhost/img/macnemo.png[/img]'; - $expected = ''; + $expected = ''; $result = $this->_Parser->parse($input); $this->assertEquals($expected, $result); diff --git a/app/Plugin/BbcodeParser/docs/help/eng/1-bbcodes.md b/app/Plugin/BbcodeParser/docs/help/eng/1-bbcodes.md index 14cdc3deb..d19af23f3 100755 --- a/app/Plugin/BbcodeParser/docs/help/eng/1-bbcodes.md +++ b/app/Plugin/BbcodeParser/docs/help/eng/1-bbcodes.md @@ -152,6 +152,8 @@ If activated `[embed][/embed]` tries to embed the URL via [embed.ly](http:/ ### Float ### - [float]content[/float] + [float]float this to the side[/float] main content + … + [float]another float[/float] main content Floats the content to the side. \ No newline at end of file diff --git a/app/Plugin/Embedly/Locale/deu/LC_MESSAGES/embedly.po b/app/Plugin/Embedly/Locale/deu/LC_MESSAGES/embedly.po new file mode 100755 index 000000000..532783612 --- /dev/null +++ b/app/Plugin/Embedly/Locale/deu/LC_MESSAGES/embedly.po @@ -0,0 +1,2 @@ +msgid "plugin.embedly.contentLink" +msgstr "Inhalt auf %s anschauen." diff --git a/app/Plugin/Embedly/Locale/eng/LC_MESSAGES/embedly.po b/app/Plugin/Embedly/Locale/eng/LC_MESSAGES/embedly.po new file mode 100755 index 000000000..2ea3a10b1 --- /dev/null +++ b/app/Plugin/Embedly/Locale/eng/LC_MESSAGES/embedly.po @@ -0,0 +1,2 @@ +msgid "plugin.embedly.contentLink" +msgstr "See this content on %s." diff --git a/app/Plugin/Embedly/View/Helper/EmbedlyHelper.php b/app/Plugin/Embedly/View/Helper/EmbedlyHelper.php index eeb626eb9..1927bd7d6 100644 --- a/app/Plugin/Embedly/View/Helper/EmbedlyHelper.php +++ b/app/Plugin/Embedly/View/Helper/EmbedlyHelper.php @@ -52,6 +52,13 @@ public function embedly($string) { } $title .= $obj->title; $out = $this->Html->link($title, $obj->url, ['escape' => $escape]); + } elseif ($obj->type === 'link' && isset($obj->url)) { + $title = __d( + 'embedly', + 'plugin.embedly.contentLink', + [$obj->provider_name] + ); + $out = $this->Html->link($title, $obj->url); } return $out; diff --git a/app/Plugin/M/Controller/MsController.php b/app/Plugin/M/Controller/MsController.php index 4c9d02e31..050f4c648 100644 --- a/app/Plugin/M/Controller/MsController.php +++ b/app/Plugin/M/Controller/MsController.php @@ -23,6 +23,12 @@ public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('index', 'manifest'); + if ($this->request->action === 'clientLog') { + if ($this->Components->enabled('Security')) { + $this->Components->disable('Security'); + } + } + Configure::write('Asset.timestamp', 'force'); } @@ -37,6 +43,7 @@ public function clientLog() { $this->autoRender = false; if (isset($this->request->data['message'])) { $message = $this->request->data['message']; + $message = substr($message, 0, 500); echo CakeLog::error($message, 'mobile-client') ? 0 : 1; } else { echo 1; diff --git a/app/Plugin/M/View/Layouts/plugin-m.ctp b/app/Plugin/M/View/Layouts/plugin-m.ctp index 1143b7615..a5f576f32 100644 --- a/app/Plugin/M/View/Layouts/plugin-m.ctp +++ b/app/Plugin/M/View/Layouts/plugin-m.ctp @@ -21,18 +21,10 @@ }; element('custom_html_header') ?> - RequireJs->scriptTag($requireJsScript, ['jsUrl' => 'm/dev/js/']); - ?> - - - Html->script('M.../dist/js.js'); - } ?> + + + +
@@ -43,5 +35,14 @@
+RequireJs->scriptTag($requireJsScript, ['jsUrl' => 'm/dev/js/']); +} else { + echo $this->Html->script('M.../dist/js.js'); +} +?> diff --git a/app/Plugin/M/webroot/dist/common.css b/app/Plugin/M/webroot/dist/common.css index 1ce53f802..30a3cbe93 100644 --- a/app/Plugin/M/webroot/dist/common.css +++ b/app/Plugin/M/webroot/dist/common.css @@ -1,12 +1,12 @@ -/* +/*! Pure v0.2.2-pre Copyright 2013 Yahoo! Inc. All rights reserved. Licensed under the BSD License. https://github.com/yui/pure/blob/master/LICENSE.md -*//* +*//*! normalize.css v1.1.2 | MIT License | git.io/normalize Copyright (c) Nicolas Gallagher and Jonathan Neal -*//* normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}h2{font-size:1.5em;margin:0.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:0.83em;margin:1.67em 0}h6{font-size:0.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace, serif;_font-family:'courier new', monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-size:100%;*font-size:90%;*overflow:visible;padding:0.5em 1.5em 0.5em;color:#444;color:rgba(0,0,0,0.8);*color:#444;border:1px solid #999;border:none rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px;-webkit-font-smoothing:antialiased;-webkit-transition:0.1s linear -webkit-box-shadow;-moz-transition:0.1s linear -moz-box-shadow;-ms-transition:0.1s linear box-shadow;-o-transition:0.1s linear box-shadow;transition:0.1s linear box-shadow}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0,0.05)), to(rgba(0,0,0,0.1)));background-image:-webkit-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:-moz-linear-gradient(top, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.1));background-image:-ms-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:-o-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:linear-gradient(transparent,rgba(0,0,0,0.05) 40%,rgba(0,0,0,0.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,0.15) inset,0 0 6px rgba(0,0,0,0.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:none;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);-khtml-opacity:0.40;-moz-opacity:0.40;opacity:0.40;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form{margin:0}.pure-form fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}.pure-form legend{border:0;padding:0;white-space:normal;*margin-left:-7px}.pure-form button,.pure-form input,.pure-form select,.pure-form textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.pure-form button,.pure-form input{line-height:normal}.pure-form button,.pure-form input[type="button"],.pure-form input[type="reset"],.pure-form input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}.pure-form button[disabled],.pure-form input[disabled]{cursor:default}.pure-form input[type="checkbox"],.pure-form input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}.pure-form input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.pure-form input[type="search"]::-webkit-search-cancel-button,.pure-form input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}.pure-form button::-moz-focus-inner,.pure-form input::-moz-focus-inner{border:0;padding:0}.pure-form textarea{overflow:auto;vertical-align:top}.pure-form input[type="text"],.pure-form input[type="password"],.pure-form input[type="email"],.pure-form input[type="url"],.pure-form input[type="date"],.pure-form input[type="month"],.pure-form input[type="time"],.pure-form input[type="datetime"],.pure-form input[type="datetime-local"],.pure-form input[type="week"],.pure-form input[type="number"],.pure-form input[type="search"],.pure-form input[type="tel"],.pure-form input[type="color"],.pure-form select,.pure-form textarea{padding:0.5em 0.6em;display:inline-block;border:1px solid #ccc;font-size:0.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:0.3s linear border;-moz-transition:0.3s linear border;-ms-transition:0.3s linear border;-o-transition:0.3s linear border;transition:0.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}.pure-form input[type="text"]:focus,.pure-form input[type="password"]:focus,.pure-form input[type="email"]:focus,.pure-form input[type="url"]:focus,.pure-form input[type="date"]:focus,.pure-form input[type="month"]:focus,.pure-form input[type="time"]:focus,.pure-form input[type="datetime"]:focus,.pure-form input[type="datetime-local"]:focus,.pure-form input[type="week"]:focus,.pure-form input[type="number"]:focus,.pure-form input[type="search"]:focus,.pure-form input[type="tel"]:focus,.pure-form input[type="color"]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type="file"]:focus,.pure-form input[type="radio"]:focus,.pure-form input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:0.5em 0;display:block}.pure-form input[type="text"][disabled],.pure-form input[type="password"][disabled],.pure-form input[type="email"][disabled],.pure-form input[type="url"][disabled],.pure-form input[type="date"][disabled],.pure-form input[type="month"][disabled],.pure-form input[type="time"][disabled],.pure-form input[type="datetime"][disabled],.pure-form input[type="datetime-local"][disabled],.pure-form input[type="week"][disabled],.pure-form input[type="number"][disabled],.pure-form input[type="search"][disabled],.pure-form input[type="tel"][disabled],.pure-form input[type="color"][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border:1px solid #ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type="file"]:focus:invalid:focus,.pure-form input[type="radio"]:focus:invalid:focus,.pure-form input[type="checkbox"]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:white}.pure-form select[multiple]{height:auto}.pure-form label{margin:0.5em 0 0.2em;font-size:90%}.pure-form fieldset{margin:0;padding:0.35em 0 0.75em;border:0}.pure-form legend{display:block;width:100%;padding:0.3em 0;margin-bottom:0.3em;font-size:125%;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type="text"],.pure-form-stacked input[type="password"],.pure-form-stacked input[type="email"],.pure-form-stacked input[type="url"],.pure-form-stacked input[type="date"],.pure-form-stacked input[type="month"],.pure-form-stacked input[type="time"],.pure-form-stacked input[type="datetime"],.pure-form-stacked input[type="datetime-local"],.pure-form-stacked input[type="week"],.pure-form-stacked input[type="number"],.pure-form-stacked input[type="search"],.pure-form-stacked input[type="tel"],.pure-form-stacked input[type="color"],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:0.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned .pure-control-group{margin-bottom:0.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:0.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:0.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.pure-form-message{display:block;color:#666;font-size:90%}@media only screen and (max-width: 480px){.pure-form button[type="submit"]{margin:0.7em 0 0}.pure-form input[type="text"],.pure-form input[type="password"],.pure-form input[type="email"],.pure-form input[type="url"],.pure-form input[type="date"],.pure-form input[type="month"],.pure-form input[type="time"],.pure-form input[type="datetime"],.pure-form input[type="datetime-local"],.pure-form input[type="week"],.pure-form input[type="number"],.pure-form input[type="search"],.pure-form input[type="tel"],.pure-form input[type="color"],.pure-form label{margin-bottom:0.3em;display:block}.pure-group input[type="text"],.pure-group input[type="password"],.pure-group input[type="email"],.pure-group input[type="url"],.pure-group input[type="date"],.pure-group input[type="month"],.pure-group input[type="time"],.pure-group input[type="datetime"],.pure-group input[type="datetime-local"],.pure-group input[type="week"],.pure-group input[type="number"],.pure-group input[type="search"],.pure-group input[type="tel"],.pure-group input[type="color"]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:80%;padding:0.2em 0 0.8em}}.pure-g{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-g{word-spacing:-0.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-5-24,.pure-u-7-24,.pure-u-11-24,.pure-u-13-24,.pure-u-17-24,.pure-u-19-24,.pure-u-23-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1{width:100%}.pure-u-1-2{width:50%}.pure-u-1-3{width:33.33333%}.pure-u-2-3{width:66.66666%}.pure-u-1-4{width:25%}.pure-u-3-4{width:75%}.pure-u-1-5{width:20%}.pure-u-2-5{width:40%}.pure-u-3-5{width:60%}.pure-u-4-5{width:80%}.pure-u-1-6{width:16.666%}.pure-u-5-6{width:83.33%}.pure-u-1-8{width:12.5%}.pure-u-3-8{width:37.5%}.pure-u-5-8{width:62.5%}.pure-u-7-8{width:87.5%}.pure-u-1-12{width:8.3333%}.pure-u-5-12{width:41.6666%}.pure-u-7-12{width:58.3333%}.pure-u-11-12{width:91.6666%}.pure-u-1-24{width:4.1666%}.pure-u-5-24{width:20.8333%}.pure-u-7-24{width:29.1666%}.pure-u-11-24{width:45.8333%}.pure-u-13-24{width:54.1666%}.pure-u-17-24{width:70.8333%}.pure-u-19-24{width:79.1666%}.pure-u-23-24{width:95.8333%}.pure-g-r{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em}.opera-only :-o-prefocus,.pure-g-r{word-spacing:-0.43em}.pure-g-r img{max-width:100%}@media (min-width: 980px){.pure-visible-phone{display:none}.pure-visible-tablet{display:none}.pure-hidden-desktop{display:none}}@media (max-width: 480px){.pure-g-r>.pure-u,.pure-g-r>[class*="pure-u-"]{width:100%}}@media (max-width: 767px){.pure-g-r>.pure-u,.pure-g-r>[class*="pure-u-"]{width:100%}.pure-hidden-phone{display:none}.pure-visible-desktop{display:none}}@media (min-width: 768px) and (max-width: 979px){.pure-hidden-tablet{display:none}.pure-visible-desktop{display:none}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:none}.pure-menu a{border:1px solid transparent;border-left:none;border-right:none}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:0.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:none;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-0.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:0.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,0.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width: 480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid black}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial, sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}#nprogress{pointer-events:none;-webkit-pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:100;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d, 0 0 5px #29d;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-moz-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);-o-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}#nprogress .spinner{display:block;position:fixed;z-index:100;top:15px;right:15px}#nprogress .spinner-icon{width:14px;height:14px;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:10px;-webkit-animation:nprogress-spinner 400ms linear infinite;-moz-animation:nprogress-spinner 400ms linear infinite;-ms-animation:nprogress-spinner 400ms linear infinite;-o-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes nprogress-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes nprogress-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes nprogress-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}#nprogress{z-index:10000;position:relative}#nprogress .bar{background:#e74a00}#nprogress .peg{box-shadow:0 0 10px gray, 0 0 5px gray}#nprogress .spinner-icon{border-top-color:#e74a00;border-left-color:#e74a00}/* +*//*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}h2{font-size:1.5em;margin:0.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:0.83em;margin:1.67em 0}h6{font-size:0.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace, serif;_font-family:'courier new', monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-size:100%;*font-size:90%;*overflow:visible;padding:0.5em 1.5em 0.5em;color:#444;color:rgba(0,0,0,0.8);*color:#444;border:1px solid #999;border:none transparent;background-color:#E6E6E6;text-decoration:none;border-radius:2px;-webkit-font-smoothing:antialiased;-webkit-transition:0.1s linear -webkit-box-shadow;-moz-transition:0.1s linear -moz-box-shadow;-ms-transition:0.1s linear box-shadow;-o-transition:0.1s linear box-shadow;transition:0.1s linear box-shadow}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0,0.05)), to(rgba(0,0,0,0.1)));background-image:-webkit-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:-moz-linear-gradient(top, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.1));background-image:-ms-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:-o-linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1));background-image:linear-gradient(transparent, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,0.15) inset,0 0 6px rgba(0,0,0,0.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:none;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);-khtml-opacity:0.40;-moz-opacity:0.40;opacity:0.40;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form{margin:0}.pure-form fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}.pure-form legend{border:0;padding:0;white-space:normal;*margin-left:-7px}.pure-form button,.pure-form input,.pure-form select,.pure-form textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.pure-form button,.pure-form input{line-height:normal}.pure-form button,.pure-form input[type="button"],.pure-form input[type="reset"],.pure-form input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}.pure-form button[disabled],.pure-form input[disabled]{cursor:default}.pure-form input[type="checkbox"],.pure-form input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}.pure-form input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.pure-form input[type="search"]::-webkit-search-cancel-button,.pure-form input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}.pure-form button::-moz-focus-inner,.pure-form input::-moz-focus-inner{border:0;padding:0}.pure-form textarea{overflow:auto;vertical-align:top}.pure-form input[type="text"],.pure-form input[type="password"],.pure-form input[type="email"],.pure-form input[type="url"],.pure-form input[type="date"],.pure-form input[type="month"],.pure-form input[type="time"],.pure-form input[type="datetime"],.pure-form input[type="datetime-local"],.pure-form input[type="week"],.pure-form input[type="number"],.pure-form input[type="search"],.pure-form input[type="tel"],.pure-form input[type="color"],.pure-form select,.pure-form textarea{padding:0.5em 0.6em;display:inline-block;border:1px solid #ccc;font-size:0.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:0.3s linear border;-moz-transition:0.3s linear border;-ms-transition:0.3s linear border;-o-transition:0.3s linear border;transition:0.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}.pure-form input[type="text"]:focus,.pure-form input[type="password"]:focus,.pure-form input[type="email"]:focus,.pure-form input[type="url"]:focus,.pure-form input[type="date"]:focus,.pure-form input[type="month"]:focus,.pure-form input[type="time"]:focus,.pure-form input[type="datetime"]:focus,.pure-form input[type="datetime-local"]:focus,.pure-form input[type="week"]:focus,.pure-form input[type="number"]:focus,.pure-form input[type="search"]:focus,.pure-form input[type="tel"]:focus,.pure-form input[type="color"]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type="file"]:focus,.pure-form input[type="radio"]:focus,.pure-form input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:0.5em 0;display:block}.pure-form input[type="text"][disabled],.pure-form input[type="password"][disabled],.pure-form input[type="email"][disabled],.pure-form input[type="url"][disabled],.pure-form input[type="date"][disabled],.pure-form input[type="month"][disabled],.pure-form input[type="time"][disabled],.pure-form input[type="datetime"][disabled],.pure-form input[type="datetime-local"][disabled],.pure-form input[type="week"][disabled],.pure-form input[type="number"][disabled],.pure-form input[type="search"][disabled],.pure-form input[type="tel"][disabled],.pure-form input[type="color"][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border:1px solid #ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type="file"]:focus:invalid:focus,.pure-form input[type="radio"]:focus:invalid:focus,.pure-form input[type="checkbox"]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:white}.pure-form select[multiple]{height:auto}.pure-form label{margin:0.5em 0 0.2em;font-size:90%}.pure-form fieldset{margin:0;padding:0.35em 0 0.75em;border:0}.pure-form legend{display:block;width:100%;padding:0.3em 0;margin-bottom:0.3em;font-size:125%;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type="text"],.pure-form-stacked input[type="password"],.pure-form-stacked input[type="email"],.pure-form-stacked input[type="url"],.pure-form-stacked input[type="date"],.pure-form-stacked input[type="month"],.pure-form-stacked input[type="time"],.pure-form-stacked input[type="datetime"],.pure-form-stacked input[type="datetime-local"],.pure-form-stacked input[type="week"],.pure-form-stacked input[type="number"],.pure-form-stacked input[type="search"],.pure-form-stacked input[type="tel"],.pure-form-stacked input[type="color"],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:0.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned .pure-control-group{margin-bottom:0.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:0.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:0.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.pure-form-message{display:block;color:#666;font-size:90%}@media only screen and (max-width: 480px){.pure-form button[type="submit"]{margin:0.7em 0 0}.pure-form input[type="text"],.pure-form input[type="password"],.pure-form input[type="email"],.pure-form input[type="url"],.pure-form input[type="date"],.pure-form input[type="month"],.pure-form input[type="time"],.pure-form input[type="datetime"],.pure-form input[type="datetime-local"],.pure-form input[type="week"],.pure-form input[type="number"],.pure-form input[type="search"],.pure-form input[type="tel"],.pure-form input[type="color"],.pure-form label{margin-bottom:0.3em;display:block}.pure-group input[type="text"],.pure-group input[type="password"],.pure-group input[type="email"],.pure-group input[type="url"],.pure-group input[type="date"],.pure-group input[type="month"],.pure-group input[type="time"],.pure-group input[type="datetime"],.pure-group input[type="datetime-local"],.pure-group input[type="week"],.pure-group input[type="number"],.pure-group input[type="search"],.pure-group input[type="tel"],.pure-group input[type="color"]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:80%;padding:0.2em 0 0.8em}}.pure-g{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em;text-rendering:optimizespeed}.opera-only :-o-prefocus,.pure-g{word-spacing:-0.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-5-24,.pure-u-7-24,.pure-u-11-24,.pure-u-13-24,.pure-u-17-24,.pure-u-19-24,.pure-u-23-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1{width:100%}.pure-u-1-2{width:50%}.pure-u-1-3{width:33.33333%}.pure-u-2-3{width:66.66666%}.pure-u-1-4{width:25%}.pure-u-3-4{width:75%}.pure-u-1-5{width:20%}.pure-u-2-5{width:40%}.pure-u-3-5{width:60%}.pure-u-4-5{width:80%}.pure-u-1-6{width:16.666%}.pure-u-5-6{width:83.33%}.pure-u-1-8{width:12.5%}.pure-u-3-8{width:37.5%}.pure-u-5-8{width:62.5%}.pure-u-7-8{width:87.5%}.pure-u-1-12{width:8.3333%}.pure-u-5-12{width:41.6666%}.pure-u-7-12{width:58.3333%}.pure-u-11-12{width:91.6666%}.pure-u-1-24{width:4.1666%}.pure-u-5-24{width:20.8333%}.pure-u-7-24{width:29.1666%}.pure-u-11-24{width:45.8333%}.pure-u-13-24{width:54.1666%}.pure-u-17-24{width:70.8333%}.pure-u-19-24{width:79.1666%}.pure-u-23-24{width:95.8333%}.pure-g-r{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em}.opera-only :-o-prefocus,.pure-g-r{word-spacing:-0.43em}.pure-g-r img{max-width:100%}@media (min-width: 980px){.pure-visible-phone{display:none}.pure-visible-tablet{display:none}.pure-hidden-desktop{display:none}}@media (max-width: 480px){.pure-g-r>.pure-u,.pure-g-r>[class*="pure-u-"]{width:100%}}@media (max-width: 767px){.pure-g-r>.pure-u,.pure-g-r>[class*="pure-u-"]{width:100%}.pure-hidden-phone{display:none}.pure-visible-desktop{display:none}}@media (min-width: 768px) and (max-width: 979px){.pure-hidden-tablet{display:none}.pure-visible-desktop{display:none}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:none}.pure-menu a{border:1px solid transparent;border-left:none;border-right:none}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:0.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:none;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-0.31em;*letter-spacing:normal;*word-spacing:-0.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-0.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:0.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,0.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width: 480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid black}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial, sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d, 0 0 5px #29d;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#nprogress{z-index:10000;position:relative}#nprogress .bar{background:#e74a00}#nprogress .peg{box-shadow:0 0 10px gray, 0 0 5px gray}#nprogress .spinner-icon{border-top-color:#e74a00;border-left-color:#e74a00}/*! * Font Awesome 3.2.1 * the iconic font designed for Bootstrap * ------------------------------------------------------------------------------ @@ -30,4 +30,4 @@ Copyright (c) Nicolas Gallagher and Jonathan Neal * Email: dave@fontawesome.io * Twitter: http://twitter.com/byscuits * Work: Lead Product Designer @ Kyruus - http://kyruus.com - */@font-face{font-family:'FontAwesome';src:url("../dist/font/fontawesome-webfont.eot?v=3.2.1");src:url("../dist/font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../dist/font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../dist/font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../dist/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.33333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.14286em;text-align:right;padding-right:0.28571em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.42857em}.icons-ul{margin-left:2.14286em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.14286em;width:2.14286em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"],.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class^="icon-"],.nav-pills [class^="icon-"].icon-large,.nav-pills [class*=" icon-"],.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}.alertify-cover{position:fixed;z-index:9999;top:0;bottom:0;left:0;right:0}.alertify-dialog{position:fixed;z-index:99999;top:50px;left:50%;opacity:1;-webkit-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-ms-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}.alertify-resetFocus{border:0;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute}.alertify-text{margin-bottom:15px;width:100%;font-size:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify-button,.alertify-button:hover,.alertify-button:active,.alertify-button:visited{background:none;text-decoration:none;border:none;line-height:1.5;font-size:100%;display:inline-block;cursor:pointer;margin-left:5px}.is-alertify-cover-hidden{display:none}.is-alertify-dialog-hidden{opacity:0;display:none;-webkit-transform:translate(0, -150px);-moz-transform:translate(0, -150px);-ms-transform:translate(0, -150px);-o-transform:translate(0, -150px);transform:translate(0, -150px)}:root *>.is-alertify-dialog-hidden{display:block}.alertify-logs{position:fixed;z-index:9999}.alertify-log{position:relative;display:block;opacity:0;-webkit-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-ms-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}.is-alertify-log-showing{opacity:1}.is-alertify-log-hidden{opacity:0}.alertify-dialog{width:550px;margin-left:-275px;background:#FFF;border:10px solid #333333;border:10px solid rgba(0,0,0,0.7);border-radius:8px;box-shadow:0 3px 3px rgba(0,0,0,0.3);-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box}.alertify-dialog-inner{padding:25px}.alertify-inner{text-align:center}.alertify-text{border:1px solid #cccccc;padding:10px;border-radius:4px}.alertify-button{border-radius:4px;color:#FFF;font-weight:bold;padding:6px 15px;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.5);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);background-image:-webkit-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-moz-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-ms-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-o-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:linear-gradient(top, rgba(255,255,255,0.3),rgba(255,255,255,0))}.alertify-button:hover,.alertify-button:focus{outline:none;background-image:-webkit-linear-gradient(top, rgba(0,0,0,0.1), rgba(0,0,0,0));background-image:-moz-linear-gradient(top, rgba(0,0,0,0.1), rgba(0,0,0,0));background-image:-ms-linear-gradient(top, rgba(0,0,0,0.1), rgba(0,0,0,0));background-image:-o-linear-gradient(top, rgba(0,0,0,0.1), rgba(0,0,0,0));background-image:linear-gradient(top, rgba(0,0,0,0.1),rgba(0,0,0,0))}.alertify-button:focus{box-shadow:0 0 10px #2b72d5}.alertify-button:active{position:relative;box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.alertify-button-cancel,.alertify-button-cancel:hover,.alertify-button-cancel:focus{background-color:#fe1a00;border:1px solid #cb1500}.alertify-button-ok,.alertify-button-ok:hover,.alertify-button-ok:focus{background-color:#5cb811;border:1px solid #45890d}@media only screen and (max-width: 680px){.alertify-dialog{width:90%;left:5%;margin:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}.alertify-logs{position:fixed;z-index:9999;bottom:8px;right:8px;width:300px}.alertify-log{margin-top:8px;right:-300px;padding:16px 16px;border-radius:4px}.alertify-log-info{background:#1F1F1F;background:rgba(0,0,0,0.9);color:#FFF;text-shadow:-1px -1px 0 rgba(0,0,0,0.5)}.alertify-log-error{color:#FFF;background:#FE1A00;background:rgba(254,26,0,0.9)}.alertify-log-success{color:#FFF;background:#5CB811;background:rgba(92,184,17,0.9)}.is-alertify-log-showing{right:0}.is-alertify-log-hidden{right:-300px}html,body,button,input,select,textarea{font-family:'Helvetica Neue', Helvetica, Roboto, Verdana, Geneva, Lucida, Arial, sans-serif;color:#333;background-color:white;margin:0}a{text-decoration:none;color:#e74a00}ul{margin:0;padding:0;list-style-type:none}html,body{height:100%}.container,.content{position:absolute;top:0;bottom:0;left:0;right:0}.container-wrapper{overflow:hidden}.navbar.fixed{position:absolute;width:100%;right:0;left:0;z-index:1030}.content{top:44px;overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.container-index,.container-mix,.container-chat{-webkit-transition:-webkit-transform .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out;-ms-transition:-ms-transform .3s ease-in-out;-o-transition:-o-transform 0.3s ease-in-out;transition:transform .3s ease-in-out}.container-chat{z-index:1040;-webkit-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.container-chat.test-hidden{-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media only screen and (max-width: 640px){.container-index,.container-mix,.container-chat{-webkit-transition:-webkit-transform .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out;-ms-transition:-ms-transform .3s ease-in-out;-o-transition:-o-transform 0.3s ease-in-out;transition:transform .3s ease-in-out}.container-index{-webkit-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.container-index.hidden{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}.container-mix{-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.container-mix.hidden{-webkit-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}@media only screen and (min-width: 640px){.hide-tablet{display:none}.container-index{width:320px}.container-mix{left:320px;border-left:2px solid #fff}.container-mix,.container-mix.hidden{-webkit-transform:none;-ms-transform:none;-o-transform:none;transform:none}}@media only screen and (min-width: 890px){.hide-desktop{display:none}.container-mix.shoutbox{right:250px}.container-chat{left:auto;right:0;width:250px;display:block;border-left:2px solid white;box-sizing:border-box;-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:none;-ms-transition:none;-o-transition:none;transition:none}.container-chat.hidden{display:none}}.relative{position:relative}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.container-index .more{text-align:center;margin:10px 0 10px}.container,.content{background:white}.logo-placement:after{content:"Saito Forum";display:block;text-align:center;padding:10px;font-weight:bold;font-size:15px;font-size:3vmax;color:#999;letter-spacing:1px}#t{position:absolute;bottom:0px;right:0px;width:20px;height:20px;text-align:right}.c_t_h_3_abs h1,.navbar h1,.c_t_h_3_abs h2,.navbar h2,.c_t_h_3_abs h3,.navbar h3{margin:0;padding:0}.c_t_h_3_abs>div,.navbar>div{position:relative}.c_t_h_3_abs>div>div,.navbar>div>div{text-align:center;white-space:nowrap;vertical-align:middle}.c_t_h_3_abs>div>div:first-child,.navbar>div>div:first-child{position:absolute}.c_t_h_3_abs>div>div:last-child,.navbar>div>div:last-child{position:absolute;top:0;right:0;text-align:right}input[type=checkbox]{width:auto}input[type=checkbox]+label{width:auto}#content .pure-form .pure-control-group,#content .pure-form .pure-controls{width:100%;max-width:60em;margin:10px auto}#content .pure-form input,#content .pure-form select,#content .pure-form textarea{width:100%;border-radius:0;border:none;box-shadow:none;font-size:16px}#content .pure-form select{-webkit-appearance:none}#content .pure-form input[type='checkbox']{width:auto;margin-left:1em}.l-char-counter{position:absolute;right:0;bottom:0}.char-counter{padding:10px;opacity:0.5}.navbar{margin:0;height:44px;line-height:44px;background-color:white;box-shadow:0 1px 1px rgba(51,51,51,0.25)}.navbar .button{height:44px;width:44px;font-size:22px;line-height:44px;display:inline-block;text-align:center}.navbar>.center{text-align:center}.navbar>.right{text-align:right}#appmenudimmer{opacity:0;position:fixed;background:black;width:100%;height:100%;top:0;bottom:0;z-index:1999;-webkit-transition:opacity .5s ease-in-out;-moz-transition:opacity .5s ease-in-out;-ms-transition:opacity .5s ease-in-out;-o-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}#appmenudimmer.dimmed{opacity:0.5}#appmenu{position:fixed;z-index:2000;top:0px;bottom:0px;left:0px;width:200px;background-color:white;box-shadow:1px 0px 3px rgba(51,51,51,0.25);line-height:22px}#appmenu>a.close{display:block;line-height:22px;font-size:22px;text-align:right;padding:10px}#appmenu>ul>li{border-top:#f0f3f5 1px solid}#appmenu>ul>li>a{padding:10px;display:block}#appmenu>ul>li:last-child{border-bottom:#f0f3f5 1px solid}#appmenu{visibility:hidden;-webkit-transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);-o-transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}#appmenu.show{visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}#card-bottom{-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:scroll;position:fixed;top:0px;bottom:0px;left:0px;right:0px;z-index:1100;box-shadow:-1px 0 3px rgba(51,51,51,0.25);background-color:#f5f5f5;visibility:hidden;-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);-o-transform:translateY(100%);transform:translateY(100%)}#card-bottom.show{visibility:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.alertify-log,.is-alertify-log-hidden{right:0;word-wrap:break-word;-webkit-transform:translate3d(300px, 0, 0);-moz-transform:translate3d(300px, 0, 0);-o-transform:translate3d(300px, 0, 0);-ms-transform:translate3d(300px, 0, 0);transform:translate3d(300px, 0, 0)}.is-alertify-log-showing{-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.container-chat .content{font-size:13px}.container-chat .username{font-weight:bold}.container-chat .username>a{color:#333}.container-chat hr{margin:0;border:none}.container-chat img{max-width:100%}.container-chat .info_text{text-align:center;padding:5px;font-style:italic}.shout{padding:9px 10px;word-wrap:break-word}.shout a{display:inline !important;padding:0 !important}body.hide-no-shoutbox .hide-no-shoutbox{display:none}.content .spinner{height:100%;width:100%;position:absolute;top:50%}.content .spinner i{margin:-50px auto auto;display:block;height:100px;width:100px;font-size:100px;line-height:100px;text-align:center;color:#999}.content .spinner .animated{-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transistion-timing-function:ease;-webkit-animation:spinner 0.7s infinite linear;-moz-animation:spinner 0.7s infinite linear;-o-animation:spinner 0 0.7s infinite linear;animation:spinner 0.7 infinite linear}@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg) scale(1)}100%{-moz-transform:rotate(359deg) scale(0)}}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(180deg) scale(0.8)}100%{-webkit-transform:rotate(359deg) scale(1)}}@-o-keyframes spinner{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spinner{0%{transform:rotate(0deg) scale(1)}100%{transform:rotate(359deg) scale(0)}}.badgelet,.shout{margin-bottom:1px;background-color:#f0f3f5;text-shadow:0 1px 0px rgba(255,255,255,0.75);border:0px solid #dde3e6}.badgelet-link{display:block;padding:9px 10px;color:#333}.badgelet-title{display:block;margin:0;text-decoration:none;transition-property:color;font-size:15px;line-height:19px}.badgelet-infoline{margin:0;margin-top:5px;font-size:12px;line-height:14px;color:#999}.badgelet-unreadItems{display:inline-block;float:right;height:14px;color:#607d86;font-size:10px;text-align:right}.badgelet-author{margin-right:5px;font-weight:bold;color:#333}.badgelet-category{margin-right:5px}.badgelet-flag{margin-right:-10px;margin-top:-4px;padding:0;float:right;width:0px;height:0px;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #dde3e6 transparent;display:none}.badgelet-content{margin:0;padding:0;box-shadow:inset 0 0px 1px 1px rgba(51,51,51,0.25);display:none}.badgelet-content img,.badgelet-content object,.badgelet-content embed,.badgelet-content video,.badgelet-content iframe{max-width:100%}.badgelet-content-text{margin:0;padding:10px;font-size:15px;line-height:1.3em}.badgelet-content-text a{word-wrap:break-word}.badgelet-content-toolbar{padding:0 10px;font-size:14px}.badgelet-content-toolbar .right{float:right}.badgelet-content-toolbar i{font-size:20px;vertical-align:text-top}.badgelet-content-toolbar .icon-edit{font-size:22px}.badgelet-content-toolbar a{padding:10px;height:24px;display:inline-block;text-decoration:none}.badgelet-first{background-color:#dae4eb}.badgelet.is-selected,.is-selected.shout{background-color:#dae4eb}.badgelet.is-flagged,.is-flagged.shout{border-left-color:#607d86}.badgelet.is-flagged .badgelet-flag,.is-flagged.shout .badgelet-flag{border-bottom-color:#607d86;display:block} + */@font-face{font-family:'FontAwesome';src:url("../dist/font/fontawesome-webfont.eot?v=3.2.1");src:url("../dist/font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../dist/font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../dist/font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../dist/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.33333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.14286em;text-align:right;padding-right:0.28571em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.42857em}.icons-ul{margin-left:2.14286em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.14286em;width:2.14286em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}.nav-tabs [class^="icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"],.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class^="icon-"],.nav-pills [class^="icon-"].icon-large,.nav-pills [class*=" icon-"],.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}.alertify-cover{position:fixed;z-index:9999;top:0;bottom:0;left:0;right:0}.alertify-dialog{position:fixed;z-index:99999;top:50px;left:50%;opacity:1;-webkit-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-ms-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}.alertify-resetFocus{border:0;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute}.alertify-text{margin-bottom:15px;width:100%;font-size:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify-button,.alertify-button:hover,.alertify-button:active,.alertify-button:visited{background:none;text-decoration:none;border:none;line-height:1.5;font-size:100%;display:inline-block;cursor:pointer;margin-left:5px}.is-alertify-cover-hidden{display:none}.is-alertify-dialog-hidden{opacity:0;display:none;-webkit-transform:translate(0, -150px);-moz-transform:translate(0, -150px);-ms-transform:translate(0, -150px);-o-transform:translate(0, -150px);transform:translate(0, -150px)}:root *>.is-alertify-dialog-hidden{display:block}.alertify-logs{position:fixed;z-index:9999}.alertify-log{position:relative;display:block;opacity:0;-webkit-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-moz-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-ms-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);-o-transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:all 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}.is-alertify-log-showing{opacity:1}.is-alertify-log-hidden{opacity:0}.alertify-dialog{width:550px;margin-left:-275px;background:#FFF;border:10px solid #333333;border:10px solid rgba(0,0,0,0.7);border-radius:8px;box-shadow:0 3px 3px rgba(0,0,0,0.3);-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box}.alertify-dialog-inner{padding:25px}.alertify-inner{text-align:center}.alertify-text{border:1px solid #cccccc;padding:10px;border-radius:4px}.alertify-button{border-radius:4px;color:#FFF;font-weight:bold;padding:6px 15px;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.5);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);background-image:-webkit-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-moz-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-ms-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:-o-linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0));background-image:linear-gradient(top, rgba(255,255,255,0.3), rgba(255,255,255,0))}.alertify-button:hover,.alertify-button:focus{outline:none;background-image:-webkit-linear-gradient(top, rgba(0,0,0,0.1), transparent);background-image:-moz-linear-gradient(top, rgba(0,0,0,0.1), transparent);background-image:-ms-linear-gradient(top, rgba(0,0,0,0.1), transparent);background-image:-o-linear-gradient(top, rgba(0,0,0,0.1), transparent);background-image:linear-gradient(top, rgba(0,0,0,0.1), transparent)}.alertify-button:focus{box-shadow:0 0 10px #2b72d5}.alertify-button:active{position:relative;box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.alertify-button-cancel,.alertify-button-cancel:hover,.alertify-button-cancel:focus{background-color:#fe1a00;border:1px solid #cb1500}.alertify-button-ok,.alertify-button-ok:hover,.alertify-button-ok:focus{background-color:#5cb811;border:1px solid #45890d}@media only screen and (max-width: 680px){.alertify-dialog{width:90%;left:5%;margin:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}.alertify-logs{position:fixed;z-index:9999;bottom:8px;right:8px;width:300px}.alertify-log{margin-top:8px;right:-300px;padding:16px 16px;border-radius:4px}.alertify-log-info{background:#1F1F1F;background:rgba(0,0,0,0.9);color:#FFF;text-shadow:-1px -1px 0 rgba(0,0,0,0.5)}.alertify-log-error{color:#FFF;background:#FE1A00;background:rgba(254,26,0,0.9)}.alertify-log-success{color:#FFF;background:#5CB811;background:rgba(92,184,17,0.9)}.is-alertify-log-showing{right:0}.is-alertify-log-hidden{right:-300px}html,body,button,input,select,textarea{font-family:'Helvetica Neue', Helvetica, Roboto, Verdana, Geneva, Lucida, Arial, sans-serif;color:#333;background-color:white;margin:0}a{text-decoration:none;color:#e74a00}ul{margin:0;padding:0;list-style-type:none}html,body{height:100%}.container,.content{position:absolute;top:0;bottom:0;left:0;right:0}.container-wrapper{overflow:hidden}.navbar.fixed{position:absolute;width:100%;right:0;left:0;z-index:1030}.content{top:44px;overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.container-index,.container-mix,.container-chat{-webkit-transition:-webkit-transform .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out;-ms-transition:-ms-transform .3s ease-in-out;-o-transition:-o-transform 0.3s ease-in-out;transition:transform .3s ease-in-out}.container-chat{z-index:1040;-webkit-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.container-chat.test-hidden{-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media only screen and (max-width: 640px){.container-index,.container-mix,.container-chat{-webkit-transition:-webkit-transform .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out;-ms-transition:-ms-transform .3s ease-in-out;-o-transition:-o-transform 0.3s ease-in-out;transition:transform .3s ease-in-out}.container-index{-webkit-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.container-index.hidden{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}.container-mix{-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.container-mix.hidden{-webkit-transform:translate3d(100%, 0, 0);-ms-transform:translate3d(100%, 0, 0);-o-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}@media only screen and (min-width: 640px){.hide-tablet{display:none}.container-index{width:320px}.container-mix{left:320px;border-left:2px solid #fff}.container-mix,.container-mix.hidden{-webkit-transform:none;-ms-transform:none;-o-transform:none;transform:none}}@media only screen and (min-width: 890px){.hide-desktop{display:none}.container-mix.shoutbox{right:250px}.container-chat{left:auto;right:0;width:250px;display:block;border-left:2px solid white;box-sizing:border-box;-webkit-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:none;-ms-transition:none;-o-transition:none;transition:none}.container-chat.hidden{display:none}}.relative{position:relative}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.container-index .more{text-align:center;margin:10px 0 10px}.container,.content{background:white}.logo-placement:after{content:"Saito Forum";display:block;text-align:center;padding:10px;font-weight:bold;font-size:15px;font-size:3vmax;color:#999;letter-spacing:1px}#t{position:absolute;bottom:0px;right:0px;width:20px;height:20px;text-align:right}.c_t_h_3_abs h1,.navbar h1,.c_t_h_3_abs h2,.navbar h2,.c_t_h_3_abs h3,.navbar h3{margin:0;padding:0}.c_t_h_3_abs>div,.navbar>div{position:relative}.c_t_h_3_abs>div>div,.navbar>div>div{text-align:center;white-space:nowrap;vertical-align:middle}.c_t_h_3_abs>div>div:first-child,.navbar>div>div:first-child{position:absolute}.c_t_h_3_abs>div>div:last-child,.navbar>div>div:last-child{position:absolute;top:0;right:0;text-align:right}input[type=checkbox]{width:auto}input[type=checkbox]+label{width:auto}#content .pure-form .pure-control-group,#content .pure-form .pure-controls{width:100%;max-width:60em;margin:10px auto}#content .pure-form input,#content .pure-form select,#content .pure-form textarea{width:100%;border-radius:0;border:none;box-shadow:none;font-size:16px}#content .pure-form select{-webkit-appearance:none}#content .pure-form input[type='checkbox']{width:auto;margin-left:1em}.l-char-counter{position:absolute;right:0;bottom:0}.char-counter{padding:10px;opacity:0.5}.navbar{margin:0;height:44px;line-height:44px;background-color:white;box-shadow:0 1px 1px rgba(51,51,51,0.25)}.navbar .button{height:44px;width:44px;font-size:22px;line-height:44px;display:inline-block;text-align:center}.navbar>.center{text-align:center}.navbar>.right{text-align:right}#appmenudimmer{opacity:0;position:fixed;background:black;width:100%;height:100%;top:0;bottom:0;z-index:1999;-webkit-transition:opacity .5s ease-in-out;-moz-transition:opacity .5s ease-in-out;-ms-transition:opacity .5s ease-in-out;-o-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}#appmenudimmer.dimmed{opacity:0.5}#appmenu{position:fixed;z-index:2000;top:0px;bottom:0px;left:0px;width:200px;background-color:white;box-shadow:1px 0px 3px rgba(51,51,51,0.25);line-height:22px}#appmenu>a.close{display:block;line-height:22px;font-size:22px;text-align:right;padding:10px}#appmenu>ul>li{border-top:#f0f3f5 1px solid}#appmenu>ul>li>a{padding:10px;display:block}#appmenu>ul>li:last-child{border-bottom:#f0f3f5 1px solid}#appmenu{visibility:hidden;-webkit-transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);-o-transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);transition:0.5s cubic-bezier(0.09, 0.68, 0, 0.99);-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}#appmenu.show{visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}#card-bottom{-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:scroll;position:fixed;top:0px;bottom:0px;left:0px;right:0px;z-index:1100;box-shadow:-1px 0 3px rgba(51,51,51,0.25);background-color:#f5f5f5;visibility:hidden;-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);-o-transform:translateY(100%);transform:translateY(100%)}#card-bottom.show{visibility:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.alertify-log,.is-alertify-log-hidden{right:0;word-wrap:break-word;-webkit-transform:translate3d(300px, 0, 0);-moz-transform:translate3d(300px, 0, 0);-o-transform:translate3d(300px, 0, 0);-ms-transform:translate3d(300px, 0, 0);transform:translate3d(300px, 0, 0)}.is-alertify-log-showing{-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.container-chat .content{font-size:13px}.container-chat .username{font-weight:bold}.container-chat .username>a{color:#333}.container-chat hr{margin:0;border:none}.container-chat img{max-width:100%}.container-chat .info_text{text-align:center;padding:5px;font-style:italic}.shout{padding:9px 10px;word-wrap:break-word}.shout a{display:inline !important;padding:0 !important}body.hide-no-shoutbox .hide-no-shoutbox{display:none}.content .spinner{height:100%;width:100%;position:absolute;top:50%}.content .spinner i{margin:-50px auto auto;display:block;height:100px;width:100px;font-size:100px;line-height:100px;text-align:center;color:#999}.content .spinner .animated{-moz-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transistion-timing-function:ease;-webkit-animation:spinner 0.7s infinite linear;-moz-animation:spinner 0.7s infinite linear;-o-animation:spinner 0 0.7s infinite linear;animation:spinner 0.7 infinite linear}@-moz-keyframes spinner{0%{-moz-transform:rotate(0deg) scale(1)}100%{-moz-transform:rotate(359deg) scale(0.8)}}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(180deg) scale(0.8)}100%{-webkit-transform:rotate(359deg) scale(1)}}@-o-keyframes spinner{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spinner{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spinner{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(359deg) scale(0.8)}100%{transform:rotate(359deg) scale(1)}}.badgelet,.shout{margin-bottom:1px;background-color:#f0f3f5;text-shadow:0 1px 0px rgba(255,255,255,0.75);border:0px solid #dde3e6}.badgelet-link{display:block;padding:9px 10px;color:#333}.badgelet-title{display:block;margin:0;text-decoration:none;transition-property:color;font-size:15px;line-height:19px}.badgelet-infoline{margin:0;margin-top:5px;font-size:12px;line-height:14px;color:#999}.badgelet-unreadItems{display:inline-block;float:right;height:14px;color:#607d86;font-size:10px;text-align:right}.badgelet-author{margin-right:5px;font-weight:bold;color:#333}.badgelet-category{margin-right:5px}.badgelet-flag{margin-right:-10px;margin-top:-4px;padding:0;float:right;width:0px;height:0px;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #dde3e6 transparent;display:none}.badgelet-content{margin:0;padding:0;box-shadow:inset 0 0px 1px 1px rgba(51,51,51,0.25);display:none}.badgelet-content img,.badgelet-content object,.badgelet-content embed,.badgelet-content video,.badgelet-content iframe{max-width:100%}.badgelet-content-text{margin:0;padding:10px;font-size:15px;line-height:1.3em}.badgelet-content-text a{word-wrap:break-word}.badgelet-content-toolbar{padding:0 10px;font-size:14px}.badgelet-content-toolbar .right{float:right}.badgelet-content-toolbar i{font-size:20px;vertical-align:text-top}.badgelet-content-toolbar .icon-edit{font-size:22px}.badgelet-content-toolbar a{padding:10px;height:24px;display:inline-block;text-decoration:none}.badgelet-first{background-color:#dae4eb}.badgelet.is-selected,.is-selected.shout{background-color:#dae4eb}.badgelet.is-flagged,.is-flagged.shout{border-left-color:#607d86}.badgelet.is-flagged .badgelet-flag,.is-flagged.shout .badgelet-flag{border-bottom-color:#607d86;display:block} diff --git a/app/Plugin/M/webroot/dist/js.js b/app/Plugin/M/webroot/dist/js.js index 129b171da..6e663ccd9 100644 --- a/app/Plugin/M/webroot/dist/js.js +++ b/app/Plugin/M/webroot/dist/js.js @@ -35,7 +35,7 @@ var requirejs,require,define; [q],!0});define=function(b,c,e){var h,j;"string"!==typeof b&&(e=c,c=b,b=null);I(c)||(e=c,c=null);!c&&H(e)&&(c=[],e.length&&(e.toString().replace(la,"").replace(ma,function(b,e){c.push(e)}),c=(1===e.length?["require"]:["require","exports","module"]).concat(c)));if(O){if(!(h=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),h=P;h&&(b||(b=h.getAttribute("data-requiremodule")),j=E[h.getAttribute("data-requirecontext")])}(j? j.defQueue:R).push([b,c,e])};define.amd={jQuery:!0};j.exec=function(b){return eval(b)};j(s)}})(this); /*! - * jQuery JavaScript Library v2.1.0 + * jQuery JavaScript Library v2.1.4 * http://jquery.com/ * * Includes Sizzle.js @@ -45,28 +45,28 @@ var requirejs,require,define; * Released under the MIT license * http://jquery.org/license * - * Date: 2014-01-23T21:10Z + * Date: 2015-04-28T16:01Z */ /*! - * Sizzle CSS Selector Engine v1.10.16 + * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * - * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2014-01-13 + * Date: 2014-12-16 */ /** * @license - * Lo-Dash 2.4.1 (Custom Build) + * Lo-Dash 2.4.2 (Custom Build) * Build: `lodash modern -o ./dist/lodash.js` * Copyright 2012-2013 The Dojo Foundation * Based on Underscore.js 1.5.2 * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license + * Available under MIT license */ // (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors @@ -75,7 +75,7 @@ var requirejs,require,define; // http://backbonejs.org /** - * @license RequireJS text 2.0.10 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved. + * @license RequireJS text 2.0.12 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/requirejs/text for details */ @@ -108,31 +108,29 @@ THE SOFTWARE. */ /*! - Autosize v1.18.7 - 2014-04-13 - Automatically adjust textarea height based on user input. - (c) 2014 Jack Moore - http://www.jacklmoore.com/autosize - license: http://www.opensource.org/licenses/mit-license.php + Autosize 1.18.18 + license: MIT + http://www.jacklmoore.com/autosize */ /*! alertify 0.4.0rc1 (Fabien Doiron) | MIT */ -/*! NProgress (c) 2013, Rico Sta. Cruz - * http://ricostacruz.com/nprogress */ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ /** - * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. - * - * @version 1.0.1 - * @codingstandard ftlabs-jsv2 - * @copyright The Financial Times Limited [All Rights Reserved] - * @license MIT License (see LICENSE.txt) - */ - -function FastClick(e,t){function n(e,t){return function(){return e.apply(t,arguments)}}var i;if(t=t||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=t.touchBoundary||10,this.layer=e,this.tapDelay=t.tapDelay||200,!FastClick.notNeeded(e)){for(var r=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,o=0,a=r.length;a>o;o++)s[r[o]]=n(s[r[o]],s);deviceIsAndroid&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,i){var r=Node.prototype.removeEventListener;"click"===t?r.call(e,t,n.hijacked||n,i):r.call(e,t,n,i)},e.addEventListener=function(t,n,i){var r=Node.prototype.addEventListener;"click"===t?r.call(e,t,n.hijacked||(n.hijacked=function(e){e.propagationStopped||n(e)}),i):r.call(e,t,n,i)}),"function"==typeof e.onclick&&(i=e.onclick,e.addEventListener("click",function(e){i(e)},!1),e.onclick=null)}}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=et.type(e);return"function"===n||et.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(et.isFunction(t))return et.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return et.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(at.test(t))return et.filter(t,e,n);t=et.filter(t,e)}return et.grep(e,function(e){return W.call(t,e)>=0!==n})}function r(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){var t=dt[e]={};return et.each(e.match(ft)||[],function(e,n){t[n]=!0}),t}function o(){K.removeEventListener("DOMContentLoaded",o,!1),e.removeEventListener("load",o,!1),et.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=et.expando+Math.random()}function u(e,t,n){var i;if(void 0===n&&1===e.nodeType)if(i="data-"+t.replace(xt,"-$1").toLowerCase(),n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:bt.test(n)?et.parseJSON(n):n}catch(r){}yt.set(e,t,n)}else n=void 0;return n}function l(){return!0}function c(){return!1}function h(){try{return K.activeElement}catch(e){}}function p(e,t){return et.nodeName(e,"table")&&et.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function f(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function d(e){var t=Pt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,i=e.length;i>n;n++)vt.set(e[n],"globalEval",!t||vt.get(t[n],"globalEval"))}function m(e,t){var n,i,r,s,o,a,u,l;if(1===t.nodeType){if(vt.hasData(e)&&(s=vt.access(e),o=vt.set(t,s),l=s.events)){delete o.handle,o.events={};for(r in l)for(n=0,i=l[r].length;i>n;n++)et.event.add(t,r,l[r][n])}yt.hasData(e)&&(a=yt.access(e),u=et.extend({},a),yt.set(t,u))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&et.nodeName(e,t)?et.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ct.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function b(t,n){var i=et(n.createElement(t)).appendTo(n.body),r=e.getDefaultComputedStyle?e.getDefaultComputedStyle(i[0]).display:et.css(i[0],"display");return i.detach(),r}function x(e){var t=K,n=Rt[e];return n||(n=b(e,t),"none"!==n&&n||(Mt=(Mt||et("\n' -}),define("text!templates/spinner.html",[],function(){return'
\n
\n
\n
\n
\n
\n
'}),define("views/uploadNew",["jquery","underscore","backbone","../../dev/vendors/jquery-filedrop/jquery.filedrop","models/app","text!templates/uploadNew.html","text!templates/spinner.html","humanize"],function(e,t,i,n,o,s,a,r){var l=i.View.extend({className:"panel upload_box upload-new",wasChild:"unset",events:{"change #Upload0File":"_uploadManual"},initialize:function(e){this.uploadUrl=o.settings.get("webroot")+"uploads/add",this.collection=e.collection},_initDropUploader:function(){this._browserSupportsDragAndDrop()&&window.FileReader?this.$(".upload-layer").filedrop({maxfiles:1,maxfilesize:o.settings.get("upload_max_img_size")/1024,url:this.uploadUrl,paramname:"data[Upload][0][file]",allowedfiletypes:["image/jpeg","image/jpg","image/png","image/gif"],dragOver:t.bind(function(){this._showDragIndicator()},this),dragLeave:t.bind(function(){this._hideDragIndicator()},this),uploadFinished:t.bind(function(e,t,i){this._postUpload(i)},this),beforeSend:t.bind(function(e,t,i){this._hideDragIndicator(),this._setUploadSpinner(),i()},this),error:t.bind(function(t,i){var n;switch(this._hideDragIndicator(),t){case"FileTypeNotAllowed":n=e.i18n.__("upload_fileTypeNotAllowed");break;case"FileTooLarge":n=e.i18n.__("upload_fileToLarge",{name:i.name});break;case"BrowserNotSupported":n=e.i18n.__("upload_browserNotSupported");break;case"TooManyFiles":n=e.i18n.__("upload_toManyFiles");break;default:n=t}o.eventBus.trigger("notification",{title:"Error",message:n,type:"error"})},this)}):this.$("h2").html(e.i18n.__("Upload"))},_browserSupportsDragAndDrop:function(){var e=this.$(".upload-layer")[0];return"draggable"in e||"ondragstart"in e&&"ondrop"in e},_showDragIndicator:function(){this.$(".upload-drag-indicator").fadeIn()},_hideDragIndicator:function(){this.$(".upload-drag-indicator").fadeOut()},_setUploadSpinner:function(){this.$(".upload_box_header").html(a)},_uploadManual:function(e){var t,i,n=!0;e.preventDefault();try{t=new FormData,i=this.$("#Upload0File")[0],t.append(i.name,i.files[0])}catch(o){n=!1}this._setUploadSpinner(),n?this._uploadAjax(t):this._uploadIFrame()},_uploadIFrame:function(){var e=this.$("form"),i=this.$("#uploadIFrame");i.load(t.bind(function(){this._postUpload(i.contents().find("body").html()),i.off("load")},this)),e.submit()},_uploadAjax:function(e){var i=new XMLHttpRequest;i.open("POST",this.uploadUrl),i.onloadend=t.bind(function(e){this._postUpload(e.target.response)},this),i.onerror=this._onUploadError,i.send(e)},_onUploadError:function(){o.eventBus.trigger("notification",{type:"error",message:e.i18n.__("upload_genericError")})},_postUpload:function(e){if(t.isString(e))try{e=JSON.parse(e)}catch(i){this._onUploadError()}o.eventBus.trigger("notification",e),this.collection.fetch({reset:!0}),this.render()},render:function(){return this.$el.html(t.template(s)({url:this.uploadUrl,upload_size:r.filesize(o.settings.get("upload_max_img_size"))})),this._initDropUploader(),this}});return l}),define("text!templates/uploads.html",[],function(){return'
\n
\n
\n
\n'}),define("views/uploads",["jquery","underscore","backbone","models/app","collections/uploads","views/upload","views/uploadNew","text!templates/uploads.html"],function(e,t,i,n,o,s,a,r){var l=i.View.extend({events:{"click .current .btn-submit":"_closeDialog"},initialize:function(e){this.textarea=e.textarea,this.collection=new o({url:n.settings.get("webroot")}),this.listenTo(this.collection,"reset",this._addAll),this.$(".body").html(t.template(r)),this.uploadNewView=new a({collection:this.collection}),this.$(".content").append(this.uploadNewView.el),this.render(),this.collection.fetch({reset:!0})},_addOne:function(e){var t=new s({model:e,textarea:this.textarea});this.$(".upload-new").after(t.render().el)},_addAll:function(){this._removeAll(),this.collection.each(this._addOne,this)},_removeAll:function(){this.$(".upload_box.current").remove()},_setDialogSize:function(){this.$el.dialog("option","width",window.innerWidth-80),this.$el.dialog("option","height",window.innerHeight-80)},_closeDialog:function(){this.$el.dialog("close")},render:function(){return this.uploadNewView.render(),this.$el.dialog({title:e.i18n.__("Upload"),modal:!0,draggable:!1,resizable:!1,position:[40,40],hide:"fade"}),this._setDialogSize(),e(window).resize(t.bind(function(){this._setDialogSize()},this)),window.onorientationchange=t.bind(function(){this._setDialogSize()},this),this}});return l}),define("lib/saito/markItUp.media",["jquery","underscore"],function(e,t){var i={cleanUp:function(e){return e=e.replace(/https:\/\/www\.dropbox\.com\//,"https://dl.dropbox.com/")}},n={rawUrlCleaner:[i],multimedia:function(i,o){var s=e.trim(i),a="([\\/?]|$)",r=new RegExp("\\.(png|gif|jpg|jpeg|webp)"+a,"i"),l=new RegExp("\\.(mp4|webm|m4v)"+a,"i"),d=new RegExp("\\.(m4a|ogg|mp3|wav|opus)"+a,"i"),c=/.*?<\/iframe>/i.exec(e)[1];return t=t.replace(/["']/g,""),"[iframe"+t+"][/iframe]"},_videoFallback:function(e){var t,i="";if(/http/.test(e)===!1&&(e="http://"+e),/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i.test(e)){var o=e.match(/(https?:\/\/)?(www\.)?(.[^\/:]+)/i).pop();if("youtu.be"===o&&/youtu.be\/(.*?)(&.*)?$/.test(e))return t=e.match(/youtu.be\/(.*?)(&.*)?$/)[1],i=n._createIframe({url:"//www.youtube.com/embed/"+t}),i=n._videoIframe(i);if("youtube.com"===o)return/v=(.*?)(&.*)?$/.test(e)&&(t=e.match(/v=(.*?)(&.*)?$/)[1],i=n._createIframe({url:"//www.youtube.com/embed/"+t}),i=n._videoIframe(i)),i}return i},_embedly:function(e){return"[embed]"+e+"[/embed]"},_createIframe:function(e){return''}};return n}),define("text!templates/mediaInsert.html",[],function(){return'
\n
\n
\n \n \n \n\n \n
\n
\n
\n'}),define("views/mediaInsert",["jquery","underscore","backbone","models/app","lib/saito/markItUp.media","text!templates/mediaInsert.html"],function(e,t,i,n,o,s){return i.View.extend({template:t.template(s),events:{"click #markitup_media_btn":"_insert"},initialize:function(){void 0!==this.model&&null!==this.model&&this.listenTo(this.model,"change:isAnsweringFormShown",this.remove)},_insert:function(t){var i,s;t.preventDefault(),s=o,i=s.multimedia(this.$("#markitup_media_txta").val(),{embedlyEnabled:n.settings.get("embedly_enabled")===!0}),""===i?this._invalidInput():(e.markItUp({replaceWith:i}),this._closeDialog())},_hideErrorMessages:function(){this.$("#markitup_media_message").hide()},_invalidInput:function(){this.$("#markitup_media_message").show(),this.$el.dialog().parent().effect("shake",{times:2},250)},_closeDialog:function(){this.$el.dialog("close"),this._hideErrorMessages(),this.$("#markitup_media_txta").val("")},_showDialog:function(){this.$el.dialog({show:{effect:"scale",duration:200},hide:{effect:"fade",duration:200},title:e.i18n.__("Multimedia"),minWidth:346,position:{at:"left+50% top+40%"},resizable:!1,open:function(){setTimeout(function(){e("#markitup_media_txta").focus()},210)},close:t.bind(function(){this._hideErrorMessages()},this)})},render:function(){return this.$el.html(this.template),this._showDialog(),this}})}),define("models/preview",["underscore","backbone","models/app"],function(e,t,i){var n=t.Model.extend({defaults:{isFetchingData:!1,rendered:null,data:null},initialize:function(){this.webroot=i.settings.get("webroot"),this.listenTo(this,"change:data",this._fetchRendered)},_fetchRendered:function(){this.set("fetchingData",!0),$.post(this.webroot+"entries/preview/",this.get("data"),e.bind(function(e){this.set("fetchingData",!1),this.set("rendered",e.html),i.eventBus.trigger("notificationUnset","all"),i.eventBus.trigger("notification",e)},this),"json")}});return n}),define("views/preview",["jquery","underscore","marionette","text!templates/spinner.html"],function(e,t,i,n){var o=i.ItemView.extend({templates:{content:t.template("<%= rendered %>"),spinner:t.template(n)},modelEvents:{"change:fetchingData":"_fetchingData","change:rendered":"render"},_fetchingData:function(){this.model.get("fetchingData")&&this.render()},getTemplate:function(){return this.model.get("fetchingData")?this.templates.spinner:this.templates.content}});return o}),function(e){var t={_scrollToTop:function(t){e("body").animate({scrollTop:t.offset().top-10,easing:"swing"},300)},_scrollToBottom:function(i){e("body").animate({scrollTop:t._elementBottom(i)-e(window).height()+20,easing:"swing"},300,function(){t._isHeigherThanView(i)&&t._scrollToTop(i)})},_elementBottom:function(e){return e.offset().top+e.height()},_isScrolledIntoView:function(i){if(0===e(i).length)return!0;var n=e(window).scrollTop(),o=n+e(window).height(),s=e(i).offset().top,a=t._elementBottom(i);return o>=a&&s>=n},_isHeigherThanView:function(t){return e(window).height()<=t.height()}},i={top:function(){var i;return i=e(this),t._isScrolledIntoView(i)||t._scrollToTop(i),this},bottom:function(){var i;return i=e(this),t._isScrolledIntoView(i)||t._scrollToBottom(i),this},isInView:function(){var i;return i=e(this),t._isScrolledIntoView(i)}};e.fn.scrollIntoView=function(t){return i[t]?i[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.scrollIntoView"):i.init.apply(this,arguments)}}(jQuery),define("lib/saito/jquery.scrollIntoView",function(){}),define("views/answering",["jquery","underscore","backbone","models/app","views/uploads","views/mediaInsert","views/editCountdown","models/preview","views/preview","lib/saito/jquery.scrollIntoView","jqueryAutosize"],function(e,t,i,n,o,s,a,r,l){var d=i.View.extend({_requestUrl:null,rendered:!1,answeringForm:!1,preview:!1,mediaView:!1,sendInProgress:!1,_action:null,model:null,events:{"click .btn-previewClose":"_closePreview","click .btn-preview":"_showPreview","click .btn-markItUp-Upload":"_upload","click .btn-markItUp-Media":"_media","click .btn-submit":"_send","click .btn-cite":"_cite","keypress .js-subject":"_onKeyPressSubject"},initialize:function(e){this.parentThreadline=e.parentThreadline||null,this._setupTextArea(),this.parentThreadline||this._onFormReady(),this._requestUrl=n.settings.get("webroot")+"entries/add/"+this.model.get("id"),this.listenTo(n.eventBus,"isAppVisible",this._focusSubject)},_disable:function(){this.$(".btn.btn-submit").attr("disabled","disabled")},_enable:function(){this.$(".btn.btn-submit").removeAttr("disabled")},_cite:function(e){e.preventDefault();var t=this.$(".cite-container"),i=this.$(".btn-cite").data("text"),n=this.$textarea.val();this.$textarea.val(i+"\n\n"+n),t.slideToggle(),this.$textarea.trigger("autosize.resize"),this.$textarea.focus()},_onKeyPressSubject:function(e){13===e.keyCode&&this._send(e)},_upload:function(e){var t;e&&e.preventDefault(),t=new o({el:"#markitup_upload",textarea:this.$textarea[0]})},_media:function(e){e.preventDefault(),this.mediaView===!1&&(this.mediaView=new s({el:"#markitup_media",model:this.model})),this.mediaView.render()},_showPreview:function(e){var t;e.preventDefault(),this.$(".preview").slideDown("fast"),this.preview===!1&&(t=new r,this.preview=new l({el:this.$(".preview .panel-content"),model:t})),this.preview.model.set("data",this.$("form").serialize())},_closePreview:function(e){e.preventDefault(),this.$(".preview").slideUp("fast")},_setupTextArea:function(){this.$textarea=this.$("textarea#EntryText"),this.$textarea.autosize()},_requestAnsweringForm:function(){e.ajax({cache:!0,url:this._requestUrl,success:t.bind(function(e){this.answeringForm=e,this.render()},this)})},_postRendering:function(){this.$el.scrollIntoView("bottom"),this._focusSubject(),this._onFormReady()},_onFormReady:function(){this._setupTextArea();var e=this.$(".js-data");if(e.length>0&&"edit"===e.data("meta").action){var t=this.$(".js-data").data("entry");this.model.set(t,{silent:!0}),this._addCountdown()}n.eventBus.trigger("change:DOM")},_addCountdown:function(){{var e=this.$(".js-btn-submit");new a({el:e,model:this.model,editPeriod:n.settings.get("editPeriod"),done:"disable"})}},_focusSubject:function(){var e=window.navigator.userAgent.match("iPad|iPhone");e||this.$(".postingform input[type=text]:first").focus()},_send:function(e){return this.sendInProgress?void e.preventDefault():(this.sendInProgress=!0,void(this.parentThreadline?this._sendInline(e):this._sendRedirect(e)))},_sendRedirect:function(i){var n=this.$(".btn-submit")[0];if(i.preventDefault(),"object"==typeof n.validity&&n.form.checkValidity()===!1){var o=t.bind(function(){this.checkValidityDummy||(this.checkValidityDummy=e("",{type:"submit",style:"display: none;"}),e(n).after(this.checkValidityDummy)),this.checkValidityDummy.click()},this);o(),this.sendInProgress=!1}else n.disabled=!0,n.form.submit()},_sendInline:function(i){i.preventDefault();var o=this.$("#EntryAddForm").serialize(),s=t.bind(function(e){this.model.set({isAnsweringFormShown:!1}),null!==this.parentThreadline&&this.parentThreadline.set("isInlineOpened",!1),n.eventBus.trigger("newEntry",{tid:e.tid,pid:this.model.get("id"),id:e.id,isNewToUser:!0})},this),a=t.bind(function(e,t){this.sendInProgress=!1,this._enable(),n.eventBus.trigger("notification",{title:t,type:"error",message:e.responseText})},this),r=t.bind(this._disable,this);e.ajax({url:this._requestUrl,type:"POST",dataType:"json",data:o,beforeSend:r}).done(s).fail(a)},render:function(){return this.answeringForm===!1?this._requestAnsweringForm():this.rendered===!1?(this.rendered=!0,this.$el.html(this.answeringForm),t.defer(function(e){e._postRendering()},this)):n.eventBus.trigger("change:DOM"),this}});return d}),define("views/postingSlider",["jquery","marionette","models/app","views/answering","text!templates/spinner.html"],function(e,t,i,n,o){return t.ItemView.extend({answeringForm:!1,events:{"click .btn-answeringClose":"onBtnClose"},initialize:function(e){this.parentThreadline=e.parentThreadline||null,this.listenTo(this.model,"change:isAnsweringFormShown",this.toggleAnsweringForm)},onBtnClose:function(e){e.preventDefault(),this.model.set("isAnsweringFormShown",!1)},toggleAnsweringForm:function(){this.model.get("isAnsweringFormShown")?(this._hideAllAnsweringForms(),this._showAnsweringForm()):this._hideAnsweringForm()},_showAnsweringForm:function(){i.eventBus.trigger("breakAutoreload"),this.answeringForm===!1&&this.$el.html(o),this.$el.slideDown("fast"),this.answeringForm===!1&&(this.answeringForm=new n({el:this.$el,model:this.model,parentThreadline:this.parentThreadline})),this.answeringForm.render()},_hideAnsweringForm:function(){this.$el.slideUp("fast",function(){i.eventBus.trigger("change:DOM")})},_hideAllAnsweringForms:function(){this.collection.forEach(function(e){e.get("id")!==this.model.get("id")&&e.set("isAnsweringFormShown",!1)},this)}})}),define("views/postingLayout",["underscore","marionette","app/core","views/postingAction","views/postingContent","views/postingSlider","text!templates/spinner.html"],function(e,t,i,n,o,s,a){var r=t.Layout.extend({initialize:function(t){e.defaults(t,{inline:!1,parentThreadline:!1}),t.inline?this._loadData(t):this._dataReady(t)},_loadData:function(t){this.$el.html(a),this.model.fetchHtml({success:e.bind(function(){this.$el.html(this.model.get("html")),this._dataReady(t)},this)})},_dataReady:function(e){var t=this.$(".js-data").data("entry");this.model.set(t,{silent:!0});new o({el:this.$(".postingBody"),model:this.model}),new n({el:this.$(".postingLayout-actions"),model:this.model}),new s({el:this.$(".postingLayout-slider"),model:this.model,collection:this.collection,parentThreadline:e.parentThreadline});i.vent.trigger("Vent.Posting.View.afterRender",{$el:this.$el})}});return r}),function(e,t){"function"==typeof define&&define.amd?define("lib/saito/backbone.modelHelper",["underscore","backbone"],function(i,n){return t(i||e._,n||e.Backbone)}):t(_,Backbone)}(this,function(e,t){t.Model.prototype.toggle=function(e){this.set(e,!this.get(e))}}),define("models/posting",["underscore","backbone","models/app","lib/saito/backbone.modelHelper"],function(e,t,i){var n=t.Model.extend({defaults:{isBookmarked:!1,isSolves:!1,isAnsweringFormShown:!1,html:""},initialize:function(){this.listenTo(this,"change:isSolves",this.syncSolved),this.listenTo(this,"change:isBookmarked",this.syncBookmarked)},isRoot:function(){var t=this.get("pid");if(!e.isNumber(t))throw"pid is not a number.";return 0===t},syncBookmarked:function(){this.get("isBookmarked")&&$.ajax({url:i.settings.get("webroot")+"bookmarks/add",type:"POST",dataType:"json",data:"id="+this.get("id")})},syncSolved:function(){$.ajax({url:i.settings.get("webroot")+"entries/solve/"+this.get("id"),type:"POST",dateType:"json"})},fetchHtml:function(t){$.ajax({success:e.bind(function(e){this.set("html",e),t&&t.success&&t.success()},this),type:"POST",dateType:"html",url:i.settings.get("webroot")+"entries/view/"+this.get("id")})}});return n}),define("views/threadlines",["jquery","underscore","marionette","models/app","models/threadline","text!templates/threadline-spinner.html","views/postingLayout","models/posting","lib/saito/jquery.scrollIntoView"],function(e,t,i,n,o,s,a,r){var l=i.ItemView.extend({className:"threadLeaf",tagName:"li",spinnerTpl:s,postings:null,ui:{btnShowThread:".btn_show_thread",linkShowThread:".link_show_thread"},events:{"click @ui.btnShowThread":"toggleInlineOpen","click @ui.linkShowThread":"toggleInlineOpenFromLink"},initialize:function(e){this.postings=e.postings,this.model=new o({id:e.leafData.id,isNewToUser:e.leafData.isNewToUser}),void 0===e.el?this.model.fetch():this.model.set({html:this.el}),this.collection.add(this.model,{silent:!0}),this.attributes={"data-id":e.id},this.listenTo(this.model,"change:isInlineOpened",this._toggleInlineOpened),this.listenTo(this.model,"change:html",this.render)},toggleInlineOpenFromLink:function(e){this.model.get("isAlwaysShownInline")&&this.toggleInlineOpen(e)},toggleInlineOpen:function(e){e.preventDefault(),this.model.toggle("isInlineOpened")},_toggleInlineOpened:function(e,i){return i?(this.model.get("isContentLoaded")||(this.$(".threadLine").after(this.spinnerTpl),this.$(".js-btn-strip").on("click",t.bind(this.toggleInlineOpen,this)),this._insertContent(),this.model.set("isContentLoaded",!0)),void this._showInlineView()):void this._closeInlineView()},_insertContent:function(){var e,t;e=this.model.get("id"),this.postingModel=new r({id:e}),this.postings.add(this.postingModel),t=new a({el:this.$(".threadInline-slider"),inline:!0,model:this.postingModel,collection:this.postings,parentThreadline:this.model})},_showInlineView:function(){var e=t.bind(function(){var e=this.model.get("shouldScrollOnInlineOpen");e?this.$el.scrollIntoView("isInView")===!1&&this.$el.scrollIntoView("bottom"):this.model.set("shouldScrollOnInlineOpen",!0)},this);this.$(".threadLine").fadeOut(100,t.bind(function(){this.$(".js-thread_inline").show(0,e)},this))},_closeInlineView:function(){n.eventBus.trigger("change:DOM"),this.$(".js-thread_inline").hide(0,t.bind(function(){this.$el.find(".threadLine").slideDown(),this._scrollLineIntoView()},this))},_scrollLineIntoView:function(){var e=this.$(".threadLine");e.scrollIntoView("isInView")||e.scrollIntoView("top").effect("highlight",{times:1},3e3)},render:function(){var t,i,n;return i=this.model.get("html"),i.length>0&&(t=this.$el,n=e(this.model.get("html")),this.setElement(n),t.replaceWith(n)),this}});return l}),define("models/thread",["underscore","backbone","collections/threadlines"],function(e,t,i){var n=t.Model.extend({defaults:{isThreadCollapsed:!1},initialize:function(){this.threadlines=new i}});return n}),define("collections/threads",["underscore","backbone","models/thread","models/app","backboneLocalStorage","lib/saito/localStorageHelper"],function(e,t,i,n){var o=t.Collection.extend({model:i,localStorage:function(){var e=n.reqres.request("app:localStorage:key","Threads");return new t.LocalStorage(e)}(),fetch:function(e){return n.reqres.request("app:localStorage:available")?t.Model.prototype.fetch.call(this,e):void 0}});return o}),define("views/thread",["jquery","underscore","backbone","models/app","collections/threadlines","views/threadlines"],function(e,t,i,n,o,s){var a=i.View.extend({className:"threadBox",events:{"click .btn-threadCollapse":"collapseThread","click .js-btn-openAllThreadlines":"openAllThreadlines","click .js-btn-closeAllThreadlines":"closeAllThreadlines","click .js-btn-showAllNewThreadlines":"showAllNewThreadlines"},initialize:function(t){this.postings=t.postings,this.$rootUl=this.$("ul.root"),this.$subThreadRootIl=e(this.$rootUl.find("li:not(:first-child)")[0]),this.model.get("isThreadCollapsed")?this.hide():this.show(),n.reqres.request("app:localStorage:available")||this._hideCollapseButton(),this.listenTo(n.eventBus,"newEntry",this._showNewThreadLine),this.listenTo(this.model,"change:isThreadCollapsed",this.toggleCollapseThread)},_showNewThreadLine:function(e){var t;e.tid===this.model.get("id")&&(t=new s({leafData:e,collection:this.model.threadlines,postings:this.postings}),this._appendThreadlineToThread(e.pid,t.render().$el))},_appendThreadlineToThread:function(e,t){var i,n;i=this.$('.threadLeaf[data-id="'+e+'"]'),n=i.next().not(".js_threadline").find("ul:first"),0===n.length?t.wrap('
    ').parent().wrap("
  • ").parent().insertAfter(i):n.append(t)},openAllThreadlines:function(e){e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!1}),function(e){e.set({isInlineOpened:!0,shouldScrollOnInlineOpen:!1})},this)},closeAllThreadlines:function(e){e&&e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!0}),function(e){e.set({isInlineOpened:!1})},this)},showAllNewThreadlines:function(e){e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!1,isNewToUser:!0}),function(e){e.set({isInlineOpened:!0,shouldScrollOnInlineOpen:!1})},this)},_hideCollapseButton:function(){this.$(".btn-threadCollapse").css("visibility","hidden")},collapseThread:function(e){e.preventDefault(),this.closeAllThreadlines(),this.model.toggle("isThreadCollapsed"),this.model.save()},toggleCollapseThread:function(e,t){t?this.slideUp():this.slideDown()},slideUp:function(){this.$subThreadRootIl.slideUp(300),this.markHidden()},slideDown:function(){this.$subThreadRootIl.slideDown(300),this.markShown()},hide:function(){this.$subThreadRootIl.hide(),this.markHidden()},show:function(){this.$subThreadRootIl.show(),this.markShown()},markShown:function(){e(this.el).find(".fa-thread-closed").removeClass("fa-thread-closed").addClass("fa-thread-open")},markHidden:function(){e(this.el).find(".fa-thread-open").removeClass("fa-thread-open").addClass("fa-thread-closed")}});return a}),define("collections/postings",["underscore","backbone","models/posting"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("models/bookmark",["underscore","backbone","models/app","cakeRest"],function(e,t,i,n){var o=t.Model.extend({initialize:function(){this.webroot=i.settings.get("webroot")+"bookmarks/"}});return e.extend(o.prototype,n),o}),define("collections/bookmarks",["underscore","backbone","models/bookmark"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("views/bookmark",["jquery","underscore","backbone"],function(e,t,i){var n=i.View.extend({events:{"click .btn-bookmark-delete":"deleteBookmark"},initialize:function(){t.bindAll(this,"render"),this.model.on("destroy",this.removeBookmark,this)},deleteBookmark:function(e){e.preventDefault(),this.model.destroy()},removeBookmark:function(){var t=this.collection;this.$el.hide("slide",null,500,function(){e(this).remove(),t.trigger("bookmark.removed")})}});return n}),define("text!templates/no-content-yet.html",[],function(){return"
    \n <%- $.i18n.__('ncy.bkm') %>\n
    \n"}),define("views/bookmarks",["jquery","underscore","backbone","views/bookmark","text!templates/no-content-yet.html"],function(e,t,i,n,o){var s=i.View.extend({initialize:function(){this.initCollectionFromDom(".js-bookmark",this.collection,n),this._fillNoContentYet(),this.listenTo(this.collection,"bookmark.removed",this._fillNoContentYet)},_fillNoContentYet:function(){this.collection.isEmpty()&&this.$el.html(t.template(o))}});return s}),define("views/helps",["jquery","underscore","backbone","models/app","drop"],function(e,t,i,n,o){var s=i.View.extend({isHelpShown:!1,_popups:[],_elements:null,tpl:t.template(''),events:function(){var e={};return e["click "+this.indicatorName]="toggle",e},initialize:function(e){this.indicatorName=e.indicatorName,this.elementName=e.elementName,this.webroot=e.webroot,this.activateHelpButton(),this.listenTo(n.eventBus,"change:DOM",this._onDomChange)},activateHelpButton:function(){var t=e(this.indicatorName);t&&(this._isHelpOnPage()?t.addClass("is-active"):t.removeClass("is-active"))},_onDomChange:function(){this.activateHelpButton(),this._reset()},_isHelpOnPage:function(){return this._getElements().length>0},toggle:function(e){e.preventDefault(),this.isHelpShown?this._hide():this._show()},_reset:function(){this._hide(),this._elements=null,this._popups=[]},_getElements:function(){return null===this._elements&&(this._elements=this.$(this.elementName).filter(":visible")),this._elements},_show:function(){if(this.isHelpShown=!0,this._isHelpOnPage()){if(0===this._popups.length){var t=this;this._getElements().each(function(){var i=e(this),n=i.data("shpid"),s=t.tpl({id:n,webroot:t.webroot});t._popups.push(new o({target:this,content:s,classes:"drop-theme-arrows",position:"top center"}))})}this._popups.forEach(function(e){e.open()})}},_hide:function(){this.isHelpShown=!1,this._popups.forEach(function(e){e.close()})}});return s}),define("views/categoryChooser",["jquery","underscore","backbone"],function(e,t,i){return i.View.extend({initialize:function(){this._initDialog()},_initDialog:function(){this.$el.dialog({autoOpen:!1,show:{effect:"scale",duration:200},hide:{effect:"fade",duration:200},width:400,title:e.i18n.__("Categories"),resizable:!1})},_updateDialogPosition:function(){var t=e("#btn-category-chooser"),i=e(window),n=t.offset().left+t.width()-i.scrollLeft()-410,o=t.offset().top-i.scrollTop()+t.height();this.$el.dialog({position:[n,o]})},toggle:function(){this.$el.dialog("isOpen")?this.$el.dialog("close"):(this._updateDialogPosition(),this.$el.dialog("open"))}})}),define("models/slidetab",["jquery","underscore","backbone","app/vent","models/app"],function(e,t,i,n,o){var s=i.Model.extend({defaults:{isOpen:!1},initialize:function(){this.webroot=o.settings.get("webroot"),this.listenTo(this,"change:isOpen",this.onChangeIsOpen)},onChangeIsOpen:function(){n.vent.trigger("slidetab:open",{slidetab:this.get("id"),open:this.get("isOpen")})},sync:function(){var t="show_"+this.get("id");e.post(this.webroot+"users/slidetab_toggle",{slidetabKey:t})}});return s}),define("collections/slidetabs",["underscore","backbone","models/app","models/slidetab"],function(e,t,i,n){var o=t.Collection.extend({model:n,initialize:function(){i.reqres.setHandler("slidetab:open",e.bind(this.isOpen,this))},isOpen:function(e){return this.get(e).get("isOpen")}});return o}),define("views/slidetab",["jquery","underscore","backbone"],function(e,t,i){var n=i.View.extend({events:{"click .slidetab-tab":"clickSlidetab"},initialize:function(){this.model.set({isOpen:this.isOpen()},{silent:!0}),this.listenTo(this.model,"change",this.toggleSlidetab)},isOpen:function(){return this.$el.find(".slidetab-outer").is(":visible")},clickSlidetab:function(){this.model.save("isOpen",!this.model.get("isOpen"))},toggleSlidetab:function(){this.model.get("isOpen")?this.show():this.hide(),this.toggleSlidetabTabInfo()},show:function(){this.$el.animate({width:280}),this.$el.addClass("is-open")},hide:function(){this.$el.animate({width:28},t.bind(function(){this.$el.removeClass("is-open")},this))},toggleSlidetabTabInfo:function(){this.$el.find(".slidetab-tab-info").toggle()}});return n}),define("views/slidetabs",["jquery","underscore","backbone","models/app","views/slidetab"],function(e,t,i,n,o){var s=i.View.extend({initialize:function(){this.webroot=n.settings.get("webroot"),this.initCollectionFromDom(".slidetab",this.collection,o),this.makeSortable()},makeSortable:function(){var i=this.webroot;this.$el.sortable({handle:".slidetab-tab",start:t.bind(function(){this.$el.css("overflow","visible")},this),stop:t.bind(function(){this.$el.css("overflow","hidden")},this),update:function(){var t=e(this).sortable("toArray",{attribute:"data-id"});t=t.map(function(e){return"slidetab_"+e}),e.post(i+"users/slidetab_order",{slidetabOrder:t})}})}});return s}),define("views/app",["jquery","underscore","backbone","models/app","collections/threadlines","views/threadlines","collections/threads","views/thread","collections/postings","models/posting","views/postingLayout","collections/bookmarks","views/bookmarks","views/helps","views/categoryChooser","collections/slidetabs","views/slidetabs","views/answering","jqueryUi"],function(e,t,i,n,o,s,a,r,l,d,c,u,h,p,f,m,g,v){var b=i.View.extend({el:e("body"),autoPageReloadTimer:!1,_domInitializers:{".entry.add-not-inline":"_initAnsweringNotInlined","#bookmarks":"_initBookmarks","#category-chooser":"_initCategoryChooser",".js-entry-view-core":"_initPostings","#slidetabs":"_initSlidetabs",".threadBox":"_initThreadBoxes",".threadLeaf":"_initThreadLeafs",".users.logout":"_initLogout"},events:{"click #showLoginForm":"showLoginForm","focus #header-searchField":"widenSearchField","click #btn-scrollToTop":"scrollToTop","click #btn-manuallyMarkAsRead":"manuallyMarkAsRead","click #btn-category-chooser":"toggleCategoryChooser","click #btn_header_logo":"_onEntriesIndexReload"},initialize:function(){this.threads=new a,"entries"===n.request.controller&&"index"===n.request.action&&this.threads.fetch(),this.postings=new l,this.threadLines=new o,this.listenTo(n.eventBus,"initAutoreload",this.initAutoreload),this.listenTo(n.eventBus,"breakAutoreload",this.breakAutoreload),this.$el.on("dialogopen",this.fixJqueryUiDialog)},initFromDom:function(i){if(t.each(this._domInitializers,function(t,i){var n=e(i);n.length>0&&this[t](n)},this),this.initAutoreload(),this.initHelp(".shp"),n.status.start(),this._showPage(i.SaitoApp.timeAppStart,i.contentTimer),n.eventBus.trigger("notification",i.SaitoApp),window.location.href.indexOf("/jump:")>-1){var o=/jump:(\d+)/.exec(window.location.href); -this.scrollToThread(o[1]),window.history.replaceState("object or string","Title",window.location.pathname.replace(/jump:\d+(\/)?/,""))}},_initAnsweringNotInlined:function(e){this.answeringForm=new v({el:e,model:new d({id:"foo"})})},_initBookmarks:function(e){var t,i=new u;t=new h({el:e,collection:i})},_initCategoryChooser:function(e){this.categoryChooser=new f({el:e})},_initLogout:function(){n.commands.execute("app:localStorage:clear")},_initPostings:function(i){t.each(i,function(t){var i,n,o;i=parseInt(t.getAttribute("data-id"),10),o=new d({id:i}),this.postings.add(o,{silent:!0}),n=new c({el:e(t),model:this.postings.get(i),collection:this.postings})},this)},_initSlidetabs:function(e){var t,i;t=new m,i=new g({el:e,collection:t})},_initThreadBoxes:function(i){t.each(i,function(t){var i,o;o=parseInt(e(t).attr("data-id"),10),this.threads.get(o)||this.threads.add([{id:o,isThreadCollapsed:"entries"===n.request.controller&&"index"===n.request.action&&n.currentUser.get("user_show_thread_collapsed")}],{silent:!0}),i=new r({el:e(t),postings:this.postings,model:this.threads.get(o)})},this)},_initThreadLeafs:function(i){t.each(i,function(t){var i=JSON.parse(t.getAttribute("data-leaf"));i.isNewToUser=i["new"],delete i["new"];var n,o=this.threads.get(i.tid);n=o?o.threadlines:this.threadLines;new s({el:e(t),leafData:i,postings:this.postings,collection:n})},this)},_showPage:function(t,i){var o=function(){n.eventBus.trigger("isAppVisible",!0)};n.request.isMobile||(new Date).getTime()-t>1500?(e("#content").css("visibility","visible"),o()):e("#content").css({visibility:"visible",opacity:0}).animate({opacity:1},{duration:150,easing:"easeInOutQuart",complete:o}),i.cancel()},fixJqueryUiDialog:function(){e(".ui-icon-closethick").attr("class","jqueryUi-closethick-fix").html("")},toggleCategoryChooser:function(e){e.preventDefault(),this.categoryChooser.toggle()},initHelp:function(e){new p({el:"body",elementName:e,indicatorName:"#shp-show",webroot:n.settings.get("webroot")})},scrollToThread:function(t){e(".threadBox[data-id="+t+"]")[0].scrollIntoView("top")},initAutoreload:function(){this.breakAutoreload(),n.settings.get("autoPageReload")&&(this.autoPageReloadTimer=setTimeout(t.bind(function(){window.location=n.settings.get("webroot")+"entries/"},this),1e3*n.settings.get("autoPageReload")))},breakAutoreload:function(){this.autoPageReloadTimer!==!1&&(clearTimeout(this.autoPageReloadTimer),this.autoPageReloadTimer=!1)},widenSearchField:function(t){var i=350;t.preventDefault(),e(t.currentTarget).width()",{"class":"ui-pnotify "+l.addclass,css:{display:"none"},mouseenter:function(e){l.nonblock&&e.stopPropagation(),l.mouse_reset&&"out"==r&&(f.stop(!0),r="in",f.css("height","auto").animate({width:l.width,opacity:l.nonblock?l.nonblock_opacity:l.opacity},"fast")),l.nonblock&&f.animate({opacity:l.nonblock_opacity},"fast"),l.hide&&l.mouse_reset&&f.pnotify_cancel_remove(),l.sticker&&!l.nonblock&&f.sticker.trigger("pnotify_icon").css("visibility","visible"),l.closer&&!l.nonblock&&f.closer.css("visibility","visible")},mouseleave:function(t){l.nonblock&&t.stopPropagation(),c=null,f.css("cursor","auto"),l.nonblock&&"out"!=r&&f.animate({opacity:l.opacity},"fast"),l.hide&&l.mouse_reset&&f.pnotify_queue_remove(),l.sticker_hover&&f.sticker.css("visibility","hidden"),l.closer_hover&&f.closer.css("visibility","hidden"),e.pnotify_position_all()},mouseover:function(e){l.nonblock&&e.stopPropagation()},mouseout:function(e){l.nonblock&&e.stopPropagation()},mousemove:function(e){l.nonblock&&(e.stopPropagation(),h(e,"onmousemove"))},mousedown:function(e){l.nonblock&&(e.stopPropagation(),e.preventDefault(),h(e,"onmousedown"))},mouseup:function(e){l.nonblock&&(e.stopPropagation(),e.preventDefault(),h(e,"onmouseup"))},click:function(e){l.nonblock&&(e.stopPropagation(),h(e,"onclick"))},dblclick:function(e){l.nonblock&&(e.stopPropagation(),h(e,"ondblclick"))}});f.opts=l,f.container=e("
    ",{"class":p.container+" ui-pnotify-container "+("error"==l.type?p.error:"info"==l.type?p.info:"success"==l.type?p.success:p.notice)}).appendTo(f),""!=l.cornerclass&&f.container.removeClass("ui-corner-all").addClass(l.cornerclass),l.shadow&&f.container.addClass("ui-pnotify-shadow"),f.pnotify_version="1.2.0",f.pnotify=function(t){var i=l;"string"==typeof t?l.text=t:l=e.extend({},l,t);for(var n in l)"string"==typeof n&&n.match(/^pnotify_/)&&(l[n.replace(/^pnotify_/,"")]=l[n]);return f.opts=l,l.cornerclass!=i.cornerclass&&f.container.removeClass("ui-corner-all").addClass(l.cornerclass),l.shadow!=i.shadow&&(l.shadow?f.container.addClass("ui-pnotify-shadow"):f.container.removeClass("ui-pnotify-shadow")),l.addclass===!1?f.removeClass(i.addclass):l.addclass!==i.addclass&&f.removeClass(i.addclass).addClass(l.addclass),l.title===!1?f.title_container.slideUp("fast"):l.title!==i.title&&(l.title_escape?f.title_container.text(l.title).slideDown(200):f.title_container.html(l.title).slideDown(200)),l.text===!1?f.text_container.slideUp("fast"):l.text!==i.text&&(l.text_escape?f.text_container.text(l.text).slideDown(200):f.text_container.html(l.insert_brs?String(l.text).replace(/\n/g,"
    "):l.text).slideDown(200)),f.pnotify_history=l.history,f.pnotify_hide=l.hide,l.type!=i.type&&f.container.removeClass(p.error+" "+p.notice+" "+p.success+" "+p.info).addClass("error"==l.type?p.error:"info"==l.type?p.info:"success"==l.type?p.success:p.notice),(l.icon!==i.icon||l.icon===!0&&l.type!=i.type)&&(f.container.find("div.ui-pnotify-icon").remove(),l.icon!==!1&&e("
    ",{"class":"ui-pnotify-icon"}).append(e("",{"class":l.icon===!0?"error"==l.type?p.error_icon:"info"==l.type?p.info_icon:"success"==l.type?p.success_icon:p.notice_icon:l.icon})).prependTo(f.container)),l.width!==i.width&&f.animate({width:l.width}),l.min_height!==i.min_height&&f.container.animate({minHeight:l.min_height}),l.opacity!==i.opacity&&f.fadeTo(l.animate_speed,l.opacity),!l.closer||l.nonblock?f.closer.css("display","none"):f.closer.css("display","block"),!l.sticker||l.nonblock?f.sticker.css("display","none"):f.sticker.css("display","block"),f.sticker.trigger("pnotify_icon"),l.sticker_hover?f.sticker.css("visibility","hidden"):l.nonblock||f.sticker.css("visibility","visible"),l.closer_hover?f.closer.css("visibility","hidden"):l.nonblock||f.closer.css("visibility","visible"),l.hide?i.hide||f.pnotify_queue_remove():f.pnotify_cancel_remove(),f.pnotify_queue_position(),f},f.pnotify_position=function(e){var t=f.opts.stack;if(t){t.nextpos1||(t.nextpos1=t.firstpos1),t.nextpos2||(t.nextpos2=t.firstpos2),t.addpos2||(t.addpos2=0);var i="none"==f.css("display");if(!i||e){var n,s,a,r={};switch(t.dir1){case"down":a="top";break;case"up":a="bottom";break;case"left":a="right";break;case"right":a="left"}n=parseInt(f.css(a)),isNaN(n)&&(n=0),"undefined"!=typeof t.firstpos1||i||(t.firstpos1=n,t.nextpos1=t.firstpos1);var l;switch(t.dir2){case"down":l="top";break;case"up":l="bottom";break;case"left":l="right";break;case"right":l="left"}if(s=parseInt(f.css(l)),isNaN(s)&&(s=0),"undefined"!=typeof t.firstpos2||i||(t.firstpos2=s,t.nextpos2=t.firstpos2),("down"==t.dir1&&t.nextpos1+f.height()>o.height()||"up"==t.dir1&&t.nextpos1+f.height()>o.height()||"left"==t.dir1&&t.nextpos1+f.width()>o.width()||"right"==t.dir1&&t.nextpos1+f.width()>o.width())&&(t.nextpos1=t.firstpos1,t.nextpos2+=t.addpos2+("undefined"==typeof t.spacing2?25:t.spacing2),t.addpos2=0),t.animation&&t.nextpos2t.addpos2&&(t.addpos2=f.height());break;case"left":case"right":f.outerWidth(!0)>t.addpos2&&(t.addpos2=f.width())}if(t.nextpos1)if(t.animation&&(n>t.nextpos1||r.top||r.bottom||r.right||r.left))switch(t.dir1){case"down":r.top=t.nextpos1+"px";break;case"up":r.bottom=t.nextpos1+"px";break;case"left":r.right=t.nextpos1+"px";break;case"right":r.left=t.nextpos1+"px"}else f.css(a,t.nextpos1+"px");switch((r.top||r.bottom||r.right||r.left)&&f.animate(r,{duration:500,queue:!1}),t.dir1){case"down":case"up":t.nextpos1+=f.height()+("undefined"==typeof t.spacing1?25:t.spacing1);break;case"left":case"right":t.nextpos1+=f.width()+("undefined"==typeof t.spacing1?25:t.spacing1)}}}},f.pnotify_queue_position=function(t){i&&clearTimeout(i),t||(t=10),i=setTimeout(e.pnotify_position_all,t)},f.pnotify_display=function(){f.parent().length||f.appendTo(n),l.before_open&&l.before_open(f)===!1||("top"!=l.stack.push&&f.pnotify_position(!0),"fade"==l.animation||"fade"==l.animation.effect_in?f.show().fadeTo(0,0).hide():1!=l.opacity&&f.show().fadeTo(0,l.opacity).hide(),f.animate_in(function(){l.after_open&&l.after_open(f),f.pnotify_queue_position(),l.hide&&f.pnotify_queue_remove()}))},f.pnotify_remove=function(){f.timer&&(window.clearTimeout(f.timer),f.timer=null),l.before_close&&l.before_close(f)===!1||f.animate_out(function(){l.after_close&&l.after_close(f)===!1||(f.pnotify_queue_position(),l.remove&&f.detach())})},f.animate_in=function(e){r="in";var t;t="undefined"!=typeof l.animation.effect_in?l.animation.effect_in:l.animation,"none"==t?(f.show(),e()):"show"==t?f.show(l.animate_speed,e):"fade"==t?f.show().fadeTo(l.animate_speed,l.opacity,e):"slide"==t?f.slideDown(l.animate_speed,e):"function"==typeof t?t("in",e,f):f.show(t,"object"==typeof l.animation.options_in?l.animation.options_in:{},l.animate_speed,e)},f.animate_out=function(e){r="out";var t;t="undefined"!=typeof l.animation.effect_out?l.animation.effect_out:l.animation,"none"==t?(f.hide(),e()):"show"==t?f.hide(l.animate_speed,e):"fade"==t?f.fadeOut(l.animate_speed,e):"slide"==t?f.slideUp(l.animate_speed,e):"function"==typeof t?t("out",e,f):f.hide(t,"object"==typeof l.animation.options_out?l.animation.options_out:{},l.animate_speed,e)},f.pnotify_cancel_remove=function(){f.timer&&window.clearTimeout(f.timer)},f.pnotify_queue_remove=function(){f.pnotify_cancel_remove(),f.timer=window.setTimeout(function(){f.pnotify_remove()},isNaN(l.delay)?0:l.delay)},f.closer=e("
    ",{"class":"ui-pnotify-closer",css:{cursor:"pointer",visibility:l.closer_hover?"hidden":"visible"},click:function(){f.pnotify_remove(),f.sticker.css("visibility","hidden"),f.closer.css("visibility","hidden")}}).append(e("",{"class":p.closer})).appendTo(f.container),(!l.closer||l.nonblock)&&f.closer.css("display","none"),f.sticker=e("
    ",{"class":"ui-pnotify-sticker",css:{cursor:"pointer",visibility:l.sticker_hover?"hidden":"visible"},click:function(){l.hide=!l.hide,l.hide?f.pnotify_queue_remove():f.pnotify_cancel_remove(),e(this).trigger("pnotify_icon")}}).bind("pnotify_icon",function(){e(this).children().removeClass(p.pin_up+" "+p.pin_down).addClass(l.hide?p.pin_up:p.pin_down)}).append(e("",{"class":p.pin_up})).appendTo(f.container),(!l.sticker||l.nonblock)&&f.sticker.css("display","none"),l.icon!==!1&&e("
    ",{"class":"ui-pnotify-icon"}).append(e("",{"class":l.icon===!0?"error"==l.type?p.error_icon:"info"==l.type?p.info_icon:"success"==l.type?p.success_icon:p.notice_icon:l.icon})).prependTo(f.container),f.title_container=e("

    ",{"class":"ui-pnotify-title"}).appendTo(f.container),l.title===!1?f.title_container.hide():l.title_escape?f.title_container.text(l.title):f.title_container.html(l.title),f.text_container=e("
    ",{"class":"ui-pnotify-text"}).appendTo(f.container),l.text===!1?f.text_container.hide():l.text_escape?f.text_container.text(l.text):f.text_container.html(l.insert_brs?String(l.text).replace(/\n/g,"
    "):l.text),"string"==typeof l.width&&f.css("width",l.width),"string"==typeof l.min_height&&f.container.css("min-height",l.min_height),f.pnotify_history=l.history,f.pnotify_hide=l.hide;var m=o.data("pnotify");if((null==m||"object"!=typeof m)&&(m=[]),m="top"==l.stack.push?e.merge([f],m):e.merge(m,[f]),o.data("pnotify",m),"top"==l.stack.push&&f.pnotify_queue_position(1),l.after_init&&l.after_init(f),l.history){var g=o.data("pnotify_history");if("undefined"==typeof g){g=e("
    ",{"class":"ui-pnotify-history-container "+p.hi_menu,mouseleave:function(){g.animate({top:"-"+t+"px"},{duration:100,queue:!1})}}).append(e("
    ",{"class":"ui-pnotify-history-header",text:"Redisplay"})).append(e("\n <% if (geolocation) { %>\n \n <% } %>\n \n \n
    '}),define("modules/usermap/views/controls",["jquery","marionette","lib/leaflet/mq","text!modules/usermap/templates/controls.html"],function(e,t,i,n){return t.ItemView.extend({template:_.template(n),ui:{search:".js-btn-search",locate:".js-btn-locate",clear:".js-btn-clear",spinner:".saito-usermap-spinner"},events:{"click @ui.search":"_search","click @ui.locate":"_locate","click @ui.clear":"_clear"},initialize:function(t){this.mapLayer=t.mapLayer,this.mapModel=t.mapModel,this.params=t.params,this.mapLayer.on("click",this._repin,this),this.mapLayer.on("locationfound",this._repin,this),e(this.params.fields.edit).on("keypress",_.bind(this._onSearchFieldChange,this)),e(this.params.fields.edit).on("keyup",_.bind(this._updateSearchButtonTitle,this))},_clear:function(e){e.preventDefault(),this.model.set({lat:"",lng:"",zoom:""}),this._updateFields()},_search:function(t){t.preventDefault(),this._activityStart();var n=e(this.params.fields.edit).val();i.geocode().search(n).on("success",_.bind(function(e){var t=e.result.best;this._repin(t)},this))},_onSearchFieldChange:function(e){13===e.which&&this._search(e)},_activityStart:function(){this.ui.spinner.show()},_activityStop:function(){this.ui.spinner.hide()},_updateSearchButtonTitle:function(){var t=e(this.params.fields.edit).val();return t?(this.ui.search.removeAttr("disabled"),void this.ui.search.html(e.i18n.__("user.map.b.search",{string:t}))):void this.ui.search.attr("disabled","disabled")},_locate:function(e){e.preventDefault(),this._activityStart(),this.mapLayer.locate()},_repin:function(e){var t=this._round({lat:e.latlng.lat,lng:e.latlng.lng,zoom:this.mapLayer.getZoom()});this._activityStop(),this.model.set(t),this.mapModel.set(t),this._updateFields()},_round:function(e){return _.each(["lat","lng"],function(t){e[t]=e[t].toFixed(4)}),e},onRender:function(){this._updateSearchButtonTitle()},_updateFields:function(){var t=this.params.fields.update,i=this.model;_.each(["lat","lng","zoom"],_.bind(function(n){var o=n;t&&t[n]&&_.each(t[n],function(t){var n=e(t),s=i.get(o);"input"===n.prop("tagName").toLowerCase()?n.val(s):n.html(s)})},this)),this.render()},_geolocation:function(){return"geolocation"in navigator},serializeData:function(){var e=this.model.toJSON();return e.geolocation=this._geolocation(),e}})}),define("lib/leaflet/leaflet",[],function(){return"undefined"!=typeof L?L:void 0}),define("modules/usermap/views/map",["marionette","templateHelpers","lib/leaflet/leaflet","lib/leaflet/mq"],function(e,t,i,n){return e.ItemView.extend({collectionEvents:{add:"_createMarker",change:"_repinMarker"},modelEvents:{"change:lat":"_setView"},template:{},templateHelpers:t,mapLayer:null,markersLayer:null,markers:{},initialize:function(){"world"===this.model.get("type")&&this._zoomView(),this.markersLayer=new i.MarkerClusterGroup,this._map()},_zoomView:function(){var e=40,t=$("#content"),i={width:t.width(),top:t.offset().top},n={height:i.width*(120/198)},o={height:$(window).height()};o.available=o.height-i.top,n.height>o.available&&(n.height=o.available-e),this.$el.height(n.height)},_createMarker:function(e){var t,n=e.latlng(),o=i.marker(n);if(n[0]){if(e){var s=this.templateHelpers.User.linkToUserProfile(e.get("id"),e.get("name"));o.bindPopup(s)}if(this.markersLayer.addLayer(o),this.markers[e.get("id")]=o,t=this.model.get("type"),"single"===t||"edit"===t){var a={lat:e.get("lat"),lng:e.get("lng")};a.zoom="edit"===t?e.get("zoom"):this.model.get("maxZoom"),this.model.set(a)}}},_repinMarker:function(e){if(!e.get("lat"))return void this._clearMarkers();var t=this.markers[e.get("id")];if(!t)return void this._createMarker(e);var i=t.getLatLng();i.lat=e.get("lat"),i.lng=e.get("lng"),t.update()},_clearMarkers:function(){this.markers={},this.markersLayer.clearLayers()},_setView:function(){var e=this.model.get("lat"),t=this.model.get("lng"),i=this.model.get("zoom");this.mapLayer.setView([e,t],i)},_map:function(){var e=n.mapLayer();this.mapLayer=i.map(this.el,{closePopupOnClick:!1,maxZoom:this.model.get("maxZoom"),minZoom:this.model.get("minZoom"),maxBounds:this.model.get("maxBounds")}),this._setView(),this.mapLayer.addLayer(e),this.mapLayer.addLayer(this.markersLayer)}})}),define("modules/usermap/models/map",["backbone"],function(e){var t=e.Model.extend({maxZoom:{edit:14,single:11,world:11},defaults:{lat:30,lng:0,zoom:2,maxZoom:11,minZoom:1,maxBounds:[[-90,-180],[90,180]]},initialize:function(){this.maxZoom[this.get("type")]&&this.set("maxZoom",this.maxZoom[this.get("type")])}});return t}),define("modules/usermap/models/user",["backbone"],function(e){var t=e.Model.extend({latlng:function(){return[this.get("lat"),this.get("lng")]}});return t}),define("modules/usermap/collections/users",["backbone","modules/usermap/models/user"],function(e,t){var i=e.Collection.extend({model:t});return i}),define("text!modules/usermap/templates/layout.html",[],function(){return"
    \n
    \n
    \n
    "}),define("modules/usermap/usermap",["app/core","marionette","modules/usermap/views/controls","modules/usermap/views/map","modules/usermap/models/map","modules/usermap/collections/users","text!modules/usermap/templates/layout.html"],function(e,t,i,n,o,s,a){var r=e.module("usermap",{startWithParent:!1});return r.addInitializer(function(){var e=$(".saito-usermap");if(e.length){var l,d,c=e.data("users"),u=new s,h=e.data("params"),p=t.Layout.extend({el:e,template:a,regions:{mapr:".saito-usermap-map",controls:".saito-usermap-controls"}}),f=(new p).render(),m=new o(h);d=new n({el:f.$(".saito-usermap-map"),model:m,collection:u}),u.add(c),"edit"===h.type&&(d.$el.addClass("input"),l=r.ControlView=new i({model:u.at(0),mapLayer:d.mapLayer,mapModel:m,params:h}),f.controls.show(l))}}),r}),define("app/time",["moment","moment-de"],function(e){var t=e().lang()._longDateFormat;t.LT="H:mm",e.lang("de",{longDateFormat:t})}),define("lib/Saito/isAppVisible",["jquery","underscore","models/app"],function(e,t,i){var n=function(){this.initialize.apply(this,arguments)};return t.extend(n.prototype,{_isVisibleOldSchool:!0,initialize:function(){i.reqres.setHandler("isAppVisible",this.isVisible,this),this._isVisibleOldSchool=this._isAppVisibleHtml5(),this._initAppVisibleOldSchool()},isVisible:function(){return this._isVisibleOldSchool},_initAppVisibleOldSchool:function(){e(window).blur(t.bind(function(){this._isVisibleOldSchool=!1},this)),e(window).focus(t.bind(function(){this._isVisibleOldSchool=!0},this))},_isAppVisibleHtml5:function(){var e,t=!1;return"undefined"!=typeof document.hidden?e="hidden":"undefined"!=typeof document.webkitHidden&&(e="webkitHidden"),document[e]&&(t=document[e]),!t}}),new n}),function(e){e.i18n={dict:null,setDictionary:function(e){this.dict=e},_:function(e,t){var i=e;return this.dict&&this.dict[e]&&(i=this.dict[e]),this.printf(i,t)},printf:function(e,t){if(!t)return e;for(var i="",n=/%(\d+)\$s/g,o=n.exec(e);o;){var s=parseInt(o[1],10)-1;e=e.replace("%"+o[1]+"$s",t[s]),o=n.exec(e)}var a=e.split("%s");if(a.length>1)for(var r=0;r0&&a[r].lastIndexOf("%")==a[r].length-1&&(a[r]+="s"+a.splice(r+1,1)[0]),i+=a[r]+t[r];return i+a[a.length-1]}},e.fn._t=function(t,i){return e(this).text(e.i18n._(t,i))}}(jQuery),define("lib/jquery.i18n/jquery.i18n",function(){}),define("lib/jquery.i18n/jquery.i18n.extend",["jquery","lib/jquery.i18n/jquery.i18n"],function(e){e.extend(e.i18n,{currentString:"",setDict:function(e){this.dict=e},setUrl:function(e){this.dictUrl=e,this._loadDict()},_loadDict:function(){return e.ajax({url:this.dictUrl,dataType:"json",async:!1,cache:!0,success:e.proxy(function(e){this.dict=e},this)})},__:function(e,t){var i=e;return"object"==typeof this.dict[e]&&""!==this.dict[e][""]&&(i=this.dict[e][""]),"object"==typeof t&&(i=this._insert(i,t)),i},_insert:function(e,t){return e.replace(/:([-\w]+)/g,function(e,i){return"undefined"!=typeof t[i]?t[i]:e})}})}),function(e,t){"function"==typeof define&&define.amd?define("lib/saito/backbone.initHelper",["underscore","backbone"],function(i,n){return t(i||e._,n||e.Backbone)}):t(_,Backbone)}(this,function(e,t){t.View.prototype.initCollectionFromDom=function(e,t,i){var n=function(e,t,n){e.add({id:t}),new i({el:n,model:e.get(t),collection:e})};$(e).each(function(){n(t,$(this).data("id"),this)})}}),define("app/app",["marionette","app/core","app/vent","modules/html5-notification/html5-notification"],function(e,t,i){var n=SaitoApp,o=function(e){require(["jquery","domReady"],function(t,i){t.isReady?e():i(function(){e()})})},s={fireOnPageCallbacks:function(e){var t=e.afterAppInit;_.each(t,function(e){e()}),i.vent.on("isAppVisible",_.once(function(){var t=e.afterViewInit;_.each(t,function(e){e()})}))},bootstrapShoutbox:function(){o(function(){require(["modules/shoutbox/shoutbox"],function(e){e.start()})})},bootstrapApp:function(e){require(["domReady","views/app","backbone","jquery","models/app","views/notification","views/prerequisitesTester","modules/html5-notification/html5-notification","modules/usermap/usermap","app/time","lib/Saito/isAppVisible","lib/jquery.i18n/jquery.i18n.extend","jqueryDropdown","lib/saito/backbone.initHelper","lib/saito/backbone.modelHelper","fastclick"],function(t,i,a,r,l,d,c,u,h){var p,f,m;l.settings.set(e.SaitoApp.app.settings),r.i18n.setUrl(l.settings.get("webroot")+"da/langJs"),l.currentUser.set(e.SaitoApp.currentUser),l.request=e.SaitoApp.request,u.start(),h.start(),new d;var g=e.SaitoApp.callbacks.beforeAppInit;_.each(g,function(e){e()}),window.addEventListener("load",function(){new FastClick(document.body)},!1),m=new c({el:r(".app-prerequisites-warnings")}),p=new i,f=function(){"shouts"in n&&s.bootstrapShoutbox(),s.fireOnPageCallbacks(e.SaitoApp.callbacks),p.initFromDom({SaitoApp:e.SaitoApp,contentTimer:e.contentTimer})},o(f)})}},a=t;return a.addInitializer(s.bootstrapApp),a.start({contentTimer:contentTimer,SaitoApp:n}),i.reqres.setHandler("webroot",function(){return n.app.settings.webroot}),i.reqres.setHandler("apiroot",function(){return n.app.settings.webroot+"api/v1/"}),a}),require.config({paths:{common:"../dist/common.min",templateHelpers:"lib/saito/templateHelpers"}}),function(e){e.contentTimer={show:function(){$("#content").css("visibility","visible"),console.warn("DOM ready timed out: show content fallback used."),delete this.timeoutID},setup:function(){this.cancel();var t=this;this.timeoutID=e.setTimeout(function(){t.show()},5e3)},cancel:function(){"number"==typeof this.timeoutID&&(e.clearTimeout(this.timeoutID),delete this.timeoutID)}},e.contentTimer.setup()}(window),require(["lib/bootstrapHelper","common"],function(){require(["app/app"])}),define("main",function(){}); \ No newline at end of file +"undefined"==typeof console&&(console={},console.log=function(){"use strict"},console.error=console.debug=console.info=console.log),window.redirect=function(e){"use strict";document.location.replace(e)},$.ajaxSetup({cache:!1}),define("jquery",[],function(){"use strict";return jQuery}),define("lib/bootstrapHelper",function(){}),define("lib/saito/underscore.extend",["underscore"],function(e){"use strict";e.mixin({chars:function(e){var t,i;return i=e.match(/(\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDFFF])/g)||[],t=e.length-i.length}})}),define("app/core",["marionette"],function(e){"use strict";return new e.Application}),define("app/vent",["marionette"],function(){var e=function(){this.vent=new Backbone.Wreqr.EventAggregator,this.commands=new Backbone.Wreqr.Commands,this.reqres=new Backbone.Wreqr.RequestResponse,this.request=function(){var e=Array.prototype.slice.apply(arguments);return this.reqres.request.apply(this.reqres,e)}};return new e}),define("models/appSetting",["underscore","backbone"],function(e,t){"use strict";var i=t.Model.extend({});return i}),define("models/appStatus",["underscore","backbone","cakeRest","app/vent"],function(e,t,i,n){"use strict";var o=t.Model.extend({stream:null,initialize:function(t,i){this.settings=i.settings,this.methodToCakePhpUrl=e.clone(this.methodToCakePhpUrl),this.methodToCakePhpUrl.read="status/",this.listenTo(this,"change:lastShoutId",this._onNewShout)},start:function(){this._setWebroot(this.settings.get("webroot")),this._poll()},_onNewShout:function(e){var t=e.get("lastShoutId");n.commands.execute("shoutbox:update",t)},_setWebroot:function(e){this.webroot=e+"status/"},_eventStream:function(){this.stream=new EventSource(this.webroot+this.methodToCakePhpUrl.read),this.stream.addEventListener("message",e.bind(function(e){var t=JSON.parse(e.data);this.set(t)},this),!1)},_poll:function(){var t,i,n,o,s,a,r=1e4,l=9e4;s=function(){void 0!==o&&clearTimeout(o)},t=function(){s(),a=r},n=function(){o=setTimeout(i,a)},i=e.bind(function(){n(),this.fetch({success:function(){a=Math.floor(a*(1+a/4e4)),a>l&&(a=l)},error:s})},this),this.listenTo(this,"change",function(){t(),n()}),i(),t(),n()}});return e.extend(o.prototype,i),o}),define("models/currentUser",["underscore","backbone"],function(e,t){"use strict";var i=t.Model.extend({isLoggedIn:function(){return this.get("id")>0}});return i}),define("models/app",["underscore","backbone","app/vent","models/appSetting","models/appStatus","models/currentUser"],function(e,t,i,n,o,s){"use strict";var a=t.Model.extend({eventBus:null,settings:null,status:null,currentUser:null,request:null,initialize:function(){this.eventBus=i.vent,this.commands=i.commands,this.reqres=i.reqres,this.settings=new n,this.status=new o({},{settings:this.settings}),this.currentUser=new s}});return new a}),define("modules/html5-notification/views/notification",["underscore","backbone","models/app"],function(e,t,i){"use strict";var n=t.View.extend({_hideAfter:10,_iconUrl:!1,initialize:function(e){this._iconUrl=e.iconUrl,this.listenTo(i.eventBus,"html5-notification",this.notification),i.commands.setHandler("app:html5-notification:activate",this._activate,this),i.reqres.setHandler("app:html5-notification:available",this._isEnabled,this)},notification:function(t){var n=!i.reqres.request("isAppVisible");if(t=e.defaults(t,{icon:this._iconUrl,always:!1}),t.always||n){var o=new window.Notification(t.title,{icon:t.icon,body:t.message}),s=navigator.userAgent.toLowerCase().indexOf("chrome")>-1;s&&setTimeout(function(){o.close()},1e3*this._hideAfter)}},_activate:function(){return"permission"in window.Notification&&"granted"!==window.Notification.permission?void window.Notification.requestPermission():void window.Notification.requestPermission()},_isEnabled:function(){return"Notification"in window?!0:!1}});return n}),define("modules/html5-notification/html5-notification",["app/core","marionette","modules/html5-notification/views/notification"],function(e,t,i){"use strict";var n=e.module("html5-notification");return n.addInitializer(function(e){new i({iconUrl:e.SaitoApp.app.settings.notificationIcon})}),n}),define("modules/shoutbox/models/shout",["underscore","backbone"],function(e,t){"use strict";var i=t.Model.extend({initialize:function(e,t){this.urlRoot=t.urlRoot}});return i}),define("modules/shoutbox/collections/shouts",["underscore","backbone","modules/shoutbox/models/shout"],function(e,t,i){"use strict";var n=t.Collection.extend({model:i,initialize:function(e,t){this.apiroot=t.apiroot+"shouts/"},fetch:function(){$.ajax({url:this.apiroot,dataType:"json",context:this}).done(function(e){e.length>0&&this.reset(e)})}});return n}),define("templateHelpers",["jquery","underscore","app/vent","moment"],function(e,t,i,n){"use strict";var o=function(){this.webroot=i.reqres.request("webroot")};return{Time:t.extend(new o,{moment:n,_timeFormats:{"long":"DD.MM.YYYY",longWithTime:"DD.MM.YYYY HH:mm",RFC3339:"YYYY-MM-DDTHH:mm:ssZ",theRightWay:"YYYY-MM-DD HH:mm:ss",time:"HH:mm"},lastMidnight:function(){return n(this.now().format("YYYY-MM-DD"))},now:function(){return n()},_normal:function(t){var i=this.now(),n=this.lastMidnight(),o=i.diff(t)/1e3;return t.isAfter(n)||21600>o?t.format(this._timeFormats.time):64800>o?e.i18n.__("yesterday")+" "+t.format(this._timeFormats.time):t.format(this._timeFormats["long"])},format:function(e,i,o){var s,a;if(i=i||"normal",o=o||{},t.defaults(o,{wrap:!0}),n.isMoment(e))a=e;else if(t.isNumber(e))(""+e).length<13&&(e=Math.round(1e3*e)),a=new n(e);else{if(!t.isDate(e))throw"No valid timestamp: "+e.toJSON();a=new n(e)}if(s="normal"===i?this._normal(a):a.format(this._timeFormats[i]?this._timeFormats[i]:i),o.wrap){var r=" ",l={title:a.format(this._timeFormats.theRightWay),datetime:a.format(this._timeFormats.RFC3339)};t.each(l,function(e,t){r+=t+'="'+e+'" '}),s=""+s+""}return s}}),User:t.extend(new o,{templates:{linkToUserProfile:t.template('<%- name %>')},linkToUserProfile:function(e,t){var i=this.urlToUserProfile(e);return this.templates.linkToUserProfile({url:i,name:t})},urlToUserProfile:function(e){return this.webroot+"users/view/"+e}})}}),define("lib/saito/localStorageHelper",["underscore","app/vent"],function(e,t){"use strict";var i=function(){};e.extend(i.prototype,{_available:null,_prefix:"saito-",available:function(){return null===this._available&&(this._available=this._isAvailable()),this._available},_clear:function(){if(this.available()){var t=Object.keys(localStorage);e.each(t,function(e){0===e.indexOf(this._prefix)&&localStorage.removeItem(e)},this)}},_key:function(e){return this._prefix+e},_isAvailable:function(){if(!("localStorage"in window))return!1;try{var e="localStorageAvailableTestKey",t=window.localStorage;return t.setItem(e,"1"),t.removeItem(e),!0}catch(i){return!1}return!1}});var n=new i;t.reqres.setHandler("app:localStorage:available",n.available,n),t.reqres.setHandler("app:localStorage:key",n._key,n),t.commands.setHandler("app:localStorage:clear",n._clear,n)}),define("modules/shoutbox/models/control",["underscore","backbone","models/app","lib/saito/localStorageHelper"],function(e,t,i){"use strict";var n=t.Model.extend({defaults:{id:1,lastId:0,mar:0,notify:!1},localStorage:function(){var e=i.reqres.request("app:localStorage:key","shoutbox-control");return new t.LocalStorage(e)}(),initialize:function(){this._restore(["notify","mar"]),this.listenTo(this,"change:notify",this._onChangeNotify),i.commands.setHandler("shoutbox:mar",this._mar,this)},_mar:function(t){t=t||{},e.defaults(t,{silent:!1}),this.set({mar:this.get("lastId")},{silent:t.silent}),this._save("mar")},setLastId:function(e){e<=this.get("lastId")||this.set("lastId",e)},_onChangeNotify:function(){this._save("notify")},_onChangeMar:function(){this._save("mar")},_restore:function(t){e.isArray(t)&&e.each(t,function(e){this._restore(e)},this),i.reqres.request("app:localStorage:available")&&this.fetch()},_save:function(){i.reqres.request("app:localStorage:available")&&this.save()}});return new n}),define("text!modules/shoutbox/templates/shout.html",[],function(){return'\n <%= User.linkToUserProfile(user_id, user_name) %>:\n\n<%= html %>\n'}),define("modules/shoutbox/views/shout",["jquery","underscore","backbone","marionette","models/app","modules/shoutbox/models/control","templateHelpers","text!modules/shoutbox/templates/shout.html"],function(e,t,i,n,o,s,a,r){"use strict";var l=n.ItemView.extend({className:"shout",templateHelpers:a,initialize:function(e){this.webroot=e.webroot,this.listenTo(s,"change:mar",this.render)},serializeData:function(){var e=this.model.toJSON(),t=this.model.get("id")>s.get("mar"),i=this.model.get("user_id")===o.currentUser.get("id");return i&&this.$el.addClass("shoutbox-shout-cu"),this.$el.addClass(t&&!i?"shoutbox-shout-new":"shoutbox-shout-old"),e},onRender:function(){s.setLastId(this.model.get("id"))},template:function(e){return t.template(r,e)}});return l}),define("modules/shoutbox/views/shouts",["jquery","underscore","backbone","marionette","models/app","templateHelpers","modules/shoutbox/views/shout","modules/shoutbox/models/control"],function(e,t,i,n,o,s,a,r){"use strict";var l=n.CollectionView.extend({itemView:a,itemViewOptions:{},_Notifications:{_last:0,_models:[],_isEnabled:!1,init:function(e){this._currentUserId=e.currentUserId,this._isEnabled=e.isEnabled,this._last=e.last},add:function(e){this._isEnabled===!0&&this._currentUserId!==e.get("user_id")&&(e.get("id")<=this._last||this._models.push(e))},send:function(){0!==this._models.length&&(t.each(this._models,function(e){o.eventBus.trigger("html5-notification",{title:e.get("user_name"),message:e.get("text")})}),this._last=t.first(this._models).get("id"),this._models=[])}},_Delimiter:{_conversationCoolOff:300,_previousItemTime:null,tpl:t.template('
    <%= time %>
    '),append:function(e){var t=s.Time.moment(e.model.get("time"));return null===this._previousItemTime?void(this._previousItemTime=t):(this._itemTime=t,this.$el=e.$el,this._prepend(this._previousItemTime.unix()-t.unix()>this._conversationCoolOff?this._previousItemTime:"
    "),void(this._previousItemTime=t))},finish:function(){this._previousItemTime=null,this._itemTime&&this.$el.after(this._formatTime(this._itemTime))},_prepend:function(e){this.$el.before(this._formatTime(e))},_formatTime:function(e){var i=e;if(t.isObject(e)){var n=s.Time.moment().utc().diff(e)/1e3,o="normal";n>64800&&(o="longWithTime"),i=this.tpl({time:s.Time.format(e,o)})}return i}},initialize:function(e){this.itemViewOptions.webroot=e.webroot,this.setupNotifications(),this.listenTo(r,"change:notify",this.setupNotifications)},setupNotifications:function(){var e=0;this.collection.size()>0&&(e=this.collection.first().get("id")),this._Notifications.init({currentUserId:o.currentUser.get("id"),isEnabled:r.get("notify"),last:e})},onBeforeRender:function(){this.$el.html("")},onAfterItemAdded:function(e){this._Delimiter.append(e),this._Notifications.add(e.model)},onRender:function(){this._Delimiter.finish(),this._Notifications.send()}});return l}),define("text!modules/shoutbox/templates/add.html",[],function(){return'
    \n \n
    \n'}),define("modules/shoutbox/views/add",["jquery","underscore","backbone","marionette","models/app","modules/shoutbox/models/shout","text!modules/shoutbox/templates/add.html","jqueryAutosize"],function(e,t,i,n,o,s,a){"use strict";var r=n.ItemView.extend({template:t.template(a),_placeholder:{a:e.i18n.__("Shout :shortcut",{shortcut:"⌃s"}),b:e.i18n.__("Hit enter to mark as read")},events:{"keyup form":"formUp","keydown form":"formDown","blur #shoutbox-input":"_setPlaceholder","focus #shoutbox-input":"_setPlaceholder"},submit:function(){this.model.save({text:this.textarea.val()},{success:t.bind(function(e,t){o.commands.execute("shoutbox:mar",{silent:!0}),this.collection.reset(t)},this)})},_setPlaceholder:function(){t.defer(t.bind(function(){var e;e=this.textarea.is(":focus")?this._placeholder.b:this._placeholder.a,this.textarea.attr("placeholder",e)},this))},_firefoxRowFix:function(){if(-1!==navigator.userAgent.toLowerCase().indexOf("firefox")){var e=parseFloat(this.textarea.css("line-height")),t=1*this.textarea.attr("rows");this.textarea.css("height",t*e)}},serializeData:function(){return{placeholder:this._placeholder.a}},clearForm:function(){this.textarea.val("").trigger("autosize.resize")},formDown:function(e){13===e.keyCode&&e.shiftKey===!1&&(e.preventDefault(),this.textarea.val().length>0?(this.submit(),this.clearForm()):o.commands.execute("shoutbox:mar"))},formUp:function(){this.textarea.val().length>0?o.eventBus.trigger("breakAutoreload"):0===this.textarea.val().length&&o.eventBus.trigger("initAutoreload")},onShow:function(){this.textarea=this.$("#shoutbox-input"),this._firefoxRowFix(),this.textarea.autosize(),this._setPlaceholder(),e(window).keydown(t.bind(function(e){e.ctrlKey===!0&&83===e.which&&this.textarea.focus()},this))}});return r}),define("text!modules/shoutbox/templates/control.html",[],function(){return"\n"}),define("modules/shoutbox/views/control",["jquery","underscore","backbone","marionette","models/app","modules/shoutbox/models/control","text!modules/shoutbox/templates/control.html"],function(e,t,i,n,o,s,a){"use strict";var r=n.ItemView.extend({template:t.template(a),events:{"click #shoutbox-notify":"onChangeNotify"},initialize:function(){this.model=s},onRender:function(){this._putNotifyCheckbox()},serializeData:function(){return{n:e.i18n.__("Notification")}},_putNotifyCheckbox:function(){var e=o.reqres.request("app:html5-notification:available");e===!0&&(this.notify=this.$("#shoutbox-notify"),this.model.get("notify")?this.notify.attr("checked","checked"):this.notify.removeAttr("checked"),this.$("#shoutbox-notify-label").show())},onChangeNotify:function(){var e=this.notify.is(":checked");this.model.set("notify",e),e&&o.commands.execute("app:html5-notification:activate")}});return r}),define("text!modules/shoutbox/templates/layout.html",[],function(){return"
    \n
    \n
    \n
    \n
    \n"}),define("modules/shoutbox/shoutbox",["jquery","app/app","models/app","marionette","modules/shoutbox/collections/shouts","modules/shoutbox/models/shout","modules/shoutbox/views/shouts","modules/shoutbox/views/add","modules/shoutbox/views/control","text!modules/shoutbox/templates/layout.html"],function(e,t,i,n,o,s,a,r,l,d){"use strict";var c=t.module("Shoutbox");return c.addInitializer(function(t){var c=t.SaitoApp.shouts,u=i.reqres.request("webroot"),h=i.reqres.request("apiroot");if(e("#shoutbox").length){var p={layout:null,shoutsCollection:null,initialize:function(){this.initLayout(),this.initShoutsCollection(),this.initAdd(),this.initShouts(),this.initControl()},initShoutsCollection:function(){this.shoutsCollection=new o(c,{apiroot:h});var e=_.bind(function(){var e=!i.reqres.request("slidetab:open","shoutbox");e||this.shoutsCollection.fetch()},this);i.eventBus.on("slidetab:open",_.bind(function(t){"shoutbox"===t.slidetab&&e()},this)),i.commands.setHandler("shoutbox:update",_.bind(function(t){var i=0;this.shoutsCollection.size()>0&&(i=this.shoutsCollection.at(0).get("id")),t!==i&&e()},this))},initLayout:function(){var e=n.Layout.extend({el:"#shoutbox",template:d,regions:{add:"#shoutbox-add",shouts:"#shoutbox-shouts",control:"#shoutbox-control"}});this.layout=new e,this.layout.render(),this.layout.$("#shoutbox-add").addClass("slidetab-header"),this.layout.$("#shoutbox-shouts").addClass("slidetab-content"),this.layout.$("#shoutbox-control").addClass("slidetab-footer")},initShouts:function(){var e=new a({collection:this.shoutsCollection,webroot:u});this.layout.shouts.show(e)},initControl:function(){var e=new l;this.layout.control.show(e)},initAdd:function(){var e=new s({},{urlRoot:h+"shouts/"});this.layout.add.show(new r({model:e,collection:this.shoutsCollection}))}};p.initialize()}}),c}),define("models/threadline",["underscore","backbone","models/app","cakeRest"],function(e,t,i,n){"use strict";var o=t.Model.extend({defaults:{isInlineOpened:!1,shouldScrollOnInlineOpen:!0,isAlwaysShownInline:!1,isNewToUser:!1,posting:"",html:""},initialize:function(){this.webroot=i.settings.get("webroot")+"entries/",this.methodToCakePhpUrl=e.clone(this.methodToCakePhpUrl),this.methodToCakePhpUrl.read="threadLine/",this.set("isAlwaysShownInline",i.currentUser.get("user_show_inline")||!1)}});return e.extend(o.prototype,n),o}),define("collections/threadlines",["underscore","backbone","models/threadline"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("text!templates/threadline-spinner.html",[],function(){return''}),define("views/postingActionBookmark",["jquery","underscore","marionette","models/app"],function(e,t,i,n){"use strict";return i.ItemView.extend({tagName:"a",className:"btn-bookmark-add btn-icon panel-footer-form-btn",template:t.template(''),events:{click:"_onClick"},modelEvents:{"change:isBookmarked":"_toggle"},initialize:function(){this._shouldRender()&&(this.$el.attr("href","#"),this.render())},_shouldRender:function(){return n.currentUser.isLoggedIn()?!0:!1},_onClick:function(e){e.preventDefault(),this.model.get("isBookmarked")?window.location=n.settings.get("webroot")+"bookmarks/index/#"+this.model.get("id"):this.model.set("isBookmarked",!0)},_toggle:function(){var t=this.$("i");this.model.get("isBookmarked")?(t.removeClass("fa-bookmark-o"),t.addClass("fa-bookmark"),this.$el.attr("title",e.i18n.__("Entry is bookmarked"))):(t.removeClass("fa-bookmark"),t.addClass("fa-bookmark-o"),this.$el.attr("title",e.i18n.__("Bookmark the entry")))},onRender:function(){this._toggle()}})}),define("views/postingActionSolves",["jquery","marionette","models/app"],function(e,t,i){"use strict";return t.ItemView.extend({tagName:"a",className:"btn-solves btn-icon panel-footer-form-btn",template:_.template(''),events:{click:"_onClick"},modelEvents:{"change:isSolves":"_toggle"},initialize:function(){this._shouldRender()&&(this.$el.attr({href:"#",title:e.i18n.__("Mark entry as helpful")}),this.render())},_shouldRender:function(){return i.currentUser.isLoggedIn()?this.model.isRoot()?!1:this.model.get("rootEntryUserId")!==i.currentUser.get("id")?!1:!0:!1},_onClick:function(e){e.preventDefault(),this.model.toggle("isSolves")},_toggle:function(){var t=this.$("i"),i=this.model.get("isSolves"),n="";i?(t.addClass("solves-isSolved"),t.removeClass("fa-badge-solves-o"),t.addClass("fa-badge-solves"),n=this.$el.html(),n=e(n).removeClass("fa-lg")):(t.removeClass("fa-badge-solves"),t.addClass("fa-badge-solves-o"),t.removeClass("solves-isSolved")),this._toggleGlobal(n)},_toggleGlobal:function(t){var i=e(".solves."+this.model.get("id"));i.html(t)},onRender:function(){this._toggle()}})}),define("views/editCountdown",["jquery","underscore","marionette","moment","jqueryTinyTimer"],function(e,t,i,n){"use strict";return i.ItemView.extend({_editEnd:null,_buttonText:null,_$countdownDummy:null,_doneAction:"remove",initialize:function(t){this._editEnd=n(this.model.get("time")).unix()+60*t.editPeriod,n().unix()>this._editEnd||(t.done&&(this._doneAction=t.done),this._buttonText=this.$el.html(),this._$countdownDummy=e(''),this.$el.append(this._$countdownDummy),this._start())},_setButtonText:function(e){this.$el.text(this._buttonText+" "+e)},_onTick:function(e){e.m>1||1===e.m&&e.s>30?(e.m=e.m+1,this._setButtonText("("+e.m+" min)")):this._setButtonText(1===e.m?"("+e.m+" min "+e.s+" s)":"("+e.s+" s)")},_onEnd:function(){switch(this._doneAction){case"disable":this._disable();break;default:this._remove()}},_remove:function(){this.remove()},_disable:function(){this.$el.attr("disabled","disabled")},_start:function(){this._$countdownDummy.tinyTimer({to:n.unix(this._editEnd).toDate(),format:"",onTick:t.bind(this._onTick,this),onEnd:t.bind(this._onEnd,this)})}})}),define("views/postingAction",["jquery","underscore","marionette","models/app","views/postingActionBookmark","views/postingActionSolves","views/editCountdown"],function(e,t,i,n,o,s,a){"use strict";var r=i.ItemView.extend({events:{"click .js-btn-setAnsweringForm":"onBtnAnswer"},_jsButtons:[o,s],initialize:function(){this._initFormElements(),this.listenTo(this.model,"change:isAnsweringFormShown",this._toggleAnsweringForm)},_initFormElements:function(){t.each(this._jsButtons,function(e){this.$el.append(new e({model:this.model}).$el)},this);var e=this.$(".js-btn-edit");if(e.length>0){new a({el:e,model:this.model,editPeriod:n.settings.get("editPeriod")})}},onBtnAnswer:function(e){e.preventDefault(),this.model.set("isAnsweringFormShown",!0)},_toggleAnsweringForm:function(){this.model.get("isAnsweringFormShown")?this.$el.slideUp("fast"):this.$el.slideDown("fast")}});return r}),define("models/geshi",["underscore","backbone"],function(e,t){"use strict";var i=t.Model.extend({defaults:{isPlaintext:!1}});return i}),define("collections/geshis",["underscore","backbone","models/geshi"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("views/geshi",["jquery","underscore","backbone","models/geshi"],function(e,t,i,n){"use strict";var o=i.View.extend({plainText:!1,htmlText:!1,events:{"click .geshi-plain-text":"_togglePlaintext"},initialize:function(){this.model=new n,this.collection.push(this.model),this.block=this.$(".geshi-plain-text").next(),this._setPlaintextButton(),this.listenTo(this.model,"change",this.render)},_setPlaintextButton:function(e){var t;e&&e.preventDefault(),t=this.model.get("isPlaintext")?"fa-list-ol":"fa-align-justify",this.$(".geshi-plain-text").html("")},_togglePlaintext:function(e){e.preventDefault(),this.model.set("isPlaintext",!this.model.get("isPlaintext"))},_extractPlaintext:function(){this.plainText===!1&&(this.htmlText=this.block.html(),"Microsoft Internet Explorer"===navigator.appName?(this.htmlText=this.htmlText.replace(/\n\r/g,"+"),this.plainText=e(this.htmlText).text().replace(/\+\+/g,"\r")):this.plainText=this.block.text().replace(/code /g,"code \n"))},_renderText:function(){this.model.get("isPlaintext")?this.block.text(this.plainText).wrapInner('
    '):this.block.html(this.htmlText)},render:function(){return this._setPlaintextButton(),this._extractPlaintext(),this._renderText(),this}});return o}),define("views/postingContent",["jquery","underscore","marionette","collections/geshis","views/geshi"],function(e,t,i,n,o){"use strict";return i.ItemView.extend({initialize:function(){this.listenTo(this.model,"change:isAnsweringFormShown",this._toggleAnsweringForm),this.listenTo(this.model,"change:html",this.render),this._initGeshi(".geshi-wrapper")},_toggleAnsweringForm:function(){this.model.get("isAnsweringFormShown")?this._hideSignature():this._showSignature()},_showSignature:function(){this.$(".postingBody-signature").slideDown("fast")},_hideSignature:function(){this.$(".postingBody-signature").slideUp("fast")},_initGeshi:function(e){var t=this.$(e);if(t.length>0){var i=new n;t.each(function(e,t){new o({el:t,collection:i})})}},render:function(){return this.$el.html(this.model.get("html")),this._initGeshi(".geshi-wrapper"),this}})}),define("models/upload",["underscore","backbone","models/app","cakeRest"],function(e,t,i,n){"use strict";var o=t.Model.extend({initialize:function(){this.webroot=i.settings.get("webroot")+"uploads/"}});return e.extend(o.prototype,n),o}),define("collections/uploads",["underscore","backbone","models/upload"],function(e,t,i){var n=t.Collection.extend({model:i,initialize:function(e){this.url=e.url+"uploads/index/"}});return n}),define("text!templates/upload.html",[],function(){return'
    \n <%= linkImage %>\n
    \n\n'}),function(e,t){"use strict";"function"==typeof define&&define.amd?define("lib/saito/jquery.insertAtCaret",["jquery"],function(e){return t(e)}):t(jQuery)}(this,function(e){"use strict";e.fn.insertAtCaret=function(e){var t,i=this[0],n=0,o=i.selectionStart||"0"===i.selectionStart?"standard":document.selection?"ie":!1;"ie"===o?(i.focus(),t=document.selection.createRange(),t.moveStart("character",-i.value.length),n=t.text.length):"standard"===o&&(n=i.selectionStart);var s=i.value.substring(0,n),a=i.value.substring(n,i.value.length);return i.value=s+e+a,n+=e.length,"ie"===o?(i.focus(),t=document.selection.createRange(),t.moveStart("character",-i.value.length),t.moveStart("character",n),t.moveEnd("character",0),t.select()):"standard"===o&&(i.selectionStart=n,i.selectionEnd=n,i.focus()),this}}),define("views/upload",["jquery","underscore","backbone","models/app","text!templates/upload.html","lib/saito/jquery.insertAtCaret"],function(e,t,i,n,o){"use strict";var s=i.View.extend({className:"panel-content upload_box current",events:{"click .upload_box_delete":"_removeUpload","click .btn-submit":"_insert"},initialize:function(e){this.textarea=e.textarea,this.listenTo(this.model,"destroy",this._uploadRemoved)},_removeUpload:function(e){e.preventDefault(),this.model.destroy({success:t.bind(function(e,t){n.eventBus.trigger("notification",t)},this)})},_uploadRemoved:function(){this.remove()},_insert:function(t){t.preventDefault(),e(this.textarea).insertAtCaret("[upload]"+this.model.get("name")+"[/upload]")},render:function(){return this.$el.html(t.template(o,this.model.toJSON())),this}});return s}),function(e){function t(){}jQuery.event.props.push("dataTransfer");var i,n,o={fallback_id:"",url:"",refresh:1e3,paramname:"userfile",allowedfiletypes:[],maxfiles:25,maxfilesize:1,queuefiles:0,queuewait:200,data:{},headers:{},drop:t,dragStart:t,dragEnter:t,dragOver:t,dragLeave:t,docEnter:t,docOver:t,docLeave:t,beforeEach:t,afterAll:t,rename:t,error:function(e){alert(e)},uploadStarted:t,uploadFinished:t,progressUpdated:t,globalProgressUpdated:t,speedUpdated:t},s=["BrowserNotSupported","TooManyFiles","FileTooLarge","FileTypeNotAllowed","NotFound","NotReadable","AbortError","ReadError"],a=!1,r=0;e.fn.filedrop=function(t){function l(e){return T.drop.call(this,e)===!1?!1:(n=e.dataTransfer.files,null===n||void 0===n||0===n.length?(T.error(s[0]),!1):(r=n.length,h(),e.preventDefault(),!1))}function d(t,i,n,o){var s="--",a="\r\n",r="";if(T.data){var l=e.param(T.data).replace(/\+/g,"%20").split(/&/);e.each(l,function(){var e=this.split("=",2),t=decodeURIComponent(e[0]),i=decodeURIComponent(e[1]);r+=s,r+=o,r+=a,r+='Content-Disposition: form-data; name="'+t+'"',r+=a,r+=a,r+=i,r+=a})}return r+=s,r+=o,r+=a,r+='Content-Disposition: form-data; name="'+T.paramname+'"',r+='; filename="'+t+'"',r+=a,r+="Content-Type: "+n,r+=a,r+=a,r+=i,r+=a,r+=s,r+=o,r+=s,r+=a}function c(e){if(e.lengthComputable){var t=Math.round(100*e.loaded/e.total);if(this.currentProgress!==t){this.currentProgress=t,T.progressUpdated(this.index,this.file,this.currentProgress),S[this.global_progress_index]=this.currentProgress,u();var i=(new Date).getTime(),n=i-this.currentStart;if(n>=T.refresh){var o=e.loaded-this.startData,s=o/n;T.speedUpdated(this.index,this.file,s),this.startData=e.loaded,this.currentStart=i}}}}function u(){if(0!==S.length){var e,t=0;for(e in S)S.hasOwnProperty(e)&&(t+=S[e]);T.globalProgressUpdated(Math.round(t/S.length))}}function h(){if(a=!1,!n)return T.error(s[0]),!1;if(T.allowedfiletypes.push&&T.allowedfiletypes.length)for(var t=n.length;t--;)if(!n[t].type||e.inArray(n[t].type,T.allowedfiletypes)<0)return T.error(s[3],n[t]),!1;var i=0,o=0;if(r>T.maxfiles&&0===T.queuefiles)return T.error(s[1]),!1;for(var l=[],h=[],b=[],v=0;r>v;v++)l.push(v);var _=function(e){setTimeout(w,e)},w=function(){var e;if(a)return!1;if(T.queuefiles>0&&h.length>=T.queuefiles)return _(T.queuewait);e=l[0],l.splice(0,1),h.push(e);try{if(m(n[e])!==!1){if(e===r)return;var t=new FileReader,i=1048576*T.maxfilesize;if(t.index=e,n[e].size>i)return T.error(s[2],n[e],e),h.forEach(function(t,i){t===e&&h.splice(i,1)}),o++,!0;t.onerror=function(e){switch(e.target.error.code){case e.target.error.NOT_FOUND_ERR:return T.error(s[4]),!1;case e.target.error.NOT_READABLE_ERR:return T.error(s[5]),!1;case e.target.error.ABORT_ERR:return T.error(s[6]),!1;default:return T.error(s[7]),!1}},t.onloadend=T.beforeSend?function(t){T.beforeSend(n[e],e,function(){y(t)})}:y,t.readAsBinaryString(n[e])}else o++}catch(d){return h.forEach(function(t,i){t===e&&h.splice(i,1)}),T.error(s[0]),!1}l.length>0&&w()},y=function(t){var s=("undefined"==typeof t.srcElement?t.target:t.srcElement).index;void 0===t.target.index&&(t.target.index=p(t.total));var l,m=new XMLHttpRequest,v=m.upload,_=n[t.target.index],w=t.target.index,y=(new Date).getTime(),x="------multipartformboundary"+(new Date).getTime(),k=S.length,$=f(_.name),I=_.type;T.withCredentials&&(m.withCredentials=T.withCredentials),l="string"==typeof $?d($,t.target.result,I,x):d(_.name,t.target.result,I,x),v.index=w,v.file=_,v.downloadStartTime=y,v.currentStart=y,v.currentProgress=0,v.global_progress_index=k,v.startData=0,v.addEventListener("progress",c,!1),jQuery.isFunction(T.url)?m.open("POST",T.url(),!0):m.open("POST",T.url,!0),m.setRequestHeader("content-type","multipart/form-data; boundary="+x),e.each(T.headers,function(e,t){m.setRequestHeader(e,t)}),m.sendAsBinary(l),S[k]=0,u(),T.uploadStarted(w,_,r),m.onload=function(){var e=null;if(m.responseText)try{e=jQuery.parseJSON(m.responseText)}catch(t){e=m.responseText}var n=(new Date).getTime(),l=n-y,d=T.uploadFinished(w,_,e,l,m);i++,h.forEach(function(e,t){e===s&&h.splice(t,1)}),b.push(s),S[k]=100,u(),i===r-o&&g(),d===!1&&(a=!0),(m.status<200||m.status>299)&&T.error(m.statusText,_,s,m.status)}};w()}function p(e){for(var t=0;r>t;t++)if(n[t].size===e)return t;return void 0}function f(e){return T.rename(e)}function m(e){return T.beforeEach(e)}function g(){return T.afterAll()}function b(e){clearTimeout(i),e.preventDefault(),T.dragEnter.call(this,e)}function v(e){clearTimeout(i),e.preventDefault(),T.docOver.call(this,e),T.dragOver.call(this,e)}function _(e){clearTimeout(i),T.dragLeave.call(this,e),e.stopPropagation()}function w(e){return e.preventDefault(),T.docLeave.call(this,e),!1}function y(e){return clearTimeout(i),e.preventDefault(),T.docEnter.call(this,e),!1}function x(e){return clearTimeout(i),e.preventDefault(),T.docOver.call(this,e),!1}function k(e){i=setTimeout(function(t){return function(){T.docLeave.call(t,e)}}(this),200)}var T=e.extend({},o,t),S=[];return this.on("drop",l).on("dragstart",T.dragStart).on("dragenter",b).on("dragover",v).on("dragleave",_),e(document).on("drop",w).on("dragenter",y).on("dragover",x).on("dragleave",k),e("#"+T.fallback_id).change(function(e){T.drop(e),n=e.target.files,r=n.length,h()}),this};try{if(XMLHttpRequest.prototype.sendAsBinary)return;XMLHttpRequest.prototype.sendAsBinary=function(e){function t(e){return 255&e.charCodeAt(0)}var i=Array.prototype.map.call(e,t),n=new Uint8Array(i);this.send(n.buffer)}}catch(l){}}(jQuery),define("views/../../dev/vendors/jquery-filedrop/jquery.filedrop",function(){}),define("text!templates/uploadNew.html",[],function(){return'
    \n
    \n
    \n
    \n
    \n \n
    \n

    <%- $.i18n.__(\'upload_new_title\') %>

    \n

    \n <%- $.i18n.__(\'upload_info\', {size: upload_size}) %>\n

    \n
    \n \n
    \n\n' +}),define("text!templates/spinner.html",[],function(){return'
    \n
    \n
    \n
    \n
    \n
    \n
    '}),define("views/uploadNew",["jquery","underscore","backbone","../../dev/vendors/jquery-filedrop/jquery.filedrop","models/app","text!templates/uploadNew.html","text!templates/spinner.html","humanize"],function(e,t,i,n,o,s,a,r){"use strict";var l=i.View.extend({className:"panel upload_box upload-new",wasChild:"unset",events:{"change #Upload0File":"_uploadManual"},initialize:function(e){this.uploadUrl=o.settings.get("webroot")+"uploads/add",this.collection=e.collection},_initDropUploader:function(){this._browserSupportsDragAndDrop()&&window.FileReader?this.$(".upload-layer").filedrop({maxfiles:1,maxfilesize:o.settings.get("upload_max_img_size")/1024,url:this.uploadUrl,paramname:"data[Upload][0][file]",allowedfiletypes:["image/jpeg","image/jpg","image/png","image/gif"],dragOver:t.bind(function(){this._showDragIndicator()},this),dragLeave:t.bind(function(){this._hideDragIndicator()},this),uploadFinished:t.bind(function(e,t,i){this._postUpload(i)},this),beforeSend:t.bind(function(e,t,i){this._hideDragIndicator(),this._setUploadSpinner(),i()},this),error:t.bind(function(t,i){var n;switch(this._hideDragIndicator(),t){case"FileTypeNotAllowed":n=e.i18n.__("upload_fileTypeNotAllowed");break;case"FileTooLarge":n=e.i18n.__("upload_fileToLarge",{name:i.name});break;case"BrowserNotSupported":n=e.i18n.__("upload_browserNotSupported");break;case"TooManyFiles":n=e.i18n.__("upload_toManyFiles");break;default:n=t}o.eventBus.trigger("notification",{title:"Error",message:n,type:"error"})},this)}):this.$("h2").html(e.i18n.__("Upload"))},_browserSupportsDragAndDrop:function(){var e=this.$(".upload-layer")[0];return"draggable"in e||"ondragstart"in e&&"ondrop"in e},_showDragIndicator:function(){this.$(".upload-drag-indicator").fadeIn()},_hideDragIndicator:function(){this.$(".upload-drag-indicator").fadeOut()},_setUploadSpinner:function(){this.$(".upload_box_header").html(a)},_uploadManual:function(e){var t,i,n=!0;e.preventDefault();try{t=new FormData,i=this.$("#Upload0File")[0],t.append(i.name,i.files[0])}catch(o){n=!1}this._setUploadSpinner(),n?this._uploadAjax(t):this._uploadIFrame()},_uploadIFrame:function(){var e=this.$("form"),i=this.$("#uploadIFrame");i.load(t.bind(function(){this._postUpload(i.contents().find("body").html()),i.off("load")},this)),e.submit()},_uploadAjax:function(e){var i=new XMLHttpRequest;i.open("POST",this.uploadUrl),i.onloadend=t.bind(function(e){this._postUpload(e.target.response)},this),i.onerror=this._onUploadError,i.send(e)},_onUploadError:function(){o.eventBus.trigger("notification",{type:"error",message:e.i18n.__("upload_genericError")})},_postUpload:function(e){if(t.isString(e))try{e=JSON.parse(e)}catch(i){this._onUploadError()}o.eventBus.trigger("notification",e),this.collection.fetch({reset:!0}),this.render()},render:function(){return this.$el.html(t.template(s)({url:this.uploadUrl,upload_size:r.filesize(o.settings.get("upload_max_img_size"))})),this._initDropUploader(),this}});return l}),define("text!templates/uploads.html",[],function(){return'
    \n
    \n
    \n
    \n'}),define("views/uploads",["jquery","underscore","backbone","models/app","collections/uploads","views/upload","views/uploadNew","text!templates/uploads.html"],function(e,t,i,n,o,s,a,r){var l=i.View.extend({events:{"click .current .btn-submit":"_closeDialog"},initialize:function(e){this.textarea=e.textarea,this.collection=new o({url:n.settings.get("webroot")}),this.listenTo(this.collection,"reset",this._addAll),this.$(".body").html(t.template(r)),this.uploadNewView=new a({collection:this.collection}),this.$(".content").append(this.uploadNewView.el),this.render(),this.collection.fetch({reset:!0})},_addOne:function(e){var t=new s({model:e,textarea:this.textarea});this.$(".upload-new").after(t.render().el)},_addAll:function(){this._removeAll(),this.collection.each(this._addOne,this)},_removeAll:function(){this.$(".upload_box.current").remove()},_setDialogSize:function(){this.$el.dialog("option","width",window.innerWidth-80),this.$el.dialog("option","height",window.innerHeight-80)},_closeDialog:function(){this.$el.dialog("close")},render:function(){return this.uploadNewView.render(),this.$el.dialog({title:e.i18n.__("Upload"),modal:!0,draggable:!1,resizable:!1,position:[40,40],hide:"fade"}),this._setDialogSize(),e(window).resize(t.bind(function(){this._setDialogSize()},this)),window.onorientationchange=t.bind(function(){this._setDialogSize()},this),this}});return l}),define("lib/saito/markItUp.media",["jquery","underscore"],function(e,t){"use strict";var i={_preFilters:{dropbox:{cleanUp:function(e){return e.replace(/https:\/\/www\.dropbox\.com\//,"https://dl.dropbox.com/")}},youtube:{cleanUp:function(e){var t,i,n,o=e;if(/http/.test(e)===!1&&(o="http://"+e),i=/(http|https):\/\/(\w+:?\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i,!i.test(o))return e;switch(t=o.match(/(https?:\/\/)?(www\.)?(.[^\/:]+)/i).pop()){case"youtu.be":i=/youtu.be\/(.*?)(&.*)?$/,i.test(o)&&(n=o.match(i)[1]);break;case"youtube.com":i=/v=(.*?)(&.*)?$/,i.test(o)&&(n=o.match(i)[1])}return void 0!==n&&(e=this._createIframe({src:"//www.youtube.com/embed/"+n})),e},_createIframe:function(e){var i,n,o;return i={width:560,height:315,frameborder:0,allowfullscreen:"allowfullscreen"},t.defaults(e,i),o=function(e,t,i){return e+i+'="'+t+'" '},n=t.reduce(e,o,""),n=n.trim(),""}}},multimedia:function(n,o){var s=e.trim(n),a="([\\/?]|$)",r=new RegExp("\\.(png|gif|jpg|jpeg|webp)"+a,"i"),l=new RegExp("\\.(mp4|webm|m4v)"+a,"i"),d=new RegExp("\\.(m4a|ogg|mp3|wav|opus)"+a,"i"),c=/.*?<\/iframe>/i.exec(e)[1];return t=t.replace(/["']/g,""),"[iframe"+t+"][/iframe]"},_embedly:function(e){return"[embed]"+e+"[/embed]"}};return i}),define("text!templates/mediaInsert.html",[],function(){return'
    \n
    \n
    \n \n \n \n\n \n
    \n
    \n
    \n'}),define("views/mediaInsert",["jquery","underscore","backbone","models/app","lib/saito/markItUp.media","text!templates/mediaInsert.html"],function(e,t,i,n,o,s){"use strict";return i.View.extend({template:t.template(s),events:{"click #markitup_media_btn":"_insert"},initialize:function(){void 0!==this.model&&null!==this.model&&this.listenTo(this.model,"change:isAnsweringFormShown",this.remove)},_insert:function(t){var i,s;t.preventDefault(),s=o,i=s.multimedia(this.$("#markitup_media_txta").val(),{embedlyEnabled:n.settings.get("embedly_enabled")===!0}),""===i?this._invalidInput():(e.markItUp({replaceWith:i}),this._closeDialog())},_hideErrorMessages:function(){this.$("#markitup_media_message").hide()},_invalidInput:function(){this.$("#markitup_media_message").show(),this.$el.dialog().parent().effect("shake",{times:2},250)},_closeDialog:function(){this.$el.dialog("close"),this._hideErrorMessages(),this.$("#markitup_media_txta").val("")},_showDialog:function(){this.$el.dialog({show:{effect:"scale",duration:200},hide:{effect:"fade",duration:200},title:e.i18n.__("Multimedia"),minWidth:346,position:{at:"left+50% top+40%"},resizable:!1,open:function(){setTimeout(function(){e("#markitup_media_txta").focus()},210)},close:t.bind(function(){this._hideErrorMessages()},this)})},render:function(){return this.$el.html(this.template),this._showDialog(),this}})}),define("models/preview",["underscore","backbone","models/app"],function(e,t,i){"use strict";var n=t.Model.extend({defaults:{isFetchingData:!1,rendered:null,data:null},initialize:function(){this.webroot=i.settings.get("webroot"),this.listenTo(this,"change:data",this._fetchRendered)},_fetchRendered:function(){this.set("fetchingData",!0),$.post(this.webroot+"entries/preview/",this.get("data"),e.bind(function(e){this.set("fetchingData",!1),this.set("rendered",e.html),i.eventBus.trigger("notificationUnset","all"),i.eventBus.trigger("notification",e)},this),"json")}});return n}),define("views/preview",["jquery","underscore","marionette","text!templates/spinner.html"],function(e,t,i,n){"use strict";var o=i.ItemView.extend({templates:{content:t.template("<%= rendered %>"),spinner:t.template(n)},modelEvents:{"change:fetchingData":"_fetchingData","change:rendered":"render"},_fetchingData:function(){this.model.get("fetchingData")&&this.render()},getTemplate:function(){return this.model.get("fetchingData")?this.templates.spinner:this.templates.content}});return o}),function(e){"use strict";var t={_scrollToTop:function(t){e("body").animate({scrollTop:t.offset().top-10,easing:"swing"},300)},_scrollToBottom:function(i){e("body").animate({scrollTop:t._elementBottom(i)-e(window).height()+20,easing:"swing"},300,function(){t._isHeigherThanView(i)&&t._scrollToTop(i)})},_elementBottom:function(e){return e.offset().top+e.height()},_isScrolledIntoView:function(i){if(0===e(i).length)return!0;var n=e(window).scrollTop(),o=n+e(window).height(),s=e(i).offset().top,a=t._elementBottom(i);return o>=a&&s>=n},_isHeigherThanView:function(t){return e(window).height()<=t.height()}},i={top:function(){var i;return i=e(this),t._isScrolledIntoView(i)||t._scrollToTop(i),this},bottom:function(){var i;return i=e(this),t._isScrolledIntoView(i)||t._scrollToBottom(i),this},isInView:function(){var i;return i=e(this),t._isScrolledIntoView(i)}};e.fn.scrollIntoView=function(t){return i[t]?i[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.scrollIntoView"):i.init.apply(this,arguments)}}(jQuery),define("lib/saito/jquery.scrollIntoView",function(){}),define("views/answering",["jquery","underscore","backbone","models/app","views/uploads","views/mediaInsert","views/editCountdown","models/preview","views/preview","lib/saito/jquery.scrollIntoView","jqueryAutosize"],function(e,t,i,n,o,s,a,r,l){"use strict";var d=i.View.extend({_requestUrl:null,rendered:!1,answeringForm:!1,preview:!1,mediaView:!1,sendInProgress:!1,_action:null,model:null,events:{"click .btn-previewClose":"_closePreview","click .btn-preview":"_showPreview","click .btn-markItUp-Upload":"_upload","click .btn-markItUp-Media":"_media","click .btn-submit":"_send","click .btn-cite":"_cite","keypress .js-subject":"_onKeyPressSubject","input .js-subject":"_updateSubjectCharCount"},initialize:function(e){t.defaults(e,{ajax:!0,parentThreadline:null}),this.options=e,this.options.ajax===!1&&(this._setupTextArea(),this._onFormReady()),this._requestUrl=n.settings.get("webroot")+"entries/add/"+this.model.get("id"),this.listenTo(n.eventBus,"isAppVisible",this._focusSubject)},_disable:function(){this.$(".btn.btn-submit").attr("disabled","disabled")},_enable:function(){this.$(".btn.btn-submit").removeAttr("disabled")},_cite:function(e){var t=this.$(".cite-container"),i=this.$(".btn-cite").data("text"),n=this.$textarea.val();e.preventDefault(),this.$textarea.val(i+"\n\n"+n),t.slideToggle(),this.$textarea.trigger("autosize.resize"),this.$textarea.focus()},_onKeyPressSubject:function(e){13===e.keyCode&&this._send(e)},_updateSubjectCharCount:function(){var e,t,i,o;t=this.$(".postingform-subject-count"),i=n.settings.get("subject_maxlength"),o=this.$(".js-subject").val(),e=i-o.length,t.html(e)},_upload:function(e){var t;e&&e.preventDefault(),t=new o({el:"#markitup_upload",textarea:this.$textarea[0]})},_media:function(e){e.preventDefault(),this.mediaView===!1&&(this.mediaView=new s({el:"#markitup_media",model:this.model})),this.mediaView.render()},_showPreview:function(e){var t;e.preventDefault(),this.$(".preview").slideDown("fast"),this.preview===!1&&(t=new r,this.preview=new l({el:this.$(".preview .panel-content"),model:t})),this.preview.model.set("data",this.$("form").serialize())},_closePreview:function(e){e.preventDefault(),this.$(".preview").slideUp("fast")},_setupTextArea:function(){this.$textarea=this.$("textarea#EntryText"),this.$textarea.autosize()},_requestAnsweringForm:function(){e.ajax({cache:!0,url:this._requestUrl,success:t.bind(function(e){this.answeringForm=e,this.render()},this)})},_postRendering:function(){this.$el.scrollIntoView("bottom"),this._focusSubject(),this._onFormReady()},_onFormReady:function(){var e,t;this._setupTextArea(),this._updateSubjectCharCount(),e=this.$(".js-data"),e.length>0&&"edit"===e.data("meta").action&&(t=this.$(".js-data").data("entry"),this.model.set(t,{silent:!0}),this._addCountdown()),n.eventBus.trigger("change:DOM")},_addCountdown:function(){{var e=this.$(".js-btn-submit");new a({el:e,model:this.model,editPeriod:n.settings.get("editPeriod"),done:"disable"})}},_focusSubject:function(){var e=window.navigator.userAgent.match("iPad|iPhone");e||this.$(".postingform input[type=text]:first").focus()},_send:function(e){return this.sendInProgress?void e.preventDefault():(this.sendInProgress=!0,void(this.parentThreadline?this._sendInline(e):this._sendRedirect(e)))},_sendRedirect:function(i){var n,o=this.$(".btn-submit")[0];i.preventDefault(),"object"==typeof o.validity&&o.form.checkValidity()===!1?(n=t.bind(function(){this.checkValidityDummy||(this.checkValidityDummy=e("",{type:"submit",style:"display: none;"}),e(o).after(this.checkValidityDummy)),this.checkValidityDummy.click()},this),n(),this.sendInProgress=!1):(o.disabled=!0,o.form.submit())},_sendInline:function(i){var o,s,a,r;i.preventDefault(),o=this.$("#EntryAddForm").serialize(),r=t.bind(function(e){this.model.set({isAnsweringFormShown:!1}),null!==this.options.parentThreadline&&this.options.parentThreadline.set("isInlineOpened",!1),n.eventBus.trigger("newEntry",{tid:e.tid,pid:this.model.get("id"),id:e.id,isNewToUser:!0})},this),a=t.bind(function(e,t){this.sendInProgress=!1,this._enable(),n.eventBus.trigger("notification",{title:t,type:"error",message:e.responseText})},this),s=t.bind(this._disable,this),e.ajax({url:this._requestUrl,type:"POST",dataType:"json",data:o,beforeSend:s}).done(r).fail(a)},render:function(){return this.answeringForm===!1?this._requestAnsweringForm():this.rendered===!1?(this.rendered=!0,this.$el.html(this.answeringForm),t.defer(function(e){e._postRendering()},this)):n.eventBus.trigger("change:DOM"),this}});return d}),define("views/postingSlider",["jquery","marionette","models/app","views/answering","text!templates/spinner.html"],function(e,t,i,n,o){"use strict";return t.ItemView.extend({answeringForm:!1,events:{"click .btn-answeringClose":"onBtnClose"},initialize:function(e){this.parentThreadline=e.parentThreadline||null,this.listenTo(this.model,"change:isAnsweringFormShown",this.toggleAnsweringForm)},onBtnClose:function(e){e.preventDefault(),this.model.set("isAnsweringFormShown",!1)},toggleAnsweringForm:function(){this.model.get("isAnsweringFormShown")?(this._hideAllAnsweringForms(),this._showAnsweringForm()):this._hideAnsweringForm()},_showAnsweringForm:function(){i.eventBus.trigger("breakAutoreload"),this.answeringForm===!1&&this.$el.html(o),this.$el.slideDown("fast"),this.answeringForm===!1&&(this.answeringForm=new n({el:this.$el,model:this.model,parentThreadline:this.parentThreadline})),this.answeringForm.render()},_hideAnsweringForm:function(){this.$el.slideUp("fast",function(){i.eventBus.trigger("change:DOM")})},_hideAllAnsweringForms:function(){this.collection.forEach(function(e){e.get("id")!==this.model.get("id")&&e.set("isAnsweringFormShown",!1)},this)}})}),define("views/postingLayout",["underscore","marionette","app/core","views/postingAction","views/postingContent","views/postingSlider","text!templates/spinner.html"],function(e,t,i,n,o,s,a){"use strict";var r=t.Layout.extend({initialize:function(t){e.defaults(t,{inline:!1,parentThreadline:!1}),t.inline?this._loadData(t):this._dataReady(t)},_loadData:function(t){this.$el.html(a),this.model.fetchHtml({success:e.bind(function(){this.$el.html(this.model.get("html")),this._dataReady(t)},this)})},_dataReady:function(e){var t=this.$(".js-data").data("entry");this.model.set(t,{silent:!0});new o({el:this.$(".postingBody"),model:this.model}),new n({el:this.$(".postingLayout-actions"),model:this.model}),new s({el:this.$(".postingLayout-slider"),model:this.model,collection:this.collection,parentThreadline:e.parentThreadline});i.vent.trigger("Vent.Posting.View.afterRender",{$el:this.$el})}});return r}),function(e,t){"use strict";"function"==typeof define&&define.amd?define("lib/saito/backbone.modelHelper",["underscore","backbone"],function(i,n){return t(i||e._,n||e.Backbone)}):t(_,Backbone)}(this,function(e,t){"use strict";t.Model.prototype.toggle=function(e){this.set(e,!this.get(e))}}),define("models/posting",["underscore","backbone","models/app","lib/saito/backbone.modelHelper"],function(e,t,i){"use strict";var n=t.Model.extend({defaults:{isBookmarked:!1,isSolves:!1,isAnsweringFormShown:!1,html:""},initialize:function(){this.listenTo(this,"change:isSolves",this.syncSolved),this.listenTo(this,"change:isBookmarked",this.syncBookmarked)},isRoot:function(){var t=this.get("pid");if(!e.isNumber(t))throw"pid is not a number.";return 0===t},syncBookmarked:function(){this.get("isBookmarked")&&$.ajax({url:i.settings.get("webroot")+"bookmarks/add",type:"POST",dataType:"json",data:"id="+this.get("id")})},syncSolved:function(){$.ajax({url:i.settings.get("webroot")+"entries/solve/"+this.get("id"),type:"POST",dateType:"json"})},fetchHtml:function(t){$.ajax({success:e.bind(function(e){this.set("html",e),t&&t.success&&t.success()},this),type:"POST",dateType:"html",url:i.settings.get("webroot")+"entries/view/"+this.get("id")})}});return n}),define("views/threadlines",["jquery","underscore","marionette","models/app","models/threadline","text!templates/threadline-spinner.html","views/postingLayout","models/posting","lib/saito/jquery.scrollIntoView"],function(e,t,i,n,o,s,a,r){"use strict";var l=i.ItemView.extend({className:"threadLeaf",tagName:"li",spinnerTpl:s,postings:null,ui:{btnShowThread:".btn_show_thread",linkShowThread:".link_show_thread"},events:{"click @ui.btnShowThread":"toggleInlineOpen","click @ui.linkShowThread":"toggleInlineOpenFromLink"},initialize:function(e){this.postings=e.postings,this.model=new o({id:e.leafData.id,isNewToUser:e.leafData.isNewToUser}),void 0===e.el?this.model.fetch():this.model.set({html:this.el}),this.collection.add(this.model,{silent:!0}),this.attributes={"data-id":e.id},this.listenTo(this.model,"change:isInlineOpened",this._toggleInlineOpened),this.listenTo(this.model,"change:html",this.render)},toggleInlineOpenFromLink:function(e){this.model.get("isAlwaysShownInline")&&this.toggleInlineOpen(e)},toggleInlineOpen:function(e){e.preventDefault(),this.model.toggle("isInlineOpened")},_toggleInlineOpened:function(e,i){return i?(this.model.get("isContentLoaded")||(this.$(".threadLine").after(this.spinnerTpl),this.$(".js-btn-strip").on("click",t.bind(this.toggleInlineOpen,this)),this._insertContent(),this.model.set("isContentLoaded",!0)),void this._showInlineView()):void this._closeInlineView()},_insertContent:function(){var e,t;e=this.model.get("id"),this.postingModel=new r({id:e}),this.postings.add(this.postingModel),t=new a({el:this.$(".threadInline-slider"),inline:!0,model:this.postingModel,collection:this.postings,parentThreadline:this.model})},_showInlineView:function(){var e=t.bind(function(){var e=this.model.get("shouldScrollOnInlineOpen");e?this.$el.scrollIntoView("isInView")===!1&&this.$el.scrollIntoView("bottom"):this.model.set("shouldScrollOnInlineOpen",!0)},this);this.$(".threadLine").fadeOut(100,t.bind(function(){this.$(".js-thread_inline").show(0,e)},this))},_closeInlineView:function(){n.eventBus.trigger("change:DOM"),this.$(".js-thread_inline").hide(0,t.bind(function(){this.$el.find(".threadLine").slideDown(),this._scrollLineIntoView()},this))},_scrollLineIntoView:function(){var e=this.$(".threadLine");e.scrollIntoView("isInView")||e.scrollIntoView("top").effect("highlight",{times:1},3e3)},render:function(){var t,i,n;return i=this.model.get("html"),i.length>0&&(t=this.$el,n=e(this.model.get("html")),this.setElement(n),t.replaceWith(n)),this}});return l}),define("models/thread",["underscore","backbone","collections/threadlines"],function(e,t,i){"use strict";var n=t.Model.extend({defaults:{isThreadCollapsed:!1},initialize:function(){this.threadlines=new i}});return n}),define("collections/threads",["underscore","backbone","models/thread","models/app","backboneLocalStorage","lib/saito/localStorageHelper"],function(e,t,i,n){"use strict";var o=t.Collection.extend({model:i,localStorage:function(){var e=n.reqres.request("app:localStorage:key","Threads");return new t.LocalStorage(e)}(),fetch:function(e){return n.reqres.request("app:localStorage:available")?t.Model.prototype.fetch.call(this,e):void 0}});return o}),define("views/thread",["jquery","underscore","backbone","models/app","collections/threadlines","views/threadlines"],function(e,t,i,n,o,s){"use strict";var a=i.View.extend({className:"threadBox",events:{"click .btn-threadCollapse":"collapseThread","click .js-btn-openAllThreadlines":"openAllThreadlines","click .js-btn-closeAllThreadlines":"closeAllThreadlines","click .js-btn-showAllNewThreadlines":"showAllNewThreadlines"},initialize:function(t){this.postings=t.postings,this.$rootUl=this.$("ul.root"),this.$subThreadRootIl=e(this.$rootUl.find("li:not(:first-child)")[0]),this.model.get("isThreadCollapsed")?this.hide():this.show(),n.reqres.request("app:localStorage:available")||this._hideCollapseButton(),this.listenTo(n.eventBus,"newEntry",this._showNewThreadLine),this.listenTo(this.model,"change:isThreadCollapsed",this.toggleCollapseThread)},_showNewThreadLine:function(e){var t;e.tid===this.model.get("id")&&(t=new s({leafData:e,collection:this.model.threadlines,postings:this.postings}),this._appendThreadlineToThread(e.pid,t.render().$el))},_appendThreadlineToThread:function(e,t){var i,n;i=this.$('.threadLeaf[data-id="'+e+'"]'),n=i.next().not(".js_threadline").find("ul:first"),0===n.length?t.wrap('
      ').parent().wrap("
    • ").parent().insertAfter(i):n.append(t)},openAllThreadlines:function(e){e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!1}),function(e){e.set({isInlineOpened:!0,shouldScrollOnInlineOpen:!1})},this)},closeAllThreadlines:function(e){e&&e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!0}),function(e){e.set({isInlineOpened:!1})},this)},showAllNewThreadlines:function(e){e.preventDefault(),t.each(this.model.threadlines.where({isInlineOpened:!1,isNewToUser:!0}),function(e){e.set({isInlineOpened:!0,shouldScrollOnInlineOpen:!1})},this)},_hideCollapseButton:function(){this.$(".btn-threadCollapse").css("visibility","hidden")},collapseThread:function(e){e.preventDefault(),this.closeAllThreadlines(),this.model.toggle("isThreadCollapsed"),this.model.save()},toggleCollapseThread:function(e,t){t?this.slideUp():this.slideDown()},slideUp:function(){this.$subThreadRootIl.slideUp(300),this.markHidden()},slideDown:function(){this.$subThreadRootIl.slideDown(300),this.markShown()},hide:function(){this.$subThreadRootIl.hide(),this.markHidden()},show:function(){this.$subThreadRootIl.show(),this.markShown()},markShown:function(){e(this.el).find(".fa-thread-closed").removeClass("fa-thread-closed").addClass("fa-thread-open")},markHidden:function(){e(this.el).find(".fa-thread-open").removeClass("fa-thread-open").addClass("fa-thread-closed")}});return a}),define("collections/postings",["underscore","backbone","models/posting"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("models/bookmark",["underscore","backbone","models/app","cakeRest"],function(e,t,i,n){"use strict";var o=t.Model.extend({initialize:function(){this.webroot=i.settings.get("webroot")+"bookmarks/"}});return e.extend(o.prototype,n),o}),define("collections/bookmarks",["underscore","backbone","models/bookmark"],function(e,t,i){var n=t.Collection.extend({model:i});return n}),define("views/bookmark",["jquery","underscore","backbone"],function(e,t,i){"use strict";var n=i.View.extend({events:{"click .btn-bookmark-delete":"deleteBookmark"},initialize:function(){t.bindAll(this,"render"),this.model.on("destroy",this.removeBookmark,this)},deleteBookmark:function(e){e.preventDefault(),this.model.destroy()},removeBookmark:function(){var t=this.collection;this.$el.hide("slide",null,500,function(){e(this).remove(),t.trigger("bookmark.removed")})}});return n}),define("text!templates/no-content-yet.html",[],function(){return"
      \n <%- $.i18n.__('ncy.bkm') %>\n
      \n"}),define("views/bookmarks",["jquery","underscore","backbone","views/bookmark","text!templates/no-content-yet.html"],function(e,t,i,n,o){"use strict";var s=i.View.extend({initialize:function(){this.initCollectionFromDom(".js-bookmark",this.collection,n),this._fillNoContentYet(),this.listenTo(this.collection,"bookmark.removed",this._fillNoContentYet)},_fillNoContentYet:function(){this.collection.isEmpty()&&this.$el.html(t.template(o))}});return s}),define("views/helps",["jquery","underscore","backbone","models/app","drop"],function(e,t,i,n,o){"use strict";var s=i.View.extend({isHelpShown:!1,_popups:[],_elements:null,tpl:t.template(''),events:function(){var e={};return e["click "+this.indicatorName]="toggle",e},initialize:function(e){this.indicatorName=e.indicatorName,this.elementName=e.elementName,this.webroot=e.webroot,this.activateHelpButton(),this.listenTo(n.eventBus,"change:DOM",this._onDomChange)},activateHelpButton:function(){var t=e(this.indicatorName);t&&(this._isHelpOnPage()?t.addClass("is-active"):t.removeClass("is-active"))},_onDomChange:function(){this.activateHelpButton(),this._reset()},_isHelpOnPage:function(){return this._getElements().length>0},toggle:function(e){e.preventDefault(),this.isHelpShown?this._hide():this._show()},_reset:function(){this._hide(),this._elements=null,this._popups=[]},_getElements:function(){return null===this._elements&&(this._elements=this.$(this.elementName).filter(":visible")),this._elements},_show:function(){if(this.isHelpShown=!0,this._isHelpOnPage()){if(0===this._popups.length){var t=this;this._getElements().each(function(){var i=e(this),n=i.data("shpid"),s=t.tpl({id:n,webroot:t.webroot});t._popups.push(new o({target:this,content:s,classes:"drop-theme-arrows",position:"top center"}))})}this._popups.forEach(function(e){e.open()})}},_hide:function(){this.isHelpShown=!1,this._popups.forEach(function(e){e.close()})}});return s}),define("views/categoryChooser",["jquery","underscore","backbone"],function(e,t,i){"use strict";return i.View.extend({initialize:function(){this._initDialog()},_initDialog:function(){this.$el.dialog({autoOpen:!1,show:{effect:"scale",duration:200},hide:{effect:"fade",duration:200},width:400,title:e.i18n.__("Categories"),resizable:!1})},_updateDialogPosition:function(){var t=e("#btn-category-chooser"),i=e(window),n=t.offset().left+t.width()-i.scrollLeft()-410,o=t.offset().top-i.scrollTop()+t.height();this.$el.dialog({position:[n,o]})},toggle:function(){this.$el.dialog("isOpen")?this.$el.dialog("close"):(this._updateDialogPosition(),this.$el.dialog("open"))}})}),define("models/slidetab",["jquery","underscore","backbone","app/vent","models/app"],function(e,t,i,n,o){"use strict";var s=i.Model.extend({defaults:{isOpen:!1},initialize:function(){this.webroot=o.settings.get("webroot"),this.listenTo(this,"change:isOpen",this.onChangeIsOpen)},onChangeIsOpen:function(){n.vent.trigger("slidetab:open",{slidetab:this.get("id"),open:this.get("isOpen")})},sync:function(){var t="show_"+this.get("id");e.post(this.webroot+"users/slidetab_toggle",{slidetabKey:t})}});return s}),define("collections/slidetabs",["underscore","backbone","models/app","models/slidetab"],function(e,t,i,n){"use strict";var o=t.Collection.extend({model:n,initialize:function(){i.reqres.setHandler("slidetab:open",e.bind(this.isOpen,this))},isOpen:function(e){return this.get(e).get("isOpen")}});return o}),define("views/slidetab",["jquery","underscore","backbone"],function(e,t,i){"use strict";var n=i.View.extend({events:{"click .slidetab-tab":"clickSlidetab"},initialize:function(){this.model.set({isOpen:this.isOpen()},{silent:!0}),this.listenTo(this.model,"change",this.toggleSlidetab)},isOpen:function(){return this.$el.find(".slidetab-outer").is(":visible")},clickSlidetab:function(){this.model.save("isOpen",!this.model.get("isOpen"))},toggleSlidetab:function(){this.model.get("isOpen")?this.show():this.hide(),this.toggleSlidetabTabInfo()},show:function(){this.$el.animate({width:280}),this.$el.addClass("is-open")},hide:function(){this.$el.animate({width:28},t.bind(function(){this.$el.removeClass("is-open")},this))},toggleSlidetabTabInfo:function(){this.$el.find(".slidetab-tab-info").toggle()}});return n}),define("views/slidetabs",["jquery","underscore","backbone","models/app","views/slidetab"],function(e,t,i,n,o){"use strict";var s=i.View.extend({initialize:function(){this.webroot=n.settings.get("webroot"),this.initCollectionFromDom(".slidetab",this.collection,o),this.makeSortable()},makeSortable:function(){var i=this.webroot;this.$el.sortable({handle:".slidetab-tab",start:t.bind(function(){this.$el.css("overflow","visible")},this),stop:t.bind(function(){this.$el.css("overflow","hidden")},this),update:function(){var t=e(this).sortable("toArray",{attribute:"data-id"});t=t.map(function(e){return"slidetab_"+e}),e.post(i+"users/slidetab_order",{slidetabOrder:t})}})}});return s}),define("views/app",["jquery","underscore","backbone","models/app","collections/threadlines","views/threadlines","collections/threads","views/thread","collections/postings","models/posting","views/postingLayout","collections/bookmarks","views/bookmarks","views/helps","views/categoryChooser","collections/slidetabs","views/slidetabs","views/answering","jqueryUi"],function(e,t,i,n,o,s,a,r,l,d,c,u,h,p,f,m,g,b){"use strict";var v=i.View.extend({el:e("body"),autoPageReloadTimer:!1,_domInitializers:{".entry.add-not-inline":"_initAnsweringNotInlined","#bookmarks":"_initBookmarks","#category-chooser":"_initCategoryChooser",".js-entry-view-core":"_initPostings","#slidetabs":"_initSlidetabs",".threadBox":"_initThreadBoxes",".threadLeaf":"_initThreadLeafs",".users.logout":"_initLogout"},events:{"click #showLoginForm":"showLoginForm","focus #header-searchField":"widenSearchField","click #btn-scrollToTop":"scrollToTop","click #btn-manuallyMarkAsRead":"manuallyMarkAsRead","click #btn-category-chooser":"toggleCategoryChooser","click #btn_header_logo":"_onEntriesIndexReload"},initialize:function(){this.threads=new a,"entries"===n.request.controller&&"index"===n.request.action&&this.threads.fetch(),this.postings=new l,this.threadLines=new o,this.listenTo(n.eventBus,"initAutoreload",this.initAutoreload),this.listenTo(n.eventBus,"breakAutoreload",this.breakAutoreload),this.$el.on("dialogopen",this.fixJqueryUiDialog) +},initFromDom:function(i){if(t.each(this._domInitializers,function(t,i){var n=e(i);n.length>0&&this[t](n)},this),this.initAutoreload(),this.initHelp(".shp"),n.status.start(),this._showPage(i.SaitoApp.timeAppStart,i.contentTimer),n.eventBus.trigger("notification",i.SaitoApp),window.location.href.indexOf("/jump:")>-1){var o=/jump:(\d+)/.exec(window.location.href);this.scrollToThread(o[1]),window.history.replaceState("object or string","Title",window.location.pathname.replace(/jump:\d+(\/)?/,""))}},_initAnsweringNotInlined:function(e){this.answeringForm=new b({el:e,model:new d({id:"foo"}),ajax:!1})},_initBookmarks:function(e){var t,i=new u;t=new h({el:e,collection:i})},_initCategoryChooser:function(e){this.categoryChooser=new f({el:e})},_initLogout:function(){n.commands.execute("app:localStorage:clear")},_initPostings:function(i){t.each(i,function(t){var i,n,o;i=parseInt(t.getAttribute("data-id"),10),o=new d({id:i}),this.postings.add(o,{silent:!0}),n=new c({el:e(t),model:this.postings.get(i),collection:this.postings})},this)},_initSlidetabs:function(e){var t,i;t=new m,i=new g({el:e,collection:t})},_initThreadBoxes:function(i){t.each(i,function(t){var i,o;o=parseInt(e(t).attr("data-id"),10),this.threads.get(o)||this.threads.add([{id:o,isThreadCollapsed:"entries"===n.request.controller&&"index"===n.request.action&&n.currentUser.get("user_show_thread_collapsed")}],{silent:!0}),i=new r({el:e(t),postings:this.postings,model:this.threads.get(o)})},this)},_initThreadLeafs:function(i){t.each(i,function(t){var i=JSON.parse(t.getAttribute("data-leaf"));i.isNewToUser=i["new"],delete i["new"];var n,o=this.threads.get(i.tid);n=o?o.threadlines:this.threadLines;new s({el:e(t),leafData:i,postings:this.postings,collection:n})},this)},_showPage:function(t,i){var o=function(){n.eventBus.trigger("isAppVisible",!0)};n.request.isMobile||(new Date).getTime()-t>1500?(e("#content").css("visibility","visible"),o()):e("#content").css({visibility:"visible",opacity:0}).animate({opacity:1},{duration:150,easing:"easeInOutQuart",complete:o}),i.cancel()},fixJqueryUiDialog:function(){e(".ui-icon-closethick").attr("class","jqueryUi-closethick-fix").html("")},toggleCategoryChooser:function(e){e.preventDefault(),this.categoryChooser.toggle()},initHelp:function(e){new p({el:"body",elementName:e,indicatorName:"#shp-show",webroot:n.settings.get("webroot")})},scrollToThread:function(t){e(".threadBox[data-id="+t+"]")[0].scrollIntoView("top")},initAutoreload:function(){this.breakAutoreload(),n.settings.get("autoPageReload")&&(this.autoPageReloadTimer=setTimeout(t.bind(function(){window.location=n.settings.get("webroot")+"entries/"},this),1e3*n.settings.get("autoPageReload")))},breakAutoreload:function(){this.autoPageReloadTimer!==!1&&(clearTimeout(this.autoPageReloadTimer),this.autoPageReloadTimer=!1)},widenSearchField:function(t){var i=350;t.preventDefault(),e(t.currentTarget).width()",{"class":"ui-pnotify "+l.addclass,css:{display:"none"},mouseenter:function(e){l.nonblock&&e.stopPropagation(),l.mouse_reset&&"out"==r&&(f.stop(!0),r="in",f.css("height","auto").animate({width:l.width,opacity:l.nonblock?l.nonblock_opacity:l.opacity},"fast")),l.nonblock&&f.animate({opacity:l.nonblock_opacity},"fast"),l.hide&&l.mouse_reset&&f.pnotify_cancel_remove(),l.sticker&&!l.nonblock&&f.sticker.trigger("pnotify_icon").css("visibility","visible"),l.closer&&!l.nonblock&&f.closer.css("visibility","visible")},mouseleave:function(t){l.nonblock&&t.stopPropagation(),c=null,f.css("cursor","auto"),l.nonblock&&"out"!=r&&f.animate({opacity:l.opacity},"fast"),l.hide&&l.mouse_reset&&f.pnotify_queue_remove(),l.sticker_hover&&f.sticker.css("visibility","hidden"),l.closer_hover&&f.closer.css("visibility","hidden"),e.pnotify_position_all()},mouseover:function(e){l.nonblock&&e.stopPropagation()},mouseout:function(e){l.nonblock&&e.stopPropagation()},mousemove:function(e){l.nonblock&&(e.stopPropagation(),h(e,"onmousemove"))},mousedown:function(e){l.nonblock&&(e.stopPropagation(),e.preventDefault(),h(e,"onmousedown"))},mouseup:function(e){l.nonblock&&(e.stopPropagation(),e.preventDefault(),h(e,"onmouseup"))},click:function(e){l.nonblock&&(e.stopPropagation(),h(e,"onclick"))},dblclick:function(e){l.nonblock&&(e.stopPropagation(),h(e,"ondblclick"))}});f.opts=l,f.container=e("
      ",{"class":p.container+" ui-pnotify-container "+("error"==l.type?p.error:"info"==l.type?p.info:"success"==l.type?p.success:p.notice)}).appendTo(f),""!=l.cornerclass&&f.container.removeClass("ui-corner-all").addClass(l.cornerclass),l.shadow&&f.container.addClass("ui-pnotify-shadow"),f.pnotify_version="1.2.0",f.pnotify=function(t){var i=l;"string"==typeof t?l.text=t:l=e.extend({},l,t);for(var n in l)"string"==typeof n&&n.match(/^pnotify_/)&&(l[n.replace(/^pnotify_/,"")]=l[n]);return f.opts=l,l.cornerclass!=i.cornerclass&&f.container.removeClass("ui-corner-all").addClass(l.cornerclass),l.shadow!=i.shadow&&(l.shadow?f.container.addClass("ui-pnotify-shadow"):f.container.removeClass("ui-pnotify-shadow")),l.addclass===!1?f.removeClass(i.addclass):l.addclass!==i.addclass&&f.removeClass(i.addclass).addClass(l.addclass),l.title===!1?f.title_container.slideUp("fast"):l.title!==i.title&&(l.title_escape?f.title_container.text(l.title).slideDown(200):f.title_container.html(l.title).slideDown(200)),l.text===!1?f.text_container.slideUp("fast"):l.text!==i.text&&(l.text_escape?f.text_container.text(l.text).slideDown(200):f.text_container.html(l.insert_brs?String(l.text).replace(/\n/g,"
      "):l.text).slideDown(200)),f.pnotify_history=l.history,f.pnotify_hide=l.hide,l.type!=i.type&&f.container.removeClass(p.error+" "+p.notice+" "+p.success+" "+p.info).addClass("error"==l.type?p.error:"info"==l.type?p.info:"success"==l.type?p.success:p.notice),(l.icon!==i.icon||l.icon===!0&&l.type!=i.type)&&(f.container.find("div.ui-pnotify-icon").remove(),l.icon!==!1&&e("
      ",{"class":"ui-pnotify-icon"}).append(e("",{"class":l.icon===!0?"error"==l.type?p.error_icon:"info"==l.type?p.info_icon:"success"==l.type?p.success_icon:p.notice_icon:l.icon})).prependTo(f.container)),l.width!==i.width&&f.animate({width:l.width}),l.min_height!==i.min_height&&f.container.animate({minHeight:l.min_height}),l.opacity!==i.opacity&&f.fadeTo(l.animate_speed,l.opacity),!l.closer||l.nonblock?f.closer.css("display","none"):f.closer.css("display","block"),!l.sticker||l.nonblock?f.sticker.css("display","none"):f.sticker.css("display","block"),f.sticker.trigger("pnotify_icon"),l.sticker_hover?f.sticker.css("visibility","hidden"):l.nonblock||f.sticker.css("visibility","visible"),l.closer_hover?f.closer.css("visibility","hidden"):l.nonblock||f.closer.css("visibility","visible"),l.hide?i.hide||f.pnotify_queue_remove():f.pnotify_cancel_remove(),f.pnotify_queue_position(),f},f.pnotify_position=function(e){var t=f.opts.stack;if(t){t.nextpos1||(t.nextpos1=t.firstpos1),t.nextpos2||(t.nextpos2=t.firstpos2),t.addpos2||(t.addpos2=0);var i="none"==f.css("display");if(!i||e){var n,s,a,r={};switch(t.dir1){case"down":a="top";break;case"up":a="bottom";break;case"left":a="right";break;case"right":a="left"}n=parseInt(f.css(a)),isNaN(n)&&(n=0),"undefined"!=typeof t.firstpos1||i||(t.firstpos1=n,t.nextpos1=t.firstpos1);var l;switch(t.dir2){case"down":l="top";break;case"up":l="bottom";break;case"left":l="right";break;case"right":l="left"}if(s=parseInt(f.css(l)),isNaN(s)&&(s=0),"undefined"!=typeof t.firstpos2||i||(t.firstpos2=s,t.nextpos2=t.firstpos2),("down"==t.dir1&&t.nextpos1+f.height()>o.height()||"up"==t.dir1&&t.nextpos1+f.height()>o.height()||"left"==t.dir1&&t.nextpos1+f.width()>o.width()||"right"==t.dir1&&t.nextpos1+f.width()>o.width())&&(t.nextpos1=t.firstpos1,t.nextpos2+=t.addpos2+("undefined"==typeof t.spacing2?25:t.spacing2),t.addpos2=0),t.animation&&t.nextpos2t.addpos2&&(t.addpos2=f.height());break;case"left":case"right":f.outerWidth(!0)>t.addpos2&&(t.addpos2=f.width())}if(t.nextpos1)if(t.animation&&(n>t.nextpos1||r.top||r.bottom||r.right||r.left))switch(t.dir1){case"down":r.top=t.nextpos1+"px";break;case"up":r.bottom=t.nextpos1+"px";break;case"left":r.right=t.nextpos1+"px";break;case"right":r.left=t.nextpos1+"px"}else f.css(a,t.nextpos1+"px");switch((r.top||r.bottom||r.right||r.left)&&f.animate(r,{duration:500,queue:!1}),t.dir1){case"down":case"up":t.nextpos1+=f.height()+("undefined"==typeof t.spacing1?25:t.spacing1);break;case"left":case"right":t.nextpos1+=f.width()+("undefined"==typeof t.spacing1?25:t.spacing1)}}}},f.pnotify_queue_position=function(t){i&&clearTimeout(i),t||(t=10),i=setTimeout(e.pnotify_position_all,t)},f.pnotify_display=function(){f.parent().length||f.appendTo(n),l.before_open&&l.before_open(f)===!1||("top"!=l.stack.push&&f.pnotify_position(!0),"fade"==l.animation||"fade"==l.animation.effect_in?f.show().fadeTo(0,0).hide():1!=l.opacity&&f.show().fadeTo(0,l.opacity).hide(),f.animate_in(function(){l.after_open&&l.after_open(f),f.pnotify_queue_position(),l.hide&&f.pnotify_queue_remove()}))},f.pnotify_remove=function(){f.timer&&(window.clearTimeout(f.timer),f.timer=null),l.before_close&&l.before_close(f)===!1||f.animate_out(function(){l.after_close&&l.after_close(f)===!1||(f.pnotify_queue_position(),l.remove&&f.detach())})},f.animate_in=function(e){r="in";var t;t="undefined"!=typeof l.animation.effect_in?l.animation.effect_in:l.animation,"none"==t?(f.show(),e()):"show"==t?f.show(l.animate_speed,e):"fade"==t?f.show().fadeTo(l.animate_speed,l.opacity,e):"slide"==t?f.slideDown(l.animate_speed,e):"function"==typeof t?t("in",e,f):f.show(t,"object"==typeof l.animation.options_in?l.animation.options_in:{},l.animate_speed,e)},f.animate_out=function(e){r="out";var t;t="undefined"!=typeof l.animation.effect_out?l.animation.effect_out:l.animation,"none"==t?(f.hide(),e()):"show"==t?f.hide(l.animate_speed,e):"fade"==t?f.fadeOut(l.animate_speed,e):"slide"==t?f.slideUp(l.animate_speed,e):"function"==typeof t?t("out",e,f):f.hide(t,"object"==typeof l.animation.options_out?l.animation.options_out:{},l.animate_speed,e)},f.pnotify_cancel_remove=function(){f.timer&&window.clearTimeout(f.timer)},f.pnotify_queue_remove=function(){f.pnotify_cancel_remove(),f.timer=window.setTimeout(function(){f.pnotify_remove()},isNaN(l.delay)?0:l.delay)},f.closer=e("
      ",{"class":"ui-pnotify-closer",css:{cursor:"pointer",visibility:l.closer_hover?"hidden":"visible"},click:function(){f.pnotify_remove(),f.sticker.css("visibility","hidden"),f.closer.css("visibility","hidden")}}).append(e("",{"class":p.closer})).appendTo(f.container),(!l.closer||l.nonblock)&&f.closer.css("display","none"),f.sticker=e("
      ",{"class":"ui-pnotify-sticker",css:{cursor:"pointer",visibility:l.sticker_hover?"hidden":"visible"},click:function(){l.hide=!l.hide,l.hide?f.pnotify_queue_remove():f.pnotify_cancel_remove(),e(this).trigger("pnotify_icon")}}).bind("pnotify_icon",function(){e(this).children().removeClass(p.pin_up+" "+p.pin_down).addClass(l.hide?p.pin_up:p.pin_down)}).append(e("",{"class":p.pin_up})).appendTo(f.container),(!l.sticker||l.nonblock)&&f.sticker.css("display","none"),l.icon!==!1&&e("
      ",{"class":"ui-pnotify-icon"}).append(e("",{"class":l.icon===!0?"error"==l.type?p.error_icon:"info"==l.type?p.info_icon:"success"==l.type?p.success_icon:p.notice_icon:l.icon})).prependTo(f.container),f.title_container=e("

      ",{"class":"ui-pnotify-title"}).appendTo(f.container),l.title===!1?f.title_container.hide():l.title_escape?f.title_container.text(l.title):f.title_container.html(l.title),f.text_container=e("
      ",{"class":"ui-pnotify-text"}).appendTo(f.container),l.text===!1?f.text_container.hide():l.text_escape?f.text_container.text(l.text):f.text_container.html(l.insert_brs?String(l.text).replace(/\n/g,"
      "):l.text),"string"==typeof l.width&&f.css("width",l.width),"string"==typeof l.min_height&&f.container.css("min-height",l.min_height),f.pnotify_history=l.history,f.pnotify_hide=l.hide;var m=o.data("pnotify");if((null==m||"object"!=typeof m)&&(m=[]),m="top"==l.stack.push?e.merge([f],m):e.merge(m,[f]),o.data("pnotify",m),"top"==l.stack.push&&f.pnotify_queue_position(1),l.after_init&&l.after_init(f),l.history){var g=o.data("pnotify_history");if("undefined"==typeof g){g=e("
      ",{"class":"ui-pnotify-history-container "+p.hi_menu,mouseleave:function(){g.animate({top:"-"+t+"px"},{duration:100,queue:!1})}}).append(e("
      ",{"class":"ui-pnotify-history-header",text:"Redisplay"})).append(e("\n <% if (geolocation) { %>\n \n <% } %>\n \n \n
      '}),define("modules/usermap/views/controls",["jquery","marionette","lib/leaflet/mq","text!modules/usermap/templates/controls.html"],function(e,t,i,n){"use strict";return t.ItemView.extend({template:_.template(n),ui:{search:".js-btn-search",locate:".js-btn-locate",clear:".js-btn-clear",spinner:".saito-usermap-spinner"},events:{"click @ui.search":"_search","click @ui.locate":"_locate","click @ui.clear":"_clear"},initialize:function(t){this.mapLayer=t.mapLayer,this.mapModel=t.mapModel,this.params=t.params,this.mapLayer.on("click",this._repin,this),this.mapLayer.on("locationfound",this._repin,this),e(this.params.fields.edit).on("keypress",_.bind(this._onSearchFieldChange,this)),e(this.params.fields.edit).on("keyup",_.bind(this._updateSearchButtonTitle,this))},_clear:function(e){e.preventDefault(),this.model.set({lat:"",lng:"",zoom:""}),this._updateFields()},_search:function(t){t.preventDefault(),this._activityStart();var n=e(this.params.fields.edit).val();i.geocode().search(n).on("success",_.bind(function(e){var t=e.result.best;this._repin(t)},this))},_onSearchFieldChange:function(e){13===e.which&&this._search(e)},_activityStart:function(){this.ui.spinner.show()},_activityStop:function(){this.ui.spinner.hide()},_updateSearchButtonTitle:function(){var t=e(this.params.fields.edit).val();return t?(this.ui.search.removeAttr("disabled"),void this.ui.search.html(e.i18n.__("user.map.b.search",{string:t}))):void this.ui.search.attr("disabled","disabled")},_locate:function(e){e.preventDefault(),this._activityStart(),this.mapLayer.locate()},_repin:function(e){var t=this._round({lat:e.latlng.lat,lng:e.latlng.lng,zoom:this.mapLayer.getZoom()});this._activityStop(),this.model.set(t),this.mapModel.set(t),this._updateFields()},_round:function(e){return _.each(["lat","lng"],function(t){e[t]=e[t].toFixed(4)}),e},onRender:function(){this._updateSearchButtonTitle()},_updateFields:function(){var t=this.params.fields.update,i=this.model;_.each(["lat","lng","zoom"],_.bind(function(n){var o=n;t&&t[n]&&_.each(t[n],function(t){var n=e(t),s=i.get(o);"input"===n.prop("tagName").toLowerCase()?n.val(s):n.html(s)})},this)),this.render()},_geolocation:function(){return"geolocation"in navigator},serializeData:function(){var e=this.model.toJSON();return e.geolocation=this._geolocation(),e}})}),define("lib/leaflet/leaflet",[],function(){return"undefined"!=typeof L?L:void 0}),define("modules/usermap/views/map",["marionette","templateHelpers","lib/leaflet/leaflet","lib/leaflet/mq"],function(e,t,i,n){"use strict";return e.ItemView.extend({collectionEvents:{add:"_createMarker",change:"_repinMarker"},modelEvents:{"change:lat":"_setView"},template:{},templateHelpers:t,mapLayer:null,markersLayer:null,markers:{},initialize:function(){"world"===this.model.get("type")&&this._zoomView(),this.markersLayer=new i.MarkerClusterGroup,this._map()},_zoomView:function(){var e=40,t=$("#content"),i={width:t.width(),top:t.offset().top},n={height:i.width*(120/198)},o={height:$(window).height()};o.available=o.height-i.top,n.height>o.available&&(n.height=o.available-e),this.$el.height(n.height)},_createMarker:function(e){var t,n=e.latlng(),o=i.marker(n);if(n[0]){if(e){var s=this.templateHelpers.User.linkToUserProfile(e.get("id"),e.get("name"));o.bindPopup(s)}if(this.markersLayer.addLayer(o),this.markers[e.get("id")]=o,t=this.model.get("type"),"single"===t||"edit"===t){var a={lat:e.get("lat"),lng:e.get("lng")};a.zoom="edit"===t?e.get("zoom"):this.model.get("maxZoom"),this.model.set(a)}}},_repinMarker:function(e){if(!e.get("lat"))return void this._clearMarkers();var t=this.markers[e.get("id")];if(!t)return void this._createMarker(e);var i=t.getLatLng();i.lat=e.get("lat"),i.lng=e.get("lng"),t.update()},_clearMarkers:function(){this.markers={},this.markersLayer.clearLayers()},_setView:function(){var e=this.model.get("lat"),t=this.model.get("lng"),i=this.model.get("zoom");this.mapLayer.setView([e,t],i)},_map:function(){var e=n.mapLayer();this.mapLayer=i.map(this.el,{closePopupOnClick:!1,maxZoom:this.model.get("maxZoom"),minZoom:this.model.get("minZoom"),maxBounds:this.model.get("maxBounds")}),this._setView(),this.mapLayer.addLayer(e),this.mapLayer.addLayer(this.markersLayer)}})}),define("modules/usermap/models/map",["backbone"],function(e){"use strict";var t=e.Model.extend({maxZoom:{edit:14,single:11,world:11},defaults:{lat:30,lng:0,zoom:2,maxZoom:11,minZoom:1,maxBounds:[[-90,-180],[90,180]]},initialize:function(){this.maxZoom[this.get("type")]&&this.set("maxZoom",this.maxZoom[this.get("type")])}});return t}),define("modules/usermap/models/user",["backbone"],function(e){"use strict";var t=e.Model.extend({latlng:function(){return[this.get("lat"),this.get("lng")]}});return t}),define("modules/usermap/collections/users",["backbone","modules/usermap/models/user"],function(e,t){"use strict";var i=e.Collection.extend({model:t});return i}),define("text!modules/usermap/templates/layout.html",[],function(){return"
      \n
      \n
      \n
      "}),define("modules/usermap/usermap",["app/core","marionette","modules/usermap/views/controls","modules/usermap/views/map","modules/usermap/models/map","modules/usermap/collections/users","text!modules/usermap/templates/layout.html"],function(e,t,i,n,o,s,a){"use strict";var r=e.module("usermap",{startWithParent:!1});return r.addInitializer(function(){var e=$(".saito-usermap");if(e.length){var l,d,c=e.data("users"),u=new s,h=e.data("params"),p=t.Layout.extend({el:e,template:a,regions:{mapr:".saito-usermap-map",controls:".saito-usermap-controls"}}),f=(new p).render(),m=new o(h);d=new n({el:f.$(".saito-usermap-map"),model:m,collection:u}),u.add(c),"edit"===h.type&&(d.$el.addClass("input"),l=r.ControlView=new i({model:u.at(0),mapLayer:d.mapLayer,mapModel:m,params:h}),f.controls.show(l))}}),r}),define("app/time",["moment","moment-de"],function(e){"use strict";var t=e().lang()._longDateFormat;t.LT="H:mm",e.lang("de",{longDateFormat:t})}),define("lib/Saito/isAppVisible",["jquery","underscore","models/app"],function(e,t,i){"use strict";var n=function(){this.initialize.apply(this,arguments)};return t.extend(n.prototype,{_isVisibleOldSchool:!0,initialize:function(){i.reqres.setHandler("isAppVisible",this.isVisible,this),this._isVisibleOldSchool=this._isAppVisibleHtml5(),this._initAppVisibleOldSchool()},isVisible:function(){return this._isVisibleOldSchool},_initAppVisibleOldSchool:function(){e(window).blur(t.bind(function(){this._isVisibleOldSchool=!1},this)),e(window).focus(t.bind(function(){this._isVisibleOldSchool=!0},this))},_isAppVisibleHtml5:function(){var e,t=!1;return"undefined"!=typeof document.hidden?e="hidden":"undefined"!=typeof document.webkitHidden&&(e="webkitHidden"),document[e]&&(t=document[e]),!t}}),new n}),function(e){e.i18n={dict:null,setDictionary:function(e){this.dict=e},_:function(e,t){var i=e;return this.dict&&this.dict[e]&&(i=this.dict[e]),this.printf(i,t)},printf:function(e,t){if(!t)return e;for(var i="",n=/%(\d+)\$s/g,o=n.exec(e);o;){var s=parseInt(o[1],10)-1;e=e.replace("%"+o[1]+"$s",t[s]),o=n.exec(e)}var a=e.split("%s");if(a.length>1)for(var r=0;r0&&a[r].lastIndexOf("%")==a[r].length-1&&(a[r]+="s"+a.splice(r+1,1)[0]),i+=a[r]+t[r];return i+a[a.length-1]}},e.fn._t=function(t,i){return e(this).text(e.i18n._(t,i))}}(jQuery),define("lib/jquery.i18n/jquery.i18n",function(){}),define("lib/jquery.i18n/jquery.i18n.extend",["jquery","lib/jquery.i18n/jquery.i18n"],function(e){"use strict";e.extend(e.i18n,{currentString:"",setDict:function(e){this.dict=e},setUrl:function(e){this.dictUrl=e,this._loadDict()},_loadDict:function(){return e.ajax({url:this.dictUrl,dataType:"json",async:!1,cache:!0,success:e.proxy(function(e){this.dict=e},this)})},__:function(e,t){var i=e;return"object"==typeof this.dict[e]&&""!==this.dict[e][""]&&(i=this.dict[e][""]),"object"==typeof t&&(i=this._insert(i,t)),i},_insert:function(e,t){return e.replace(/:([-\w]+)/g,function(e,i){return"undefined"!=typeof t[i]?t[i]:e})}})}),function(e,t){"function"==typeof define&&define.amd?define("lib/saito/backbone.initHelper",["underscore","backbone"],function(i,n){return t(i||e._,n||e.Backbone)}):t(_,Backbone)}(this,function(e,t){t.View.prototype.initCollectionFromDom=function(e,t,i){var n=function(e,t,n){e.add({id:t}),new i({el:n,model:e.get(t),collection:e})};$(e).each(function(){n(t,$(this).data("id"),this)})}}),define("app/app",["marionette","app/core","app/vent","modules/html5-notification/html5-notification"],function(e,t,i){var n=SaitoApp,o=function(e){require(["jquery","domReady"],function(t,i){t.isReady?e():i(function(){e()})})},s={fireOnPageCallbacks:function(e){var t=e.afterAppInit;_.each(t,function(e){e()}),i.vent.on("isAppVisible",_.once(function(){var t=e.afterViewInit;_.each(t,function(e){e()})}))},bootstrapShoutbox:function(){o(function(){require(["modules/shoutbox/shoutbox"],function(e){e.start()})})},bootstrapApp:function(e){require(["domReady","views/app","backbone","jquery","models/app","views/notification","views/prerequisitesTester","modules/html5-notification/html5-notification","modules/usermap/usermap","app/time","lib/Saito/isAppVisible","lib/jquery.i18n/jquery.i18n.extend","jqueryDropdown","lib/saito/backbone.initHelper","lib/saito/backbone.modelHelper","fastclick"],function(t,i,a,r,l,d,c,u,h){var p,f,m;l.settings.set(e.SaitoApp.app.settings),r.i18n.setUrl(l.settings.get("webroot")+"da/langJs"),l.currentUser.set(e.SaitoApp.currentUser),l.request=e.SaitoApp.request,u.start(),h.start(),new d;var g=e.SaitoApp.callbacks.beforeAppInit;_.each(g,function(e){e()}),window.addEventListener("load",function(){new FastClick(document.body)},!1),m=new c({el:r(".app-prerequisites-warnings")}),p=new i,f=function(){"shouts"in n&&s.bootstrapShoutbox(),s.fireOnPageCallbacks(e.SaitoApp.callbacks),p.initFromDom({SaitoApp:e.SaitoApp,contentTimer:e.contentTimer})},o(f)})}},a=t;return a.addInitializer(s.bootstrapApp),a.start({contentTimer:contentTimer,SaitoApp:n}),i.reqres.setHandler("webroot",function(){return n.app.settings.webroot}),i.reqres.setHandler("apiroot",function(){return n.app.settings.webroot+"api/v1/"}),a}),require.config({paths:{common:"../dist/common.min",templateHelpers:"lib/saito/templateHelpers"}}),function(e){"use strict";e.contentTimer={show:function(){$("#content").css("visibility","visible"),console.warn("DOM ready timed out: show content fallback used."),delete this.timeoutID},setup:function(){this.cancel();var t=this;this.timeoutID=e.setTimeout(function(){t.show()},5e3)},cancel:function(){"number"==typeof this.timeoutID&&(e.clearTimeout(this.timeoutID),delete this.timeoutID)}},e.contentTimer.setup()}(window),require(["lib/bootstrapHelper","common"],function(){"use strict";require(["lib/saito/underscore.extend"]),require(["app/app"])}),define("main",function(){}); \ No newline at end of file diff --git a/app/webroot/dist/require.min.js b/app/webroot/dist/require.min.js index d3b5ba7e1..5e242c72b 100644 --- a/app/webroot/dist/require.min.js +++ b/app/webroot/dist/require.min.js @@ -1 +1 @@ -var requirejs,require,define;!function(global){function isFunction(a){return"[object Function]"===ostring.call(a)}function isArray(a){return"[object Array]"===ostring.call(a)}function each(a,b){if(a){var c;for(c=0;c-1&&(!a[c]||!b(a[c],c,a));c-=1);}}function hasProp(a,b){return hasOwn.call(a,b)}function getOwn(a,b){return hasProp(a,b)&&a[b]}function eachProp(a,b){var c;for(c in a)if(hasProp(a,c)&&b(a[c],c))break}function mixin(a,b,c,d){return b&&eachProp(b,function(b,e){(c||!hasProp(a,e))&&(!d||"object"!=typeof b||!b||isArray(b)||isFunction(b)||b instanceof RegExp?a[e]=b:(a[e]||(a[e]={}),mixin(a[e],b,c,d)))}),a}function bind(a,b){return function(){return b.apply(a,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(a){throw a}function getGlobal(a){if(!a)return a;var b=global;return each(a.split("."),function(a){b=b[a]}),b}function makeError(a,b,c,d){var e=new Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a);return e.requireType=a,e.requireModules=d,c&&(e.originalError=c),e}function newContext(a){function b(a){var b,c;for(b=0;b0&&(a.splice(b-1,2),b-=2)}}function c(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q=c&&c.split("/"),r=x.map,s=r&&r["*"];if(a&&(a=a.split("/"),k=a.length-1,x.nodeIdCompat&&jsSuffixRegExp.test(a[k])&&(a[k]=a[k].replace(jsSuffixRegExp,"")),"."===a[0].charAt(0)&&q&&(p=q.slice(0,q.length-1),a=p.concat(a)),b(a),a=a.join("/")),d&&r&&(q||s)){g=a.split("/");a:for(h=g.length;h>0;h-=1){if(j=g.slice(0,h).join("/"),q)for(i=q.length;i>0;i-=1)if(f=getOwn(r,q.slice(0,i).join("/")),f&&(f=getOwn(f,j))){l=f,m=h;break a}!n&&s&&getOwn(s,j)&&(n=getOwn(s,j),o=h)}!l&&n&&(l=n,m=o),l&&(g.splice(0,m,l),a=g.join("/"))}return e=getOwn(x.pkgs,a),e?e:a}function d(a){isBrowser&&each(scripts(),function(b){return b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===u.contextName?(b.parentNode.removeChild(b),!0):void 0})}function e(a){var b=getOwn(x.paths,a);return b&&isArray(b)&&b.length>1?(b.shift(),u.require.undef(a),u.makeRequire(null,{skipMap:!0})([a]),!0):void 0}function f(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function g(a,b,d,e){var g,h,i,j,k=null,l=b?b.name:null,m=a,n=!0,o="";return a||(n=!1,a="_@r"+(F+=1)),j=f(a),k=j[0],a=j[1],k&&(k=c(k,l,e),h=getOwn(C,k)),a&&(k?o=h&&h.normalize?h.normalize(a,function(a){return c(a,l,e)}):-1===a.indexOf("!")?c(a,l,e):a:(o=c(a,l,e),j=f(o),k=j[0],o=j[1],d=!0,g=u.nameToUrl(o))),i=!k||h||d?"":"_unnormalized"+(G+=1),{prefix:k,name:o,parentMap:b,unnormalized:!!i,url:g,originalName:m,isDefine:n,id:(k?k+"!"+o:o)+i}}function h(a){var b=a.id,c=getOwn(y,b);return c||(c=y[b]=new u.Module(a)),c}function i(a,b,c){var d=a.id,e=getOwn(y,d);!hasProp(C,d)||e&&!e.defineEmitComplete?(e=h(a),e.error&&"error"===b?c(e.error):e.on(b,c)):"defined"===b&&c(C[d])}function j(a,b){var c=a.requireModules,d=!1;b?b(a):(each(c,function(b){var c=getOwn(y,b);c&&(c.error=a,c.events.error&&(d=!0,c.emit("error",a)))}),d||req.onError(a))}function k(){globalDefQueue.length&&(apsp.apply(B,[B.length,0].concat(globalDefQueue)),globalDefQueue=[])}function l(a){delete y[a],delete z[a]}function m(a,b,c){var d=a.map.id;a.error?a.emit("error",a.error):(b[d]=!0,each(a.depMaps,function(d,e){var f=d.id,g=getOwn(y,f);!g||a.depMatched[e]||c[f]||(getOwn(b,f)?(a.defineDep(e,C[f]),a.check()):m(g,b,c))}),c[d]=!0)}function n(){var a,b,c=1e3*x.waitSeconds,f=c&&u.startTime+c<(new Date).getTime(),g=[],h=[],i=!1,k=!0;if(!s){if(s=!0,eachProp(z,function(a){var c=a.map,j=c.id;if(a.enabled&&(c.isDefine||h.push(a),!a.error))if(!a.inited&&f)e(j)?(b=!0,i=!0):(g.push(j),d(j));else if(!a.inited&&a.fetched&&c.isDefine&&(i=!0,!c.prefix))return k=!1}),f&&g.length)return a=makeError("timeout","Load timeout for modules: "+g,null,g),a.contextName=u.contextName,j(a);k&&each(h,function(a){m(a,{},{})}),f&&!b||!i||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,n()},50)),s=!1}}function o(a){hasProp(C,a[0])||h(g(a[0],null,!0)).init(a[1],a[2])}function p(a,b,c,d){a.detachEvent&&!isOpera?d&&a.detachEvent(d,b):a.removeEventListener(c,b,!1)}function q(a){var b=a.currentTarget||a.srcElement;return p(b,u.onScriptLoad,"load","onreadystatechange"),p(b,u.onScriptError,"error"),{node:b,id:b&&b.getAttribute("data-requiremodule")}}function r(){var a;for(k();B.length;){if(a=B.shift(),null===a[0])return j(makeError("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));o(a)}}var s,t,u,v,w,x={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},y={},z={},A={},B=[],C={},D={},E={},F=1,G=1;return v={require:function(a){return a.require?a.require:a.require=u.makeRequire(a.map)},exports:function(a){return a.usingExports=!0,a.map.isDefine?a.exports?C[a.map.id]=a.exports:a.exports=C[a.map.id]={}:void 0},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return getOwn(x.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}},t=function(a){this.events=getOwn(A,a.id)||{},this.map=a,this.shim=getOwn(x.shim,a.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},t.prototype={init:function(a,b,c,d){d=d||{},this.inited||(this.factory=b,c?this.on("error",c):this.events.error&&(c=bind(this,function(a){this.emit("error",a)})),this.depMaps=a&&a.slice(0),this.errback=c,this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check())},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0,u.startTime=(new Date).getTime();var a=this.map;return this.shim?void u.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return a.prefix?this.callPlugin():this.load()})):a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;D[a]||(D[a]=!0,u.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id,d=this.depExports,e=this.exports,f=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(f)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{e=u.execCb(c,f,d,e)}catch(g){a=g}else e=u.execCb(c,f,d,e);if(this.map.isDefine&&void 0===e&&(b=this.module,b?e=b.exports:this.usingExports&&(e=this.exports)),a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",j(this.error=a)}else e=f;this.exports=e,this.map.isDefine&&!this.ignore&&(C[c]=e,req.onResourceLoad&&req.onResourceLoad(u,this.map,this.depMaps)),l(c),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=g(a.prefix);this.depMaps.push(d),i(d,"defined",bind(this,function(d){var e,f,k,m=getOwn(E,this.map.id),n=this.map.name,o=this.map.parentMap?this.map.parentMap.name:null,p=u.makeRequire(a.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(d.normalize&&(n=d.normalize(n,function(a){return c(a,o,!0)})||""),f=g(a.prefix+"!"+n,this.map.parentMap),i(f,"defined",bind(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),k=getOwn(y,f.id),void(k&&(this.depMaps.push(f),this.events.error&&k.on("error",bind(this,function(a){this.emit("error",a)})),k.enable()))):m?(this.map.url=u.nameToUrl(m),void this.load()):(e=bind(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),e.error=bind(this,function(a){this.inited=!0,this.error=a,a.requireModules=[b],eachProp(y,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&l(a.map.id)}),j(a)}),e.fromText=bind(this,function(c,d){var f=a.name,i=g(f),k=useInteractive;d&&(c=d),k&&(useInteractive=!1),h(i),hasProp(x.config,b)&&(x.config[f]=x.config[b]);try{req.exec(c)}catch(l){return j(makeError("fromtexteval","fromText eval for "+b+" failed: "+l,l,[b]))}k&&(useInteractive=!0),this.depMaps.push(i),u.completeLoad(f),p([f],e)}),void d.load(a.name,p,e,x))})),u.enable(d,this),this.pluginMaps[d.id]=d},enable:function(){z[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(a,b){var c,d,e;if("string"==typeof a){if(a=g(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[b]=a,e=getOwn(v,a.id))return void(this.depExports[b]=e(this));this.depCount+=1,i(a,"defined",bind(this,function(a){this.defineDep(b,a),this.check()})),this.errback&&i(a,"error",bind(this,this.errback))}c=a.id,d=y[c],hasProp(v,c)||!d||d.enabled||u.enable(a,this)})),eachProp(this.pluginMaps,bind(this,function(a){var b=getOwn(y,a.id);b&&!b.enabled&&u.enable(a,this)})),this.enabling=!1,this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){each(this.events[a],function(a){a(b)}),"error"===a&&delete this.events[a]}},u={config:x,contextName:a,registry:y,defined:C,urlFetched:D,defQueue:B,Module:t,makeModuleMap:g,nextTick:req.nextTick,onError:j,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=x.shim,c={paths:!0,bundles:!0,config:!0,map:!0};eachProp(a,function(a,b){c[b]?(x[b]||(x[b]={}),mixin(x[b],a,!0,!0)):x[b]=a}),a.bundles&&eachProp(a.bundles,function(a,b){each(a,function(a){a!==b&&(E[a]=b)})}),a.shim&&(eachProp(a.shim,function(a,c){isArray(a)&&(a={deps:a}),!a.exports&&!a.init||a.exportsFn||(a.exportsFn=u.makeShimExports(a)),b[c]=a}),x.shim=b),a.packages&&each(a.packages,function(a){var b,c;a="string"==typeof a?{name:a}:a,c=a.name,b=a.location,b&&(x.paths[c]=a.location),x.pkgs[c]=a.name+"/"+(a.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(y,function(a,b){a.inited||a.map.unnormalized||(a.map=g(b))}),(a.deps||a.callback)&&u.require(a.deps||[],a.callback)},makeShimExports:function(a){function b(){var b;return a.init&&(b=a.init.apply(global,arguments)),b||a.exports&&getGlobal(a.exports)}return b},makeRequire:function(b,e){function f(c,d,i){var k,l,m;return e.enableBuildCallback&&d&&isFunction(d)&&(d.__requireJsBuild=!0),"string"==typeof c?isFunction(d)?j(makeError("requireargs","Invalid require call"),i):b&&hasProp(v,c)?v[c](y[b.id]):req.get?req.get(u,c,b,f):(l=g(c,b,!1,!0),k=l.id,hasProp(C,k)?C[k]:j(makeError("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+a+(b?"":". Use require([])")))):(r(),u.nextTick(function(){r(),m=h(g(null,b)),m.skipMap=e.skipMap,m.init(c,d,i,{enabled:!0}),n()}),f)}return e=e||{},mixin(f,{isBrowser:isBrowser,toUrl:function(a){var d,e=a.lastIndexOf("."),f=a.split("/")[0],g="."===f||".."===f;return-1!==e&&(!g||e>1)&&(d=a.substring(e,a.length),a=a.substring(0,e)),u.nameToUrl(c(a,b&&b.id,!0),d,!0)},defined:function(a){return hasProp(C,g(a,b,!1,!0).id)},specified:function(a){return a=g(a,b,!1,!0).id,hasProp(C,a)||hasProp(y,a)}}),b||(f.undef=function(a){k();var c=g(a,b,!0),e=getOwn(y,a);d(a),delete C[a],delete D[c.url],delete A[a],eachReverse(B,function(b,c){b[0]===a&&B.splice(c,1)}),e&&(e.events.defined&&(A[a]=e.events),l(a))}),f},enable:function(a){var b=getOwn(y,a.id);b&&h(a).enable()},completeLoad:function(a){var b,c,d,f=getOwn(x.shim,a)||{},g=f.exports;for(k();B.length;){if(c=B.shift(),null===c[0]){if(c[0]=a,b)break;b=!0}else c[0]===a&&(b=!0);o(c)}if(d=getOwn(y,a),!b&&!hasProp(C,a)&&d&&!d.inited){if(!(!x.enforceDefine||g&&getGlobal(g)))return e(a)?void 0:j(makeError("nodefine","No define call for "+a,null,[a]));o([a,f.deps||[],f.exportsFn])}n()},nameToUrl:function(a,b,c){var d,e,f,g,h,i,j,k=getOwn(x.pkgs,a);if(k&&(a=k),j=getOwn(E,a))return u.nameToUrl(j,b,c);if(req.jsExtRegExp.test(a))h=a+(b||"");else{for(d=x.paths,e=a.split("/"),f=e.length;f>0;f-=1)if(g=e.slice(0,f).join("/"),i=getOwn(d,g)){isArray(i)&&(i=i[0]),e.splice(0,f,i);break}h=e.join("/"),h+=b||(/^data\:|\?/.test(h)||c?"":".js"),h=("/"===h.charAt(0)||h.match(/^[\w\+\.\-]+:/)?"":x.baseUrl)+h}return x.urlArgs?h+((-1===h.indexOf("?")?"?":"&")+x.urlArgs):h},load:function(a,b){req.load(u,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||readyRegExp.test((a.currentTarget||a.srcElement).readyState)){interactiveScript=null;var b=q(a);u.completeLoad(b.id)}},onScriptError:function(a){var b=q(a);return e(b.id)?void 0:j(makeError("scripterror","Script error for: "+b.id,a,[b.id]))}},u.require=u.makeRequire(),u}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(a){return"interactive"===a.readyState?interactiveScript=a:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.15",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,apsp=ap.splice,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(a,b,c,d){var e,f,g=defContextName;return isArray(a)||"string"==typeof a||(f=a,isArray(b)?(a=b,b=c,c=d):a=[]),f&&f.context&&(g=f.context),e=getOwn(contexts,g),e||(e=contexts[g]=req.s.newContext(g)),f&&e.configure(f),e.require(a,b,c)},req.config=function(a){return req(a)},req.nextTick="undefined"!=typeof setTimeout?function(a){setTimeout(a,4)}:function(a){a()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(a){req[a]=function(){var b=contexts[defContextName];return b.require[a].apply(b,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(a){var b=a.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return b.type=a.scriptType||"text/javascript",b.charset="utf-8",b.async=!0,b},req.load=function(a,b,c){var d,e=a&&a.config||{};if(isBrowser)return d=req.createNode(e,b,c),d.setAttribute("data-requirecontext",a.contextName),d.setAttribute("data-requiremodule",b),!d.attachEvent||d.attachEvent.toString&&d.attachEvent.toString().indexOf("[native code")<0||isOpera?(d.addEventListener("load",a.onScriptLoad,!1),d.addEventListener("error",a.onScriptError,!1)):(useInteractive=!0,d.attachEvent("onreadystatechange",a.onScriptLoad)),d.src=c,currentlyAddingScript=d,baseElement?head.insertBefore(d,baseElement):head.appendChild(d),currentlyAddingScript=null,d;if(isWebWorker)try{importScripts(c),a.completeLoad(b)}catch(f){a.onError(makeError("importscripts","importScripts failed for "+b+" at "+c,f,[b]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(a){return head||(head=a.parentNode),dataMain=a.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(a,b,c){var d,e;"string"!=typeof a&&(c=b,b=a,a=null),isArray(b)||(c=b,b=null),!b&&isFunction(c)&&(b=[],c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(a,c){b.push(c)}),b=(1===c.length?["require"]:["require","exports","module"]).concat(b))),useInteractive&&(d=currentlyAddingScript||getInteractiveScript(),d&&(a||(a=d.getAttribute("data-requiremodule")),e=contexts[d.getAttribute("data-requirecontext")])),(e?e.defQueue:globalDefQueue).push([a,b,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this); \ No newline at end of file +var requirejs,require,define;!function(global){function isFunction(a){return"[object Function]"===ostring.call(a)}function isArray(a){return"[object Array]"===ostring.call(a)}function each(a,b){if(a){var c;for(c=0;c-1&&(!a[c]||!b(a[c],c,a));c-=1);}}function hasProp(a,b){return hasOwn.call(a,b)}function getOwn(a,b){return hasProp(a,b)&&a[b]}function eachProp(a,b){var c;for(c in a)if(hasProp(a,c)&&b(a[c],c))break}function mixin(a,b,c,d){return b&&eachProp(b,function(b,e){(c||!hasProp(a,e))&&(!d||"object"!=typeof b||!b||isArray(b)||isFunction(b)||b instanceof RegExp?a[e]=b:(a[e]||(a[e]={}),mixin(a[e],b,c,d)))}),a}function bind(a,b){return function(){return b.apply(a,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(a){throw a}function getGlobal(a){if(!a)return a;var b=global;return each(a.split("."),function(a){b=b[a]}),b}function makeError(a,b,c,d){var e=new Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a);return e.requireType=a,e.requireModules=d,c&&(e.originalError=c),e}function newContext(a){function b(a){var b,c;for(b=0;b0&&(a.splice(b-1,2),b-=2)}}function c(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q=c&&c.split("/"),r=x.map,s=r&&r["*"];if(a&&(a=a.split("/"),k=a.length-1,x.nodeIdCompat&&jsSuffixRegExp.test(a[k])&&(a[k]=a[k].replace(jsSuffixRegExp,"")),"."===a[0].charAt(0)&&q&&(p=q.slice(0,q.length-1),a=p.concat(a)),b(a),a=a.join("/")),d&&r&&(q||s)){g=a.split("/");a:for(h=g.length;h>0;h-=1){if(j=g.slice(0,h).join("/"),q)for(i=q.length;i>0;i-=1)if(f=getOwn(r,q.slice(0,i).join("/")),f&&(f=getOwn(f,j))){l=f,m=h;break a}!n&&s&&getOwn(s,j)&&(n=getOwn(s,j),o=h)}!l&&n&&(l=n,m=o),l&&(g.splice(0,m,l),a=g.join("/"))}return e=getOwn(x.pkgs,a),e?e:a}function d(a){isBrowser&&each(scripts(),function(b){return b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===u.contextName?(b.parentNode.removeChild(b),!0):void 0})}function e(a){var b=getOwn(x.paths,a);return b&&isArray(b)&&b.length>1?(b.shift(),u.require.undef(a),u.makeRequire(null,{skipMap:!0})([a]),!0):void 0}function f(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function g(a,b,d,e){var g,h,i,j,k=null,l=b?b.name:null,m=a,n=!0,o="";return a||(n=!1,a="_@r"+(F+=1)),j=f(a),k=j[0],a=j[1],k&&(k=c(k,l,e),h=getOwn(C,k)),a&&(k?o=h&&h.normalize?h.normalize(a,function(a){return c(a,l,e)}):-1===a.indexOf("!")?c(a,l,e):a:(o=c(a,l,e),j=f(o),k=j[0],o=j[1],d=!0,g=u.nameToUrl(o))),i=!k||h||d?"":"_unnormalized"+(G+=1),{prefix:k,name:o,parentMap:b,unnormalized:!!i,url:g,originalName:m,isDefine:n,id:(k?k+"!"+o:o)+i}}function h(a){var b=a.id,c=getOwn(y,b);return c||(c=y[b]=new u.Module(a)),c}function i(a,b,c){var d=a.id,e=getOwn(y,d);!hasProp(C,d)||e&&!e.defineEmitComplete?(e=h(a),e.error&&"error"===b?c(e.error):e.on(b,c)):"defined"===b&&c(C[d])}function j(a,b){var c=a.requireModules,d=!1;b?b(a):(each(c,function(b){var c=getOwn(y,b);c&&(c.error=a,c.events.error&&(d=!0,c.emit("error",a)))}),d||req.onError(a))}function k(){globalDefQueue.length&&(apsp.apply(B,[B.length,0].concat(globalDefQueue)),globalDefQueue=[])}function l(a){delete y[a],delete z[a]}function m(a,b,c){var d=a.map.id;a.error?a.emit("error",a.error):(b[d]=!0,each(a.depMaps,function(d,e){var f=d.id,g=getOwn(y,f);!g||a.depMatched[e]||c[f]||(getOwn(b,f)?(a.defineDep(e,C[f]),a.check()):m(g,b,c))}),c[d]=!0)}function n(){var a,b,c=1e3*x.waitSeconds,f=c&&u.startTime+c<(new Date).getTime(),g=[],h=[],i=!1,k=!0;if(!s){if(s=!0,eachProp(z,function(a){var c=a.map,j=c.id;if(a.enabled&&(c.isDefine||h.push(a),!a.error))if(!a.inited&&f)e(j)?(b=!0,i=!0):(g.push(j),d(j));else if(!a.inited&&a.fetched&&c.isDefine&&(i=!0,!c.prefix))return k=!1}),f&&g.length)return a=makeError("timeout","Load timeout for modules: "+g,null,g),a.contextName=u.contextName,j(a);k&&each(h,function(a){m(a,{},{})}),f&&!b||!i||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,n()},50)),s=!1}}function o(a){hasProp(C,a[0])||h(g(a[0],null,!0)).init(a[1],a[2])}function p(a,b,c,d){a.detachEvent&&!isOpera?d&&a.detachEvent(d,b):a.removeEventListener(c,b,!1)}function q(a){var b=a.currentTarget||a.srcElement;return p(b,u.onScriptLoad,"load","onreadystatechange"),p(b,u.onScriptError,"error"),{node:b,id:b&&b.getAttribute("data-requiremodule")}}function r(){var a;for(k();B.length;){if(a=B.shift(),null===a[0])return j(makeError("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));o(a)}}var s,t,u,v,w,x={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},y={},z={},A={},B=[],C={},D={},E={},F=1,G=1;return v={require:function(a){return a.require?a.require:a.require=u.makeRequire(a.map)},exports:function(a){return a.usingExports=!0,a.map.isDefine?a.exports?C[a.map.id]=a.exports:a.exports=C[a.map.id]={}:void 0},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return getOwn(x.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}},t=function(a){this.events=getOwn(A,a.id)||{},this.map=a,this.shim=getOwn(x.shim,a.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},t.prototype={init:function(a,b,c,d){d=d||{},this.inited||(this.factory=b,c?this.on("error",c):this.events.error&&(c=bind(this,function(a){this.emit("error",a)})),this.depMaps=a&&a.slice(0),this.errback=c,this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check())},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0,u.startTime=(new Date).getTime();var a=this.map;return this.shim?void u.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return a.prefix?this.callPlugin():this.load()})):a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;D[a]||(D[a]=!0,u.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id,d=this.depExports,e=this.exports,f=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(f)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{e=u.execCb(c,f,d,e)}catch(g){a=g}else e=u.execCb(c,f,d,e);if(this.map.isDefine&&void 0===e&&(b=this.module,b?e=b.exports:this.usingExports&&(e=this.exports)),a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",j(this.error=a)}else e=f;this.exports=e,this.map.isDefine&&!this.ignore&&(C[c]=e,req.onResourceLoad&&req.onResourceLoad(u,this.map,this.depMaps)),l(c),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=g(a.prefix);this.depMaps.push(d),i(d,"defined",bind(this,function(d){var e,f,k,m=getOwn(E,this.map.id),n=this.map.name,o=this.map.parentMap?this.map.parentMap.name:null,p=u.makeRequire(a.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(d.normalize&&(n=d.normalize(n,function(a){return c(a,o,!0)})||""),f=g(a.prefix+"!"+n,this.map.parentMap),i(f,"defined",bind(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),k=getOwn(y,f.id),void(k&&(this.depMaps.push(f),this.events.error&&k.on("error",bind(this,function(a){this.emit("error",a)})),k.enable()))):m?(this.map.url=u.nameToUrl(m),void this.load()):(e=bind(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),e.error=bind(this,function(a){this.inited=!0,this.error=a,a.requireModules=[b],eachProp(y,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&l(a.map.id)}),j(a)}),e.fromText=bind(this,function(c,d){var f=a.name,i=g(f),k=useInteractive;d&&(c=d),k&&(useInteractive=!1),h(i),hasProp(x.config,b)&&(x.config[f]=x.config[b]);try{req.exec(c)}catch(l){return j(makeError("fromtexteval","fromText eval for "+b+" failed: "+l,l,[b]))}k&&(useInteractive=!0),this.depMaps.push(i),u.completeLoad(f),p([f],e)}),void d.load(a.name,p,e,x))})),u.enable(d,this),this.pluginMaps[d.id]=d},enable:function(){z[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(a,b){var c,d,e;if("string"==typeof a){if(a=g(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[b]=a,e=getOwn(v,a.id))return void(this.depExports[b]=e(this));this.depCount+=1,i(a,"defined",bind(this,function(a){this.defineDep(b,a),this.check()})),this.errback&&i(a,"error",bind(this,this.errback))}c=a.id,d=y[c],hasProp(v,c)||!d||d.enabled||u.enable(a,this)})),eachProp(this.pluginMaps,bind(this,function(a){var b=getOwn(y,a.id);b&&!b.enabled&&u.enable(a,this)})),this.enabling=!1,this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){each(this.events[a],function(a){a(b)}),"error"===a&&delete this.events[a]}},u={config:x,contextName:a,registry:y,defined:C,urlFetched:D,defQueue:B,Module:t,makeModuleMap:g,nextTick:req.nextTick,onError:j,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=x.shim,c={paths:!0,bundles:!0,config:!0,map:!0};eachProp(a,function(a,b){c[b]?(x[b]||(x[b]={}),mixin(x[b],a,!0,!0)):x[b]=a}),a.bundles&&eachProp(a.bundles,function(a,b){each(a,function(a){a!==b&&(E[a]=b)})}),a.shim&&(eachProp(a.shim,function(a,c){isArray(a)&&(a={deps:a}),!a.exports&&!a.init||a.exportsFn||(a.exportsFn=u.makeShimExports(a)),b[c]=a}),x.shim=b),a.packages&&each(a.packages,function(a){var b,c;a="string"==typeof a?{name:a}:a,c=a.name,b=a.location,b&&(x.paths[c]=a.location),x.pkgs[c]=a.name+"/"+(a.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(y,function(a,b){a.inited||a.map.unnormalized||(a.map=g(b))}),(a.deps||a.callback)&&u.require(a.deps||[],a.callback)},makeShimExports:function(a){function b(){var b;return a.init&&(b=a.init.apply(global,arguments)),b||a.exports&&getGlobal(a.exports)}return b},makeRequire:function(b,e){function f(c,d,i){var k,l,m;return e.enableBuildCallback&&d&&isFunction(d)&&(d.__requireJsBuild=!0),"string"==typeof c?isFunction(d)?j(makeError("requireargs","Invalid require call"),i):b&&hasProp(v,c)?v[c](y[b.id]):req.get?req.get(u,c,b,f):(l=g(c,b,!1,!0),k=l.id,hasProp(C,k)?C[k]:j(makeError("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+a+(b?"":". Use require([])")))):(r(),u.nextTick(function(){r(),m=h(g(null,b)),m.skipMap=e.skipMap,m.init(c,d,i,{enabled:!0}),n()}),f)}return e=e||{},mixin(f,{isBrowser:isBrowser,toUrl:function(a){var d,e=a.lastIndexOf("."),f=a.split("/")[0],g="."===f||".."===f;return-1!==e&&(!g||e>1)&&(d=a.substring(e,a.length),a=a.substring(0,e)),u.nameToUrl(c(a,b&&b.id,!0),d,!0)},defined:function(a){return hasProp(C,g(a,b,!1,!0).id)},specified:function(a){return a=g(a,b,!1,!0).id,hasProp(C,a)||hasProp(y,a)}}),b||(f.undef=function(a){k();var c=g(a,b,!0),e=getOwn(y,a);d(a),delete C[a],delete D[c.url],delete A[a],eachReverse(B,function(b,c){b[0]===a&&B.splice(c,1)}),e&&(e.events.defined&&(A[a]=e.events),l(a))}),f},enable:function(a){var b=getOwn(y,a.id);b&&h(a).enable()},completeLoad:function(a){var b,c,d,f=getOwn(x.shim,a)||{},g=f.exports;for(k();B.length;){if(c=B.shift(),null===c[0]){if(c[0]=a,b)break;b=!0}else c[0]===a&&(b=!0);o(c)}if(d=getOwn(y,a),!b&&!hasProp(C,a)&&d&&!d.inited){if(!(!x.enforceDefine||g&&getGlobal(g)))return e(a)?void 0:j(makeError("nodefine","No define call for "+a,null,[a]));o([a,f.deps||[],f.exportsFn])}n()},nameToUrl:function(a,b,c){var d,e,f,g,h,i,j,k=getOwn(x.pkgs,a);if(k&&(a=k),j=getOwn(E,a))return u.nameToUrl(j,b,c);if(req.jsExtRegExp.test(a))h=a+(b||"");else{for(d=x.paths,e=a.split("/"),f=e.length;f>0;f-=1)if(g=e.slice(0,f).join("/"),i=getOwn(d,g)){isArray(i)&&(i=i[0]),e.splice(0,f,i);break}h=e.join("/"),h+=b||(/^data\:|\?/.test(h)||c?"":".js"),h=("/"===h.charAt(0)||h.match(/^[\w\+\.\-]+:/)?"":x.baseUrl)+h}return x.urlArgs?h+((-1===h.indexOf("?")?"?":"&")+x.urlArgs):h},load:function(a,b){req.load(u,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||readyRegExp.test((a.currentTarget||a.srcElement).readyState)){interactiveScript=null;var b=q(a);u.completeLoad(b.id)}},onScriptError:function(a){var b=q(a);return e(b.id)?void 0:j(makeError("scripterror","Script error for: "+b.id,a,[b.id]))}},u.require=u.makeRequire(),u}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(a){return"interactive"===a.readyState?interactiveScript=a:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.15",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,apsp=ap.splice,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(a,b,c,d){var e,f,g=defContextName;return isArray(a)||"string"==typeof a||(f=a,isArray(b)?(a=b,b=c,c=d):a=[]),f&&f.context&&(g=f.context),e=getOwn(contexts,g),e||(e=contexts[g]=req.s.newContext(g)),f&&e.configure(f),e.require(a,b,c)},req.config=function(a){return req(a)},req.nextTick="undefined"!=typeof setTimeout?function(a){setTimeout(a,4)}:function(a){a()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(a){req[a]=function(){var b=contexts[defContextName];return b.require[a].apply(b,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(a,b,c){var d=a.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return d.type=a.scriptType||"text/javascript",d.charset="utf-8",d.async=!0,d},req.load=function(a,b,c){var d,e=a&&a.config||{};if(isBrowser)return d=req.createNode(e,b,c),d.setAttribute("data-requirecontext",a.contextName),d.setAttribute("data-requiremodule",b),!d.attachEvent||d.attachEvent.toString&&d.attachEvent.toString().indexOf("[native code")<0||isOpera?(d.addEventListener("load",a.onScriptLoad,!1),d.addEventListener("error",a.onScriptError,!1)):(useInteractive=!0,d.attachEvent("onreadystatechange",a.onScriptLoad)),d.src=c,currentlyAddingScript=d,baseElement?head.insertBefore(d,baseElement):head.appendChild(d),currentlyAddingScript=null,d;if(isWebWorker)try{importScripts(c),a.completeLoad(b)}catch(f){a.onError(makeError("importscripts","importScripts failed for "+b+" at "+c,f,[b]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(a){return head||(head=a.parentNode),dataMain=a.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(a,b,c){var d,e;"string"!=typeof a&&(c=b,b=a,a=null),isArray(b)||(c=b,b=null),!b&&isFunction(c)&&(b=[],c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(a,c){b.push(c)}),b=(1===c.length?["require"]:["require","exports","module"]).concat(b))),useInteractive&&(d=currentlyAddingScript||getInteractiveScript(),d&&(a||(a=d.getAttribute("data-requiremodule")),e=contexts[d.getAttribute("data-requirecontext")])),(e?e.defQueue:globalDefQueue).push([a,b,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this); \ No newline at end of file diff --git a/app/webroot/js/lib/saito/markItUp.media.js b/app/webroot/js/lib/saito/markItUp.media.js index 016e8323e..a19f4fa47 100644 --- a/app/webroot/js/lib/saito/markItUp.media.js +++ b/app/webroot/js/lib/saito/markItUp.media.js @@ -1,136 +1,179 @@ -define(['jquery', 'underscore'], function($, _) { - - "use strict"; - - var dropbox = { - cleanUp: function(text) { - // see: https://www.dropbox.com/help/201/en - text = text.replace(/https:\/\/www\.dropbox\.com\//, 'https://dl.dropbox.com/'); - return text; +/** + * Helper for converting multimedia content to BBCode tags + */ +define(['jquery', 'underscore'], function ($, _) { + 'use strict'; + var markItUp = { + /** + * Filters applied before URL is evaluated + */ + _preFilters: { + /** + * Convert dropbox HTML-page URL to actual file URL + * + * @see https://www.dropbox.com/help/201/en + */ + dropbox: { + cleanUp: function (text) { + return text.replace(/https:\/\/www\.dropbox\.com\//, 'https://dl.dropbox.com/'); } - }; - - var markItUp = { - - rawUrlCleaner: [dropbox], - - multimedia: function(text, options) { - var textv = $.trim(text), - patternEnd = "([\\/?]|$)", - - patternImage = new RegExp("\\.(png|gif|jpg|jpeg|webp)" + patternEnd, "i"), - patternHtml = new RegExp("\\.(mp4|webm|m4v)" + patternEnd, "i"), - patternAudio = new RegExp("\\.(m4a|ogg|mp3|wav|opus)" + patternEnd, "i"), - patternFlash = /.*?<\/iframe>/i.exec(text)[1]; - inner = inner.replace(/["']/g, ''); - return '[iframe' + inner + '][/iframe]'; + return text; }, - _videoFallback: function(text) { - var out = '', - videoId; - - // manually detect popular video services - if ( /http/.test(text) === false ) { - text = 'http://' + text; - } - if (/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i.test(text)) { - var domain = text.match(/(https?:\/\/)?(www\.)?(.[^\/:]+)/i).pop(); - // youtube shortener url - if (domain === 'youtu.be') { - if (/youtu.be\/(.*?)(&.*)?$/.test(text)) { - videoId = text.match(/youtu.be\/(.*?)(&.*)?$/)[1]; - out = markItUp._createIframe({ - url: '//www.youtube.com/embed/' + videoId - }); - out = markItUp._videoIframe(out); - return out; - } - } - // youtube url from browser bar - if (domain === 'youtube.com') { - if (/v=(.*?)(&.*)?$/.test(text)) { - videoId = text.match(/v=(.*?)(&.*)?$/)[1]; - out = markItUp._createIframe({ - url: '//www.youtube.com/embed/' + videoId - }); - out = markItUp._videoIframe(out); - } - return out; - } - } - return out; - }, - - _embedly: function(text) { - return '[embed]' + text + '[/embed]'; - }, - - _createIframe: function(args) { - return ''; + /** + * Create HTML iframe tag + * + * @param {object} attr - iframe-tag attributes + * @returns {string} + * @private + */ + _createIframe: function (attr) { + var defaults, attributes, reducer; + + defaults = { + width: 560, + height: 315, + frameborder: 0, + allowfullscreen: 'allowfullscreen' + }; + _.defaults(attr, defaults); + + + reducer = function (memo, value, key) { + return memo + key + '="' + value + '" '; + }; + attributes = _.reduce(attr, reducer, ''); + attributes = attributes.trim(); + + return ''; } - - }; - - return markItUp; - + } + }, + + /** + * Resolve multimedia input to BBCode syntax + * + * @param {string} text - content to embed + * @param {object} options - converting options + * @returns {string} + */ + multimedia: function (text, options) { + var textv = $.trim(text), + patternEnd = '([\\/?]|$)', + + patternImage = new RegExp('\\.(png|gif|jpg|jpeg|webp)' + patternEnd, 'i'), + patternHtml = new RegExp('\\.(mp4|webm|m4v)' + patternEnd, 'i'), + patternAudio = new RegExp('\\.(m4a|ogg|mp3|wav|opus)' + patternEnd, 'i'), + patternFlash = /.*?<\/iframe>/i.exec(text)[1]; + inner = inner.replace(/["']/g, ''); + return '[iframe' + inner + '][/iframe]'; + }, + + _embedly: function (text) { + return '[embed]' + text + '[/embed]'; + } + }; + + return markItUp; }); diff --git a/app/webroot/js/lib/saito/underscore.extend.js b/app/webroot/js/lib/saito/underscore.extend.js new file mode 100644 index 000000000..24421c3df --- /dev/null +++ b/app/webroot/js/lib/saito/underscore.extend.js @@ -0,0 +1,18 @@ +define(['underscore'], function(_) { + 'use strict'; + + _.mixin({ + /** + * Calculate chars in string + * + * @param {string} string + * @return int + */ + chars: function(string) { + var count, twoByteEmojis; + twoByteEmojis = string.match(/(\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDFFF])/g) || []; + count = string.length - twoByteEmojis.length; + return count; + } + }); +}); diff --git a/app/webroot/js/main.js b/app/webroot/js/main.js index 73bdd8e57..ecc6ba47d 100644 --- a/app/webroot/js/main.js +++ b/app/webroot/js/main.js @@ -43,5 +43,7 @@ require.config({ require(['lib/bootstrapHelper', 'common'], function() { "use strict"; + + require(['lib/saito/underscore.extend']); require(['app/app']); }); diff --git a/app/webroot/js/test.js b/app/webroot/js/test.js index c4a7fc6a9..369c222c8 100644 --- a/app/webroot/js/test.js +++ b/app/webroot/js/test.js @@ -36,6 +36,7 @@ require(['lib/bootstrapHelper', 'common', 'tests/jasmineBootstrapHelper'], funct 'lib/MarkItUpSpec.js', 'lib/jquery.i18n.extendSpec.js', 'lib/TemplateHelpersSpec.js', + 'lib/underscore.extend.Spec.js', 'views/AppViewSpec.js', 'views/MapViewSpec.js', 'views/PrerequisitesTesterSpec.js', diff --git a/app/webroot/js/tests/lib/MarkItUpSpec.js b/app/webroot/js/tests/lib/MarkItUpSpec.js index 84b9c4460..c1eac05f6 100644 --- a/app/webroot/js/tests/lib/MarkItUpSpec.js +++ b/app/webroot/js/tests/lib/MarkItUpSpec.js @@ -44,25 +44,26 @@ define([ 'lib/saito/markItUp.media' ], function(MarkitUpMedia) { }); it("outputs an [iframe] tag for '; + input = ''; result = markItUp.multimedia(input); - expected = '[iframe src=http://www.youtube.com/embed/qa-4E8ZDj9s width=425 ' + - 'height=349 frameborder=0 allowfullscreen][/iframe]'; + expected = '[iframe src=http://www.youtube.com/embed/qa-4E8ZDj9s width=560 ' + + 'height=315 frameborder=0 allowfullscreen][/iframe]'; expect(result).toEqual(expected); }); it("outputs an [flash_video] tag for tags", function() { - input = ' maxlength attribute also counts all bytes in multibyte char. + // This shortends the allowed subject by one byte-char per multibyte char, + // but we can life with that. + count = max - subject.length; + $count.html(count); + }, + _upload: function(event) { var uploadsView; if (event) { @@ -160,11 +185,13 @@ define([ }, _onFormReady: function() { + var _$data, _entry; this._setupTextArea(); + this._updateSubjectCharCount(); - var _$data = this.$('.js-data'); + _$data = this.$('.js-data'); if (_$data.length > 0 && _$data.data('meta').action === 'edit') { - var _entry = this.$('.js-data').data('entry'); + _entry = this.$('.js-data').data('entry'); this.model.set(_entry, {silent: true}); this._addCountdown(); } @@ -188,7 +215,7 @@ define([ _focusSubject: function() { // focus is broken in Mobile Safari iOS 8 - var iOS = window.navigator.userAgent.match('iPad|iPhone'); + var iOS = window.navigator.userAgent.match('iPad|iPhone'); if (iOS) { return; } @@ -210,13 +237,14 @@ define([ }, _sendRedirect: function(event) { + var submit; var button = this.$('.btn-submit')[0]; event.preventDefault(); if (typeof button.validity === 'object' && - button.form.checkValidity() === false) { + button.form.checkValidity() === false) { // we can't trigger JS validation messages via form.submit() // so we create and click this hidden dummy submit button - var submit = _.bind(function() { + submit = _.bind(function() { if (!this.checkValidityDummy) { this.checkValidityDummy = $('', { type: 'submit', @@ -236,12 +264,13 @@ define([ }, _sendInline: function(event) { + var data, disable, fail, success; event.preventDefault(); - var data = this.$('#EntryAddForm').serialize(); - var success = _.bind(function(data) { + data = this.$('#EntryAddForm').serialize(); + success = _.bind(function(data) { this.model.set({isAnsweringFormShown: false}); - if (this.parentThreadline !== null) { - this.parentThreadline.set('isInlineOpened', false); + if (this.options.parentThreadline !== null) { + this.options.parentThreadline.set('isInlineOpened', false); } App.eventBus.trigger('newEntry', { tid: data.tid, @@ -250,7 +279,7 @@ define([ isNewToUser: true }); }, this); - var fail = _.bind(function(jqXHR, text) { + fail = _.bind(function(jqXHR, text) { this.sendInProgress = false; this._enable(); App.eventBus.trigger('notification', { @@ -259,7 +288,7 @@ define([ message: jqXHR.responseText }); }, this); - var disable = _.bind(this._disable, this); + disable = _.bind(this._disable, this); $.ajax({ url: this._requestUrl, diff --git a/app/webroot/js/views/app.js b/app/webroot/js/views/app.js index 8a89c977f..1c0400484 100644 --- a/app/webroot/js/views/app.js +++ b/app/webroot/js/views/app.js @@ -92,7 +92,8 @@ define([ _initAnsweringNotInlined: function(element) { this.answeringForm = new AnsweringView({ el: element, - model: new PostingModel({id: 'foo'}) + model: new PostingModel({id: 'foo'}), + ajax: false }); }, @@ -314,4 +315,4 @@ define([ return AppView; -}); \ No newline at end of file +}); diff --git a/dev/grunt/config/phpcs.js b/dev/grunt/config/phpcs.js index 896cdcdc9..b5a1817b6 100644 --- a/dev/grunt/config/phpcs.js +++ b/dev/grunt/config/phpcs.js @@ -1,30 +1,18 @@ /*jshint node: true */ module.exports = { - controllers: {dir: ['./app/Controller']}, - models: {dir: ['./app/Model']}, - lib: {dir: ['./app/Lib']}, - tests: { - dir: ['./app/Test'], - options: { - ignore: 'Selenium' - } - }, - view: { - dir: ['./app/View'], - options: { - ignore: 'Themed' - } - }, - plugins: { - dir: ['./app/Plugin'], - options: { - ignore: 'Embedly,Geshi,FileUpload,Install,Markitup,SaitoHelp/Vendor,Search,SimpleCaptcha,webroot' - } + application: { + dir: [ + './app/Controller', + './app/Model', + './app/Lib', + './app/Test', + './app/View', + './app/Plugin' + ] }, options: { bin: 'app/Vendor/bin/phpcs', standard: 'app/Test/ruleset.xml', - ignore: 'webroot', // suppress warnings warningSeverity: 8 }