Bugzilla – Attachment 47849 Details for
Bug 15707
Add ability to define hierarchical groups of libraries
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15707 - Add Treegrid library
Bug-15707---Add-Treegrid-library.patch (text/plain), 609.43 KB, created by
Kyle M Hall (khall)
on 2016-02-10 14:10:38 UTC
(
hide
)
Description:
Bug 15707 - Add Treegrid library
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2016-02-10 14:10:38 UTC
Size:
609.43 KB
patch
obsolete
>From 293ca10d9c1ce55162826ff87dcb76dc1121c9b5 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Sun, 10 Jan 2016 11:57:47 +0000 >Subject: [PATCH] Bug 15707 - Add Treegrid library > >--- > .../intranet-tmpl/lib/jquery-treegrid/.gitignore | 3 + > .../lib/jquery-treegrid/CHANGELOG.txt | 43 + > .../intranet-tmpl/lib/jquery-treegrid/Gruntfile.js | 23 + > .../intranet-tmpl/lib/jquery-treegrid/LICENSE | 20 + > .../intranet-tmpl/lib/jquery-treegrid/README.md | 20 + > .../intranet-tmpl/lib/jquery-treegrid/bower.json | 33 + > .../lib/jquery-treegrid/composer.json | 12 + > .../lib/jquery-treegrid/css/jquery.treegrid.css | 6 + > .../bootstrap-2.3.2/css/bootstrap-responsive.css | 1109 ++++ > .../css/bootstrap-responsive.min.css | 9 + > .../examples/bootstrap-2.3.2/css/bootstrap.css | 6167 ++++++++++++++++++++ > .../examples/bootstrap-2.3.2/css/bootstrap.min.css | 9 + > .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes > .../bootstrap-2.3.2/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes > .../examples/bootstrap-2.3.2/js/bootstrap.js | 2280 ++++++++ > .../examples/bootstrap-2.3.2/js/bootstrap.min.js | 6 + > .../jquery-treegrid/examples/example-basic.html | 131 + > .../examples/example-bootstrap-2.html | 144 + > .../examples/example-bootstrap-3.html | 146 + > .../examples/example-bootstrap-resize.html | 146 + > .../jquery-treegrid/examples/example-column.html | 135 + > .../jquery-treegrid/examples/example-events.html | 155 + > .../lib/jquery-treegrid/examples/example-huge.html | 113 + > .../examples/example-save-state.html | 162 + > .../lib/jquery-treegrid/img/collapse.png | Bin 0 -> 2886 bytes > .../lib/jquery-treegrid/img/expand.png | Bin 0 -> 2894 bytes > .../intranet-tmpl/lib/jquery-treegrid/img/file.png | Bin 0 -> 342 bytes > .../lib/jquery-treegrid/img/folder.png | Bin 0 -> 537 bytes > .../intranet-tmpl/lib/jquery-treegrid/index.html | 478 ++ > .../lib/jquery-treegrid/js/jquery.cookie.js | 96 + > .../js/jquery.treegrid.bootstrap2.js | 5 + > .../js/jquery.treegrid.bootstrap3.js | 4 + > .../lib/jquery-treegrid/js/jquery.treegrid.js | 626 ++ > .../lib/jquery-treegrid/js/jquery.treegrid.min.js | 2 + > .../intranet-tmpl/lib/jquery-treegrid/package.json | 35 + > .../intranet-tmpl/lib/jquery-treegrid/params.json | 1 + > .../intranet-tmpl/lib/jquery-treegrid/styles.css | 250 + > .../intranet-tmpl/lib/jquery-treegrid/test.html | 207 + > .../lib/jquery-treegrid/tests/qunit-1.12.0.css | 244 + > .../lib/jquery-treegrid/tests/qunit-1.12.0.js | 2212 +++++++ > .../lib/jquery-treegrid/tests/tests.js | 188 + > .../lib/jquery-treegrid/treegrid.jquery.json | 37 + > 42 files changed, 15257 insertions(+) > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/.gitignore > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/CHANGELOG.txt > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/Gruntfile.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/LICENSE > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/README.md > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/bower.json > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/composer.json > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/css/jquery.treegrid.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.min.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.min.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings-white.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.min.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-basic.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-2.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-3.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-resize.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-column.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-events.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-huge.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-save-state.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/collapse.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/expand.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/file.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/folder.png > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/index.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.cookie.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap2.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap3.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.min.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/package.json > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/params.json > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/styles.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/test.html > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.css > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/tests.js > create mode 100644 koha-tmpl/intranet-tmpl/lib/jquery-treegrid/treegrid.jquery.json > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/.gitignore b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/.gitignore >new file mode 100644 >index 0000000..435cf9a >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/.gitignore >@@ -0,0 +1,3 @@ >+/nbproject >+/node_modules >+/bower_modules >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/CHANGELOG.txt b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/CHANGELOG.txt >new file mode 100644 >index 0000000..ceae8f5 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/CHANGELOG.txt >@@ -0,0 +1,43 @@ >+== 0.3.0 - 03 February 2015 >+* Perfomance optimization >+* Bootstrap 3 update >+* Add minifiyed js >+* Add npm installation >+* Add borew installation >+ >+== 0.2.1 - 21 January 2014 >+* Add events support >+ >+== 0.1.9 - 18 December 2013 >+* Fix table in table bug (thanks liuspcn) >+ >+== 0.1.8 - 16 December 2013 >+* Fix support alphanumeric id (you can use "-" symbol in id) >+ >+== 0.1.7 - 15 November 2013 >+* Fix isLast method. https://github.com/maxazan/jquery-treegrid/issues/4 >+* Add isFirst method >+ >+== 0.1.6 - 14 November 2013 >+* Add isNode method >+* Add getAllNodes method >+* Fix isLast method. Throw error if method is not node of tree. >+ >+== 0.1.5 >+* Add support alphanumeric id >+ >+== 0.1.4 >+* Add treeRow parameter >+ >+== 0.1.3 - 28 August 2013 >+* Added bootstrap examples >+* Changed expander functionality >+* Fixed $.data set and get >+* Fixed $.extends settings >+* Adding new test >+ >+== 0.1.2 - 26 August 2013 >+* Added save state >+ >+== 0.1.0 - 15 August 2013 >+* Public release >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/Gruntfile.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/Gruntfile.js >new file mode 100644 >index 0000000..3de7d34 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/Gruntfile.js >@@ -0,0 +1,23 @@ >+module.exports = function(grunt) { >+ >+ // Project configuration. >+ grunt.initConfig({ >+ pkg: grunt.file.readJSON('package.json'), >+ uglify: { >+ options: { >+ banner: '/*! <%= pkg.name %> <%= pkg.version %> */\n' >+ }, >+ build: { >+ src: 'js/jquery.treegrid.js', >+ dest: 'js/jquery.treegrid.min.js' >+ } >+ } >+ }); >+ >+ // Load the plugin that provides the "uglify" task. >+ grunt.loadNpmTasks('grunt-contrib-uglify'); >+ >+ // Default task(s). >+ grunt.registerTask('default', ['uglify']); >+ >+}; >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/LICENSE b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/LICENSE >new file mode 100644 >index 0000000..6308e93 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/LICENSE >@@ -0,0 +1,20 @@ >+The MIT License (MIT) >+ >+Copyright (c) 2013 >+ >+Permission is hereby granted, free of charge, to any person obtaining a copy of >+this software and associated documentation files (the "Software"), to deal in >+the Software without restriction, including without limitation the rights to >+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of >+the Software, and to permit persons to whom the Software is furnished to do so, >+subject to the following conditions: >+ >+The above copyright notice and this permission notice shall be included in all >+copies or substantial portions of the Software. >+ >+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR >+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS >+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR >+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER >+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN >+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/README.md b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/README.md >new file mode 100644 >index 0000000..651b5f4 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/README.md >@@ -0,0 +1,20 @@ >+TreeGrid plugin for jQuery >+================== >+ >+See more information at http://maxazan.github.io/jquery-treegrid >+ >+##Installation >+ >+###Using npm >+``` >+npm install jquery-treegrid >+``` >+ >+###Using bower >+``` >+bower install jquery-treegrid >+``` >+ >+###From source >+ >+Download [source](https://github.com/maxazan/jquery-treegrid/archive/master.zip) from github.com >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/bower.json b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/bower.json >new file mode 100644 >index 0000000..1988770 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/bower.json >@@ -0,0 +1,33 @@ >+{ >+ "name": "jquery-treegrid", >+ "description": "TreeGrid plugin for jQuery.", >+ "version": "0.3.0", >+ "homepage": "http://maxazan.github.io/jquery-treegrid", >+ "license": "MIT", >+ "ignore": [ >+ "examples", >+ "tests", >+ "**/.*", >+ "composer.json", >+ "index.html", >+ "params.json", >+ "style.css", >+ "test.html", >+ "treegrid.jquery.json" >+ ], >+ "keywords": [ >+ "jquery", >+ "javascript", >+ "plugin", >+ "bootstrap", >+ "treegrid", >+ "treeview" >+ ], >+ "dependencies": { >+ "jquery": ">= 1.9.1", >+ "jquery.cookie": ">= 1.4.1" >+ }, >+ "authors": [ >+ "Maksym Pomazan" >+ ] >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/composer.json b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/composer.json >new file mode 100644 >index 0000000..200bf23 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/composer.json >@@ -0,0 +1,12 @@ >+{ >+ "name": "maxazan/jquery-treegrid", >+ "description": "jquery treegrid plugin", >+ "keywords": ["jquery", "grid", "treegrid", "tree"], >+ "homepage": "http://maxazan.github.io/jquery-treegrid", >+ "type": "library", >+ "license": "MIT", >+ "support": { >+ "issues": "https://github.com/maxazan/jquery-treegrid/issues", >+ "source": "https://github.com/maxazan/jquery-treegrid" >+ } >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/css/jquery.treegrid.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/css/jquery.treegrid.css >new file mode 100644 >index 0000000..a1b9c7a >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/css/jquery.treegrid.css >@@ -0,0 +1,6 @@ >+.treegrid-indent {width:16px; height: 16px; display: inline-block; position: relative;} >+ >+.treegrid-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;} >+ >+.treegrid-expander-expanded{background-image: url(../img/collapse.png); } >+.treegrid-expander-collapsed{background-image: url(../img/expand.png);} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.css >new file mode 100644 >index 0000000..c0bba15 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.css >@@ -0,0 +1,1109 @@ >+/*! >+ * Bootstrap Responsive v2.3.2 >+ * >+ * Copyright 2013 Twitter, Inc >+ * Licensed under the Apache License v2.0 >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Designed and built with all the love in the world by @mdo and @fat. >+ */ >+ >+.clearfix { >+ *zoom: 1; >+} >+ >+.clearfix:before, >+.clearfix:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.clearfix:after { >+ clear: both; >+} >+ >+.hide-text { >+ font: 0/0 a; >+ color: transparent; >+ text-shadow: none; >+ background-color: transparent; >+ border: 0; >+} >+ >+.input-block-level { >+ display: block; >+ width: 100%; >+ min-height: 30px; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+} >+ >+@-ms-viewport { >+ width: device-width; >+} >+ >+.hidden { >+ display: none; >+ visibility: hidden; >+} >+ >+.visible-phone { >+ display: none !important; >+} >+ >+.visible-tablet { >+ display: none !important; >+} >+ >+.hidden-desktop { >+ display: none !important; >+} >+ >+.visible-desktop { >+ display: inherit !important; >+} >+ >+@media (min-width: 768px) and (max-width: 979px) { >+ .hidden-desktop { >+ display: inherit !important; >+ } >+ .visible-desktop { >+ display: none !important ; >+ } >+ .visible-tablet { >+ display: inherit !important; >+ } >+ .hidden-tablet { >+ display: none !important; >+ } >+} >+ >+@media (max-width: 767px) { >+ .hidden-desktop { >+ display: inherit !important; >+ } >+ .visible-desktop { >+ display: none !important; >+ } >+ .visible-phone { >+ display: inherit !important; >+ } >+ .hidden-phone { >+ display: none !important; >+ } >+} >+ >+.visible-print { >+ display: none !important; >+} >+ >+@media print { >+ .visible-print { >+ display: inherit !important; >+ } >+ .hidden-print { >+ display: none !important; >+ } >+} >+ >+@media (min-width: 1200px) { >+ .row { >+ margin-left: -30px; >+ *zoom: 1; >+ } >+ .row:before, >+ .row:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+ } >+ .row:after { >+ clear: both; >+ } >+ [class*="span"] { >+ float: left; >+ min-height: 1px; >+ margin-left: 30px; >+ } >+ .container, >+ .navbar-static-top .container, >+ .navbar-fixed-top .container, >+ .navbar-fixed-bottom .container { >+ width: 1170px; >+ } >+ .span12 { >+ width: 1170px; >+ } >+ .span11 { >+ width: 1070px; >+ } >+ .span10 { >+ width: 970px; >+ } >+ .span9 { >+ width: 870px; >+ } >+ .span8 { >+ width: 770px; >+ } >+ .span7 { >+ width: 670px; >+ } >+ .span6 { >+ width: 570px; >+ } >+ .span5 { >+ width: 470px; >+ } >+ .span4 { >+ width: 370px; >+ } >+ .span3 { >+ width: 270px; >+ } >+ .span2 { >+ width: 170px; >+ } >+ .span1 { >+ width: 70px; >+ } >+ .offset12 { >+ margin-left: 1230px; >+ } >+ .offset11 { >+ margin-left: 1130px; >+ } >+ .offset10 { >+ margin-left: 1030px; >+ } >+ .offset9 { >+ margin-left: 930px; >+ } >+ .offset8 { >+ margin-left: 830px; >+ } >+ .offset7 { >+ margin-left: 730px; >+ } >+ .offset6 { >+ margin-left: 630px; >+ } >+ .offset5 { >+ margin-left: 530px; >+ } >+ .offset4 { >+ margin-left: 430px; >+ } >+ .offset3 { >+ margin-left: 330px; >+ } >+ .offset2 { >+ margin-left: 230px; >+ } >+ .offset1 { >+ margin-left: 130px; >+ } >+ .row-fluid { >+ width: 100%; >+ *zoom: 1; >+ } >+ .row-fluid:before, >+ .row-fluid:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+ } >+ .row-fluid:after { >+ clear: both; >+ } >+ .row-fluid [class*="span"] { >+ display: block; >+ float: left; >+ width: 100%; >+ min-height: 30px; >+ margin-left: 2.564102564102564%; >+ *margin-left: 2.5109110747408616%; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ } >+ .row-fluid [class*="span"]:first-child { >+ margin-left: 0; >+ } >+ .row-fluid .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 2.564102564102564%; >+ } >+ .row-fluid .span12 { >+ width: 100%; >+ *width: 99.94680851063829%; >+ } >+ .row-fluid .span11 { >+ width: 91.45299145299145%; >+ *width: 91.39979996362975%; >+ } >+ .row-fluid .span10 { >+ width: 82.90598290598291%; >+ *width: 82.8527914166212%; >+ } >+ .row-fluid .span9 { >+ width: 74.35897435897436%; >+ *width: 74.30578286961266%; >+ } >+ .row-fluid .span8 { >+ width: 65.81196581196582%; >+ *width: 65.75877432260411%; >+ } >+ .row-fluid .span7 { >+ width: 57.26495726495726%; >+ *width: 57.21176577559556%; >+ } >+ .row-fluid .span6 { >+ width: 48.717948717948715%; >+ *width: 48.664757228587014%; >+ } >+ .row-fluid .span5 { >+ width: 40.17094017094017%; >+ *width: 40.11774868157847%; >+ } >+ .row-fluid .span4 { >+ width: 31.623931623931625%; >+ *width: 31.570740134569924%; >+ } >+ .row-fluid .span3 { >+ width: 23.076923076923077%; >+ *width: 23.023731587561375%; >+ } >+ .row-fluid .span2 { >+ width: 14.52991452991453%; >+ *width: 14.476723040552828%; >+ } >+ .row-fluid .span1 { >+ width: 5.982905982905983%; >+ *width: 5.929714493544281%; >+ } >+ .row-fluid .offset12 { >+ margin-left: 105.12820512820512%; >+ *margin-left: 105.02182214948171%; >+ } >+ .row-fluid .offset12:first-child { >+ margin-left: 102.56410256410257%; >+ *margin-left: 102.45771958537915%; >+ } >+ .row-fluid .offset11 { >+ margin-left: 96.58119658119658%; >+ *margin-left: 96.47481360247316%; >+ } >+ .row-fluid .offset11:first-child { >+ margin-left: 94.01709401709402%; >+ *margin-left: 93.91071103837061%; >+ } >+ .row-fluid .offset10 { >+ margin-left: 88.03418803418803%; >+ *margin-left: 87.92780505546462%; >+ } >+ .row-fluid .offset10:first-child { >+ margin-left: 85.47008547008548%; >+ *margin-left: 85.36370249136206%; >+ } >+ .row-fluid .offset9 { >+ margin-left: 79.48717948717949%; >+ *margin-left: 79.38079650845607%; >+ } >+ .row-fluid .offset9:first-child { >+ margin-left: 76.92307692307693%; >+ *margin-left: 76.81669394435352%; >+ } >+ .row-fluid .offset8 { >+ margin-left: 70.94017094017094%; >+ *margin-left: 70.83378796144753%; >+ } >+ .row-fluid .offset8:first-child { >+ margin-left: 68.37606837606839%; >+ *margin-left: 68.26968539734497%; >+ } >+ .row-fluid .offset7 { >+ margin-left: 62.393162393162385%; >+ *margin-left: 62.28677941443899%; >+ } >+ .row-fluid .offset7:first-child { >+ margin-left: 59.82905982905982%; >+ *margin-left: 59.72267685033642%; >+ } >+ .row-fluid .offset6 { >+ margin-left: 53.84615384615384%; >+ *margin-left: 53.739770867430444%; >+ } >+ .row-fluid .offset6:first-child { >+ margin-left: 51.28205128205128%; >+ *margin-left: 51.175668303327875%; >+ } >+ .row-fluid .offset5 { >+ margin-left: 45.299145299145295%; >+ *margin-left: 45.1927623204219%; >+ } >+ .row-fluid .offset5:first-child { >+ margin-left: 42.73504273504273%; >+ *margin-left: 42.62865975631933%; >+ } >+ .row-fluid .offset4 { >+ margin-left: 36.75213675213675%; >+ *margin-left: 36.645753773413354%; >+ } >+ .row-fluid .offset4:first-child { >+ margin-left: 34.18803418803419%; >+ *margin-left: 34.081651209310785%; >+ } >+ .row-fluid .offset3 { >+ margin-left: 28.205128205128204%; >+ *margin-left: 28.0987452264048%; >+ } >+ .row-fluid .offset3:first-child { >+ margin-left: 25.641025641025642%; >+ *margin-left: 25.53464266230224%; >+ } >+ .row-fluid .offset2 { >+ margin-left: 19.65811965811966%; >+ *margin-left: 19.551736679396257%; >+ } >+ .row-fluid .offset2:first-child { >+ margin-left: 17.094017094017094%; >+ *margin-left: 16.98763411529369%; >+ } >+ .row-fluid .offset1 { >+ margin-left: 11.11111111111111%; >+ *margin-left: 11.004728132387708%; >+ } >+ .row-fluid .offset1:first-child { >+ margin-left: 8.547008547008547%; >+ *margin-left: 8.440625568285142%; >+ } >+ input, >+ textarea, >+ .uneditable-input { >+ margin-left: 0; >+ } >+ .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 30px; >+ } >+ input.span12, >+ textarea.span12, >+ .uneditable-input.span12 { >+ width: 1156px; >+ } >+ input.span11, >+ textarea.span11, >+ .uneditable-input.span11 { >+ width: 1056px; >+ } >+ input.span10, >+ textarea.span10, >+ .uneditable-input.span10 { >+ width: 956px; >+ } >+ input.span9, >+ textarea.span9, >+ .uneditable-input.span9 { >+ width: 856px; >+ } >+ input.span8, >+ textarea.span8, >+ .uneditable-input.span8 { >+ width: 756px; >+ } >+ input.span7, >+ textarea.span7, >+ .uneditable-input.span7 { >+ width: 656px; >+ } >+ input.span6, >+ textarea.span6, >+ .uneditable-input.span6 { >+ width: 556px; >+ } >+ input.span5, >+ textarea.span5, >+ .uneditable-input.span5 { >+ width: 456px; >+ } >+ input.span4, >+ textarea.span4, >+ .uneditable-input.span4 { >+ width: 356px; >+ } >+ input.span3, >+ textarea.span3, >+ .uneditable-input.span3 { >+ width: 256px; >+ } >+ input.span2, >+ textarea.span2, >+ .uneditable-input.span2 { >+ width: 156px; >+ } >+ input.span1, >+ textarea.span1, >+ .uneditable-input.span1 { >+ width: 56px; >+ } >+ .thumbnails { >+ margin-left: -30px; >+ } >+ .thumbnails > li { >+ margin-left: 30px; >+ } >+ .row-fluid .thumbnails { >+ margin-left: 0; >+ } >+} >+ >+@media (min-width: 768px) and (max-width: 979px) { >+ .row { >+ margin-left: -20px; >+ *zoom: 1; >+ } >+ .row:before, >+ .row:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+ } >+ .row:after { >+ clear: both; >+ } >+ [class*="span"] { >+ float: left; >+ min-height: 1px; >+ margin-left: 20px; >+ } >+ .container, >+ .navbar-static-top .container, >+ .navbar-fixed-top .container, >+ .navbar-fixed-bottom .container { >+ width: 724px; >+ } >+ .span12 { >+ width: 724px; >+ } >+ .span11 { >+ width: 662px; >+ } >+ .span10 { >+ width: 600px; >+ } >+ .span9 { >+ width: 538px; >+ } >+ .span8 { >+ width: 476px; >+ } >+ .span7 { >+ width: 414px; >+ } >+ .span6 { >+ width: 352px; >+ } >+ .span5 { >+ width: 290px; >+ } >+ .span4 { >+ width: 228px; >+ } >+ .span3 { >+ width: 166px; >+ } >+ .span2 { >+ width: 104px; >+ } >+ .span1 { >+ width: 42px; >+ } >+ .offset12 { >+ margin-left: 764px; >+ } >+ .offset11 { >+ margin-left: 702px; >+ } >+ .offset10 { >+ margin-left: 640px; >+ } >+ .offset9 { >+ margin-left: 578px; >+ } >+ .offset8 { >+ margin-left: 516px; >+ } >+ .offset7 { >+ margin-left: 454px; >+ } >+ .offset6 { >+ margin-left: 392px; >+ } >+ .offset5 { >+ margin-left: 330px; >+ } >+ .offset4 { >+ margin-left: 268px; >+ } >+ .offset3 { >+ margin-left: 206px; >+ } >+ .offset2 { >+ margin-left: 144px; >+ } >+ .offset1 { >+ margin-left: 82px; >+ } >+ .row-fluid { >+ width: 100%; >+ *zoom: 1; >+ } >+ .row-fluid:before, >+ .row-fluid:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+ } >+ .row-fluid:after { >+ clear: both; >+ } >+ .row-fluid [class*="span"] { >+ display: block; >+ float: left; >+ width: 100%; >+ min-height: 30px; >+ margin-left: 2.7624309392265194%; >+ *margin-left: 2.709239449864817%; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ } >+ .row-fluid [class*="span"]:first-child { >+ margin-left: 0; >+ } >+ .row-fluid .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 2.7624309392265194%; >+ } >+ .row-fluid .span12 { >+ width: 100%; >+ *width: 99.94680851063829%; >+ } >+ .row-fluid .span11 { >+ width: 91.43646408839778%; >+ *width: 91.38327259903608%; >+ } >+ .row-fluid .span10 { >+ width: 82.87292817679558%; >+ *width: 82.81973668743387%; >+ } >+ .row-fluid .span9 { >+ width: 74.30939226519337%; >+ *width: 74.25620077583166%; >+ } >+ .row-fluid .span8 { >+ width: 65.74585635359117%; >+ *width: 65.69266486422946%; >+ } >+ .row-fluid .span7 { >+ width: 57.18232044198895%; >+ *width: 57.12912895262725%; >+ } >+ .row-fluid .span6 { >+ width: 48.61878453038674%; >+ *width: 48.56559304102504%; >+ } >+ .row-fluid .span5 { >+ width: 40.05524861878453%; >+ *width: 40.00205712942283%; >+ } >+ .row-fluid .span4 { >+ width: 31.491712707182323%; >+ *width: 31.43852121782062%; >+ } >+ .row-fluid .span3 { >+ width: 22.92817679558011%; >+ *width: 22.87498530621841%; >+ } >+ .row-fluid .span2 { >+ width: 14.3646408839779%; >+ *width: 14.311449394616199%; >+ } >+ .row-fluid .span1 { >+ width: 5.801104972375691%; >+ *width: 5.747913483013988%; >+ } >+ .row-fluid .offset12 { >+ margin-left: 105.52486187845304%; >+ *margin-left: 105.41847889972962%; >+ } >+ .row-fluid .offset12:first-child { >+ margin-left: 102.76243093922652%; >+ *margin-left: 102.6560479605031%; >+ } >+ .row-fluid .offset11 { >+ margin-left: 96.96132596685082%; >+ *margin-left: 96.8549429881274%; >+ } >+ .row-fluid .offset11:first-child { >+ margin-left: 94.1988950276243%; >+ *margin-left: 94.09251204890089%; >+ } >+ .row-fluid .offset10 { >+ margin-left: 88.39779005524862%; >+ *margin-left: 88.2914070765252%; >+ } >+ .row-fluid .offset10:first-child { >+ margin-left: 85.6353591160221%; >+ *margin-left: 85.52897613729868%; >+ } >+ .row-fluid .offset9 { >+ margin-left: 79.8342541436464%; >+ *margin-left: 79.72787116492299%; >+ } >+ .row-fluid .offset9:first-child { >+ margin-left: 77.07182320441989%; >+ *margin-left: 76.96544022569647%; >+ } >+ .row-fluid .offset8 { >+ margin-left: 71.2707182320442%; >+ *margin-left: 71.16433525332079%; >+ } >+ .row-fluid .offset8:first-child { >+ margin-left: 68.50828729281768%; >+ *margin-left: 68.40190431409427%; >+ } >+ .row-fluid .offset7 { >+ margin-left: 62.70718232044199%; >+ *margin-left: 62.600799341718584%; >+ } >+ .row-fluid .offset7:first-child { >+ margin-left: 59.94475138121547%; >+ *margin-left: 59.838368402492065%; >+ } >+ .row-fluid .offset6 { >+ margin-left: 54.14364640883978%; >+ *margin-left: 54.037263430116376%; >+ } >+ .row-fluid .offset6:first-child { >+ margin-left: 51.38121546961326%; >+ *margin-left: 51.27483249088986%; >+ } >+ .row-fluid .offset5 { >+ margin-left: 45.58011049723757%; >+ *margin-left: 45.47372751851417%; >+ } >+ .row-fluid .offset5:first-child { >+ margin-left: 42.81767955801105%; >+ *margin-left: 42.71129657928765%; >+ } >+ .row-fluid .offset4 { >+ margin-left: 37.01657458563536%; >+ *margin-left: 36.91019160691196%; >+ } >+ .row-fluid .offset4:first-child { >+ margin-left: 34.25414364640884%; >+ *margin-left: 34.14776066768544%; >+ } >+ .row-fluid .offset3 { >+ margin-left: 28.45303867403315%; >+ *margin-left: 28.346655695309746%; >+ } >+ .row-fluid .offset3:first-child { >+ margin-left: 25.69060773480663%; >+ *margin-left: 25.584224756083227%; >+ } >+ .row-fluid .offset2 { >+ margin-left: 19.88950276243094%; >+ *margin-left: 19.783119783707537%; >+ } >+ .row-fluid .offset2:first-child { >+ margin-left: 17.12707182320442%; >+ *margin-left: 17.02068884448102%; >+ } >+ .row-fluid .offset1 { >+ margin-left: 11.32596685082873%; >+ *margin-left: 11.219583872105325%; >+ } >+ .row-fluid .offset1:first-child { >+ margin-left: 8.56353591160221%; >+ *margin-left: 8.457152932878806%; >+ } >+ input, >+ textarea, >+ .uneditable-input { >+ margin-left: 0; >+ } >+ .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 20px; >+ } >+ input.span12, >+ textarea.span12, >+ .uneditable-input.span12 { >+ width: 710px; >+ } >+ input.span11, >+ textarea.span11, >+ .uneditable-input.span11 { >+ width: 648px; >+ } >+ input.span10, >+ textarea.span10, >+ .uneditable-input.span10 { >+ width: 586px; >+ } >+ input.span9, >+ textarea.span9, >+ .uneditable-input.span9 { >+ width: 524px; >+ } >+ input.span8, >+ textarea.span8, >+ .uneditable-input.span8 { >+ width: 462px; >+ } >+ input.span7, >+ textarea.span7, >+ .uneditable-input.span7 { >+ width: 400px; >+ } >+ input.span6, >+ textarea.span6, >+ .uneditable-input.span6 { >+ width: 338px; >+ } >+ input.span5, >+ textarea.span5, >+ .uneditable-input.span5 { >+ width: 276px; >+ } >+ input.span4, >+ textarea.span4, >+ .uneditable-input.span4 { >+ width: 214px; >+ } >+ input.span3, >+ textarea.span3, >+ .uneditable-input.span3 { >+ width: 152px; >+ } >+ input.span2, >+ textarea.span2, >+ .uneditable-input.span2 { >+ width: 90px; >+ } >+ input.span1, >+ textarea.span1, >+ .uneditable-input.span1 { >+ width: 28px; >+ } >+} >+ >+@media (max-width: 767px) { >+ body { >+ padding-right: 20px; >+ padding-left: 20px; >+ } >+ .navbar-fixed-top, >+ .navbar-fixed-bottom, >+ .navbar-static-top { >+ margin-right: -20px; >+ margin-left: -20px; >+ } >+ .container-fluid { >+ padding: 0; >+ } >+ .dl-horizontal dt { >+ float: none; >+ width: auto; >+ clear: none; >+ text-align: left; >+ } >+ .dl-horizontal dd { >+ margin-left: 0; >+ } >+ .container { >+ width: auto; >+ } >+ .row-fluid { >+ width: 100%; >+ } >+ .row, >+ .thumbnails { >+ margin-left: 0; >+ } >+ .thumbnails > li { >+ float: none; >+ margin-left: 0; >+ } >+ [class*="span"], >+ .uneditable-input[class*="span"], >+ .row-fluid [class*="span"] { >+ display: block; >+ float: none; >+ width: 100%; >+ margin-left: 0; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ } >+ .span12, >+ .row-fluid .span12 { >+ width: 100%; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ } >+ .row-fluid [class*="offset"]:first-child { >+ margin-left: 0; >+ } >+ .input-large, >+ .input-xlarge, >+ .input-xxlarge, >+ input[class*="span"], >+ select[class*="span"], >+ textarea[class*="span"], >+ .uneditable-input { >+ display: block; >+ width: 100%; >+ min-height: 30px; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ } >+ .input-prepend input, >+ .input-append input, >+ .input-prepend input[class*="span"], >+ .input-append input[class*="span"] { >+ display: inline-block; >+ width: auto; >+ } >+ .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 0; >+ } >+ .modal { >+ position: fixed; >+ top: 20px; >+ right: 20px; >+ left: 20px; >+ width: auto; >+ margin: 0; >+ } >+ .modal.fade { >+ top: -100px; >+ } >+ .modal.fade.in { >+ top: 20px; >+ } >+} >+ >+@media (max-width: 480px) { >+ .nav-collapse { >+ -webkit-transform: translate3d(0, 0, 0); >+ } >+ .page-header h1 small { >+ display: block; >+ line-height: 20px; >+ } >+ input[type="checkbox"], >+ input[type="radio"] { >+ border: 1px solid #ccc; >+ } >+ .form-horizontal .control-label { >+ float: none; >+ width: auto; >+ padding-top: 0; >+ text-align: left; >+ } >+ .form-horizontal .controls { >+ margin-left: 0; >+ } >+ .form-horizontal .control-list { >+ padding-top: 0; >+ } >+ .form-horizontal .form-actions { >+ padding-right: 10px; >+ padding-left: 10px; >+ } >+ .media .pull-left, >+ .media .pull-right { >+ display: block; >+ float: none; >+ margin-bottom: 10px; >+ } >+ .media-object { >+ margin-right: 0; >+ margin-left: 0; >+ } >+ .modal { >+ top: 10px; >+ right: 10px; >+ left: 10px; >+ } >+ .modal-header .close { >+ padding: 10px; >+ margin: -10px; >+ } >+ .carousel-caption { >+ position: static; >+ } >+} >+ >+@media (max-width: 979px) { >+ body { >+ padding-top: 0; >+ } >+ .navbar-fixed-top, >+ .navbar-fixed-bottom { >+ position: static; >+ } >+ .navbar-fixed-top { >+ margin-bottom: 20px; >+ } >+ .navbar-fixed-bottom { >+ margin-top: 20px; >+ } >+ .navbar-fixed-top .navbar-inner, >+ .navbar-fixed-bottom .navbar-inner { >+ padding: 5px; >+ } >+ .navbar .container { >+ width: auto; >+ padding: 0; >+ } >+ .navbar .brand { >+ padding-right: 10px; >+ padding-left: 10px; >+ margin: 0 0 0 -5px; >+ } >+ .nav-collapse { >+ clear: both; >+ } >+ .nav-collapse .nav { >+ float: none; >+ margin: 0 0 10px; >+ } >+ .nav-collapse .nav > li { >+ float: none; >+ } >+ .nav-collapse .nav > li > a { >+ margin-bottom: 2px; >+ } >+ .nav-collapse .nav > .divider-vertical { >+ display: none; >+ } >+ .nav-collapse .nav .nav-header { >+ color: #777777; >+ text-shadow: none; >+ } >+ .nav-collapse .nav > li > a, >+ .nav-collapse .dropdown-menu a { >+ padding: 9px 15px; >+ font-weight: bold; >+ color: #777777; >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+ } >+ .nav-collapse .btn { >+ padding: 4px 10px 4px; >+ font-weight: normal; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ } >+ .nav-collapse .dropdown-menu li + li a { >+ margin-bottom: 2px; >+ } >+ .nav-collapse .nav > li > a:hover, >+ .nav-collapse .nav > li > a:focus, >+ .nav-collapse .dropdown-menu a:hover, >+ .nav-collapse .dropdown-menu a:focus { >+ background-color: #f2f2f2; >+ } >+ .navbar-inverse .nav-collapse .nav > li > a, >+ .navbar-inverse .nav-collapse .dropdown-menu a { >+ color: #999999; >+ } >+ .navbar-inverse .nav-collapse .nav > li > a:hover, >+ .navbar-inverse .nav-collapse .nav > li > a:focus, >+ .navbar-inverse .nav-collapse .dropdown-menu a:hover, >+ .navbar-inverse .nav-collapse .dropdown-menu a:focus { >+ background-color: #111111; >+ } >+ .nav-collapse.in .btn-group { >+ padding: 0; >+ margin-top: 5px; >+ } >+ .nav-collapse .dropdown-menu { >+ position: static; >+ top: auto; >+ left: auto; >+ display: none; >+ float: none; >+ max-width: none; >+ padding: 0; >+ margin: 0 15px; >+ background-color: transparent; >+ border: none; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+ -webkit-box-shadow: none; >+ -moz-box-shadow: none; >+ box-shadow: none; >+ } >+ .nav-collapse .open > .dropdown-menu { >+ display: block; >+ } >+ .nav-collapse .dropdown-menu:before, >+ .nav-collapse .dropdown-menu:after { >+ display: none; >+ } >+ .nav-collapse .dropdown-menu .divider { >+ display: none; >+ } >+ .nav-collapse .nav > li > .dropdown-menu:before, >+ .nav-collapse .nav > li > .dropdown-menu:after { >+ display: none; >+ } >+ .nav-collapse .navbar-form, >+ .nav-collapse .navbar-search { >+ float: none; >+ padding: 10px 15px; >+ margin: 10px 0; >+ border-top: 1px solid #f2f2f2; >+ border-bottom: 1px solid #f2f2f2; >+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); >+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); >+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); >+ } >+ .navbar-inverse .nav-collapse .navbar-form, >+ .navbar-inverse .nav-collapse .navbar-search { >+ border-top-color: #111111; >+ border-bottom-color: #111111; >+ } >+ .navbar .nav-collapse .nav.pull-right { >+ float: none; >+ margin-left: 0; >+ } >+ .nav-collapse, >+ .nav-collapse.collapse { >+ height: 0; >+ overflow: hidden; >+ } >+ .navbar .btn-navbar { >+ display: block; >+ } >+ .navbar-static .navbar-inner { >+ padding-right: 10px; >+ padding-left: 10px; >+ } >+} >+ >+@media (min-width: 980px) { >+ .nav-collapse.collapse { >+ height: auto !important; >+ overflow: visible !important; >+ } >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.min.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.min.css >new file mode 100644 >index 0000000..96a435b >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap-responsive.min.css >@@ -0,0 +1,9 @@ >+/*! >+ * Bootstrap Responsive v2.3.2 >+ * >+ * Copyright 2013 Twitter, Inc >+ * Licensed under the Apache License v2.0 >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Designed and built with all the love in the world by @mdo and @fat. >+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.css >new file mode 100644 >index 0000000..5b7fe7e >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.css >@@ -0,0 +1,6167 @@ >+/*! >+ * Bootstrap v2.3.2 >+ * >+ * Copyright 2013 Twitter, Inc >+ * Licensed under the Apache License v2.0 >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Designed and built with all the love in the world by @mdo and @fat. >+ */ >+ >+.clearfix { >+ *zoom: 1; >+} >+ >+.clearfix:before, >+.clearfix:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.clearfix:after { >+ clear: both; >+} >+ >+.hide-text { >+ font: 0/0 a; >+ color: transparent; >+ text-shadow: none; >+ background-color: transparent; >+ border: 0; >+} >+ >+.input-block-level { >+ display: block; >+ width: 100%; >+ min-height: 30px; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+} >+ >+article, >+aside, >+details, >+figcaption, >+figure, >+footer, >+header, >+hgroup, >+nav, >+section { >+ display: block; >+} >+ >+audio, >+canvas, >+video { >+ display: inline-block; >+ *display: inline; >+ *zoom: 1; >+} >+ >+audio:not([controls]) { >+ display: none; >+} >+ >+html { >+ font-size: 100%; >+ -webkit-text-size-adjust: 100%; >+ -ms-text-size-adjust: 100%; >+} >+ >+a:focus { >+ outline: thin dotted #333; >+ outline: 5px auto -webkit-focus-ring-color; >+ outline-offset: -2px; >+} >+ >+a:hover, >+a:active { >+ outline: 0; >+} >+ >+sub, >+sup { >+ position: relative; >+ font-size: 75%; >+ line-height: 0; >+ vertical-align: baseline; >+} >+ >+sup { >+ top: -0.5em; >+} >+ >+sub { >+ bottom: -0.25em; >+} >+ >+img { >+ width: auto\9; >+ height: auto; >+ max-width: 100%; >+ vertical-align: middle; >+ border: 0; >+ -ms-interpolation-mode: bicubic; >+} >+ >+#map_canvas img, >+.google-maps img { >+ max-width: none; >+} >+ >+button, >+input, >+select, >+textarea { >+ margin: 0; >+ font-size: 100%; >+ vertical-align: middle; >+} >+ >+button, >+input { >+ *overflow: visible; >+ line-height: normal; >+} >+ >+button::-moz-focus-inner, >+input::-moz-focus-inner { >+ padding: 0; >+ border: 0; >+} >+ >+button, >+html input[type="button"], >+input[type="reset"], >+input[type="submit"] { >+ cursor: pointer; >+ -webkit-appearance: button; >+} >+ >+label, >+select, >+button, >+input[type="button"], >+input[type="reset"], >+input[type="submit"], >+input[type="radio"], >+input[type="checkbox"] { >+ cursor: pointer; >+} >+ >+input[type="search"] { >+ -webkit-box-sizing: content-box; >+ -moz-box-sizing: content-box; >+ box-sizing: content-box; >+ -webkit-appearance: textfield; >+} >+ >+input[type="search"]::-webkit-search-decoration, >+input[type="search"]::-webkit-search-cancel-button { >+ -webkit-appearance: none; >+} >+ >+textarea { >+ overflow: auto; >+ vertical-align: top; >+} >+ >+@media print { >+ * { >+ color: #000 !important; >+ text-shadow: none !important; >+ background: transparent !important; >+ box-shadow: none !important; >+ } >+ a, >+ a:visited { >+ text-decoration: underline; >+ } >+ a[href]:after { >+ content: " (" attr(href) ")"; >+ } >+ abbr[title]:after { >+ content: " (" attr(title) ")"; >+ } >+ .ir a:after, >+ a[href^="javascript:"]:after, >+ a[href^="#"]:after { >+ content: ""; >+ } >+ pre, >+ blockquote { >+ border: 1px solid #999; >+ page-break-inside: avoid; >+ } >+ thead { >+ display: table-header-group; >+ } >+ tr, >+ img { >+ page-break-inside: avoid; >+ } >+ img { >+ max-width: 100% !important; >+ } >+ @page { >+ margin: 0.5cm; >+ } >+ p, >+ h2, >+ h3 { >+ orphans: 3; >+ widows: 3; >+ } >+ h2, >+ h3 { >+ page-break-after: avoid; >+ } >+} >+ >+body { >+ margin: 0; >+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; >+ font-size: 14px; >+ line-height: 20px; >+ color: #333333; >+ background-color: #ffffff; >+} >+ >+a { >+ color: #0088cc; >+ text-decoration: none; >+} >+ >+a:hover, >+a:focus { >+ color: #005580; >+ text-decoration: underline; >+} >+ >+.img-rounded { >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+} >+ >+.img-polaroid { >+ padding: 4px; >+ background-color: #fff; >+ border: 1px solid #ccc; >+ border: 1px solid rgba(0, 0, 0, 0.2); >+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); >+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); >+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); >+} >+ >+.img-circle { >+ -webkit-border-radius: 500px; >+ -moz-border-radius: 500px; >+ border-radius: 500px; >+} >+ >+.row { >+ margin-left: -20px; >+ *zoom: 1; >+} >+ >+.row:before, >+.row:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.row:after { >+ clear: both; >+} >+ >+[class*="span"] { >+ float: left; >+ min-height: 1px; >+ margin-left: 20px; >+} >+ >+.container, >+.navbar-static-top .container, >+.navbar-fixed-top .container, >+.navbar-fixed-bottom .container { >+ width: 940px; >+} >+ >+.span12 { >+ width: 940px; >+} >+ >+.span11 { >+ width: 860px; >+} >+ >+.span10 { >+ width: 780px; >+} >+ >+.span9 { >+ width: 700px; >+} >+ >+.span8 { >+ width: 620px; >+} >+ >+.span7 { >+ width: 540px; >+} >+ >+.span6 { >+ width: 460px; >+} >+ >+.span5 { >+ width: 380px; >+} >+ >+.span4 { >+ width: 300px; >+} >+ >+.span3 { >+ width: 220px; >+} >+ >+.span2 { >+ width: 140px; >+} >+ >+.span1 { >+ width: 60px; >+} >+ >+.offset12 { >+ margin-left: 980px; >+} >+ >+.offset11 { >+ margin-left: 900px; >+} >+ >+.offset10 { >+ margin-left: 820px; >+} >+ >+.offset9 { >+ margin-left: 740px; >+} >+ >+.offset8 { >+ margin-left: 660px; >+} >+ >+.offset7 { >+ margin-left: 580px; >+} >+ >+.offset6 { >+ margin-left: 500px; >+} >+ >+.offset5 { >+ margin-left: 420px; >+} >+ >+.offset4 { >+ margin-left: 340px; >+} >+ >+.offset3 { >+ margin-left: 260px; >+} >+ >+.offset2 { >+ margin-left: 180px; >+} >+ >+.offset1 { >+ margin-left: 100px; >+} >+ >+.row-fluid { >+ width: 100%; >+ *zoom: 1; >+} >+ >+.row-fluid:before, >+.row-fluid:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.row-fluid:after { >+ clear: both; >+} >+ >+.row-fluid [class*="span"] { >+ display: block; >+ float: left; >+ width: 100%; >+ min-height: 30px; >+ margin-left: 2.127659574468085%; >+ *margin-left: 2.074468085106383%; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+} >+ >+.row-fluid [class*="span"]:first-child { >+ margin-left: 0; >+} >+ >+.row-fluid .controls-row [class*="span"] + [class*="span"] { >+ margin-left: 2.127659574468085%; >+} >+ >+.row-fluid .span12 { >+ width: 100%; >+ *width: 99.94680851063829%; >+} >+ >+.row-fluid .span11 { >+ width: 91.48936170212765%; >+ *width: 91.43617021276594%; >+} >+ >+.row-fluid .span10 { >+ width: 82.97872340425532%; >+ *width: 82.92553191489361%; >+} >+ >+.row-fluid .span9 { >+ width: 74.46808510638297%; >+ *width: 74.41489361702126%; >+} >+ >+.row-fluid .span8 { >+ width: 65.95744680851064%; >+ *width: 65.90425531914893%; >+} >+ >+.row-fluid .span7 { >+ width: 57.44680851063829%; >+ *width: 57.39361702127659%; >+} >+ >+.row-fluid .span6 { >+ width: 48.93617021276595%; >+ *width: 48.88297872340425%; >+} >+ >+.row-fluid .span5 { >+ width: 40.42553191489362%; >+ *width: 40.37234042553192%; >+} >+ >+.row-fluid .span4 { >+ width: 31.914893617021278%; >+ *width: 31.861702127659576%; >+} >+ >+.row-fluid .span3 { >+ width: 23.404255319148934%; >+ *width: 23.351063829787233%; >+} >+ >+.row-fluid .span2 { >+ width: 14.893617021276595%; >+ *width: 14.840425531914894%; >+} >+ >+.row-fluid .span1 { >+ width: 6.382978723404255%; >+ *width: 6.329787234042553%; >+} >+ >+.row-fluid .offset12 { >+ margin-left: 104.25531914893617%; >+ *margin-left: 104.14893617021275%; >+} >+ >+.row-fluid .offset12:first-child { >+ margin-left: 102.12765957446808%; >+ *margin-left: 102.02127659574467%; >+} >+ >+.row-fluid .offset11 { >+ margin-left: 95.74468085106382%; >+ *margin-left: 95.6382978723404%; >+} >+ >+.row-fluid .offset11:first-child { >+ margin-left: 93.61702127659574%; >+ *margin-left: 93.51063829787232%; >+} >+ >+.row-fluid .offset10 { >+ margin-left: 87.23404255319149%; >+ *margin-left: 87.12765957446807%; >+} >+ >+.row-fluid .offset10:first-child { >+ margin-left: 85.1063829787234%; >+ *margin-left: 84.99999999999999%; >+} >+ >+.row-fluid .offset9 { >+ margin-left: 78.72340425531914%; >+ *margin-left: 78.61702127659572%; >+} >+ >+.row-fluid .offset9:first-child { >+ margin-left: 76.59574468085106%; >+ *margin-left: 76.48936170212764%; >+} >+ >+.row-fluid .offset8 { >+ margin-left: 70.2127659574468%; >+ *margin-left: 70.10638297872339%; >+} >+ >+.row-fluid .offset8:first-child { >+ margin-left: 68.08510638297872%; >+ *margin-left: 67.9787234042553%; >+} >+ >+.row-fluid .offset7 { >+ margin-left: 61.70212765957446%; >+ *margin-left: 61.59574468085106%; >+} >+ >+.row-fluid .offset7:first-child { >+ margin-left: 59.574468085106375%; >+ *margin-left: 59.46808510638297%; >+} >+ >+.row-fluid .offset6 { >+ margin-left: 53.191489361702125%; >+ *margin-left: 53.085106382978715%; >+} >+ >+.row-fluid .offset6:first-child { >+ margin-left: 51.063829787234035%; >+ *margin-left: 50.95744680851063%; >+} >+ >+.row-fluid .offset5 { >+ margin-left: 44.68085106382979%; >+ *margin-left: 44.57446808510638%; >+} >+ >+.row-fluid .offset5:first-child { >+ margin-left: 42.5531914893617%; >+ *margin-left: 42.4468085106383%; >+} >+ >+.row-fluid .offset4 { >+ margin-left: 36.170212765957444%; >+ *margin-left: 36.06382978723405%; >+} >+ >+.row-fluid .offset4:first-child { >+ margin-left: 34.04255319148936%; >+ *margin-left: 33.93617021276596%; >+} >+ >+.row-fluid .offset3 { >+ margin-left: 27.659574468085104%; >+ *margin-left: 27.5531914893617%; >+} >+ >+.row-fluid .offset3:first-child { >+ margin-left: 25.53191489361702%; >+ *margin-left: 25.425531914893618%; >+} >+ >+.row-fluid .offset2 { >+ margin-left: 19.148936170212764%; >+ *margin-left: 19.04255319148936%; >+} >+ >+.row-fluid .offset2:first-child { >+ margin-left: 17.02127659574468%; >+ *margin-left: 16.914893617021278%; >+} >+ >+.row-fluid .offset1 { >+ margin-left: 10.638297872340425%; >+ *margin-left: 10.53191489361702%; >+} >+ >+.row-fluid .offset1:first-child { >+ margin-left: 8.51063829787234%; >+ *margin-left: 8.404255319148938%; >+} >+ >+[class*="span"].hide, >+.row-fluid [class*="span"].hide { >+ display: none; >+} >+ >+[class*="span"].pull-right, >+.row-fluid [class*="span"].pull-right { >+ float: right; >+} >+ >+.container { >+ margin-right: auto; >+ margin-left: auto; >+ *zoom: 1; >+} >+ >+.container:before, >+.container:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.container:after { >+ clear: both; >+} >+ >+.container-fluid { >+ padding-right: 20px; >+ padding-left: 20px; >+ *zoom: 1; >+} >+ >+.container-fluid:before, >+.container-fluid:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.container-fluid:after { >+ clear: both; >+} >+ >+p { >+ margin: 0 0 10px; >+} >+ >+.lead { >+ margin-bottom: 20px; >+ font-size: 21px; >+ font-weight: 200; >+ line-height: 30px; >+} >+ >+small { >+ font-size: 85%; >+} >+ >+strong { >+ font-weight: bold; >+} >+ >+em { >+ font-style: italic; >+} >+ >+cite { >+ font-style: normal; >+} >+ >+.muted { >+ color: #999999; >+} >+ >+a.muted:hover, >+a.muted:focus { >+ color: #808080; >+} >+ >+.text-warning { >+ color: #c09853; >+} >+ >+a.text-warning:hover, >+a.text-warning:focus { >+ color: #a47e3c; >+} >+ >+.text-error { >+ color: #b94a48; >+} >+ >+a.text-error:hover, >+a.text-error:focus { >+ color: #953b39; >+} >+ >+.text-info { >+ color: #3a87ad; >+} >+ >+a.text-info:hover, >+a.text-info:focus { >+ color: #2d6987; >+} >+ >+.text-success { >+ color: #468847; >+} >+ >+a.text-success:hover, >+a.text-success:focus { >+ color: #356635; >+} >+ >+.text-left { >+ text-align: left; >+} >+ >+.text-right { >+ text-align: right; >+} >+ >+.text-center { >+ text-align: center; >+} >+ >+h1, >+h2, >+h3, >+h4, >+h5, >+h6 { >+ margin: 10px 0; >+ font-family: inherit; >+ font-weight: bold; >+ line-height: 20px; >+ color: inherit; >+ text-rendering: optimizelegibility; >+} >+ >+h1 small, >+h2 small, >+h3 small, >+h4 small, >+h5 small, >+h6 small { >+ font-weight: normal; >+ line-height: 1; >+ color: #999999; >+} >+ >+h1, >+h2, >+h3 { >+ line-height: 40px; >+} >+ >+h1 { >+ font-size: 38.5px; >+} >+ >+h2 { >+ font-size: 31.5px; >+} >+ >+h3 { >+ font-size: 24.5px; >+} >+ >+h4 { >+ font-size: 17.5px; >+} >+ >+h5 { >+ font-size: 14px; >+} >+ >+h6 { >+ font-size: 11.9px; >+} >+ >+h1 small { >+ font-size: 24.5px; >+} >+ >+h2 small { >+ font-size: 17.5px; >+} >+ >+h3 small { >+ font-size: 14px; >+} >+ >+h4 small { >+ font-size: 14px; >+} >+ >+.page-header { >+ padding-bottom: 9px; >+ margin: 20px 0 30px; >+ border-bottom: 1px solid #eeeeee; >+} >+ >+ul, >+ol { >+ padding: 0; >+ margin: 0 0 10px 25px; >+} >+ >+ul ul, >+ul ol, >+ol ol, >+ol ul { >+ margin-bottom: 0; >+} >+ >+li { >+ line-height: 20px; >+} >+ >+ul.unstyled, >+ol.unstyled { >+ margin-left: 0; >+ list-style: none; >+} >+ >+ul.inline, >+ol.inline { >+ margin-left: 0; >+ list-style: none; >+} >+ >+ul.inline > li, >+ol.inline > li { >+ display: inline-block; >+ *display: inline; >+ padding-right: 5px; >+ padding-left: 5px; >+ *zoom: 1; >+} >+ >+dl { >+ margin-bottom: 20px; >+} >+ >+dt, >+dd { >+ line-height: 20px; >+} >+ >+dt { >+ font-weight: bold; >+} >+ >+dd { >+ margin-left: 10px; >+} >+ >+.dl-horizontal { >+ *zoom: 1; >+} >+ >+.dl-horizontal:before, >+.dl-horizontal:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.dl-horizontal:after { >+ clear: both; >+} >+ >+.dl-horizontal dt { >+ float: left; >+ width: 160px; >+ overflow: hidden; >+ clear: left; >+ text-align: right; >+ text-overflow: ellipsis; >+ white-space: nowrap; >+} >+ >+.dl-horizontal dd { >+ margin-left: 180px; >+} >+ >+hr { >+ margin: 20px 0; >+ border: 0; >+ border-top: 1px solid #eeeeee; >+ border-bottom: 1px solid #ffffff; >+} >+ >+abbr[title], >+abbr[data-original-title] { >+ cursor: help; >+ border-bottom: 1px dotted #999999; >+} >+ >+abbr.initialism { >+ font-size: 90%; >+ text-transform: uppercase; >+} >+ >+blockquote { >+ padding: 0 0 0 15px; >+ margin: 0 0 20px; >+ border-left: 5px solid #eeeeee; >+} >+ >+blockquote p { >+ margin-bottom: 0; >+ font-size: 17.5px; >+ font-weight: 300; >+ line-height: 1.25; >+} >+ >+blockquote small { >+ display: block; >+ line-height: 20px; >+ color: #999999; >+} >+ >+blockquote small:before { >+ content: '\2014 \00A0'; >+} >+ >+blockquote.pull-right { >+ float: right; >+ padding-right: 15px; >+ padding-left: 0; >+ border-right: 5px solid #eeeeee; >+ border-left: 0; >+} >+ >+blockquote.pull-right p, >+blockquote.pull-right small { >+ text-align: right; >+} >+ >+blockquote.pull-right small:before { >+ content: ''; >+} >+ >+blockquote.pull-right small:after { >+ content: '\00A0 \2014'; >+} >+ >+q:before, >+q:after, >+blockquote:before, >+blockquote:after { >+ content: ""; >+} >+ >+address { >+ display: block; >+ margin-bottom: 20px; >+ font-style: normal; >+ line-height: 20px; >+} >+ >+code, >+pre { >+ padding: 0 3px 2px; >+ font-family: Monaco, Menlo, Consolas, "Courier New", monospace; >+ font-size: 12px; >+ color: #333333; >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+} >+ >+code { >+ padding: 2px 4px; >+ color: #d14; >+ white-space: nowrap; >+ background-color: #f7f7f9; >+ border: 1px solid #e1e1e8; >+} >+ >+pre { >+ display: block; >+ padding: 9.5px; >+ margin: 0 0 10px; >+ font-size: 13px; >+ line-height: 20px; >+ word-break: break-all; >+ word-wrap: break-word; >+ white-space: pre; >+ white-space: pre-wrap; >+ background-color: #f5f5f5; >+ border: 1px solid #ccc; >+ border: 1px solid rgba(0, 0, 0, 0.15); >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+pre.prettyprint { >+ margin-bottom: 20px; >+} >+ >+pre code { >+ padding: 0; >+ color: inherit; >+ white-space: pre; >+ white-space: pre-wrap; >+ background-color: transparent; >+ border: 0; >+} >+ >+.pre-scrollable { >+ max-height: 340px; >+ overflow-y: scroll; >+} >+ >+form { >+ margin: 0 0 20px; >+} >+ >+fieldset { >+ padding: 0; >+ margin: 0; >+ border: 0; >+} >+ >+legend { >+ display: block; >+ width: 100%; >+ padding: 0; >+ margin-bottom: 20px; >+ font-size: 21px; >+ line-height: 40px; >+ color: #333333; >+ border: 0; >+ border-bottom: 1px solid #e5e5e5; >+} >+ >+legend small { >+ font-size: 15px; >+ color: #999999; >+} >+ >+label, >+input, >+button, >+select, >+textarea { >+ font-size: 14px; >+ font-weight: normal; >+ line-height: 20px; >+} >+ >+input, >+button, >+select, >+textarea { >+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; >+} >+ >+label { >+ display: block; >+ margin-bottom: 5px; >+} >+ >+select, >+textarea, >+input[type="text"], >+input[type="password"], >+input[type="datetime"], >+input[type="datetime-local"], >+input[type="date"], >+input[type="month"], >+input[type="time"], >+input[type="week"], >+input[type="number"], >+input[type="email"], >+input[type="url"], >+input[type="search"], >+input[type="tel"], >+input[type="color"], >+.uneditable-input { >+ display: inline-block; >+ height: 20px; >+ padding: 4px 6px; >+ margin-bottom: 10px; >+ font-size: 14px; >+ line-height: 20px; >+ color: #555555; >+ vertical-align: middle; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+input, >+textarea, >+.uneditable-input { >+ width: 206px; >+} >+ >+textarea { >+ height: auto; >+} >+ >+textarea, >+input[type="text"], >+input[type="password"], >+input[type="datetime"], >+input[type="datetime-local"], >+input[type="date"], >+input[type="month"], >+input[type="time"], >+input[type="week"], >+input[type="number"], >+input[type="email"], >+input[type="url"], >+input[type="search"], >+input[type="tel"], >+input[type="color"], >+.uneditable-input { >+ background-color: #ffffff; >+ border: 1px solid #cccccc; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; >+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s; >+ -o-transition: border linear 0.2s, box-shadow linear 0.2s; >+ transition: border linear 0.2s, box-shadow linear 0.2s; >+} >+ >+textarea:focus, >+input[type="text"]:focus, >+input[type="password"]:focus, >+input[type="datetime"]:focus, >+input[type="datetime-local"]:focus, >+input[type="date"]:focus, >+input[type="month"]:focus, >+input[type="time"]:focus, >+input[type="week"]:focus, >+input[type="number"]:focus, >+input[type="email"]:focus, >+input[type="url"]:focus, >+input[type="search"]:focus, >+input[type="tel"]:focus, >+input[type="color"]:focus, >+.uneditable-input:focus { >+ border-color: rgba(82, 168, 236, 0.8); >+ outline: 0; >+ outline: thin dotted \9; >+ /* IE6-9 */ >+ >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); >+} >+ >+input[type="radio"], >+input[type="checkbox"] { >+ margin: 4px 0 0; >+ margin-top: 1px \9; >+ *margin-top: 0; >+ line-height: normal; >+} >+ >+input[type="file"], >+input[type="image"], >+input[type="submit"], >+input[type="reset"], >+input[type="button"], >+input[type="radio"], >+input[type="checkbox"] { >+ width: auto; >+} >+ >+select, >+input[type="file"] { >+ height: 30px; >+ /* In IE7, the height of the select element cannot be changed by height, only font-size */ >+ >+ *margin-top: 4px; >+ /* For IE7, add top margin to align select with labels */ >+ >+ line-height: 30px; >+} >+ >+select { >+ width: 220px; >+ background-color: #ffffff; >+ border: 1px solid #cccccc; >+} >+ >+select[multiple], >+select[size] { >+ height: auto; >+} >+ >+select:focus, >+input[type="file"]:focus, >+input[type="radio"]:focus, >+input[type="checkbox"]:focus { >+ outline: thin dotted #333; >+ outline: 5px auto -webkit-focus-ring-color; >+ outline-offset: -2px; >+} >+ >+.uneditable-input, >+.uneditable-textarea { >+ color: #999999; >+ cursor: not-allowed; >+ background-color: #fcfcfc; >+ border-color: #cccccc; >+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); >+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); >+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); >+} >+ >+.uneditable-input { >+ overflow: hidden; >+ white-space: nowrap; >+} >+ >+.uneditable-textarea { >+ width: auto; >+ height: auto; >+} >+ >+input:-moz-placeholder, >+textarea:-moz-placeholder { >+ color: #999999; >+} >+ >+input:-ms-input-placeholder, >+textarea:-ms-input-placeholder { >+ color: #999999; >+} >+ >+input::-webkit-input-placeholder, >+textarea::-webkit-input-placeholder { >+ color: #999999; >+} >+ >+.radio, >+.checkbox { >+ min-height: 20px; >+ padding-left: 20px; >+} >+ >+.radio input[type="radio"], >+.checkbox input[type="checkbox"] { >+ float: left; >+ margin-left: -20px; >+} >+ >+.controls > .radio:first-child, >+.controls > .checkbox:first-child { >+ padding-top: 5px; >+} >+ >+.radio.inline, >+.checkbox.inline { >+ display: inline-block; >+ padding-top: 5px; >+ margin-bottom: 0; >+ vertical-align: middle; >+} >+ >+.radio.inline + .radio.inline, >+.checkbox.inline + .checkbox.inline { >+ margin-left: 10px; >+} >+ >+.input-mini { >+ width: 60px; >+} >+ >+.input-small { >+ width: 90px; >+} >+ >+.input-medium { >+ width: 150px; >+} >+ >+.input-large { >+ width: 210px; >+} >+ >+.input-xlarge { >+ width: 270px; >+} >+ >+.input-xxlarge { >+ width: 530px; >+} >+ >+input[class*="span"], >+select[class*="span"], >+textarea[class*="span"], >+.uneditable-input[class*="span"], >+.row-fluid input[class*="span"], >+.row-fluid select[class*="span"], >+.row-fluid textarea[class*="span"], >+.row-fluid .uneditable-input[class*="span"] { >+ float: none; >+ margin-left: 0; >+} >+ >+.input-append input[class*="span"], >+.input-append .uneditable-input[class*="span"], >+.input-prepend input[class*="span"], >+.input-prepend .uneditable-input[class*="span"], >+.row-fluid input[class*="span"], >+.row-fluid select[class*="span"], >+.row-fluid textarea[class*="span"], >+.row-fluid .uneditable-input[class*="span"], >+.row-fluid .input-prepend [class*="span"], >+.row-fluid .input-append [class*="span"] { >+ display: inline-block; >+} >+ >+input, >+textarea, >+.uneditable-input { >+ margin-left: 0; >+} >+ >+.controls-row [class*="span"] + [class*="span"] { >+ margin-left: 20px; >+} >+ >+input.span12, >+textarea.span12, >+.uneditable-input.span12 { >+ width: 926px; >+} >+ >+input.span11, >+textarea.span11, >+.uneditable-input.span11 { >+ width: 846px; >+} >+ >+input.span10, >+textarea.span10, >+.uneditable-input.span10 { >+ width: 766px; >+} >+ >+input.span9, >+textarea.span9, >+.uneditable-input.span9 { >+ width: 686px; >+} >+ >+input.span8, >+textarea.span8, >+.uneditable-input.span8 { >+ width: 606px; >+} >+ >+input.span7, >+textarea.span7, >+.uneditable-input.span7 { >+ width: 526px; >+} >+ >+input.span6, >+textarea.span6, >+.uneditable-input.span6 { >+ width: 446px; >+} >+ >+input.span5, >+textarea.span5, >+.uneditable-input.span5 { >+ width: 366px; >+} >+ >+input.span4, >+textarea.span4, >+.uneditable-input.span4 { >+ width: 286px; >+} >+ >+input.span3, >+textarea.span3, >+.uneditable-input.span3 { >+ width: 206px; >+} >+ >+input.span2, >+textarea.span2, >+.uneditable-input.span2 { >+ width: 126px; >+} >+ >+input.span1, >+textarea.span1, >+.uneditable-input.span1 { >+ width: 46px; >+} >+ >+.controls-row { >+ *zoom: 1; >+} >+ >+.controls-row:before, >+.controls-row:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.controls-row:after { >+ clear: both; >+} >+ >+.controls-row [class*="span"], >+.row-fluid .controls-row [class*="span"] { >+ float: left; >+} >+ >+.controls-row .checkbox[class*="span"], >+.controls-row .radio[class*="span"] { >+ padding-top: 5px; >+} >+ >+input[disabled], >+select[disabled], >+textarea[disabled], >+input[readonly], >+select[readonly], >+textarea[readonly] { >+ cursor: not-allowed; >+ background-color: #eeeeee; >+} >+ >+input[type="radio"][disabled], >+input[type="checkbox"][disabled], >+input[type="radio"][readonly], >+input[type="checkbox"][readonly] { >+ background-color: transparent; >+} >+ >+.control-group.warning .control-label, >+.control-group.warning .help-block, >+.control-group.warning .help-inline { >+ color: #c09853; >+} >+ >+.control-group.warning .checkbox, >+.control-group.warning .radio, >+.control-group.warning input, >+.control-group.warning select, >+.control-group.warning textarea { >+ color: #c09853; >+} >+ >+.control-group.warning input, >+.control-group.warning select, >+.control-group.warning textarea { >+ border-color: #c09853; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+} >+ >+.control-group.warning input:focus, >+.control-group.warning select:focus, >+.control-group.warning textarea:focus { >+ border-color: #a47e3c; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; >+} >+ >+.control-group.warning .input-prepend .add-on, >+.control-group.warning .input-append .add-on { >+ color: #c09853; >+ background-color: #fcf8e3; >+ border-color: #c09853; >+} >+ >+.control-group.error .control-label, >+.control-group.error .help-block, >+.control-group.error .help-inline { >+ color: #b94a48; >+} >+ >+.control-group.error .checkbox, >+.control-group.error .radio, >+.control-group.error input, >+.control-group.error select, >+.control-group.error textarea { >+ color: #b94a48; >+} >+ >+.control-group.error input, >+.control-group.error select, >+.control-group.error textarea { >+ border-color: #b94a48; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+} >+ >+.control-group.error input:focus, >+.control-group.error select:focus, >+.control-group.error textarea:focus { >+ border-color: #953b39; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; >+} >+ >+.control-group.error .input-prepend .add-on, >+.control-group.error .input-append .add-on { >+ color: #b94a48; >+ background-color: #f2dede; >+ border-color: #b94a48; >+} >+ >+.control-group.success .control-label, >+.control-group.success .help-block, >+.control-group.success .help-inline { >+ color: #468847; >+} >+ >+.control-group.success .checkbox, >+.control-group.success .radio, >+.control-group.success input, >+.control-group.success select, >+.control-group.success textarea { >+ color: #468847; >+} >+ >+.control-group.success input, >+.control-group.success select, >+.control-group.success textarea { >+ border-color: #468847; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+} >+ >+.control-group.success input:focus, >+.control-group.success select:focus, >+.control-group.success textarea:focus { >+ border-color: #356635; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; >+} >+ >+.control-group.success .input-prepend .add-on, >+.control-group.success .input-append .add-on { >+ color: #468847; >+ background-color: #dff0d8; >+ border-color: #468847; >+} >+ >+.control-group.info .control-label, >+.control-group.info .help-block, >+.control-group.info .help-inline { >+ color: #3a87ad; >+} >+ >+.control-group.info .checkbox, >+.control-group.info .radio, >+.control-group.info input, >+.control-group.info select, >+.control-group.info textarea { >+ color: #3a87ad; >+} >+ >+.control-group.info input, >+.control-group.info select, >+.control-group.info textarea { >+ border-color: #3a87ad; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); >+} >+ >+.control-group.info input:focus, >+.control-group.info select:focus, >+.control-group.info textarea:focus { >+ border-color: #2d6987; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; >+} >+ >+.control-group.info .input-prepend .add-on, >+.control-group.info .input-append .add-on { >+ color: #3a87ad; >+ background-color: #d9edf7; >+ border-color: #3a87ad; >+} >+ >+input:focus:invalid, >+textarea:focus:invalid, >+select:focus:invalid { >+ color: #b94a48; >+ border-color: #ee5f5b; >+} >+ >+input:focus:invalid:focus, >+textarea:focus:invalid:focus, >+select:focus:invalid:focus { >+ border-color: #e9322d; >+ -webkit-box-shadow: 0 0 6px #f8b9b7; >+ -moz-box-shadow: 0 0 6px #f8b9b7; >+ box-shadow: 0 0 6px #f8b9b7; >+} >+ >+.form-actions { >+ padding: 19px 20px 20px; >+ margin-top: 20px; >+ margin-bottom: 20px; >+ background-color: #f5f5f5; >+ border-top: 1px solid #e5e5e5; >+ *zoom: 1; >+} >+ >+.form-actions:before, >+.form-actions:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.form-actions:after { >+ clear: both; >+} >+ >+.help-block, >+.help-inline { >+ color: #595959; >+} >+ >+.help-block { >+ display: block; >+ margin-bottom: 10px; >+} >+ >+.help-inline { >+ display: inline-block; >+ *display: inline; >+ padding-left: 5px; >+ vertical-align: middle; >+ *zoom: 1; >+} >+ >+.input-append, >+.input-prepend { >+ display: inline-block; >+ margin-bottom: 10px; >+ font-size: 0; >+ white-space: nowrap; >+ vertical-align: middle; >+} >+ >+.input-append input, >+.input-prepend input, >+.input-append select, >+.input-prepend select, >+.input-append .uneditable-input, >+.input-prepend .uneditable-input, >+.input-append .dropdown-menu, >+.input-prepend .dropdown-menu, >+.input-append .popover, >+.input-prepend .popover { >+ font-size: 14px; >+} >+ >+.input-append input, >+.input-prepend input, >+.input-append select, >+.input-prepend select, >+.input-append .uneditable-input, >+.input-prepend .uneditable-input { >+ position: relative; >+ margin-bottom: 0; >+ *margin-left: 0; >+ vertical-align: top; >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.input-append input:focus, >+.input-prepend input:focus, >+.input-append select:focus, >+.input-prepend select:focus, >+.input-append .uneditable-input:focus, >+.input-prepend .uneditable-input:focus { >+ z-index: 2; >+} >+ >+.input-append .add-on, >+.input-prepend .add-on { >+ display: inline-block; >+ width: auto; >+ height: 20px; >+ min-width: 16px; >+ padding: 4px 5px; >+ font-size: 14px; >+ font-weight: normal; >+ line-height: 20px; >+ text-align: center; >+ text-shadow: 0 1px 0 #ffffff; >+ background-color: #eeeeee; >+ border: 1px solid #ccc; >+} >+ >+.input-append .add-on, >+.input-prepend .add-on, >+.input-append .btn, >+.input-prepend .btn, >+.input-append .btn-group > .dropdown-toggle, >+.input-prepend .btn-group > .dropdown-toggle { >+ vertical-align: top; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.input-append .active, >+.input-prepend .active { >+ background-color: #a9dba9; >+ border-color: #46a546; >+} >+ >+.input-prepend .add-on, >+.input-prepend .btn { >+ margin-right: -1px; >+} >+ >+.input-prepend .add-on:first-child, >+.input-prepend .btn:first-child { >+ -webkit-border-radius: 4px 0 0 4px; >+ -moz-border-radius: 4px 0 0 4px; >+ border-radius: 4px 0 0 4px; >+} >+ >+.input-append input, >+.input-append select, >+.input-append .uneditable-input { >+ -webkit-border-radius: 4px 0 0 4px; >+ -moz-border-radius: 4px 0 0 4px; >+ border-radius: 4px 0 0 4px; >+} >+ >+.input-append input + .btn-group .btn:last-child, >+.input-append select + .btn-group .btn:last-child, >+.input-append .uneditable-input + .btn-group .btn:last-child { >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.input-append .add-on, >+.input-append .btn, >+.input-append .btn-group { >+ margin-left: -1px; >+} >+ >+.input-append .add-on:last-child, >+.input-append .btn:last-child, >+.input-append .btn-group:last-child > .dropdown-toggle { >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.input-prepend.input-append input, >+.input-prepend.input-append select, >+.input-prepend.input-append .uneditable-input { >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.input-prepend.input-append input + .btn-group .btn, >+.input-prepend.input-append select + .btn-group .btn, >+.input-prepend.input-append .uneditable-input + .btn-group .btn { >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.input-prepend.input-append .add-on:first-child, >+.input-prepend.input-append .btn:first-child { >+ margin-right: -1px; >+ -webkit-border-radius: 4px 0 0 4px; >+ -moz-border-radius: 4px 0 0 4px; >+ border-radius: 4px 0 0 4px; >+} >+ >+.input-prepend.input-append .add-on:last-child, >+.input-prepend.input-append .btn:last-child { >+ margin-left: -1px; >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.input-prepend.input-append .btn-group:first-child { >+ margin-left: 0; >+} >+ >+input.search-query { >+ padding-right: 14px; >+ padding-right: 4px \9; >+ padding-left: 14px; >+ padding-left: 4px \9; >+ /* IE7-8 doesn't have border-radius, so don't indent the padding */ >+ >+ margin-bottom: 0; >+ -webkit-border-radius: 15px; >+ -moz-border-radius: 15px; >+ border-radius: 15px; >+} >+ >+/* Allow for input prepend/append in search forms */ >+ >+.form-search .input-append .search-query, >+.form-search .input-prepend .search-query { >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.form-search .input-append .search-query { >+ -webkit-border-radius: 14px 0 0 14px; >+ -moz-border-radius: 14px 0 0 14px; >+ border-radius: 14px 0 0 14px; >+} >+ >+.form-search .input-append .btn { >+ -webkit-border-radius: 0 14px 14px 0; >+ -moz-border-radius: 0 14px 14px 0; >+ border-radius: 0 14px 14px 0; >+} >+ >+.form-search .input-prepend .search-query { >+ -webkit-border-radius: 0 14px 14px 0; >+ -moz-border-radius: 0 14px 14px 0; >+ border-radius: 0 14px 14px 0; >+} >+ >+.form-search .input-prepend .btn { >+ -webkit-border-radius: 14px 0 0 14px; >+ -moz-border-radius: 14px 0 0 14px; >+ border-radius: 14px 0 0 14px; >+} >+ >+.form-search input, >+.form-inline input, >+.form-horizontal input, >+.form-search textarea, >+.form-inline textarea, >+.form-horizontal textarea, >+.form-search select, >+.form-inline select, >+.form-horizontal select, >+.form-search .help-inline, >+.form-inline .help-inline, >+.form-horizontal .help-inline, >+.form-search .uneditable-input, >+.form-inline .uneditable-input, >+.form-horizontal .uneditable-input, >+.form-search .input-prepend, >+.form-inline .input-prepend, >+.form-horizontal .input-prepend, >+.form-search .input-append, >+.form-inline .input-append, >+.form-horizontal .input-append { >+ display: inline-block; >+ *display: inline; >+ margin-bottom: 0; >+ vertical-align: middle; >+ *zoom: 1; >+} >+ >+.form-search .hide, >+.form-inline .hide, >+.form-horizontal .hide { >+ display: none; >+} >+ >+.form-search label, >+.form-inline label, >+.form-search .btn-group, >+.form-inline .btn-group { >+ display: inline-block; >+} >+ >+.form-search .input-append, >+.form-inline .input-append, >+.form-search .input-prepend, >+.form-inline .input-prepend { >+ margin-bottom: 0; >+} >+ >+.form-search .radio, >+.form-search .checkbox, >+.form-inline .radio, >+.form-inline .checkbox { >+ padding-left: 0; >+ margin-bottom: 0; >+ vertical-align: middle; >+} >+ >+.form-search .radio input[type="radio"], >+.form-search .checkbox input[type="checkbox"], >+.form-inline .radio input[type="radio"], >+.form-inline .checkbox input[type="checkbox"] { >+ float: left; >+ margin-right: 3px; >+ margin-left: 0; >+} >+ >+.control-group { >+ margin-bottom: 10px; >+} >+ >+legend + .control-group { >+ margin-top: 20px; >+ -webkit-margin-top-collapse: separate; >+} >+ >+.form-horizontal .control-group { >+ margin-bottom: 20px; >+ *zoom: 1; >+} >+ >+.form-horizontal .control-group:before, >+.form-horizontal .control-group:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.form-horizontal .control-group:after { >+ clear: both; >+} >+ >+.form-horizontal .control-label { >+ float: left; >+ width: 160px; >+ padding-top: 5px; >+ text-align: right; >+} >+ >+.form-horizontal .controls { >+ *display: inline-block; >+ *padding-left: 20px; >+ margin-left: 180px; >+ *margin-left: 0; >+} >+ >+.form-horizontal .controls:first-child { >+ *padding-left: 180px; >+} >+ >+.form-horizontal .help-block { >+ margin-bottom: 0; >+} >+ >+.form-horizontal input + .help-block, >+.form-horizontal select + .help-block, >+.form-horizontal textarea + .help-block, >+.form-horizontal .uneditable-input + .help-block, >+.form-horizontal .input-prepend + .help-block, >+.form-horizontal .input-append + .help-block { >+ margin-top: 10px; >+} >+ >+.form-horizontal .form-actions { >+ padding-left: 180px; >+} >+ >+table { >+ max-width: 100%; >+ background-color: transparent; >+ border-collapse: collapse; >+ border-spacing: 0; >+} >+ >+.table { >+ width: 100%; >+ margin-bottom: 20px; >+} >+ >+.table th, >+.table td { >+ padding: 8px; >+ line-height: 20px; >+ text-align: left; >+ vertical-align: top; >+ border-top: 1px solid #dddddd; >+} >+ >+.table th { >+ font-weight: bold; >+} >+ >+.table thead th { >+ vertical-align: bottom; >+} >+ >+.table caption + thead tr:first-child th, >+.table caption + thead tr:first-child td, >+.table colgroup + thead tr:first-child th, >+.table colgroup + thead tr:first-child td, >+.table thead:first-child tr:first-child th, >+.table thead:first-child tr:first-child td { >+ border-top: 0; >+} >+ >+.table tbody + tbody { >+ border-top: 2px solid #dddddd; >+} >+ >+.table .table { >+ background-color: #ffffff; >+} >+ >+.table-condensed th, >+.table-condensed td { >+ padding: 4px 5px; >+} >+ >+.table-bordered { >+ border: 1px solid #dddddd; >+ border-collapse: separate; >+ *border-collapse: collapse; >+ border-left: 0; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.table-bordered th, >+.table-bordered td { >+ border-left: 1px solid #dddddd; >+} >+ >+.table-bordered caption + thead tr:first-child th, >+.table-bordered caption + tbody tr:first-child th, >+.table-bordered caption + tbody tr:first-child td, >+.table-bordered colgroup + thead tr:first-child th, >+.table-bordered colgroup + tbody tr:first-child th, >+.table-bordered colgroup + tbody tr:first-child td, >+.table-bordered thead:first-child tr:first-child th, >+.table-bordered tbody:first-child tr:first-child th, >+.table-bordered tbody:first-child tr:first-child td { >+ border-top: 0; >+} >+ >+.table-bordered thead:first-child tr:first-child > th:first-child, >+.table-bordered tbody:first-child tr:first-child > td:first-child, >+.table-bordered tbody:first-child tr:first-child > th:first-child { >+ -webkit-border-top-left-radius: 4px; >+ border-top-left-radius: 4px; >+ -moz-border-radius-topleft: 4px; >+} >+ >+.table-bordered thead:first-child tr:first-child > th:last-child, >+.table-bordered tbody:first-child tr:first-child > td:last-child, >+.table-bordered tbody:first-child tr:first-child > th:last-child { >+ -webkit-border-top-right-radius: 4px; >+ border-top-right-radius: 4px; >+ -moz-border-radius-topright: 4px; >+} >+ >+.table-bordered thead:last-child tr:last-child > th:first-child, >+.table-bordered tbody:last-child tr:last-child > td:first-child, >+.table-bordered tbody:last-child tr:last-child > th:first-child, >+.table-bordered tfoot:last-child tr:last-child > td:first-child, >+.table-bordered tfoot:last-child tr:last-child > th:first-child { >+ -webkit-border-bottom-left-radius: 4px; >+ border-bottom-left-radius: 4px; >+ -moz-border-radius-bottomleft: 4px; >+} >+ >+.table-bordered thead:last-child tr:last-child > th:last-child, >+.table-bordered tbody:last-child tr:last-child > td:last-child, >+.table-bordered tbody:last-child tr:last-child > th:last-child, >+.table-bordered tfoot:last-child tr:last-child > td:last-child, >+.table-bordered tfoot:last-child tr:last-child > th:last-child { >+ -webkit-border-bottom-right-radius: 4px; >+ border-bottom-right-radius: 4px; >+ -moz-border-radius-bottomright: 4px; >+} >+ >+.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { >+ -webkit-border-bottom-left-radius: 0; >+ border-bottom-left-radius: 0; >+ -moz-border-radius-bottomleft: 0; >+} >+ >+.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { >+ -webkit-border-bottom-right-radius: 0; >+ border-bottom-right-radius: 0; >+ -moz-border-radius-bottomright: 0; >+} >+ >+.table-bordered caption + thead tr:first-child th:first-child, >+.table-bordered caption + tbody tr:first-child td:first-child, >+.table-bordered colgroup + thead tr:first-child th:first-child, >+.table-bordered colgroup + tbody tr:first-child td:first-child { >+ -webkit-border-top-left-radius: 4px; >+ border-top-left-radius: 4px; >+ -moz-border-radius-topleft: 4px; >+} >+ >+.table-bordered caption + thead tr:first-child th:last-child, >+.table-bordered caption + tbody tr:first-child td:last-child, >+.table-bordered colgroup + thead tr:first-child th:last-child, >+.table-bordered colgroup + tbody tr:first-child td:last-child { >+ -webkit-border-top-right-radius: 4px; >+ border-top-right-radius: 4px; >+ -moz-border-radius-topright: 4px; >+} >+ >+.table-striped tbody > tr:nth-child(odd) > td, >+.table-striped tbody > tr:nth-child(odd) > th { >+ background-color: #f9f9f9; >+} >+ >+.table-hover tbody tr:hover > td, >+.table-hover tbody tr:hover > th { >+ background-color: #f5f5f5; >+} >+ >+table td[class*="span"], >+table th[class*="span"], >+.row-fluid table td[class*="span"], >+.row-fluid table th[class*="span"] { >+ display: table-cell; >+ float: none; >+ margin-left: 0; >+} >+ >+.table td.span1, >+.table th.span1 { >+ float: none; >+ width: 44px; >+ margin-left: 0; >+} >+ >+.table td.span2, >+.table th.span2 { >+ float: none; >+ width: 124px; >+ margin-left: 0; >+} >+ >+.table td.span3, >+.table th.span3 { >+ float: none; >+ width: 204px; >+ margin-left: 0; >+} >+ >+.table td.span4, >+.table th.span4 { >+ float: none; >+ width: 284px; >+ margin-left: 0; >+} >+ >+.table td.span5, >+.table th.span5 { >+ float: none; >+ width: 364px; >+ margin-left: 0; >+} >+ >+.table td.span6, >+.table th.span6 { >+ float: none; >+ width: 444px; >+ margin-left: 0; >+} >+ >+.table td.span7, >+.table th.span7 { >+ float: none; >+ width: 524px; >+ margin-left: 0; >+} >+ >+.table td.span8, >+.table th.span8 { >+ float: none; >+ width: 604px; >+ margin-left: 0; >+} >+ >+.table td.span9, >+.table th.span9 { >+ float: none; >+ width: 684px; >+ margin-left: 0; >+} >+ >+.table td.span10, >+.table th.span10 { >+ float: none; >+ width: 764px; >+ margin-left: 0; >+} >+ >+.table td.span11, >+.table th.span11 { >+ float: none; >+ width: 844px; >+ margin-left: 0; >+} >+ >+.table td.span12, >+.table th.span12 { >+ float: none; >+ width: 924px; >+ margin-left: 0; >+} >+ >+.table tbody tr.success > td { >+ background-color: #dff0d8; >+} >+ >+.table tbody tr.error > td { >+ background-color: #f2dede; >+} >+ >+.table tbody tr.warning > td { >+ background-color: #fcf8e3; >+} >+ >+.table tbody tr.info > td { >+ background-color: #d9edf7; >+} >+ >+.table-hover tbody tr.success:hover > td { >+ background-color: #d0e9c6; >+} >+ >+.table-hover tbody tr.error:hover > td { >+ background-color: #ebcccc; >+} >+ >+.table-hover tbody tr.warning:hover > td { >+ background-color: #faf2cc; >+} >+ >+.table-hover tbody tr.info:hover > td { >+ background-color: #c4e3f3; >+} >+ >+[class^="icon-"], >+[class*=" icon-"] { >+ display: inline-block; >+ width: 14px; >+ height: 14px; >+ margin-top: 1px; >+ *margin-right: .3em; >+ line-height: 14px; >+ vertical-align: text-top; >+ background-image: url("../img/glyphicons-halflings.png"); >+ background-position: 14px 14px; >+ background-repeat: no-repeat; >+} >+ >+/* White icons with optional class, or on hover/focus/active states of certain elements */ >+ >+.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:focus > [class^="icon-"], >+.dropdown-menu > li > a:hover > [class*=" icon-"], >+.dropdown-menu > li > a:focus > [class*=" icon-"], >+.dropdown-menu > .active > a > [class^="icon-"], >+.dropdown-menu > .active > a > [class*=" icon-"], >+.dropdown-submenu:hover > a > [class^="icon-"], >+.dropdown-submenu:focus > a > [class^="icon-"], >+.dropdown-submenu:hover > a > [class*=" icon-"], >+.dropdown-submenu:focus > a > [class*=" icon-"] { >+ background-image: url("../img/glyphicons-halflings-white.png"); >+} >+ >+.icon-glass { >+ background-position: 0 0; >+} >+ >+.icon-music { >+ background-position: -24px 0; >+} >+ >+.icon-search { >+ background-position: -48px 0; >+} >+ >+.icon-envelope { >+ background-position: -72px 0; >+} >+ >+.icon-heart { >+ background-position: -96px 0; >+} >+ >+.icon-star { >+ background-position: -120px 0; >+} >+ >+.icon-star-empty { >+ background-position: -144px 0; >+} >+ >+.icon-user { >+ background-position: -168px 0; >+} >+ >+.icon-film { >+ background-position: -192px 0; >+} >+ >+.icon-th-large { >+ background-position: -216px 0; >+} >+ >+.icon-th { >+ background-position: -240px 0; >+} >+ >+.icon-th-list { >+ background-position: -264px 0; >+} >+ >+.icon-ok { >+ background-position: -288px 0; >+} >+ >+.icon-remove { >+ background-position: -312px 0; >+} >+ >+.icon-zoom-in { >+ background-position: -336px 0; >+} >+ >+.icon-zoom-out { >+ background-position: -360px 0; >+} >+ >+.icon-off { >+ background-position: -384px 0; >+} >+ >+.icon-signal { >+ background-position: -408px 0; >+} >+ >+.icon-cog { >+ background-position: -432px 0; >+} >+ >+.icon-trash { >+ background-position: -456px 0; >+} >+ >+.icon-home { >+ background-position: 0 -24px; >+} >+ >+.icon-file { >+ background-position: -24px -24px; >+} >+ >+.icon-time { >+ background-position: -48px -24px; >+} >+ >+.icon-road { >+ background-position: -72px -24px; >+} >+ >+.icon-download-alt { >+ background-position: -96px -24px; >+} >+ >+.icon-download { >+ background-position: -120px -24px; >+} >+ >+.icon-upload { >+ background-position: -144px -24px; >+} >+ >+.icon-inbox { >+ background-position: -168px -24px; >+} >+ >+.icon-play-circle { >+ background-position: -192px -24px; >+} >+ >+.icon-repeat { >+ background-position: -216px -24px; >+} >+ >+.icon-refresh { >+ background-position: -240px -24px; >+} >+ >+.icon-list-alt { >+ background-position: -264px -24px; >+} >+ >+.icon-lock { >+ background-position: -287px -24px; >+} >+ >+.icon-flag { >+ background-position: -312px -24px; >+} >+ >+.icon-headphones { >+ background-position: -336px -24px; >+} >+ >+.icon-volume-off { >+ background-position: -360px -24px; >+} >+ >+.icon-volume-down { >+ background-position: -384px -24px; >+} >+ >+.icon-volume-up { >+ background-position: -408px -24px; >+} >+ >+.icon-qrcode { >+ background-position: -432px -24px; >+} >+ >+.icon-barcode { >+ background-position: -456px -24px; >+} >+ >+.icon-tag { >+ background-position: 0 -48px; >+} >+ >+.icon-tags { >+ background-position: -25px -48px; >+} >+ >+.icon-book { >+ background-position: -48px -48px; >+} >+ >+.icon-bookmark { >+ background-position: -72px -48px; >+} >+ >+.icon-print { >+ background-position: -96px -48px; >+} >+ >+.icon-camera { >+ background-position: -120px -48px; >+} >+ >+.icon-font { >+ background-position: -144px -48px; >+} >+ >+.icon-bold { >+ background-position: -167px -48px; >+} >+ >+.icon-italic { >+ background-position: -192px -48px; >+} >+ >+.icon-text-height { >+ background-position: -216px -48px; >+} >+ >+.icon-text-width { >+ background-position: -240px -48px; >+} >+ >+.icon-align-left { >+ background-position: -264px -48px; >+} >+ >+.icon-align-center { >+ background-position: -288px -48px; >+} >+ >+.icon-align-right { >+ background-position: -312px -48px; >+} >+ >+.icon-align-justify { >+ background-position: -336px -48px; >+} >+ >+.icon-list { >+ background-position: -360px -48px; >+} >+ >+.icon-indent-left { >+ background-position: -384px -48px; >+} >+ >+.icon-indent-right { >+ background-position: -408px -48px; >+} >+ >+.icon-facetime-video { >+ background-position: -432px -48px; >+} >+ >+.icon-picture { >+ background-position: -456px -48px; >+} >+ >+.icon-pencil { >+ background-position: 0 -72px; >+} >+ >+.icon-map-marker { >+ background-position: -24px -72px; >+} >+ >+.icon-adjust { >+ background-position: -48px -72px; >+} >+ >+.icon-tint { >+ background-position: -72px -72px; >+} >+ >+.icon-edit { >+ background-position: -96px -72px; >+} >+ >+.icon-share { >+ background-position: -120px -72px; >+} >+ >+.icon-check { >+ background-position: -144px -72px; >+} >+ >+.icon-move { >+ background-position: -168px -72px; >+} >+ >+.icon-step-backward { >+ background-position: -192px -72px; >+} >+ >+.icon-fast-backward { >+ background-position: -216px -72px; >+} >+ >+.icon-backward { >+ background-position: -240px -72px; >+} >+ >+.icon-play { >+ background-position: -264px -72px; >+} >+ >+.icon-pause { >+ background-position: -288px -72px; >+} >+ >+.icon-stop { >+ background-position: -312px -72px; >+} >+ >+.icon-forward { >+ background-position: -336px -72px; >+} >+ >+.icon-fast-forward { >+ background-position: -360px -72px; >+} >+ >+.icon-step-forward { >+ background-position: -384px -72px; >+} >+ >+.icon-eject { >+ background-position: -408px -72px; >+} >+ >+.icon-chevron-left { >+ background-position: -432px -72px; >+} >+ >+.icon-chevron-right { >+ background-position: -456px -72px; >+} >+ >+.icon-plus-sign { >+ background-position: 0 -96px; >+} >+ >+.icon-minus-sign { >+ background-position: -24px -96px; >+} >+ >+.icon-remove-sign { >+ background-position: -48px -96px; >+} >+ >+.icon-ok-sign { >+ background-position: -72px -96px; >+} >+ >+.icon-question-sign { >+ background-position: -96px -96px; >+} >+ >+.icon-info-sign { >+ background-position: -120px -96px; >+} >+ >+.icon-screenshot { >+ background-position: -144px -96px; >+} >+ >+.icon-remove-circle { >+ background-position: -168px -96px; >+} >+ >+.icon-ok-circle { >+ background-position: -192px -96px; >+} >+ >+.icon-ban-circle { >+ background-position: -216px -96px; >+} >+ >+.icon-arrow-left { >+ background-position: -240px -96px; >+} >+ >+.icon-arrow-right { >+ background-position: -264px -96px; >+} >+ >+.icon-arrow-up { >+ background-position: -289px -96px; >+} >+ >+.icon-arrow-down { >+ background-position: -312px -96px; >+} >+ >+.icon-share-alt { >+ background-position: -336px -96px; >+} >+ >+.icon-resize-full { >+ background-position: -360px -96px; >+} >+ >+.icon-resize-small { >+ background-position: -384px -96px; >+} >+ >+.icon-plus { >+ background-position: -408px -96px; >+} >+ >+.icon-minus { >+ background-position: -433px -96px; >+} >+ >+.icon-asterisk { >+ background-position: -456px -96px; >+} >+ >+.icon-exclamation-sign { >+ background-position: 0 -120px; >+} >+ >+.icon-gift { >+ background-position: -24px -120px; >+} >+ >+.icon-leaf { >+ background-position: -48px -120px; >+} >+ >+.icon-fire { >+ background-position: -72px -120px; >+} >+ >+.icon-eye-open { >+ background-position: -96px -120px; >+} >+ >+.icon-eye-close { >+ background-position: -120px -120px; >+} >+ >+.icon-warning-sign { >+ background-position: -144px -120px; >+} >+ >+.icon-plane { >+ background-position: -168px -120px; >+} >+ >+.icon-calendar { >+ background-position: -192px -120px; >+} >+ >+.icon-random { >+ width: 16px; >+ background-position: -216px -120px; >+} >+ >+.icon-comment { >+ background-position: -240px -120px; >+} >+ >+.icon-magnet { >+ background-position: -264px -120px; >+} >+ >+.icon-chevron-up { >+ background-position: -288px -120px; >+} >+ >+.icon-chevron-down { >+ background-position: -313px -119px; >+} >+ >+.icon-retweet { >+ background-position: -336px -120px; >+} >+ >+.icon-shopping-cart { >+ background-position: -360px -120px; >+} >+ >+.icon-folder-close { >+ width: 16px; >+ background-position: -384px -120px; >+} >+ >+.icon-folder-open { >+ width: 16px; >+ background-position: -408px -120px; >+} >+ >+.icon-resize-vertical { >+ background-position: -432px -119px; >+} >+ >+.icon-resize-horizontal { >+ background-position: -456px -118px; >+} >+ >+.icon-hdd { >+ background-position: 0 -144px; >+} >+ >+.icon-bullhorn { >+ background-position: -24px -144px; >+} >+ >+.icon-bell { >+ background-position: -48px -144px; >+} >+ >+.icon-certificate { >+ background-position: -72px -144px; >+} >+ >+.icon-thumbs-up { >+ background-position: -96px -144px; >+} >+ >+.icon-thumbs-down { >+ background-position: -120px -144px; >+} >+ >+.icon-hand-right { >+ background-position: -144px -144px; >+} >+ >+.icon-hand-left { >+ background-position: -168px -144px; >+} >+ >+.icon-hand-up { >+ background-position: -192px -144px; >+} >+ >+.icon-hand-down { >+ background-position: -216px -144px; >+} >+ >+.icon-circle-arrow-right { >+ background-position: -240px -144px; >+} >+ >+.icon-circle-arrow-left { >+ background-position: -264px -144px; >+} >+ >+.icon-circle-arrow-up { >+ background-position: -288px -144px; >+} >+ >+.icon-circle-arrow-down { >+ background-position: -312px -144px; >+} >+ >+.icon-globe { >+ background-position: -336px -144px; >+} >+ >+.icon-wrench { >+ background-position: -360px -144px; >+} >+ >+.icon-tasks { >+ background-position: -384px -144px; >+} >+ >+.icon-filter { >+ background-position: -408px -144px; >+} >+ >+.icon-briefcase { >+ background-position: -432px -144px; >+} >+ >+.icon-fullscreen { >+ background-position: -456px -144px; >+} >+ >+.dropup, >+.dropdown { >+ position: relative; >+} >+ >+.dropdown-toggle { >+ *margin-bottom: -3px; >+} >+ >+.dropdown-toggle:active, >+.open .dropdown-toggle { >+ outline: 0; >+} >+ >+.caret { >+ display: inline-block; >+ width: 0; >+ height: 0; >+ vertical-align: top; >+ border-top: 4px solid #000000; >+ border-right: 4px solid transparent; >+ border-left: 4px solid transparent; >+ content: ""; >+} >+ >+.dropdown .caret { >+ margin-top: 8px; >+ margin-left: 2px; >+} >+ >+.dropdown-menu { >+ position: absolute; >+ top: 100%; >+ left: 0; >+ z-index: 1000; >+ display: none; >+ float: left; >+ min-width: 160px; >+ padding: 5px 0; >+ margin: 2px 0 0; >+ list-style: none; >+ background-color: #ffffff; >+ border: 1px solid #ccc; >+ border: 1px solid rgba(0, 0, 0, 0.2); >+ *border-right-width: 2px; >+ *border-bottom-width: 2px; >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ -webkit-background-clip: padding-box; >+ -moz-background-clip: padding; >+ background-clip: padding-box; >+} >+ >+.dropdown-menu.pull-right { >+ right: 0; >+ left: auto; >+} >+ >+.dropdown-menu .divider { >+ *width: 100%; >+ height: 1px; >+ margin: 9px 1px; >+ *margin: -5px 0 5px; >+ overflow: hidden; >+ background-color: #e5e5e5; >+ border-bottom: 1px solid #ffffff; >+} >+ >+.dropdown-menu > li > a { >+ display: block; >+ padding: 3px 20px; >+ clear: both; >+ font-weight: normal; >+ line-height: 20px; >+ color: #333333; >+ white-space: nowrap; >+} >+ >+.dropdown-menu > li > a:hover, >+.dropdown-menu > li > a:focus, >+.dropdown-submenu:hover > a, >+.dropdown-submenu:focus > a { >+ color: #ffffff; >+ text-decoration: none; >+ background-color: #0081c2; >+ background-image: -moz-linear-gradient(top, #0088cc, #0077b3); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); >+ background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); >+ background-image: -o-linear-gradient(top, #0088cc, #0077b3); >+ background-image: linear-gradient(to bottom, #0088cc, #0077b3); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); >+} >+ >+.dropdown-menu > .active > a, >+.dropdown-menu > .active > a:hover, >+.dropdown-menu > .active > a:focus { >+ color: #ffffff; >+ text-decoration: none; >+ background-color: #0081c2; >+ background-image: -moz-linear-gradient(top, #0088cc, #0077b3); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); >+ background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); >+ background-image: -o-linear-gradient(top, #0088cc, #0077b3); >+ background-image: linear-gradient(to bottom, #0088cc, #0077b3); >+ background-repeat: repeat-x; >+ outline: 0; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); >+} >+ >+.dropdown-menu > .disabled > a, >+.dropdown-menu > .disabled > a:hover, >+.dropdown-menu > .disabled > a:focus { >+ color: #999999; >+} >+ >+.dropdown-menu > .disabled > a:hover, >+.dropdown-menu > .disabled > a:focus { >+ text-decoration: none; >+ cursor: default; >+ background-color: transparent; >+ background-image: none; >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.open { >+ *z-index: 1000; >+} >+ >+.open > .dropdown-menu { >+ display: block; >+} >+ >+.dropdown-backdrop { >+ position: fixed; >+ top: 0; >+ right: 0; >+ bottom: 0; >+ left: 0; >+ z-index: 990; >+} >+ >+.pull-right > .dropdown-menu { >+ right: 0; >+ left: auto; >+} >+ >+.dropup .caret, >+.navbar-fixed-bottom .dropdown .caret { >+ border-top: 0; >+ border-bottom: 4px solid #000000; >+ content: ""; >+} >+ >+.dropup .dropdown-menu, >+.navbar-fixed-bottom .dropdown .dropdown-menu { >+ top: auto; >+ bottom: 100%; >+ margin-bottom: 1px; >+} >+ >+.dropdown-submenu { >+ position: relative; >+} >+ >+.dropdown-submenu > .dropdown-menu { >+ top: 0; >+ left: 100%; >+ margin-top: -6px; >+ margin-left: -1px; >+ -webkit-border-radius: 0 6px 6px 6px; >+ -moz-border-radius: 0 6px 6px 6px; >+ border-radius: 0 6px 6px 6px; >+} >+ >+.dropdown-submenu:hover > .dropdown-menu { >+ display: block; >+} >+ >+.dropup .dropdown-submenu > .dropdown-menu { >+ top: auto; >+ bottom: 0; >+ margin-top: 0; >+ margin-bottom: -2px; >+ -webkit-border-radius: 5px 5px 5px 0; >+ -moz-border-radius: 5px 5px 5px 0; >+ border-radius: 5px 5px 5px 0; >+} >+ >+.dropdown-submenu > a:after { >+ display: block; >+ float: right; >+ width: 0; >+ height: 0; >+ margin-top: 5px; >+ margin-right: -10px; >+ border-color: transparent; >+ border-left-color: #cccccc; >+ border-style: solid; >+ border-width: 5px 0 5px 5px; >+ content: " "; >+} >+ >+.dropdown-submenu:hover > a:after { >+ border-left-color: #ffffff; >+} >+ >+.dropdown-submenu.pull-left { >+ float: none; >+} >+ >+.dropdown-submenu.pull-left > .dropdown-menu { >+ left: -100%; >+ margin-left: 10px; >+ -webkit-border-radius: 6px 0 6px 6px; >+ -moz-border-radius: 6px 0 6px 6px; >+ border-radius: 6px 0 6px 6px; >+} >+ >+.dropdown .dropdown-menu .nav-header { >+ padding-right: 20px; >+ padding-left: 20px; >+} >+ >+.typeahead { >+ z-index: 1051; >+ margin-top: 2px; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.well { >+ min-height: 20px; >+ padding: 19px; >+ margin-bottom: 20px; >+ background-color: #f5f5f5; >+ border: 1px solid #e3e3e3; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); >+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); >+} >+ >+.well blockquote { >+ border-color: #ddd; >+ border-color: rgba(0, 0, 0, 0.15); >+} >+ >+.well-large { >+ padding: 24px; >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+} >+ >+.well-small { >+ padding: 9px; >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+} >+ >+.fade { >+ opacity: 0; >+ -webkit-transition: opacity 0.15s linear; >+ -moz-transition: opacity 0.15s linear; >+ -o-transition: opacity 0.15s linear; >+ transition: opacity 0.15s linear; >+} >+ >+.fade.in { >+ opacity: 1; >+} >+ >+.collapse { >+ position: relative; >+ height: 0; >+ overflow: hidden; >+ -webkit-transition: height 0.35s ease; >+ -moz-transition: height 0.35s ease; >+ -o-transition: height 0.35s ease; >+ transition: height 0.35s ease; >+} >+ >+.collapse.in { >+ height: auto; >+} >+ >+.close { >+ float: right; >+ font-size: 20px; >+ font-weight: bold; >+ line-height: 20px; >+ color: #000000; >+ text-shadow: 0 1px 0 #ffffff; >+ opacity: 0.2; >+ filter: alpha(opacity=20); >+} >+ >+.close:hover, >+.close:focus { >+ color: #000000; >+ text-decoration: none; >+ cursor: pointer; >+ opacity: 0.4; >+ filter: alpha(opacity=40); >+} >+ >+button.close { >+ padding: 0; >+ cursor: pointer; >+ background: transparent; >+ border: 0; >+ -webkit-appearance: none; >+} >+ >+.btn { >+ display: inline-block; >+ *display: inline; >+ padding: 4px 12px; >+ margin-bottom: 0; >+ *margin-left: .3em; >+ font-size: 14px; >+ line-height: 20px; >+ color: #333333; >+ text-align: center; >+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); >+ vertical-align: middle; >+ cursor: pointer; >+ background-color: #f5f5f5; >+ *background-color: #e6e6e6; >+ background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); >+ background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); >+ background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); >+ background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); >+ background-repeat: repeat-x; >+ border: 1px solid #cccccc; >+ *border: 0; >+ border-color: #e6e6e6 #e6e6e6 #bfbfbf; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ border-bottom-color: #b3b3b3; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+ *zoom: 1; >+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+} >+ >+.btn:hover, >+.btn:focus, >+.btn:active, >+.btn.active, >+.btn.disabled, >+.btn[disabled] { >+ color: #333333; >+ background-color: #e6e6e6; >+ *background-color: #d9d9d9; >+} >+ >+.btn:active, >+.btn.active { >+ background-color: #cccccc \9; >+} >+ >+.btn:first-child { >+ *margin-left: 0; >+} >+ >+.btn:hover, >+.btn:focus { >+ color: #333333; >+ text-decoration: none; >+ background-position: 0 -15px; >+ -webkit-transition: background-position 0.1s linear; >+ -moz-transition: background-position 0.1s linear; >+ -o-transition: background-position 0.1s linear; >+ transition: background-position 0.1s linear; >+} >+ >+.btn:focus { >+ outline: thin dotted #333; >+ outline: 5px auto -webkit-focus-ring-color; >+ outline-offset: -2px; >+} >+ >+.btn.active, >+.btn:active { >+ background-image: none; >+ outline: 0; >+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+} >+ >+.btn.disabled, >+.btn[disabled] { >+ cursor: default; >+ background-image: none; >+ opacity: 0.65; >+ filter: alpha(opacity=65); >+ -webkit-box-shadow: none; >+ -moz-box-shadow: none; >+ box-shadow: none; >+} >+ >+.btn-large { >+ padding: 11px 19px; >+ font-size: 17.5px; >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+} >+ >+.btn-large [class^="icon-"], >+.btn-large [class*=" icon-"] { >+ margin-top: 4px; >+} >+ >+.btn-small { >+ padding: 2px 10px; >+ font-size: 11.9px; >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+} >+ >+.btn-small [class^="icon-"], >+.btn-small [class*=" icon-"] { >+ margin-top: 0; >+} >+ >+.btn-mini [class^="icon-"], >+.btn-mini [class*=" icon-"] { >+ margin-top: -1px; >+} >+ >+.btn-mini { >+ padding: 0 6px; >+ font-size: 10.5px; >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+} >+ >+.btn-block { >+ display: block; >+ width: 100%; >+ padding-right: 0; >+ padding-left: 0; >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+} >+ >+.btn-block + .btn-block { >+ margin-top: 5px; >+} >+ >+input[type="submit"].btn-block, >+input[type="reset"].btn-block, >+input[type="button"].btn-block { >+ width: 100%; >+} >+ >+.btn-primary.active, >+.btn-warning.active, >+.btn-danger.active, >+.btn-success.active, >+.btn-info.active, >+.btn-inverse.active { >+ color: rgba(255, 255, 255, 0.75); >+} >+ >+.btn-primary { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #006dcc; >+ *background-color: #0044cc; >+ background-image: -moz-linear-gradient(top, #0088cc, #0044cc); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); >+ background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); >+ background-image: -o-linear-gradient(top, #0088cc, #0044cc); >+ background-image: linear-gradient(to bottom, #0088cc, #0044cc); >+ background-repeat: repeat-x; >+ border-color: #0044cc #0044cc #002a80; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-primary:hover, >+.btn-primary:focus, >+.btn-primary:active, >+.btn-primary.active, >+.btn-primary.disabled, >+.btn-primary[disabled] { >+ color: #ffffff; >+ background-color: #0044cc; >+ *background-color: #003bb3; >+} >+ >+.btn-primary:active, >+.btn-primary.active { >+ background-color: #003399 \9; >+} >+ >+.btn-warning { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #faa732; >+ *background-color: #f89406; >+ background-image: -moz-linear-gradient(top, #fbb450, #f89406); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); >+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406); >+ background-image: -o-linear-gradient(top, #fbb450, #f89406); >+ background-image: linear-gradient(to bottom, #fbb450, #f89406); >+ background-repeat: repeat-x; >+ border-color: #f89406 #f89406 #ad6704; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-warning:hover, >+.btn-warning:focus, >+.btn-warning:active, >+.btn-warning.active, >+.btn-warning.disabled, >+.btn-warning[disabled] { >+ color: #ffffff; >+ background-color: #f89406; >+ *background-color: #df8505; >+} >+ >+.btn-warning:active, >+.btn-warning.active { >+ background-color: #c67605 \9; >+} >+ >+.btn-danger { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #da4f49; >+ *background-color: #bd362f; >+ background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); >+ background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); >+ background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); >+ background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); >+ background-repeat: repeat-x; >+ border-color: #bd362f #bd362f #802420; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-danger:hover, >+.btn-danger:focus, >+.btn-danger:active, >+.btn-danger.active, >+.btn-danger.disabled, >+.btn-danger[disabled] { >+ color: #ffffff; >+ background-color: #bd362f; >+ *background-color: #a9302a; >+} >+ >+.btn-danger:active, >+.btn-danger.active { >+ background-color: #942a25 \9; >+} >+ >+.btn-success { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #5bb75b; >+ *background-color: #51a351; >+ background-image: -moz-linear-gradient(top, #62c462, #51a351); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); >+ background-image: -webkit-linear-gradient(top, #62c462, #51a351); >+ background-image: -o-linear-gradient(top, #62c462, #51a351); >+ background-image: linear-gradient(to bottom, #62c462, #51a351); >+ background-repeat: repeat-x; >+ border-color: #51a351 #51a351 #387038; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-success:hover, >+.btn-success:focus, >+.btn-success:active, >+.btn-success.active, >+.btn-success.disabled, >+.btn-success[disabled] { >+ color: #ffffff; >+ background-color: #51a351; >+ *background-color: #499249; >+} >+ >+.btn-success:active, >+.btn-success.active { >+ background-color: #408140 \9; >+} >+ >+.btn-info { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #49afcd; >+ *background-color: #2f96b4; >+ background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); >+ background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); >+ background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); >+ background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); >+ background-repeat: repeat-x; >+ border-color: #2f96b4 #2f96b4 #1f6377; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-info:hover, >+.btn-info:focus, >+.btn-info:active, >+.btn-info.active, >+.btn-info.disabled, >+.btn-info[disabled] { >+ color: #ffffff; >+ background-color: #2f96b4; >+ *background-color: #2a85a0; >+} >+ >+.btn-info:active, >+.btn-info.active { >+ background-color: #24748c \9; >+} >+ >+.btn-inverse { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #363636; >+ *background-color: #222222; >+ background-image: -moz-linear-gradient(top, #444444, #222222); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); >+ background-image: -webkit-linear-gradient(top, #444444, #222222); >+ background-image: -o-linear-gradient(top, #444444, #222222); >+ background-image: linear-gradient(to bottom, #444444, #222222); >+ background-repeat: repeat-x; >+ border-color: #222222 #222222 #000000; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.btn-inverse:hover, >+.btn-inverse:focus, >+.btn-inverse:active, >+.btn-inverse.active, >+.btn-inverse.disabled, >+.btn-inverse[disabled] { >+ color: #ffffff; >+ background-color: #222222; >+ *background-color: #151515; >+} >+ >+.btn-inverse:active, >+.btn-inverse.active { >+ background-color: #080808 \9; >+} >+ >+button.btn, >+input[type="submit"].btn { >+ *padding-top: 3px; >+ *padding-bottom: 3px; >+} >+ >+button.btn::-moz-focus-inner, >+input[type="submit"].btn::-moz-focus-inner { >+ padding: 0; >+ border: 0; >+} >+ >+button.btn.btn-large, >+input[type="submit"].btn.btn-large { >+ *padding-top: 7px; >+ *padding-bottom: 7px; >+} >+ >+button.btn.btn-small, >+input[type="submit"].btn.btn-small { >+ *padding-top: 3px; >+ *padding-bottom: 3px; >+} >+ >+button.btn.btn-mini, >+input[type="submit"].btn.btn-mini { >+ *padding-top: 1px; >+ *padding-bottom: 1px; >+} >+ >+.btn-link, >+.btn-link:active, >+.btn-link[disabled] { >+ background-color: transparent; >+ background-image: none; >+ -webkit-box-shadow: none; >+ -moz-box-shadow: none; >+ box-shadow: none; >+} >+ >+.btn-link { >+ color: #0088cc; >+ cursor: pointer; >+ border-color: transparent; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.btn-link:hover, >+.btn-link:focus { >+ color: #005580; >+ text-decoration: underline; >+ background-color: transparent; >+} >+ >+.btn-link[disabled]:hover, >+.btn-link[disabled]:focus { >+ color: #333333; >+ text-decoration: none; >+} >+ >+.btn-group { >+ position: relative; >+ display: inline-block; >+ *display: inline; >+ *margin-left: .3em; >+ font-size: 0; >+ white-space: nowrap; >+ vertical-align: middle; >+ *zoom: 1; >+} >+ >+.btn-group:first-child { >+ *margin-left: 0; >+} >+ >+.btn-group + .btn-group { >+ margin-left: 5px; >+} >+ >+.btn-toolbar { >+ margin-top: 10px; >+ margin-bottom: 10px; >+ font-size: 0; >+} >+ >+.btn-toolbar > .btn + .btn, >+.btn-toolbar > .btn-group + .btn, >+.btn-toolbar > .btn + .btn-group { >+ margin-left: 5px; >+} >+ >+.btn-group > .btn { >+ position: relative; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.btn-group > .btn + .btn { >+ margin-left: -1px; >+} >+ >+.btn-group > .btn, >+.btn-group > .dropdown-menu, >+.btn-group > .popover { >+ font-size: 14px; >+} >+ >+.btn-group > .btn-mini { >+ font-size: 10.5px; >+} >+ >+.btn-group > .btn-small { >+ font-size: 11.9px; >+} >+ >+.btn-group > .btn-large { >+ font-size: 17.5px; >+} >+ >+.btn-group > .btn:first-child { >+ margin-left: 0; >+ -webkit-border-bottom-left-radius: 4px; >+ border-bottom-left-radius: 4px; >+ -webkit-border-top-left-radius: 4px; >+ border-top-left-radius: 4px; >+ -moz-border-radius-bottomleft: 4px; >+ -moz-border-radius-topleft: 4px; >+} >+ >+.btn-group > .btn:last-child, >+.btn-group > .dropdown-toggle { >+ -webkit-border-top-right-radius: 4px; >+ border-top-right-radius: 4px; >+ -webkit-border-bottom-right-radius: 4px; >+ border-bottom-right-radius: 4px; >+ -moz-border-radius-topright: 4px; >+ -moz-border-radius-bottomright: 4px; >+} >+ >+.btn-group > .btn.large:first-child { >+ margin-left: 0; >+ -webkit-border-bottom-left-radius: 6px; >+ border-bottom-left-radius: 6px; >+ -webkit-border-top-left-radius: 6px; >+ border-top-left-radius: 6px; >+ -moz-border-radius-bottomleft: 6px; >+ -moz-border-radius-topleft: 6px; >+} >+ >+.btn-group > .btn.large:last-child, >+.btn-group > .large.dropdown-toggle { >+ -webkit-border-top-right-radius: 6px; >+ border-top-right-radius: 6px; >+ -webkit-border-bottom-right-radius: 6px; >+ border-bottom-right-radius: 6px; >+ -moz-border-radius-topright: 6px; >+ -moz-border-radius-bottomright: 6px; >+} >+ >+.btn-group > .btn:hover, >+.btn-group > .btn:focus, >+.btn-group > .btn:active, >+.btn-group > .btn.active { >+ z-index: 2; >+} >+ >+.btn-group .dropdown-toggle:active, >+.btn-group.open .dropdown-toggle { >+ outline: 0; >+} >+ >+.btn-group > .btn + .dropdown-toggle { >+ *padding-top: 5px; >+ padding-right: 8px; >+ *padding-bottom: 5px; >+ padding-left: 8px; >+ -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+ box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); >+} >+ >+.btn-group > .btn-mini + .dropdown-toggle { >+ *padding-top: 2px; >+ padding-right: 5px; >+ *padding-bottom: 2px; >+ padding-left: 5px; >+} >+ >+.btn-group > .btn-small + .dropdown-toggle { >+ *padding-top: 5px; >+ *padding-bottom: 4px; >+} >+ >+.btn-group > .btn-large + .dropdown-toggle { >+ *padding-top: 7px; >+ padding-right: 12px; >+ *padding-bottom: 7px; >+ padding-left: 12px; >+} >+ >+.btn-group.open .dropdown-toggle { >+ background-image: none; >+ -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); >+} >+ >+.btn-group.open .btn.dropdown-toggle { >+ background-color: #e6e6e6; >+} >+ >+.btn-group.open .btn-primary.dropdown-toggle { >+ background-color: #0044cc; >+} >+ >+.btn-group.open .btn-warning.dropdown-toggle { >+ background-color: #f89406; >+} >+ >+.btn-group.open .btn-danger.dropdown-toggle { >+ background-color: #bd362f; >+} >+ >+.btn-group.open .btn-success.dropdown-toggle { >+ background-color: #51a351; >+} >+ >+.btn-group.open .btn-info.dropdown-toggle { >+ background-color: #2f96b4; >+} >+ >+.btn-group.open .btn-inverse.dropdown-toggle { >+ background-color: #222222; >+} >+ >+.btn .caret { >+ margin-top: 8px; >+ margin-left: 0; >+} >+ >+.btn-large .caret { >+ margin-top: 6px; >+} >+ >+.btn-large .caret { >+ border-top-width: 5px; >+ border-right-width: 5px; >+ border-left-width: 5px; >+} >+ >+.btn-mini .caret, >+.btn-small .caret { >+ margin-top: 8px; >+} >+ >+.dropup .btn-large .caret { >+ border-bottom-width: 5px; >+} >+ >+.btn-primary .caret, >+.btn-warning .caret, >+.btn-danger .caret, >+.btn-info .caret, >+.btn-success .caret, >+.btn-inverse .caret { >+ border-top-color: #ffffff; >+ border-bottom-color: #ffffff; >+} >+ >+.btn-group-vertical { >+ display: inline-block; >+ *display: inline; >+ /* IE7 inline-block hack */ >+ >+ *zoom: 1; >+} >+ >+.btn-group-vertical > .btn { >+ display: block; >+ float: none; >+ max-width: 100%; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.btn-group-vertical > .btn + .btn { >+ margin-top: -1px; >+ margin-left: 0; >+} >+ >+.btn-group-vertical > .btn:first-child { >+ -webkit-border-radius: 4px 4px 0 0; >+ -moz-border-radius: 4px 4px 0 0; >+ border-radius: 4px 4px 0 0; >+} >+ >+.btn-group-vertical > .btn:last-child { >+ -webkit-border-radius: 0 0 4px 4px; >+ -moz-border-radius: 0 0 4px 4px; >+ border-radius: 0 0 4px 4px; >+} >+ >+.btn-group-vertical > .btn-large:first-child { >+ -webkit-border-radius: 6px 6px 0 0; >+ -moz-border-radius: 6px 6px 0 0; >+ border-radius: 6px 6px 0 0; >+} >+ >+.btn-group-vertical > .btn-large:last-child { >+ -webkit-border-radius: 0 0 6px 6px; >+ -moz-border-radius: 0 0 6px 6px; >+ border-radius: 0 0 6px 6px; >+} >+ >+.alert { >+ padding: 8px 35px 8px 14px; >+ margin-bottom: 20px; >+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); >+ background-color: #fcf8e3; >+ border: 1px solid #fbeed5; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.alert, >+.alert h4 { >+ color: #c09853; >+} >+ >+.alert h4 { >+ margin: 0; >+} >+ >+.alert .close { >+ position: relative; >+ top: -2px; >+ right: -21px; >+ line-height: 20px; >+} >+ >+.alert-success { >+ color: #468847; >+ background-color: #dff0d8; >+ border-color: #d6e9c6; >+} >+ >+.alert-success h4 { >+ color: #468847; >+} >+ >+.alert-danger, >+.alert-error { >+ color: #b94a48; >+ background-color: #f2dede; >+ border-color: #eed3d7; >+} >+ >+.alert-danger h4, >+.alert-error h4 { >+ color: #b94a48; >+} >+ >+.alert-info { >+ color: #3a87ad; >+ background-color: #d9edf7; >+ border-color: #bce8f1; >+} >+ >+.alert-info h4 { >+ color: #3a87ad; >+} >+ >+.alert-block { >+ padding-top: 14px; >+ padding-bottom: 14px; >+} >+ >+.alert-block > p, >+.alert-block > ul { >+ margin-bottom: 0; >+} >+ >+.alert-block p + p { >+ margin-top: 5px; >+} >+ >+.nav { >+ margin-bottom: 20px; >+ margin-left: 0; >+ list-style: none; >+} >+ >+.nav > li > a { >+ display: block; >+} >+ >+.nav > li > a:hover, >+.nav > li > a:focus { >+ text-decoration: none; >+ background-color: #eeeeee; >+} >+ >+.nav > li > a > img { >+ max-width: none; >+} >+ >+.nav > .pull-right { >+ float: right; >+} >+ >+.nav-header { >+ display: block; >+ padding: 3px 15px; >+ font-size: 11px; >+ font-weight: bold; >+ line-height: 20px; >+ color: #999999; >+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); >+ text-transform: uppercase; >+} >+ >+.nav li + .nav-header { >+ margin-top: 9px; >+} >+ >+.nav-list { >+ padding-right: 15px; >+ padding-left: 15px; >+ margin-bottom: 0; >+} >+ >+.nav-list > li > a, >+.nav-list .nav-header { >+ margin-right: -15px; >+ margin-left: -15px; >+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); >+} >+ >+.nav-list > li > a { >+ padding: 3px 15px; >+} >+ >+.nav-list > .active > a, >+.nav-list > .active > a:hover, >+.nav-list > .active > a:focus { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); >+ background-color: #0088cc; >+} >+ >+.nav-list [class^="icon-"], >+.nav-list [class*=" icon-"] { >+ margin-right: 2px; >+} >+ >+.nav-list .divider { >+ *width: 100%; >+ height: 1px; >+ margin: 9px 1px; >+ *margin: -5px 0 5px; >+ overflow: hidden; >+ background-color: #e5e5e5; >+ border-bottom: 1px solid #ffffff; >+} >+ >+.nav-tabs, >+.nav-pills { >+ *zoom: 1; >+} >+ >+.nav-tabs:before, >+.nav-pills:before, >+.nav-tabs:after, >+.nav-pills:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.nav-tabs:after, >+.nav-pills:after { >+ clear: both; >+} >+ >+.nav-tabs > li, >+.nav-pills > li { >+ float: left; >+} >+ >+.nav-tabs > li > a, >+.nav-pills > li > a { >+ padding-right: 12px; >+ padding-left: 12px; >+ margin-right: 2px; >+ line-height: 14px; >+} >+ >+.nav-tabs { >+ border-bottom: 1px solid #ddd; >+} >+ >+.nav-tabs > li { >+ margin-bottom: -1px; >+} >+ >+.nav-tabs > li > a { >+ padding-top: 8px; >+ padding-bottom: 8px; >+ line-height: 20px; >+ border: 1px solid transparent; >+ -webkit-border-radius: 4px 4px 0 0; >+ -moz-border-radius: 4px 4px 0 0; >+ border-radius: 4px 4px 0 0; >+} >+ >+.nav-tabs > li > a:hover, >+.nav-tabs > li > a:focus { >+ border-color: #eeeeee #eeeeee #dddddd; >+} >+ >+.nav-tabs > .active > a, >+.nav-tabs > .active > a:hover, >+.nav-tabs > .active > a:focus { >+ color: #555555; >+ cursor: default; >+ background-color: #ffffff; >+ border: 1px solid #ddd; >+ border-bottom-color: transparent; >+} >+ >+.nav-pills > li > a { >+ padding-top: 8px; >+ padding-bottom: 8px; >+ margin-top: 2px; >+ margin-bottom: 2px; >+ -webkit-border-radius: 5px; >+ -moz-border-radius: 5px; >+ border-radius: 5px; >+} >+ >+.nav-pills > .active > a, >+.nav-pills > .active > a:hover, >+.nav-pills > .active > a:focus { >+ color: #ffffff; >+ background-color: #0088cc; >+} >+ >+.nav-stacked > li { >+ float: none; >+} >+ >+.nav-stacked > li > a { >+ margin-right: 0; >+} >+ >+.nav-tabs.nav-stacked { >+ border-bottom: 0; >+} >+ >+.nav-tabs.nav-stacked > li > a { >+ border: 1px solid #ddd; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.nav-tabs.nav-stacked > li:first-child > a { >+ -webkit-border-top-right-radius: 4px; >+ border-top-right-radius: 4px; >+ -webkit-border-top-left-radius: 4px; >+ border-top-left-radius: 4px; >+ -moz-border-radius-topright: 4px; >+ -moz-border-radius-topleft: 4px; >+} >+ >+.nav-tabs.nav-stacked > li:last-child > a { >+ -webkit-border-bottom-right-radius: 4px; >+ border-bottom-right-radius: 4px; >+ -webkit-border-bottom-left-radius: 4px; >+ border-bottom-left-radius: 4px; >+ -moz-border-radius-bottomright: 4px; >+ -moz-border-radius-bottomleft: 4px; >+} >+ >+.nav-tabs.nav-stacked > li > a:hover, >+.nav-tabs.nav-stacked > li > a:focus { >+ z-index: 2; >+ border-color: #ddd; >+} >+ >+.nav-pills.nav-stacked > li > a { >+ margin-bottom: 3px; >+} >+ >+.nav-pills.nav-stacked > li:last-child > a { >+ margin-bottom: 1px; >+} >+ >+.nav-tabs .dropdown-menu { >+ -webkit-border-radius: 0 0 6px 6px; >+ -moz-border-radius: 0 0 6px 6px; >+ border-radius: 0 0 6px 6px; >+} >+ >+.nav-pills .dropdown-menu { >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+} >+ >+.nav .dropdown-toggle .caret { >+ margin-top: 6px; >+ border-top-color: #0088cc; >+ border-bottom-color: #0088cc; >+} >+ >+.nav .dropdown-toggle:hover .caret, >+.nav .dropdown-toggle:focus .caret { >+ border-top-color: #005580; >+ border-bottom-color: #005580; >+} >+ >+/* move down carets for tabs */ >+ >+.nav-tabs .dropdown-toggle .caret { >+ margin-top: 8px; >+} >+ >+.nav .active .dropdown-toggle .caret { >+ border-top-color: #fff; >+ border-bottom-color: #fff; >+} >+ >+.nav-tabs .active .dropdown-toggle .caret { >+ border-top-color: #555555; >+ border-bottom-color: #555555; >+} >+ >+.nav > .dropdown.active > a:hover, >+.nav > .dropdown.active > a:focus { >+ cursor: pointer; >+} >+ >+.nav-tabs .open .dropdown-toggle, >+.nav-pills .open .dropdown-toggle, >+.nav > li.dropdown.open.active > a:hover, >+.nav > li.dropdown.open.active > a:focus { >+ color: #ffffff; >+ background-color: #999999; >+ border-color: #999999; >+} >+ >+.nav li.dropdown.open .caret, >+.nav li.dropdown.open.active .caret, >+.nav li.dropdown.open a:hover .caret, >+.nav li.dropdown.open a:focus .caret { >+ border-top-color: #ffffff; >+ border-bottom-color: #ffffff; >+ opacity: 1; >+ filter: alpha(opacity=100); >+} >+ >+.tabs-stacked .open > a:hover, >+.tabs-stacked .open > a:focus { >+ border-color: #999999; >+} >+ >+.tabbable { >+ *zoom: 1; >+} >+ >+.tabbable:before, >+.tabbable:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.tabbable:after { >+ clear: both; >+} >+ >+.tab-content { >+ overflow: auto; >+} >+ >+.tabs-below > .nav-tabs, >+.tabs-right > .nav-tabs, >+.tabs-left > .nav-tabs { >+ border-bottom: 0; >+} >+ >+.tab-content > .tab-pane, >+.pill-content > .pill-pane { >+ display: none; >+} >+ >+.tab-content > .active, >+.pill-content > .active { >+ display: block; >+} >+ >+.tabs-below > .nav-tabs { >+ border-top: 1px solid #ddd; >+} >+ >+.tabs-below > .nav-tabs > li { >+ margin-top: -1px; >+ margin-bottom: 0; >+} >+ >+.tabs-below > .nav-tabs > li > a { >+ -webkit-border-radius: 0 0 4px 4px; >+ -moz-border-radius: 0 0 4px 4px; >+ border-radius: 0 0 4px 4px; >+} >+ >+.tabs-below > .nav-tabs > li > a:hover, >+.tabs-below > .nav-tabs > li > a:focus { >+ border-top-color: #ddd; >+ border-bottom-color: transparent; >+} >+ >+.tabs-below > .nav-tabs > .active > a, >+.tabs-below > .nav-tabs > .active > a:hover, >+.tabs-below > .nav-tabs > .active > a:focus { >+ border-color: transparent #ddd #ddd #ddd; >+} >+ >+.tabs-left > .nav-tabs > li, >+.tabs-right > .nav-tabs > li { >+ float: none; >+} >+ >+.tabs-left > .nav-tabs > li > a, >+.tabs-right > .nav-tabs > li > a { >+ min-width: 74px; >+ margin-right: 0; >+ margin-bottom: 3px; >+} >+ >+.tabs-left > .nav-tabs { >+ float: left; >+ margin-right: 19px; >+ border-right: 1px solid #ddd; >+} >+ >+.tabs-left > .nav-tabs > li > a { >+ margin-right: -1px; >+ -webkit-border-radius: 4px 0 0 4px; >+ -moz-border-radius: 4px 0 0 4px; >+ border-radius: 4px 0 0 4px; >+} >+ >+.tabs-left > .nav-tabs > li > a:hover, >+.tabs-left > .nav-tabs > li > a:focus { >+ border-color: #eeeeee #dddddd #eeeeee #eeeeee; >+} >+ >+.tabs-left > .nav-tabs .active > a, >+.tabs-left > .nav-tabs .active > a:hover, >+.tabs-left > .nav-tabs .active > a:focus { >+ border-color: #ddd transparent #ddd #ddd; >+ *border-right-color: #ffffff; >+} >+ >+.tabs-right > .nav-tabs { >+ float: right; >+ margin-left: 19px; >+ border-left: 1px solid #ddd; >+} >+ >+.tabs-right > .nav-tabs > li > a { >+ margin-left: -1px; >+ -webkit-border-radius: 0 4px 4px 0; >+ -moz-border-radius: 0 4px 4px 0; >+ border-radius: 0 4px 4px 0; >+} >+ >+.tabs-right > .nav-tabs > li > a:hover, >+.tabs-right > .nav-tabs > li > a:focus { >+ border-color: #eeeeee #eeeeee #eeeeee #dddddd; >+} >+ >+.tabs-right > .nav-tabs .active > a, >+.tabs-right > .nav-tabs .active > a:hover, >+.tabs-right > .nav-tabs .active > a:focus { >+ border-color: #ddd #ddd #ddd transparent; >+ *border-left-color: #ffffff; >+} >+ >+.nav > .disabled > a { >+ color: #999999; >+} >+ >+.nav > .disabled > a:hover, >+.nav > .disabled > a:focus { >+ text-decoration: none; >+ cursor: default; >+ background-color: transparent; >+} >+ >+.navbar { >+ *position: relative; >+ *z-index: 2; >+ margin-bottom: 20px; >+ overflow: visible; >+} >+ >+.navbar-inner { >+ min-height: 40px; >+ padding-right: 20px; >+ padding-left: 20px; >+ background-color: #fafafa; >+ background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); >+ background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); >+ background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); >+ background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); >+ background-repeat: repeat-x; >+ border: 1px solid #d4d4d4; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); >+ *zoom: 1; >+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); >+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); >+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); >+} >+ >+.navbar-inner:before, >+.navbar-inner:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.navbar-inner:after { >+ clear: both; >+} >+ >+.navbar .container { >+ width: auto; >+} >+ >+.nav-collapse.collapse { >+ height: auto; >+ overflow: visible; >+} >+ >+.navbar .brand { >+ display: block; >+ float: left; >+ padding: 10px 20px 10px; >+ margin-left: -20px; >+ font-size: 20px; >+ font-weight: 200; >+ color: #777777; >+ text-shadow: 0 1px 0 #ffffff; >+} >+ >+.navbar .brand:hover, >+.navbar .brand:focus { >+ text-decoration: none; >+} >+ >+.navbar-text { >+ margin-bottom: 0; >+ line-height: 40px; >+ color: #777777; >+} >+ >+.navbar-link { >+ color: #777777; >+} >+ >+.navbar-link:hover, >+.navbar-link:focus { >+ color: #333333; >+} >+ >+.navbar .divider-vertical { >+ height: 40px; >+ margin: 0 9px; >+ border-right: 1px solid #ffffff; >+ border-left: 1px solid #f2f2f2; >+} >+ >+.navbar .btn, >+.navbar .btn-group { >+ margin-top: 5px; >+} >+ >+.navbar .btn-group .btn, >+.navbar .input-prepend .btn, >+.navbar .input-append .btn, >+.navbar .input-prepend .btn-group, >+.navbar .input-append .btn-group { >+ margin-top: 0; >+} >+ >+.navbar-form { >+ margin-bottom: 0; >+ *zoom: 1; >+} >+ >+.navbar-form:before, >+.navbar-form:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.navbar-form:after { >+ clear: both; >+} >+ >+.navbar-form input, >+.navbar-form select, >+.navbar-form .radio, >+.navbar-form .checkbox { >+ margin-top: 5px; >+} >+ >+.navbar-form input, >+.navbar-form select, >+.navbar-form .btn { >+ display: inline-block; >+ margin-bottom: 0; >+} >+ >+.navbar-form input[type="image"], >+.navbar-form input[type="checkbox"], >+.navbar-form input[type="radio"] { >+ margin-top: 3px; >+} >+ >+.navbar-form .input-append, >+.navbar-form .input-prepend { >+ margin-top: 5px; >+ white-space: nowrap; >+} >+ >+.navbar-form .input-append input, >+.navbar-form .input-prepend input { >+ margin-top: 0; >+} >+ >+.navbar-search { >+ position: relative; >+ float: left; >+ margin-top: 5px; >+ margin-bottom: 0; >+} >+ >+.navbar-search .search-query { >+ padding: 4px 14px; >+ margin-bottom: 0; >+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; >+ font-size: 13px; >+ font-weight: normal; >+ line-height: 1; >+ -webkit-border-radius: 15px; >+ -moz-border-radius: 15px; >+ border-radius: 15px; >+} >+ >+.navbar-static-top { >+ position: static; >+ margin-bottom: 0; >+} >+ >+.navbar-static-top .navbar-inner { >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.navbar-fixed-top, >+.navbar-fixed-bottom { >+ position: fixed; >+ right: 0; >+ left: 0; >+ z-index: 1030; >+ margin-bottom: 0; >+} >+ >+.navbar-fixed-top .navbar-inner, >+.navbar-static-top .navbar-inner { >+ border-width: 0 0 1px; >+} >+ >+.navbar-fixed-bottom .navbar-inner { >+ border-width: 1px 0 0; >+} >+ >+.navbar-fixed-top .navbar-inner, >+.navbar-fixed-bottom .navbar-inner { >+ padding-right: 0; >+ padding-left: 0; >+ -webkit-border-radius: 0; >+ -moz-border-radius: 0; >+ border-radius: 0; >+} >+ >+.navbar-static-top .container, >+.navbar-fixed-top .container, >+.navbar-fixed-bottom .container { >+ width: 940px; >+} >+ >+.navbar-fixed-top { >+ top: 0; >+} >+ >+.navbar-fixed-top .navbar-inner, >+.navbar-static-top .navbar-inner { >+ -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); >+ -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); >+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); >+} >+ >+.navbar-fixed-bottom { >+ bottom: 0; >+} >+ >+.navbar-fixed-bottom .navbar-inner { >+ -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); >+ -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); >+ box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); >+} >+ >+.navbar .nav { >+ position: relative; >+ left: 0; >+ display: block; >+ float: left; >+ margin: 0 10px 0 0; >+} >+ >+.navbar .nav.pull-right { >+ float: right; >+ margin-right: 0; >+} >+ >+.navbar .nav > li { >+ float: left; >+} >+ >+.navbar .nav > li > a { >+ float: none; >+ padding: 10px 15px 10px; >+ color: #777777; >+ text-decoration: none; >+ text-shadow: 0 1px 0 #ffffff; >+} >+ >+.navbar .nav .dropdown-toggle .caret { >+ margin-top: 8px; >+} >+ >+.navbar .nav > li > a:focus, >+.navbar .nav > li > a:hover { >+ color: #333333; >+ text-decoration: none; >+ background-color: transparent; >+} >+ >+.navbar .nav > .active > a, >+.navbar .nav > .active > a:hover, >+.navbar .nav > .active > a:focus { >+ color: #555555; >+ text-decoration: none; >+ background-color: #e5e5e5; >+ -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); >+ -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); >+ box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); >+} >+ >+.navbar .btn-navbar { >+ display: none; >+ float: right; >+ padding: 7px 10px; >+ margin-right: 5px; >+ margin-left: 5px; >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #ededed; >+ *background-color: #e5e5e5; >+ background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); >+ background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); >+ background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); >+ background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); >+ background-repeat: repeat-x; >+ border-color: #e5e5e5 #e5e5e5 #bfbfbf; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); >+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); >+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); >+} >+ >+.navbar .btn-navbar:hover, >+.navbar .btn-navbar:focus, >+.navbar .btn-navbar:active, >+.navbar .btn-navbar.active, >+.navbar .btn-navbar.disabled, >+.navbar .btn-navbar[disabled] { >+ color: #ffffff; >+ background-color: #e5e5e5; >+ *background-color: #d9d9d9; >+} >+ >+.navbar .btn-navbar:active, >+.navbar .btn-navbar.active { >+ background-color: #cccccc \9; >+} >+ >+.navbar .btn-navbar .icon-bar { >+ display: block; >+ width: 18px; >+ height: 2px; >+ background-color: #f5f5f5; >+ -webkit-border-radius: 1px; >+ -moz-border-radius: 1px; >+ border-radius: 1px; >+ -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); >+ -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); >+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); >+} >+ >+.btn-navbar .icon-bar + .icon-bar { >+ margin-top: 3px; >+} >+ >+.navbar .nav > li > .dropdown-menu:before { >+ position: absolute; >+ top: -7px; >+ left: 9px; >+ display: inline-block; >+ border-right: 7px solid transparent; >+ border-bottom: 7px solid #ccc; >+ border-left: 7px solid transparent; >+ border-bottom-color: rgba(0, 0, 0, 0.2); >+ content: ''; >+} >+ >+.navbar .nav > li > .dropdown-menu:after { >+ position: absolute; >+ top: -6px; >+ left: 10px; >+ display: inline-block; >+ border-right: 6px solid transparent; >+ border-bottom: 6px solid #ffffff; >+ border-left: 6px solid transparent; >+ content: ''; >+} >+ >+.navbar-fixed-bottom .nav > li > .dropdown-menu:before { >+ top: auto; >+ bottom: -7px; >+ border-top: 7px solid #ccc; >+ border-bottom: 0; >+ border-top-color: rgba(0, 0, 0, 0.2); >+} >+ >+.navbar-fixed-bottom .nav > li > .dropdown-menu:after { >+ top: auto; >+ bottom: -6px; >+ border-top: 6px solid #ffffff; >+ border-bottom: 0; >+} >+ >+.navbar .nav li.dropdown > a:hover .caret, >+.navbar .nav li.dropdown > a:focus .caret { >+ border-top-color: #333333; >+ border-bottom-color: #333333; >+} >+ >+.navbar .nav li.dropdown.open > .dropdown-toggle, >+.navbar .nav li.dropdown.active > .dropdown-toggle, >+.navbar .nav li.dropdown.open.active > .dropdown-toggle { >+ color: #555555; >+ background-color: #e5e5e5; >+} >+ >+.navbar .nav li.dropdown > .dropdown-toggle .caret { >+ border-top-color: #777777; >+ border-bottom-color: #777777; >+} >+ >+.navbar .nav li.dropdown.open > .dropdown-toggle .caret, >+.navbar .nav li.dropdown.active > .dropdown-toggle .caret, >+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { >+ border-top-color: #555555; >+ border-bottom-color: #555555; >+} >+ >+.navbar .pull-right > li > .dropdown-menu, >+.navbar .nav > li > .dropdown-menu.pull-right { >+ right: 0; >+ left: auto; >+} >+ >+.navbar .pull-right > li > .dropdown-menu:before, >+.navbar .nav > li > .dropdown-menu.pull-right:before { >+ right: 12px; >+ left: auto; >+} >+ >+.navbar .pull-right > li > .dropdown-menu:after, >+.navbar .nav > li > .dropdown-menu.pull-right:after { >+ right: 13px; >+ left: auto; >+} >+ >+.navbar .pull-right > li > .dropdown-menu .dropdown-menu, >+.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { >+ right: 100%; >+ left: auto; >+ margin-right: -1px; >+ margin-left: 0; >+ -webkit-border-radius: 6px 0 6px 6px; >+ -moz-border-radius: 6px 0 6px 6px; >+ border-radius: 6px 0 6px 6px; >+} >+ >+.navbar-inverse .navbar-inner { >+ background-color: #1b1b1b; >+ background-image: -moz-linear-gradient(top, #222222, #111111); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); >+ background-image: -webkit-linear-gradient(top, #222222, #111111); >+ background-image: -o-linear-gradient(top, #222222, #111111); >+ background-image: linear-gradient(to bottom, #222222, #111111); >+ background-repeat: repeat-x; >+ border-color: #252525; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); >+} >+ >+.navbar-inverse .brand, >+.navbar-inverse .nav > li > a { >+ color: #999999; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+} >+ >+.navbar-inverse .brand:hover, >+.navbar-inverse .nav > li > a:hover, >+.navbar-inverse .brand:focus, >+.navbar-inverse .nav > li > a:focus { >+ color: #ffffff; >+} >+ >+.navbar-inverse .brand { >+ color: #999999; >+} >+ >+.navbar-inverse .navbar-text { >+ color: #999999; >+} >+ >+.navbar-inverse .nav > li > a:focus, >+.navbar-inverse .nav > li > a:hover { >+ color: #ffffff; >+ background-color: transparent; >+} >+ >+.navbar-inverse .nav .active > a, >+.navbar-inverse .nav .active > a:hover, >+.navbar-inverse .nav .active > a:focus { >+ color: #ffffff; >+ background-color: #111111; >+} >+ >+.navbar-inverse .navbar-link { >+ color: #999999; >+} >+ >+.navbar-inverse .navbar-link:hover, >+.navbar-inverse .navbar-link:focus { >+ color: #ffffff; >+} >+ >+.navbar-inverse .divider-vertical { >+ border-right-color: #222222; >+ border-left-color: #111111; >+} >+ >+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, >+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, >+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { >+ color: #ffffff; >+ background-color: #111111; >+} >+ >+.navbar-inverse .nav li.dropdown > a:hover .caret, >+.navbar-inverse .nav li.dropdown > a:focus .caret { >+ border-top-color: #ffffff; >+ border-bottom-color: #ffffff; >+} >+ >+.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { >+ border-top-color: #999999; >+ border-bottom-color: #999999; >+} >+ >+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, >+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, >+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { >+ border-top-color: #ffffff; >+ border-bottom-color: #ffffff; >+} >+ >+.navbar-inverse .navbar-search .search-query { >+ color: #ffffff; >+ background-color: #515151; >+ border-color: #111111; >+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); >+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); >+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); >+ -webkit-transition: none; >+ -moz-transition: none; >+ -o-transition: none; >+ transition: none; >+} >+ >+.navbar-inverse .navbar-search .search-query:-moz-placeholder { >+ color: #cccccc; >+} >+ >+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { >+ color: #cccccc; >+} >+ >+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { >+ color: #cccccc; >+} >+ >+.navbar-inverse .navbar-search .search-query:focus, >+.navbar-inverse .navbar-search .search-query.focused { >+ padding: 5px 15px; >+ color: #333333; >+ text-shadow: 0 1px 0 #ffffff; >+ background-color: #ffffff; >+ border: 0; >+ outline: 0; >+ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); >+ -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); >+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); >+} >+ >+.navbar-inverse .btn-navbar { >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #0e0e0e; >+ *background-color: #040404; >+ background-image: -moz-linear-gradient(top, #151515, #040404); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); >+ background-image: -webkit-linear-gradient(top, #151515, #040404); >+ background-image: -o-linear-gradient(top, #151515, #040404); >+ background-image: linear-gradient(to bottom, #151515, #040404); >+ background-repeat: repeat-x; >+ border-color: #040404 #040404 #000000; >+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); >+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); >+} >+ >+.navbar-inverse .btn-navbar:hover, >+.navbar-inverse .btn-navbar:focus, >+.navbar-inverse .btn-navbar:active, >+.navbar-inverse .btn-navbar.active, >+.navbar-inverse .btn-navbar.disabled, >+.navbar-inverse .btn-navbar[disabled] { >+ color: #ffffff; >+ background-color: #040404; >+ *background-color: #000000; >+} >+ >+.navbar-inverse .btn-navbar:active, >+.navbar-inverse .btn-navbar.active { >+ background-color: #000000 \9; >+} >+ >+.breadcrumb { >+ padding: 8px 15px; >+ margin: 0 0 20px; >+ list-style: none; >+ background-color: #f5f5f5; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.breadcrumb > li { >+ display: inline-block; >+ *display: inline; >+ text-shadow: 0 1px 0 #ffffff; >+ *zoom: 1; >+} >+ >+.breadcrumb > li > .divider { >+ padding: 0 5px; >+ color: #ccc; >+} >+ >+.breadcrumb > .active { >+ color: #999999; >+} >+ >+.pagination { >+ margin: 20px 0; >+} >+ >+.pagination ul { >+ display: inline-block; >+ *display: inline; >+ margin-bottom: 0; >+ margin-left: 0; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ *zoom: 1; >+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); >+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); >+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); >+} >+ >+.pagination ul > li { >+ display: inline; >+} >+ >+.pagination ul > li > a, >+.pagination ul > li > span { >+ float: left; >+ padding: 4px 12px; >+ line-height: 20px; >+ text-decoration: none; >+ background-color: #ffffff; >+ border: 1px solid #dddddd; >+ border-left-width: 0; >+} >+ >+.pagination ul > li > a:hover, >+.pagination ul > li > a:focus, >+.pagination ul > .active > a, >+.pagination ul > .active > span { >+ background-color: #f5f5f5; >+} >+ >+.pagination ul > .active > a, >+.pagination ul > .active > span { >+ color: #999999; >+ cursor: default; >+} >+ >+.pagination ul > .disabled > span, >+.pagination ul > .disabled > a, >+.pagination ul > .disabled > a:hover, >+.pagination ul > .disabled > a:focus { >+ color: #999999; >+ cursor: default; >+ background-color: transparent; >+} >+ >+.pagination ul > li:first-child > a, >+.pagination ul > li:first-child > span { >+ border-left-width: 1px; >+ -webkit-border-bottom-left-radius: 4px; >+ border-bottom-left-radius: 4px; >+ -webkit-border-top-left-radius: 4px; >+ border-top-left-radius: 4px; >+ -moz-border-radius-bottomleft: 4px; >+ -moz-border-radius-topleft: 4px; >+} >+ >+.pagination ul > li:last-child > a, >+.pagination ul > li:last-child > span { >+ -webkit-border-top-right-radius: 4px; >+ border-top-right-radius: 4px; >+ -webkit-border-bottom-right-radius: 4px; >+ border-bottom-right-radius: 4px; >+ -moz-border-radius-topright: 4px; >+ -moz-border-radius-bottomright: 4px; >+} >+ >+.pagination-centered { >+ text-align: center; >+} >+ >+.pagination-right { >+ text-align: right; >+} >+ >+.pagination-large ul > li > a, >+.pagination-large ul > li > span { >+ padding: 11px 19px; >+ font-size: 17.5px; >+} >+ >+.pagination-large ul > li:first-child > a, >+.pagination-large ul > li:first-child > span { >+ -webkit-border-bottom-left-radius: 6px; >+ border-bottom-left-radius: 6px; >+ -webkit-border-top-left-radius: 6px; >+ border-top-left-radius: 6px; >+ -moz-border-radius-bottomleft: 6px; >+ -moz-border-radius-topleft: 6px; >+} >+ >+.pagination-large ul > li:last-child > a, >+.pagination-large ul > li:last-child > span { >+ -webkit-border-top-right-radius: 6px; >+ border-top-right-radius: 6px; >+ -webkit-border-bottom-right-radius: 6px; >+ border-bottom-right-radius: 6px; >+ -moz-border-radius-topright: 6px; >+ -moz-border-radius-bottomright: 6px; >+} >+ >+.pagination-mini ul > li:first-child > a, >+.pagination-small ul > li:first-child > a, >+.pagination-mini ul > li:first-child > span, >+.pagination-small ul > li:first-child > span { >+ -webkit-border-bottom-left-radius: 3px; >+ border-bottom-left-radius: 3px; >+ -webkit-border-top-left-radius: 3px; >+ border-top-left-radius: 3px; >+ -moz-border-radius-bottomleft: 3px; >+ -moz-border-radius-topleft: 3px; >+} >+ >+.pagination-mini ul > li:last-child > a, >+.pagination-small ul > li:last-child > a, >+.pagination-mini ul > li:last-child > span, >+.pagination-small ul > li:last-child > span { >+ -webkit-border-top-right-radius: 3px; >+ border-top-right-radius: 3px; >+ -webkit-border-bottom-right-radius: 3px; >+ border-bottom-right-radius: 3px; >+ -moz-border-radius-topright: 3px; >+ -moz-border-radius-bottomright: 3px; >+} >+ >+.pagination-small ul > li > a, >+.pagination-small ul > li > span { >+ padding: 2px 10px; >+ font-size: 11.9px; >+} >+ >+.pagination-mini ul > li > a, >+.pagination-mini ul > li > span { >+ padding: 0 6px; >+ font-size: 10.5px; >+} >+ >+.pager { >+ margin: 20px 0; >+ text-align: center; >+ list-style: none; >+ *zoom: 1; >+} >+ >+.pager:before, >+.pager:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.pager:after { >+ clear: both; >+} >+ >+.pager li { >+ display: inline; >+} >+ >+.pager li > a, >+.pager li > span { >+ display: inline-block; >+ padding: 5px 14px; >+ background-color: #fff; >+ border: 1px solid #ddd; >+ -webkit-border-radius: 15px; >+ -moz-border-radius: 15px; >+ border-radius: 15px; >+} >+ >+.pager li > a:hover, >+.pager li > a:focus { >+ text-decoration: none; >+ background-color: #f5f5f5; >+} >+ >+.pager .next > a, >+.pager .next > span { >+ float: right; >+} >+ >+.pager .previous > a, >+.pager .previous > span { >+ float: left; >+} >+ >+.pager .disabled > a, >+.pager .disabled > a:hover, >+.pager .disabled > a:focus, >+.pager .disabled > span { >+ color: #999999; >+ cursor: default; >+ background-color: #fff; >+} >+ >+.modal-backdrop { >+ position: fixed; >+ top: 0; >+ right: 0; >+ bottom: 0; >+ left: 0; >+ z-index: 1040; >+ background-color: #000000; >+} >+ >+.modal-backdrop.fade { >+ opacity: 0; >+} >+ >+.modal-backdrop, >+.modal-backdrop.fade.in { >+ opacity: 0.8; >+ filter: alpha(opacity=80); >+} >+ >+.modal { >+ position: fixed; >+ top: 10%; >+ left: 50%; >+ z-index: 1050; >+ width: 560px; >+ margin-left: -280px; >+ background-color: #ffffff; >+ border: 1px solid #999; >+ border: 1px solid rgba(0, 0, 0, 0.3); >+ *border: 1px solid #999; >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+ outline: none; >+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); >+ -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); >+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); >+ -webkit-background-clip: padding-box; >+ -moz-background-clip: padding-box; >+ background-clip: padding-box; >+} >+ >+.modal.fade { >+ top: -25%; >+ -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; >+ -moz-transition: opacity 0.3s linear, top 0.3s ease-out; >+ -o-transition: opacity 0.3s linear, top 0.3s ease-out; >+ transition: opacity 0.3s linear, top 0.3s ease-out; >+} >+ >+.modal.fade.in { >+ top: 10%; >+} >+ >+.modal-header { >+ padding: 9px 15px; >+ border-bottom: 1px solid #eee; >+} >+ >+.modal-header .close { >+ margin-top: 2px; >+} >+ >+.modal-header h3 { >+ margin: 0; >+ line-height: 30px; >+} >+ >+.modal-body { >+ position: relative; >+ max-height: 400px; >+ padding: 15px; >+ overflow-y: auto; >+} >+ >+.modal-form { >+ margin-bottom: 0; >+} >+ >+.modal-footer { >+ padding: 14px 15px 15px; >+ margin-bottom: 0; >+ text-align: right; >+ background-color: #f5f5f5; >+ border-top: 1px solid #ddd; >+ -webkit-border-radius: 0 0 6px 6px; >+ -moz-border-radius: 0 0 6px 6px; >+ border-radius: 0 0 6px 6px; >+ *zoom: 1; >+ -webkit-box-shadow: inset 0 1px 0 #ffffff; >+ -moz-box-shadow: inset 0 1px 0 #ffffff; >+ box-shadow: inset 0 1px 0 #ffffff; >+} >+ >+.modal-footer:before, >+.modal-footer:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.modal-footer:after { >+ clear: both; >+} >+ >+.modal-footer .btn + .btn { >+ margin-bottom: 0; >+ margin-left: 5px; >+} >+ >+.modal-footer .btn-group .btn + .btn { >+ margin-left: -1px; >+} >+ >+.modal-footer .btn-block + .btn-block { >+ margin-left: 0; >+} >+ >+.tooltip { >+ position: absolute; >+ z-index: 1030; >+ display: block; >+ font-size: 11px; >+ line-height: 1.4; >+ opacity: 0; >+ filter: alpha(opacity=0); >+ visibility: visible; >+} >+ >+.tooltip.in { >+ opacity: 0.8; >+ filter: alpha(opacity=80); >+} >+ >+.tooltip.top { >+ padding: 5px 0; >+ margin-top: -3px; >+} >+ >+.tooltip.right { >+ padding: 0 5px; >+ margin-left: 3px; >+} >+ >+.tooltip.bottom { >+ padding: 5px 0; >+ margin-top: 3px; >+} >+ >+.tooltip.left { >+ padding: 0 5px; >+ margin-left: -3px; >+} >+ >+.tooltip-inner { >+ max-width: 200px; >+ padding: 8px; >+ color: #ffffff; >+ text-align: center; >+ text-decoration: none; >+ background-color: #000000; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.tooltip-arrow { >+ position: absolute; >+ width: 0; >+ height: 0; >+ border-color: transparent; >+ border-style: solid; >+} >+ >+.tooltip.top .tooltip-arrow { >+ bottom: 0; >+ left: 50%; >+ margin-left: -5px; >+ border-top-color: #000000; >+ border-width: 5px 5px 0; >+} >+ >+.tooltip.right .tooltip-arrow { >+ top: 50%; >+ left: 0; >+ margin-top: -5px; >+ border-right-color: #000000; >+ border-width: 5px 5px 5px 0; >+} >+ >+.tooltip.left .tooltip-arrow { >+ top: 50%; >+ right: 0; >+ margin-top: -5px; >+ border-left-color: #000000; >+ border-width: 5px 0 5px 5px; >+} >+ >+.tooltip.bottom .tooltip-arrow { >+ top: 0; >+ left: 50%; >+ margin-left: -5px; >+ border-bottom-color: #000000; >+ border-width: 0 5px 5px; >+} >+ >+.popover { >+ position: absolute; >+ top: 0; >+ left: 0; >+ z-index: 1010; >+ display: none; >+ max-width: 276px; >+ padding: 1px; >+ text-align: left; >+ white-space: normal; >+ background-color: #ffffff; >+ border: 1px solid #ccc; >+ border: 1px solid rgba(0, 0, 0, 0.2); >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); >+ -webkit-background-clip: padding-box; >+ -moz-background-clip: padding; >+ background-clip: padding-box; >+} >+ >+.popover.top { >+ margin-top: -10px; >+} >+ >+.popover.right { >+ margin-left: 10px; >+} >+ >+.popover.bottom { >+ margin-top: 10px; >+} >+ >+.popover.left { >+ margin-left: -10px; >+} >+ >+.popover-title { >+ padding: 8px 14px; >+ margin: 0; >+ font-size: 14px; >+ font-weight: normal; >+ line-height: 18px; >+ background-color: #f7f7f7; >+ border-bottom: 1px solid #ebebeb; >+ -webkit-border-radius: 5px 5px 0 0; >+ -moz-border-radius: 5px 5px 0 0; >+ border-radius: 5px 5px 0 0; >+} >+ >+.popover-title:empty { >+ display: none; >+} >+ >+.popover-content { >+ padding: 9px 14px; >+} >+ >+.popover .arrow, >+.popover .arrow:after { >+ position: absolute; >+ display: block; >+ width: 0; >+ height: 0; >+ border-color: transparent; >+ border-style: solid; >+} >+ >+.popover .arrow { >+ border-width: 11px; >+} >+ >+.popover .arrow:after { >+ border-width: 10px; >+ content: ""; >+} >+ >+.popover.top .arrow { >+ bottom: -11px; >+ left: 50%; >+ margin-left: -11px; >+ border-top-color: #999; >+ border-top-color: rgba(0, 0, 0, 0.25); >+ border-bottom-width: 0; >+} >+ >+.popover.top .arrow:after { >+ bottom: 1px; >+ margin-left: -10px; >+ border-top-color: #ffffff; >+ border-bottom-width: 0; >+} >+ >+.popover.right .arrow { >+ top: 50%; >+ left: -11px; >+ margin-top: -11px; >+ border-right-color: #999; >+ border-right-color: rgba(0, 0, 0, 0.25); >+ border-left-width: 0; >+} >+ >+.popover.right .arrow:after { >+ bottom: -10px; >+ left: 1px; >+ border-right-color: #ffffff; >+ border-left-width: 0; >+} >+ >+.popover.bottom .arrow { >+ top: -11px; >+ left: 50%; >+ margin-left: -11px; >+ border-bottom-color: #999; >+ border-bottom-color: rgba(0, 0, 0, 0.25); >+ border-top-width: 0; >+} >+ >+.popover.bottom .arrow:after { >+ top: 1px; >+ margin-left: -10px; >+ border-bottom-color: #ffffff; >+ border-top-width: 0; >+} >+ >+.popover.left .arrow { >+ top: 50%; >+ right: -11px; >+ margin-top: -11px; >+ border-left-color: #999; >+ border-left-color: rgba(0, 0, 0, 0.25); >+ border-right-width: 0; >+} >+ >+.popover.left .arrow:after { >+ right: 1px; >+ bottom: -10px; >+ border-left-color: #ffffff; >+ border-right-width: 0; >+} >+ >+.thumbnails { >+ margin-left: -20px; >+ list-style: none; >+ *zoom: 1; >+} >+ >+.thumbnails:before, >+.thumbnails:after { >+ display: table; >+ line-height: 0; >+ content: ""; >+} >+ >+.thumbnails:after { >+ clear: both; >+} >+ >+.row-fluid .thumbnails { >+ margin-left: 0; >+} >+ >+.thumbnails > li { >+ float: left; >+ margin-bottom: 20px; >+ margin-left: 20px; >+} >+ >+.thumbnail { >+ display: block; >+ padding: 4px; >+ line-height: 20px; >+ border: 1px solid #ddd; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); >+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); >+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); >+ -webkit-transition: all 0.2s ease-in-out; >+ -moz-transition: all 0.2s ease-in-out; >+ -o-transition: all 0.2s ease-in-out; >+ transition: all 0.2s ease-in-out; >+} >+ >+a.thumbnail:hover, >+a.thumbnail:focus { >+ border-color: #0088cc; >+ -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); >+ -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); >+ box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); >+} >+ >+.thumbnail > img { >+ display: block; >+ max-width: 100%; >+ margin-right: auto; >+ margin-left: auto; >+} >+ >+.thumbnail .caption { >+ padding: 9px; >+ color: #555555; >+} >+ >+.media, >+.media-body { >+ overflow: hidden; >+ *overflow: visible; >+ zoom: 1; >+} >+ >+.media, >+.media .media { >+ margin-top: 15px; >+} >+ >+.media:first-child { >+ margin-top: 0; >+} >+ >+.media-object { >+ display: block; >+} >+ >+.media-heading { >+ margin: 0 0 5px; >+} >+ >+.media > .pull-left { >+ margin-right: 10px; >+} >+ >+.media > .pull-right { >+ margin-left: 10px; >+} >+ >+.media-list { >+ margin-left: 0; >+ list-style: none; >+} >+ >+.label, >+.badge { >+ display: inline-block; >+ padding: 2px 4px; >+ font-size: 11.844px; >+ font-weight: bold; >+ line-height: 14px; >+ color: #ffffff; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ white-space: nowrap; >+ vertical-align: baseline; >+ background-color: #999999; >+} >+ >+.label { >+ -webkit-border-radius: 3px; >+ -moz-border-radius: 3px; >+ border-radius: 3px; >+} >+ >+.badge { >+ padding-right: 9px; >+ padding-left: 9px; >+ -webkit-border-radius: 9px; >+ -moz-border-radius: 9px; >+ border-radius: 9px; >+} >+ >+.label:empty, >+.badge:empty { >+ display: none; >+} >+ >+a.label:hover, >+a.label:focus, >+a.badge:hover, >+a.badge:focus { >+ color: #ffffff; >+ text-decoration: none; >+ cursor: pointer; >+} >+ >+.label-important, >+.badge-important { >+ background-color: #b94a48; >+} >+ >+.label-important[href], >+.badge-important[href] { >+ background-color: #953b39; >+} >+ >+.label-warning, >+.badge-warning { >+ background-color: #f89406; >+} >+ >+.label-warning[href], >+.badge-warning[href] { >+ background-color: #c67605; >+} >+ >+.label-success, >+.badge-success { >+ background-color: #468847; >+} >+ >+.label-success[href], >+.badge-success[href] { >+ background-color: #356635; >+} >+ >+.label-info, >+.badge-info { >+ background-color: #3a87ad; >+} >+ >+.label-info[href], >+.badge-info[href] { >+ background-color: #2d6987; >+} >+ >+.label-inverse, >+.badge-inverse { >+ background-color: #333333; >+} >+ >+.label-inverse[href], >+.badge-inverse[href] { >+ background-color: #1a1a1a; >+} >+ >+.btn .label, >+.btn .badge { >+ position: relative; >+ top: -1px; >+} >+ >+.btn-mini .label, >+.btn-mini .badge { >+ top: 0; >+} >+ >+@-webkit-keyframes progress-bar-stripes { >+ from { >+ background-position: 40px 0; >+ } >+ to { >+ background-position: 0 0; >+ } >+} >+ >+@-moz-keyframes progress-bar-stripes { >+ from { >+ background-position: 40px 0; >+ } >+ to { >+ background-position: 0 0; >+ } >+} >+ >+@-ms-keyframes progress-bar-stripes { >+ from { >+ background-position: 40px 0; >+ } >+ to { >+ background-position: 0 0; >+ } >+} >+ >+@-o-keyframes progress-bar-stripes { >+ from { >+ background-position: 0 0; >+ } >+ to { >+ background-position: 40px 0; >+ } >+} >+ >+@keyframes progress-bar-stripes { >+ from { >+ background-position: 40px 0; >+ } >+ to { >+ background-position: 0 0; >+ } >+} >+ >+.progress { >+ height: 20px; >+ margin-bottom: 20px; >+ overflow: hidden; >+ background-color: #f7f7f7; >+ background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); >+ background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); >+ background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); >+ background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); >+ background-repeat: repeat-x; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); >+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); >+ -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); >+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); >+} >+ >+.progress .bar { >+ float: left; >+ width: 0; >+ height: 100%; >+ font-size: 12px; >+ color: #ffffff; >+ text-align: center; >+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); >+ background-color: #0e90d2; >+ background-image: -moz-linear-gradient(top, #149bdf, #0480be); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); >+ background-image: -webkit-linear-gradient(top, #149bdf, #0480be); >+ background-image: -o-linear-gradient(top, #149bdf, #0480be); >+ background-image: linear-gradient(to bottom, #149bdf, #0480be); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); >+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+ -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+ -webkit-box-sizing: border-box; >+ -moz-box-sizing: border-box; >+ box-sizing: border-box; >+ -webkit-transition: width 0.6s ease; >+ -moz-transition: width 0.6s ease; >+ -o-transition: width 0.6s ease; >+ transition: width 0.6s ease; >+} >+ >+.progress .bar + .bar { >+ -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+ -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+ box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); >+} >+ >+.progress-striped .bar { >+ background-color: #149bdf; >+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); >+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ -webkit-background-size: 40px 40px; >+ -moz-background-size: 40px 40px; >+ -o-background-size: 40px 40px; >+ background-size: 40px 40px; >+} >+ >+.progress.active .bar { >+ -webkit-animation: progress-bar-stripes 2s linear infinite; >+ -moz-animation: progress-bar-stripes 2s linear infinite; >+ -ms-animation: progress-bar-stripes 2s linear infinite; >+ -o-animation: progress-bar-stripes 2s linear infinite; >+ animation: progress-bar-stripes 2s linear infinite; >+} >+ >+.progress-danger .bar, >+.progress .bar-danger { >+ background-color: #dd514c; >+ background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); >+ background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); >+ background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); >+ background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); >+} >+ >+.progress-danger.progress-striped .bar, >+.progress-striped .bar-danger { >+ background-color: #ee5f5b; >+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); >+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+} >+ >+.progress-success .bar, >+.progress .bar-success { >+ background-color: #5eb95e; >+ background-image: -moz-linear-gradient(top, #62c462, #57a957); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); >+ background-image: -webkit-linear-gradient(top, #62c462, #57a957); >+ background-image: -o-linear-gradient(top, #62c462, #57a957); >+ background-image: linear-gradient(to bottom, #62c462, #57a957); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); >+} >+ >+.progress-success.progress-striped .bar, >+.progress-striped .bar-success { >+ background-color: #62c462; >+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); >+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+} >+ >+.progress-info .bar, >+.progress .bar-info { >+ background-color: #4bb1cf; >+ background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); >+ background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); >+ background-image: -o-linear-gradient(top, #5bc0de, #339bb9); >+ background-image: linear-gradient(to bottom, #5bc0de, #339bb9); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); >+} >+ >+.progress-info.progress-striped .bar, >+.progress-striped .bar-info { >+ background-color: #5bc0de; >+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); >+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+} >+ >+.progress-warning .bar, >+.progress .bar-warning { >+ background-color: #faa732; >+ background-image: -moz-linear-gradient(top, #fbb450, #f89406); >+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); >+ background-image: -webkit-linear-gradient(top, #fbb450, #f89406); >+ background-image: -o-linear-gradient(top, #fbb450, #f89406); >+ background-image: linear-gradient(to bottom, #fbb450, #f89406); >+ background-repeat: repeat-x; >+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); >+} >+ >+.progress-warning.progress-striped .bar, >+.progress-striped .bar-warning { >+ background-color: #fbb450; >+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); >+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); >+} >+ >+.accordion { >+ margin-bottom: 20px; >+} >+ >+.accordion-group { >+ margin-bottom: 2px; >+ border: 1px solid #e5e5e5; >+ -webkit-border-radius: 4px; >+ -moz-border-radius: 4px; >+ border-radius: 4px; >+} >+ >+.accordion-heading { >+ border-bottom: 0; >+} >+ >+.accordion-heading .accordion-toggle { >+ display: block; >+ padding: 8px 15px; >+} >+ >+.accordion-toggle { >+ cursor: pointer; >+} >+ >+.accordion-inner { >+ padding: 9px 15px; >+ border-top: 1px solid #e5e5e5; >+} >+ >+.carousel { >+ position: relative; >+ margin-bottom: 20px; >+ line-height: 1; >+} >+ >+.carousel-inner { >+ position: relative; >+ width: 100%; >+ overflow: hidden; >+} >+ >+.carousel-inner > .item { >+ position: relative; >+ display: none; >+ -webkit-transition: 0.6s ease-in-out left; >+ -moz-transition: 0.6s ease-in-out left; >+ -o-transition: 0.6s ease-in-out left; >+ transition: 0.6s ease-in-out left; >+} >+ >+.carousel-inner > .item > img, >+.carousel-inner > .item > a > img { >+ display: block; >+ line-height: 1; >+} >+ >+.carousel-inner > .active, >+.carousel-inner > .next, >+.carousel-inner > .prev { >+ display: block; >+} >+ >+.carousel-inner > .active { >+ left: 0; >+} >+ >+.carousel-inner > .next, >+.carousel-inner > .prev { >+ position: absolute; >+ top: 0; >+ width: 100%; >+} >+ >+.carousel-inner > .next { >+ left: 100%; >+} >+ >+.carousel-inner > .prev { >+ left: -100%; >+} >+ >+.carousel-inner > .next.left, >+.carousel-inner > .prev.right { >+ left: 0; >+} >+ >+.carousel-inner > .active.left { >+ left: -100%; >+} >+ >+.carousel-inner > .active.right { >+ left: 100%; >+} >+ >+.carousel-control { >+ position: absolute; >+ top: 40%; >+ left: 15px; >+ width: 40px; >+ height: 40px; >+ margin-top: -20px; >+ font-size: 60px; >+ font-weight: 100; >+ line-height: 30px; >+ color: #ffffff; >+ text-align: center; >+ background: #222222; >+ border: 3px solid #ffffff; >+ -webkit-border-radius: 23px; >+ -moz-border-radius: 23px; >+ border-radius: 23px; >+ opacity: 0.5; >+ filter: alpha(opacity=50); >+} >+ >+.carousel-control.right { >+ right: 15px; >+ left: auto; >+} >+ >+.carousel-control:hover, >+.carousel-control:focus { >+ color: #ffffff; >+ text-decoration: none; >+ opacity: 0.9; >+ filter: alpha(opacity=90); >+} >+ >+.carousel-indicators { >+ position: absolute; >+ top: 15px; >+ right: 15px; >+ z-index: 5; >+ margin: 0; >+ list-style: none; >+} >+ >+.carousel-indicators li { >+ display: block; >+ float: left; >+ width: 10px; >+ height: 10px; >+ margin-left: 5px; >+ text-indent: -999px; >+ background-color: #ccc; >+ background-color: rgba(255, 255, 255, 0.25); >+ border-radius: 5px; >+} >+ >+.carousel-indicators .active { >+ background-color: #fff; >+} >+ >+.carousel-caption { >+ position: absolute; >+ right: 0; >+ bottom: 0; >+ left: 0; >+ padding: 15px; >+ background: #333333; >+ background: rgba(0, 0, 0, 0.75); >+} >+ >+.carousel-caption h4, >+.carousel-caption p { >+ line-height: 20px; >+ color: #ffffff; >+} >+ >+.carousel-caption h4 { >+ margin: 0 0 5px; >+} >+ >+.carousel-caption p { >+ margin-bottom: 0; >+} >+ >+.hero-unit { >+ padding: 60px; >+ margin-bottom: 30px; >+ font-size: 18px; >+ font-weight: 200; >+ line-height: 30px; >+ color: inherit; >+ background-color: #eeeeee; >+ -webkit-border-radius: 6px; >+ -moz-border-radius: 6px; >+ border-radius: 6px; >+} >+ >+.hero-unit h1 { >+ margin-bottom: 0; >+ font-size: 60px; >+ line-height: 1; >+ letter-spacing: -1px; >+ color: inherit; >+} >+ >+.hero-unit li { >+ line-height: 30px; >+} >+ >+.pull-right { >+ float: right; >+} >+ >+.pull-left { >+ float: left; >+} >+ >+.hide { >+ display: none; >+} >+ >+.show { >+ display: block; >+} >+ >+.invisible { >+ visibility: hidden; >+} >+ >+.affix { >+ position: fixed; >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.min.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.min.css >new file mode 100644 >index 0000000..df96c86 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/css/bootstrap.min.css >@@ -0,0 +1,9 @@ >+/*! >+ * Bootstrap v2.3.2 >+ * >+ * Copyright 2013 Twitter, Inc >+ * Licensed under the Apache License v2.0 >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Designed and built with all the love in the world by @mdo and @fat. >+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.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:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings-white.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings-white.png >new file mode 100644 >index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae >GIT binary patch >literal 8777 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 >B7G?kd > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/img/glyphicons-halflings.png >new file mode 100644 >index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 >GIT binary patch >literal 12799 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 > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.js >new file mode 100644 >index 0000000..44109f6 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.js >@@ -0,0 +1,2280 @@ >+/* =================================================== >+ * bootstrap-transition.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#transitions >+ * =================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) >+ * ======================================================= */ >+ >+ $(function () { >+ >+ $.support.transition = (function () { >+ >+ var transitionEnd = (function () { >+ >+ var el = document.createElement('bootstrap') >+ , transEndEventNames = { >+ 'WebkitTransition' : 'webkitTransitionEnd' >+ , 'MozTransition' : 'transitionend' >+ , 'OTransition' : 'oTransitionEnd otransitionend' >+ , 'transition' : 'transitionend' >+ } >+ , name >+ >+ for (name in transEndEventNames){ >+ if (el.style[name] !== undefined) { >+ return transEndEventNames[name] >+ } >+ } >+ >+ }()) >+ >+ return transitionEnd && { >+ end: transitionEnd >+ } >+ >+ })() >+ >+ }) >+ >+}(window.jQuery);/* ========================================================== >+ * bootstrap-alert.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#alerts >+ * ========================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* ALERT CLASS DEFINITION >+ * ====================== */ >+ >+ var dismiss = '[data-dismiss="alert"]' >+ , Alert = function (el) { >+ $(el).on('click', dismiss, this.close) >+ } >+ >+ Alert.prototype.close = function (e) { >+ var $this = $(this) >+ , selector = $this.attr('data-target') >+ , $parent >+ >+ if (!selector) { >+ selector = $this.attr('href') >+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 >+ } >+ >+ $parent = $(selector) >+ >+ e && e.preventDefault() >+ >+ $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) >+ >+ $parent.trigger(e = $.Event('close')) >+ >+ if (e.isDefaultPrevented()) return >+ >+ $parent.removeClass('in') >+ >+ function removeElement() { >+ $parent >+ .trigger('closed') >+ .remove() >+ } >+ >+ $.support.transition && $parent.hasClass('fade') ? >+ $parent.on($.support.transition.end, removeElement) : >+ removeElement() >+ } >+ >+ >+ /* ALERT PLUGIN DEFINITION >+ * ======================= */ >+ >+ var old = $.fn.alert >+ >+ $.fn.alert = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('alert') >+ if (!data) $this.data('alert', (data = new Alert(this))) >+ if (typeof option == 'string') data[option].call($this) >+ }) >+ } >+ >+ $.fn.alert.Constructor = Alert >+ >+ >+ /* ALERT NO CONFLICT >+ * ================= */ >+ >+ $.fn.alert.noConflict = function () { >+ $.fn.alert = old >+ return this >+ } >+ >+ >+ /* ALERT DATA-API >+ * ============== */ >+ >+ $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) >+ >+}(window.jQuery);/* ============================================================ >+ * bootstrap-button.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#buttons >+ * ============================================================ >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ============================================================ */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* BUTTON PUBLIC CLASS DEFINITION >+ * ============================== */ >+ >+ var Button = function (element, options) { >+ this.$element = $(element) >+ this.options = $.extend({}, $.fn.button.defaults, options) >+ } >+ >+ Button.prototype.setState = function (state) { >+ var d = 'disabled' >+ , $el = this.$element >+ , data = $el.data() >+ , val = $el.is('input') ? 'val' : 'html' >+ >+ state = state + 'Text' >+ data.resetText || $el.data('resetText', $el[val]()) >+ >+ $el[val](data[state] || this.options[state]) >+ >+ // push to event loop to allow forms to submit >+ setTimeout(function () { >+ state == 'loadingText' ? >+ $el.addClass(d).attr(d, d) : >+ $el.removeClass(d).removeAttr(d) >+ }, 0) >+ } >+ >+ Button.prototype.toggle = function () { >+ var $parent = this.$element.closest('[data-toggle="buttons-radio"]') >+ >+ $parent && $parent >+ .find('.active') >+ .removeClass('active') >+ >+ this.$element.toggleClass('active') >+ } >+ >+ >+ /* BUTTON PLUGIN DEFINITION >+ * ======================== */ >+ >+ var old = $.fn.button >+ >+ $.fn.button = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('button') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('button', (data = new Button(this, options))) >+ if (option == 'toggle') data.toggle() >+ else if (option) data.setState(option) >+ }) >+ } >+ >+ $.fn.button.defaults = { >+ loadingText: 'loading...' >+ } >+ >+ $.fn.button.Constructor = Button >+ >+ >+ /* BUTTON NO CONFLICT >+ * ================== */ >+ >+ $.fn.button.noConflict = function () { >+ $.fn.button = old >+ return this >+ } >+ >+ >+ /* BUTTON DATA-API >+ * =============== */ >+ >+ $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { >+ var $btn = $(e.target) >+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') >+ $btn.button('toggle') >+ }) >+ >+}(window.jQuery);/* ========================================================== >+ * bootstrap-carousel.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#carousel >+ * ========================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* CAROUSEL CLASS DEFINITION >+ * ========================= */ >+ >+ var Carousel = function (element, options) { >+ this.$element = $(element) >+ this.$indicators = this.$element.find('.carousel-indicators') >+ this.options = options >+ this.options.pause == 'hover' && this.$element >+ .on('mouseenter', $.proxy(this.pause, this)) >+ .on('mouseleave', $.proxy(this.cycle, this)) >+ } >+ >+ Carousel.prototype = { >+ >+ cycle: function (e) { >+ if (!e) this.paused = false >+ if (this.interval) clearInterval(this.interval); >+ this.options.interval >+ && !this.paused >+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) >+ return this >+ } >+ >+ , getActiveIndex: function () { >+ this.$active = this.$element.find('.item.active') >+ this.$items = this.$active.parent().children() >+ return this.$items.index(this.$active) >+ } >+ >+ , to: function (pos) { >+ var activeIndex = this.getActiveIndex() >+ , that = this >+ >+ if (pos > (this.$items.length - 1) || pos < 0) return >+ >+ if (this.sliding) { >+ return this.$element.one('slid', function () { >+ that.to(pos) >+ }) >+ } >+ >+ if (activeIndex == pos) { >+ return this.pause().cycle() >+ } >+ >+ return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) >+ } >+ >+ , pause: function (e) { >+ if (!e) this.paused = true >+ if (this.$element.find('.next, .prev').length && $.support.transition.end) { >+ this.$element.trigger($.support.transition.end) >+ this.cycle(true) >+ } >+ clearInterval(this.interval) >+ this.interval = null >+ return this >+ } >+ >+ , next: function () { >+ if (this.sliding) return >+ return this.slide('next') >+ } >+ >+ , prev: function () { >+ if (this.sliding) return >+ return this.slide('prev') >+ } >+ >+ , slide: function (type, next) { >+ var $active = this.$element.find('.item.active') >+ , $next = next || $active[type]() >+ , isCycling = this.interval >+ , direction = type == 'next' ? 'left' : 'right' >+ , fallback = type == 'next' ? 'first' : 'last' >+ , that = this >+ , e >+ >+ this.sliding = true >+ >+ isCycling && this.pause() >+ >+ $next = $next.length ? $next : this.$element.find('.item')[fallback]() >+ >+ e = $.Event('slide', { >+ relatedTarget: $next[0] >+ , direction: direction >+ }) >+ >+ if ($next.hasClass('active')) return >+ >+ if (this.$indicators.length) { >+ this.$indicators.find('.active').removeClass('active') >+ this.$element.one('slid', function () { >+ var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) >+ $nextIndicator && $nextIndicator.addClass('active') >+ }) >+ } >+ >+ if ($.support.transition && this.$element.hasClass('slide')) { >+ this.$element.trigger(e) >+ if (e.isDefaultPrevented()) return >+ $next.addClass(type) >+ $next[0].offsetWidth // force reflow >+ $active.addClass(direction) >+ $next.addClass(direction) >+ this.$element.one($.support.transition.end, function () { >+ $next.removeClass([type, direction].join(' ')).addClass('active') >+ $active.removeClass(['active', direction].join(' ')) >+ that.sliding = false >+ setTimeout(function () { that.$element.trigger('slid') }, 0) >+ }) >+ } else { >+ this.$element.trigger(e) >+ if (e.isDefaultPrevented()) return >+ $active.removeClass('active') >+ $next.addClass('active') >+ this.sliding = false >+ this.$element.trigger('slid') >+ } >+ >+ isCycling && this.cycle() >+ >+ return this >+ } >+ >+ } >+ >+ >+ /* CAROUSEL PLUGIN DEFINITION >+ * ========================== */ >+ >+ var old = $.fn.carousel >+ >+ $.fn.carousel = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('carousel') >+ , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) >+ , action = typeof option == 'string' ? option : options.slide >+ if (!data) $this.data('carousel', (data = new Carousel(this, options))) >+ if (typeof option == 'number') data.to(option) >+ else if (action) data[action]() >+ else if (options.interval) data.pause().cycle() >+ }) >+ } >+ >+ $.fn.carousel.defaults = { >+ interval: 5000 >+ , pause: 'hover' >+ } >+ >+ $.fn.carousel.Constructor = Carousel >+ >+ >+ /* CAROUSEL NO CONFLICT >+ * ==================== */ >+ >+ $.fn.carousel.noConflict = function () { >+ $.fn.carousel = old >+ return this >+ } >+ >+ /* CAROUSEL DATA-API >+ * ================= */ >+ >+ $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { >+ var $this = $(this), href >+ , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 >+ , options = $.extend({}, $target.data(), $this.data()) >+ , slideIndex >+ >+ $target.carousel(options) >+ >+ if (slideIndex = $this.attr('data-slide-to')) { >+ $target.data('carousel').pause().to(slideIndex).cycle() >+ } >+ >+ e.preventDefault() >+ }) >+ >+}(window.jQuery);/* ============================================================= >+ * bootstrap-collapse.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#collapse >+ * ============================================================= >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ============================================================ */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* COLLAPSE PUBLIC CLASS DEFINITION >+ * ================================ */ >+ >+ var Collapse = function (element, options) { >+ this.$element = $(element) >+ this.options = $.extend({}, $.fn.collapse.defaults, options) >+ >+ if (this.options.parent) { >+ this.$parent = $(this.options.parent) >+ } >+ >+ this.options.toggle && this.toggle() >+ } >+ >+ Collapse.prototype = { >+ >+ constructor: Collapse >+ >+ , dimension: function () { >+ var hasWidth = this.$element.hasClass('width') >+ return hasWidth ? 'width' : 'height' >+ } >+ >+ , show: function () { >+ var dimension >+ , scroll >+ , actives >+ , hasData >+ >+ if (this.transitioning || this.$element.hasClass('in')) return >+ >+ dimension = this.dimension() >+ scroll = $.camelCase(['scroll', dimension].join('-')) >+ actives = this.$parent && this.$parent.find('> .accordion-group > .in') >+ >+ if (actives && actives.length) { >+ hasData = actives.data('collapse') >+ if (hasData && hasData.transitioning) return >+ actives.collapse('hide') >+ hasData || actives.data('collapse', null) >+ } >+ >+ this.$element[dimension](0) >+ this.transition('addClass', $.Event('show'), 'shown') >+ $.support.transition && this.$element[dimension](this.$element[0][scroll]) >+ } >+ >+ , hide: function () { >+ var dimension >+ if (this.transitioning || !this.$element.hasClass('in')) return >+ dimension = this.dimension() >+ this.reset(this.$element[dimension]()) >+ this.transition('removeClass', $.Event('hide'), 'hidden') >+ this.$element[dimension](0) >+ } >+ >+ , reset: function (size) { >+ var dimension = this.dimension() >+ >+ this.$element >+ .removeClass('collapse') >+ [dimension](size || 'auto') >+ [0].offsetWidth >+ >+ this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') >+ >+ return this >+ } >+ >+ , transition: function (method, startEvent, completeEvent) { >+ var that = this >+ , complete = function () { >+ if (startEvent.type == 'show') that.reset() >+ that.transitioning = 0 >+ that.$element.trigger(completeEvent) >+ } >+ >+ this.$element.trigger(startEvent) >+ >+ if (startEvent.isDefaultPrevented()) return >+ >+ this.transitioning = 1 >+ >+ this.$element[method]('in') >+ >+ $.support.transition && this.$element.hasClass('collapse') ? >+ this.$element.one($.support.transition.end, complete) : >+ complete() >+ } >+ >+ , toggle: function () { >+ this[this.$element.hasClass('in') ? 'hide' : 'show']() >+ } >+ >+ } >+ >+ >+ /* COLLAPSE PLUGIN DEFINITION >+ * ========================== */ >+ >+ var old = $.fn.collapse >+ >+ $.fn.collapse = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('collapse') >+ , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) >+ if (!data) $this.data('collapse', (data = new Collapse(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.collapse.defaults = { >+ toggle: true >+ } >+ >+ $.fn.collapse.Constructor = Collapse >+ >+ >+ /* COLLAPSE NO CONFLICT >+ * ==================== */ >+ >+ $.fn.collapse.noConflict = function () { >+ $.fn.collapse = old >+ return this >+ } >+ >+ >+ /* COLLAPSE DATA-API >+ * ================= */ >+ >+ $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { >+ var $this = $(this), href >+ , target = $this.attr('data-target') >+ || e.preventDefault() >+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 >+ , option = $(target).data('collapse') ? 'toggle' : $this.data() >+ $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') >+ $(target).collapse(option) >+ }) >+ >+}(window.jQuery);/* ============================================================ >+ * bootstrap-dropdown.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#dropdowns >+ * ============================================================ >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ============================================================ */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* DROPDOWN CLASS DEFINITION >+ * ========================= */ >+ >+ var toggle = '[data-toggle=dropdown]' >+ , Dropdown = function (element) { >+ var $el = $(element).on('click.dropdown.data-api', this.toggle) >+ $('html').on('click.dropdown.data-api', function () { >+ $el.parent().removeClass('open') >+ }) >+ } >+ >+ Dropdown.prototype = { >+ >+ constructor: Dropdown >+ >+ , toggle: function (e) { >+ var $this = $(this) >+ , $parent >+ , isActive >+ >+ if ($this.is('.disabled, :disabled')) return >+ >+ $parent = getParent($this) >+ >+ isActive = $parent.hasClass('open') >+ >+ clearMenus() >+ >+ if (!isActive) { >+ if ('ontouchstart' in document.documentElement) { >+ // if mobile we we use a backdrop because click events don't delegate >+ $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus) >+ } >+ $parent.toggleClass('open') >+ } >+ >+ $this.focus() >+ >+ return false >+ } >+ >+ , keydown: function (e) { >+ var $this >+ , $items >+ , $active >+ , $parent >+ , isActive >+ , index >+ >+ if (!/(38|40|27)/.test(e.keyCode)) return >+ >+ $this = $(this) >+ >+ e.preventDefault() >+ e.stopPropagation() >+ >+ if ($this.is('.disabled, :disabled')) return >+ >+ $parent = getParent($this) >+ >+ isActive = $parent.hasClass('open') >+ >+ if (!isActive || (isActive && e.keyCode == 27)) { >+ if (e.which == 27) $parent.find(toggle).focus() >+ return $this.click() >+ } >+ >+ $items = $('[role=menu] li:not(.divider):visible a', $parent) >+ >+ if (!$items.length) return >+ >+ index = $items.index($items.filter(':focus')) >+ >+ if (e.keyCode == 38 && index > 0) index-- // up >+ if (e.keyCode == 40 && index < $items.length - 1) index++ // down >+ if (!~index) index = 0 >+ >+ $items >+ .eq(index) >+ .focus() >+ } >+ >+ } >+ >+ function clearMenus() { >+ $('.dropdown-backdrop').remove() >+ $(toggle).each(function () { >+ getParent($(this)).removeClass('open') >+ }) >+ } >+ >+ function getParent($this) { >+ var selector = $this.attr('data-target') >+ , $parent >+ >+ if (!selector) { >+ selector = $this.attr('href') >+ selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 >+ } >+ >+ $parent = selector && $(selector) >+ >+ if (!$parent || !$parent.length) $parent = $this.parent() >+ >+ return $parent >+ } >+ >+ >+ /* DROPDOWN PLUGIN DEFINITION >+ * ========================== */ >+ >+ var old = $.fn.dropdown >+ >+ $.fn.dropdown = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('dropdown') >+ if (!data) $this.data('dropdown', (data = new Dropdown(this))) >+ if (typeof option == 'string') data[option].call($this) >+ }) >+ } >+ >+ $.fn.dropdown.Constructor = Dropdown >+ >+ >+ /* DROPDOWN NO CONFLICT >+ * ==================== */ >+ >+ $.fn.dropdown.noConflict = function () { >+ $.fn.dropdown = old >+ return this >+ } >+ >+ >+ /* APPLY TO STANDARD DROPDOWN ELEMENTS >+ * =================================== */ >+ >+ $(document) >+ .on('click.dropdown.data-api', clearMenus) >+ .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) >+ .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) >+ .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) >+ >+}(window.jQuery); >+/* ========================================================= >+ * bootstrap-modal.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#modals >+ * ========================================================= >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================= */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* MODAL CLASS DEFINITION >+ * ====================== */ >+ >+ var Modal = function (element, options) { >+ this.options = options >+ this.$element = $(element) >+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) >+ this.options.remote && this.$element.find('.modal-body').load(this.options.remote) >+ } >+ >+ Modal.prototype = { >+ >+ constructor: Modal >+ >+ , toggle: function () { >+ return this[!this.isShown ? 'show' : 'hide']() >+ } >+ >+ , show: function () { >+ var that = this >+ , e = $.Event('show') >+ >+ this.$element.trigger(e) >+ >+ if (this.isShown || e.isDefaultPrevented()) return >+ >+ this.isShown = true >+ >+ this.escape() >+ >+ this.backdrop(function () { >+ var transition = $.support.transition && that.$element.hasClass('fade') >+ >+ if (!that.$element.parent().length) { >+ that.$element.appendTo(document.body) //don't move modals dom position >+ } >+ >+ that.$element.show() >+ >+ if (transition) { >+ that.$element[0].offsetWidth // force reflow >+ } >+ >+ that.$element >+ .addClass('in') >+ .attr('aria-hidden', false) >+ >+ that.enforceFocus() >+ >+ transition ? >+ that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) : >+ that.$element.focus().trigger('shown') >+ >+ }) >+ } >+ >+ , hide: function (e) { >+ e && e.preventDefault() >+ >+ var that = this >+ >+ e = $.Event('hide') >+ >+ this.$element.trigger(e) >+ >+ if (!this.isShown || e.isDefaultPrevented()) return >+ >+ this.isShown = false >+ >+ this.escape() >+ >+ $(document).off('focusin.modal') >+ >+ this.$element >+ .removeClass('in') >+ .attr('aria-hidden', true) >+ >+ $.support.transition && this.$element.hasClass('fade') ? >+ this.hideWithTransition() : >+ this.hideModal() >+ } >+ >+ , enforceFocus: function () { >+ var that = this >+ $(document).on('focusin.modal', function (e) { >+ if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { >+ that.$element.focus() >+ } >+ }) >+ } >+ >+ , escape: function () { >+ var that = this >+ if (this.isShown && this.options.keyboard) { >+ this.$element.on('keyup.dismiss.modal', function ( e ) { >+ e.which == 27 && that.hide() >+ }) >+ } else if (!this.isShown) { >+ this.$element.off('keyup.dismiss.modal') >+ } >+ } >+ >+ , hideWithTransition: function () { >+ var that = this >+ , timeout = setTimeout(function () { >+ that.$element.off($.support.transition.end) >+ that.hideModal() >+ }, 500) >+ >+ this.$element.one($.support.transition.end, function () { >+ clearTimeout(timeout) >+ that.hideModal() >+ }) >+ } >+ >+ , hideModal: function () { >+ var that = this >+ this.$element.hide() >+ this.backdrop(function () { >+ that.removeBackdrop() >+ that.$element.trigger('hidden') >+ }) >+ } >+ >+ , removeBackdrop: function () { >+ this.$backdrop && this.$backdrop.remove() >+ this.$backdrop = null >+ } >+ >+ , backdrop: function (callback) { >+ var that = this >+ , animate = this.$element.hasClass('fade') ? 'fade' : '' >+ >+ if (this.isShown && this.options.backdrop) { >+ var doAnimate = $.support.transition && animate >+ >+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') >+ .appendTo(document.body) >+ >+ this.$backdrop.click( >+ this.options.backdrop == 'static' ? >+ $.proxy(this.$element[0].focus, this.$element[0]) >+ : $.proxy(this.hide, this) >+ ) >+ >+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow >+ >+ this.$backdrop.addClass('in') >+ >+ if (!callback) return >+ >+ doAnimate ? >+ this.$backdrop.one($.support.transition.end, callback) : >+ callback() >+ >+ } else if (!this.isShown && this.$backdrop) { >+ this.$backdrop.removeClass('in') >+ >+ $.support.transition && this.$element.hasClass('fade')? >+ this.$backdrop.one($.support.transition.end, callback) : >+ callback() >+ >+ } else if (callback) { >+ callback() >+ } >+ } >+ } >+ >+ >+ /* MODAL PLUGIN DEFINITION >+ * ======================= */ >+ >+ var old = $.fn.modal >+ >+ $.fn.modal = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('modal') >+ , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) >+ if (!data) $this.data('modal', (data = new Modal(this, options))) >+ if (typeof option == 'string') data[option]() >+ else if (options.show) data.show() >+ }) >+ } >+ >+ $.fn.modal.defaults = { >+ backdrop: true >+ , keyboard: true >+ , show: true >+ } >+ >+ $.fn.modal.Constructor = Modal >+ >+ >+ /* MODAL NO CONFLICT >+ * ================= */ >+ >+ $.fn.modal.noConflict = function () { >+ $.fn.modal = old >+ return this >+ } >+ >+ >+ /* MODAL DATA-API >+ * ============== */ >+ >+ $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) { >+ var $this = $(this) >+ , href = $this.attr('href') >+ , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 >+ , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data()) >+ >+ e.preventDefault() >+ >+ $target >+ .modal(option) >+ .one('hide', function () { >+ $this.focus() >+ }) >+ }) >+ >+}(window.jQuery); >+/* =========================================================== >+ * bootstrap-tooltip.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#tooltips >+ * Inspired by the original jQuery.tipsy by Jason Frame >+ * =========================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* TOOLTIP PUBLIC CLASS DEFINITION >+ * =============================== */ >+ >+ var Tooltip = function (element, options) { >+ this.init('tooltip', element, options) >+ } >+ >+ Tooltip.prototype = { >+ >+ constructor: Tooltip >+ >+ , init: function (type, element, options) { >+ var eventIn >+ , eventOut >+ , triggers >+ , trigger >+ , i >+ >+ this.type = type >+ this.$element = $(element) >+ this.options = this.getOptions(options) >+ this.enabled = true >+ >+ triggers = this.options.trigger.split(' ') >+ >+ for (i = triggers.length; i--;) { >+ trigger = triggers[i] >+ if (trigger == 'click') { >+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) >+ } else if (trigger != 'manual') { >+ eventIn = trigger == 'hover' ? 'mouseenter' : 'focus' >+ eventOut = trigger == 'hover' ? 'mouseleave' : 'blur' >+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) >+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) >+ } >+ } >+ >+ this.options.selector ? >+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : >+ this.fixTitle() >+ } >+ >+ , getOptions: function (options) { >+ options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options) >+ >+ if (options.delay && typeof options.delay == 'number') { >+ options.delay = { >+ show: options.delay >+ , hide: options.delay >+ } >+ } >+ >+ return options >+ } >+ >+ , enter: function (e) { >+ var defaults = $.fn[this.type].defaults >+ , options = {} >+ , self >+ >+ this._options && $.each(this._options, function (key, value) { >+ if (defaults[key] != value) options[key] = value >+ }, this) >+ >+ self = $(e.currentTarget)[this.type](options).data(this.type) >+ >+ if (!self.options.delay || !self.options.delay.show) return self.show() >+ >+ clearTimeout(this.timeout) >+ self.hoverState = 'in' >+ this.timeout = setTimeout(function() { >+ if (self.hoverState == 'in') self.show() >+ }, self.options.delay.show) >+ } >+ >+ , leave: function (e) { >+ var self = $(e.currentTarget)[this.type](this._options).data(this.type) >+ >+ if (this.timeout) clearTimeout(this.timeout) >+ if (!self.options.delay || !self.options.delay.hide) return self.hide() >+ >+ self.hoverState = 'out' >+ this.timeout = setTimeout(function() { >+ if (self.hoverState == 'out') self.hide() >+ }, self.options.delay.hide) >+ } >+ >+ , show: function () { >+ var $tip >+ , pos >+ , actualWidth >+ , actualHeight >+ , placement >+ , tp >+ , e = $.Event('show') >+ >+ if (this.hasContent() && this.enabled) { >+ this.$element.trigger(e) >+ if (e.isDefaultPrevented()) return >+ $tip = this.tip() >+ this.setContent() >+ >+ if (this.options.animation) { >+ $tip.addClass('fade') >+ } >+ >+ placement = typeof this.options.placement == 'function' ? >+ this.options.placement.call(this, $tip[0], this.$element[0]) : >+ this.options.placement >+ >+ $tip >+ .detach() >+ .css({ top: 0, left: 0, display: 'block' }) >+ >+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) >+ >+ pos = this.getPosition() >+ >+ actualWidth = $tip[0].offsetWidth >+ actualHeight = $tip[0].offsetHeight >+ >+ switch (placement) { >+ case 'bottom': >+ tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} >+ break >+ case 'top': >+ tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2} >+ break >+ case 'left': >+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth} >+ break >+ case 'right': >+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width} >+ break >+ } >+ >+ this.applyPlacement(tp, placement) >+ this.$element.trigger('shown') >+ } >+ } >+ >+ , applyPlacement: function(offset, placement){ >+ var $tip = this.tip() >+ , width = $tip[0].offsetWidth >+ , height = $tip[0].offsetHeight >+ , actualWidth >+ , actualHeight >+ , delta >+ , replace >+ >+ $tip >+ .offset(offset) >+ .addClass(placement) >+ .addClass('in') >+ >+ actualWidth = $tip[0].offsetWidth >+ actualHeight = $tip[0].offsetHeight >+ >+ if (placement == 'top' && actualHeight != height) { >+ offset.top = offset.top + height - actualHeight >+ replace = true >+ } >+ >+ if (placement == 'bottom' || placement == 'top') { >+ delta = 0 >+ >+ if (offset.left < 0){ >+ delta = offset.left * -2 >+ offset.left = 0 >+ $tip.offset(offset) >+ actualWidth = $tip[0].offsetWidth >+ actualHeight = $tip[0].offsetHeight >+ } >+ >+ this.replaceArrow(delta - width + actualWidth, actualWidth, 'left') >+ } else { >+ this.replaceArrow(actualHeight - height, actualHeight, 'top') >+ } >+ >+ if (replace) $tip.offset(offset) >+ } >+ >+ , replaceArrow: function(delta, dimension, position){ >+ this >+ .arrow() >+ .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '') >+ } >+ >+ , setContent: function () { >+ var $tip = this.tip() >+ , title = this.getTitle() >+ >+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) >+ $tip.removeClass('fade in top bottom left right') >+ } >+ >+ , hide: function () { >+ var that = this >+ , $tip = this.tip() >+ , e = $.Event('hide') >+ >+ this.$element.trigger(e) >+ if (e.isDefaultPrevented()) return >+ >+ $tip.removeClass('in') >+ >+ function removeWithAnimation() { >+ var timeout = setTimeout(function () { >+ $tip.off($.support.transition.end).detach() >+ }, 500) >+ >+ $tip.one($.support.transition.end, function () { >+ clearTimeout(timeout) >+ $tip.detach() >+ }) >+ } >+ >+ $.support.transition && this.$tip.hasClass('fade') ? >+ removeWithAnimation() : >+ $tip.detach() >+ >+ this.$element.trigger('hidden') >+ >+ return this >+ } >+ >+ , fixTitle: function () { >+ var $e = this.$element >+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { >+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') >+ } >+ } >+ >+ , hasContent: function () { >+ return this.getTitle() >+ } >+ >+ , getPosition: function () { >+ var el = this.$element[0] >+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : { >+ width: el.offsetWidth >+ , height: el.offsetHeight >+ }, this.$element.offset()) >+ } >+ >+ , getTitle: function () { >+ var title >+ , $e = this.$element >+ , o = this.options >+ >+ title = $e.attr('data-original-title') >+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) >+ >+ return title >+ } >+ >+ , tip: function () { >+ return this.$tip = this.$tip || $(this.options.template) >+ } >+ >+ , arrow: function(){ >+ return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") >+ } >+ >+ , validate: function () { >+ if (!this.$element[0].parentNode) { >+ this.hide() >+ this.$element = null >+ this.options = null >+ } >+ } >+ >+ , enable: function () { >+ this.enabled = true >+ } >+ >+ , disable: function () { >+ this.enabled = false >+ } >+ >+ , toggleEnabled: function () { >+ this.enabled = !this.enabled >+ } >+ >+ , toggle: function (e) { >+ var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this >+ self.tip().hasClass('in') ? self.hide() : self.show() >+ } >+ >+ , destroy: function () { >+ this.hide().$element.off('.' + this.type).removeData(this.type) >+ } >+ >+ } >+ >+ >+ /* TOOLTIP PLUGIN DEFINITION >+ * ========================= */ >+ >+ var old = $.fn.tooltip >+ >+ $.fn.tooltip = function ( option ) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('tooltip') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('tooltip', (data = new Tooltip(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.tooltip.Constructor = Tooltip >+ >+ $.fn.tooltip.defaults = { >+ animation: true >+ , placement: 'top' >+ , selector: false >+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' >+ , trigger: 'hover focus' >+ , title: '' >+ , delay: 0 >+ , html: false >+ , container: false >+ } >+ >+ >+ /* TOOLTIP NO CONFLICT >+ * =================== */ >+ >+ $.fn.tooltip.noConflict = function () { >+ $.fn.tooltip = old >+ return this >+ } >+ >+}(window.jQuery); >+/* =========================================================== >+ * bootstrap-popover.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#popovers >+ * =========================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * =========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* POPOVER PUBLIC CLASS DEFINITION >+ * =============================== */ >+ >+ var Popover = function (element, options) { >+ this.init('popover', element, options) >+ } >+ >+ >+ /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js >+ ========================================== */ >+ >+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { >+ >+ constructor: Popover >+ >+ , setContent: function () { >+ var $tip = this.tip() >+ , title = this.getTitle() >+ , content = this.getContent() >+ >+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) >+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content) >+ >+ $tip.removeClass('fade top bottom left right in') >+ } >+ >+ , hasContent: function () { >+ return this.getTitle() || this.getContent() >+ } >+ >+ , getContent: function () { >+ var content >+ , $e = this.$element >+ , o = this.options >+ >+ content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) >+ || $e.attr('data-content') >+ >+ return content >+ } >+ >+ , tip: function () { >+ if (!this.$tip) { >+ this.$tip = $(this.options.template) >+ } >+ return this.$tip >+ } >+ >+ , destroy: function () { >+ this.hide().$element.off('.' + this.type).removeData(this.type) >+ } >+ >+ }) >+ >+ >+ /* POPOVER PLUGIN DEFINITION >+ * ======================= */ >+ >+ var old = $.fn.popover >+ >+ $.fn.popover = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('popover') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('popover', (data = new Popover(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.popover.Constructor = Popover >+ >+ $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, { >+ placement: 'right' >+ , trigger: 'click' >+ , content: '' >+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' >+ }) >+ >+ >+ /* POPOVER NO CONFLICT >+ * =================== */ >+ >+ $.fn.popover.noConflict = function () { >+ $.fn.popover = old >+ return this >+ } >+ >+}(window.jQuery); >+/* ============================================================= >+ * bootstrap-scrollspy.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#scrollspy >+ * ============================================================= >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ============================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* SCROLLSPY CLASS DEFINITION >+ * ========================== */ >+ >+ function ScrollSpy(element, options) { >+ var process = $.proxy(this.process, this) >+ , $element = $(element).is('body') ? $(window) : $(element) >+ , href >+ this.options = $.extend({}, $.fn.scrollspy.defaults, options) >+ this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process) >+ this.selector = (this.options.target >+ || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 >+ || '') + ' .nav li > a' >+ this.$body = $('body') >+ this.refresh() >+ this.process() >+ } >+ >+ ScrollSpy.prototype = { >+ >+ constructor: ScrollSpy >+ >+ , refresh: function () { >+ var self = this >+ , $targets >+ >+ this.offsets = $([]) >+ this.targets = $([]) >+ >+ $targets = this.$body >+ .find(this.selector) >+ .map(function () { >+ var $el = $(this) >+ , href = $el.data('target') || $el.attr('href') >+ , $href = /^#\w/.test(href) && $(href) >+ return ( $href >+ && $href.length >+ && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null >+ }) >+ .sort(function (a, b) { return a[0] - b[0] }) >+ .each(function () { >+ self.offsets.push(this[0]) >+ self.targets.push(this[1]) >+ }) >+ } >+ >+ , process: function () { >+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset >+ , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight >+ , maxScroll = scrollHeight - this.$scrollElement.height() >+ , offsets = this.offsets >+ , targets = this.targets >+ , activeTarget = this.activeTarget >+ , i >+ >+ if (scrollTop >= maxScroll) { >+ return activeTarget != (i = targets.last()[0]) >+ && this.activate ( i ) >+ } >+ >+ for (i = offsets.length; i--;) { >+ activeTarget != targets[i] >+ && scrollTop >= offsets[i] >+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) >+ && this.activate( targets[i] ) >+ } >+ } >+ >+ , activate: function (target) { >+ var active >+ , selector >+ >+ this.activeTarget = target >+ >+ $(this.selector) >+ .parent('.active') >+ .removeClass('active') >+ >+ selector = this.selector >+ + '[data-target="' + target + '"],' >+ + this.selector + '[href="' + target + '"]' >+ >+ active = $(selector) >+ .parent('li') >+ .addClass('active') >+ >+ if (active.parent('.dropdown-menu').length) { >+ active = active.closest('li.dropdown').addClass('active') >+ } >+ >+ active.trigger('activate') >+ } >+ >+ } >+ >+ >+ /* SCROLLSPY PLUGIN DEFINITION >+ * =========================== */ >+ >+ var old = $.fn.scrollspy >+ >+ $.fn.scrollspy = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('scrollspy') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.scrollspy.Constructor = ScrollSpy >+ >+ $.fn.scrollspy.defaults = { >+ offset: 10 >+ } >+ >+ >+ /* SCROLLSPY NO CONFLICT >+ * ===================== */ >+ >+ $.fn.scrollspy.noConflict = function () { >+ $.fn.scrollspy = old >+ return this >+ } >+ >+ >+ /* SCROLLSPY DATA-API >+ * ================== */ >+ >+ $(window).on('load', function () { >+ $('[data-spy="scroll"]').each(function () { >+ var $spy = $(this) >+ $spy.scrollspy($spy.data()) >+ }) >+ }) >+ >+}(window.jQuery);/* ======================================================== >+ * bootstrap-tab.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#tabs >+ * ======================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ======================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* TAB CLASS DEFINITION >+ * ==================== */ >+ >+ var Tab = function (element) { >+ this.element = $(element) >+ } >+ >+ Tab.prototype = { >+ >+ constructor: Tab >+ >+ , show: function () { >+ var $this = this.element >+ , $ul = $this.closest('ul:not(.dropdown-menu)') >+ , selector = $this.attr('data-target') >+ , previous >+ , $target >+ , e >+ >+ if (!selector) { >+ selector = $this.attr('href') >+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 >+ } >+ >+ if ( $this.parent('li').hasClass('active') ) return >+ >+ previous = $ul.find('.active:last a')[0] >+ >+ e = $.Event('show', { >+ relatedTarget: previous >+ }) >+ >+ $this.trigger(e) >+ >+ if (e.isDefaultPrevented()) return >+ >+ $target = $(selector) >+ >+ this.activate($this.parent('li'), $ul) >+ this.activate($target, $target.parent(), function () { >+ $this.trigger({ >+ type: 'shown' >+ , relatedTarget: previous >+ }) >+ }) >+ } >+ >+ , activate: function ( element, container, callback) { >+ var $active = container.find('> .active') >+ , transition = callback >+ && $.support.transition >+ && $active.hasClass('fade') >+ >+ function next() { >+ $active >+ .removeClass('active') >+ .find('> .dropdown-menu > .active') >+ .removeClass('active') >+ >+ element.addClass('active') >+ >+ if (transition) { >+ element[0].offsetWidth // reflow for transition >+ element.addClass('in') >+ } else { >+ element.removeClass('fade') >+ } >+ >+ if ( element.parent('.dropdown-menu') ) { >+ element.closest('li.dropdown').addClass('active') >+ } >+ >+ callback && callback() >+ } >+ >+ transition ? >+ $active.one($.support.transition.end, next) : >+ next() >+ >+ $active.removeClass('in') >+ } >+ } >+ >+ >+ /* TAB PLUGIN DEFINITION >+ * ===================== */ >+ >+ var old = $.fn.tab >+ >+ $.fn.tab = function ( option ) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('tab') >+ if (!data) $this.data('tab', (data = new Tab(this))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.tab.Constructor = Tab >+ >+ >+ /* TAB NO CONFLICT >+ * =============== */ >+ >+ $.fn.tab.noConflict = function () { >+ $.fn.tab = old >+ return this >+ } >+ >+ >+ /* TAB DATA-API >+ * ============ */ >+ >+ $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { >+ e.preventDefault() >+ $(this).tab('show') >+ }) >+ >+}(window.jQuery);/* ============================================================= >+ * bootstrap-typeahead.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#typeahead >+ * ============================================================= >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ============================================================ */ >+ >+ >+!function($){ >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* TYPEAHEAD PUBLIC CLASS DEFINITION >+ * ================================= */ >+ >+ var Typeahead = function (element, options) { >+ this.$element = $(element) >+ this.options = $.extend({}, $.fn.typeahead.defaults, options) >+ this.matcher = this.options.matcher || this.matcher >+ this.sorter = this.options.sorter || this.sorter >+ this.highlighter = this.options.highlighter || this.highlighter >+ this.updater = this.options.updater || this.updater >+ this.source = this.options.source >+ this.$menu = $(this.options.menu) >+ this.shown = false >+ this.listen() >+ } >+ >+ Typeahead.prototype = { >+ >+ constructor: Typeahead >+ >+ , select: function () { >+ var val = this.$menu.find('.active').attr('data-value') >+ this.$element >+ .val(this.updater(val)) >+ .change() >+ return this.hide() >+ } >+ >+ , updater: function (item) { >+ return item >+ } >+ >+ , show: function () { >+ var pos = $.extend({}, this.$element.position(), { >+ height: this.$element[0].offsetHeight >+ }) >+ >+ this.$menu >+ .insertAfter(this.$element) >+ .css({ >+ top: pos.top + pos.height >+ , left: pos.left >+ }) >+ .show() >+ >+ this.shown = true >+ return this >+ } >+ >+ , hide: function () { >+ this.$menu.hide() >+ this.shown = false >+ return this >+ } >+ >+ , lookup: function (event) { >+ var items >+ >+ this.query = this.$element.val() >+ >+ if (!this.query || this.query.length < this.options.minLength) { >+ return this.shown ? this.hide() : this >+ } >+ >+ items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source >+ >+ return items ? this.process(items) : this >+ } >+ >+ , process: function (items) { >+ var that = this >+ >+ items = $.grep(items, function (item) { >+ return that.matcher(item) >+ }) >+ >+ items = this.sorter(items) >+ >+ if (!items.length) { >+ return this.shown ? this.hide() : this >+ } >+ >+ return this.render(items.slice(0, this.options.items)).show() >+ } >+ >+ , matcher: function (item) { >+ return ~item.toLowerCase().indexOf(this.query.toLowerCase()) >+ } >+ >+ , sorter: function (items) { >+ var beginswith = [] >+ , caseSensitive = [] >+ , caseInsensitive = [] >+ , item >+ >+ while (item = items.shift()) { >+ if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item) >+ else if (~item.indexOf(this.query)) caseSensitive.push(item) >+ else caseInsensitive.push(item) >+ } >+ >+ return beginswith.concat(caseSensitive, caseInsensitive) >+ } >+ >+ , highlighter: function (item) { >+ var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&') >+ return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) { >+ return '<strong>' + match + '</strong>' >+ }) >+ } >+ >+ , render: function (items) { >+ var that = this >+ >+ items = $(items).map(function (i, item) { >+ i = $(that.options.item).attr('data-value', item) >+ i.find('a').html(that.highlighter(item)) >+ return i[0] >+ }) >+ >+ items.first().addClass('active') >+ this.$menu.html(items) >+ return this >+ } >+ >+ , next: function (event) { >+ var active = this.$menu.find('.active').removeClass('active') >+ , next = active.next() >+ >+ if (!next.length) { >+ next = $(this.$menu.find('li')[0]) >+ } >+ >+ next.addClass('active') >+ } >+ >+ , prev: function (event) { >+ var active = this.$menu.find('.active').removeClass('active') >+ , prev = active.prev() >+ >+ if (!prev.length) { >+ prev = this.$menu.find('li').last() >+ } >+ >+ prev.addClass('active') >+ } >+ >+ , listen: function () { >+ this.$element >+ .on('focus', $.proxy(this.focus, this)) >+ .on('blur', $.proxy(this.blur, this)) >+ .on('keypress', $.proxy(this.keypress, this)) >+ .on('keyup', $.proxy(this.keyup, this)) >+ >+ if (this.eventSupported('keydown')) { >+ this.$element.on('keydown', $.proxy(this.keydown, this)) >+ } >+ >+ this.$menu >+ .on('click', $.proxy(this.click, this)) >+ .on('mouseenter', 'li', $.proxy(this.mouseenter, this)) >+ .on('mouseleave', 'li', $.proxy(this.mouseleave, this)) >+ } >+ >+ , eventSupported: function(eventName) { >+ var isSupported = eventName in this.$element >+ if (!isSupported) { >+ this.$element.setAttribute(eventName, 'return;') >+ isSupported = typeof this.$element[eventName] === 'function' >+ } >+ return isSupported >+ } >+ >+ , move: function (e) { >+ if (!this.shown) return >+ >+ switch(e.keyCode) { >+ case 9: // tab >+ case 13: // enter >+ case 27: // escape >+ e.preventDefault() >+ break >+ >+ case 38: // up arrow >+ e.preventDefault() >+ this.prev() >+ break >+ >+ case 40: // down arrow >+ e.preventDefault() >+ this.next() >+ break >+ } >+ >+ e.stopPropagation() >+ } >+ >+ , keydown: function (e) { >+ this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27]) >+ this.move(e) >+ } >+ >+ , keypress: function (e) { >+ if (this.suppressKeyPressRepeat) return >+ this.move(e) >+ } >+ >+ , keyup: function (e) { >+ switch(e.keyCode) { >+ case 40: // down arrow >+ case 38: // up arrow >+ case 16: // shift >+ case 17: // ctrl >+ case 18: // alt >+ break >+ >+ case 9: // tab >+ case 13: // enter >+ if (!this.shown) return >+ this.select() >+ break >+ >+ case 27: // escape >+ if (!this.shown) return >+ this.hide() >+ break >+ >+ default: >+ this.lookup() >+ } >+ >+ e.stopPropagation() >+ e.preventDefault() >+ } >+ >+ , focus: function (e) { >+ this.focused = true >+ } >+ >+ , blur: function (e) { >+ this.focused = false >+ if (!this.mousedover && this.shown) this.hide() >+ } >+ >+ , click: function (e) { >+ e.stopPropagation() >+ e.preventDefault() >+ this.select() >+ this.$element.focus() >+ } >+ >+ , mouseenter: function (e) { >+ this.mousedover = true >+ this.$menu.find('.active').removeClass('active') >+ $(e.currentTarget).addClass('active') >+ } >+ >+ , mouseleave: function (e) { >+ this.mousedover = false >+ if (!this.focused && this.shown) this.hide() >+ } >+ >+ } >+ >+ >+ /* TYPEAHEAD PLUGIN DEFINITION >+ * =========================== */ >+ >+ var old = $.fn.typeahead >+ >+ $.fn.typeahead = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('typeahead') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('typeahead', (data = new Typeahead(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.typeahead.defaults = { >+ source: [] >+ , items: 8 >+ , menu: '<ul class="typeahead dropdown-menu"></ul>' >+ , item: '<li><a href="#"></a></li>' >+ , minLength: 1 >+ } >+ >+ $.fn.typeahead.Constructor = Typeahead >+ >+ >+ /* TYPEAHEAD NO CONFLICT >+ * =================== */ >+ >+ $.fn.typeahead.noConflict = function () { >+ $.fn.typeahead = old >+ return this >+ } >+ >+ >+ /* TYPEAHEAD DATA-API >+ * ================== */ >+ >+ $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) { >+ var $this = $(this) >+ if ($this.data('typeahead')) return >+ $this.typeahead($this.data()) >+ }) >+ >+}(window.jQuery); >+/* ========================================================== >+ * bootstrap-affix.js v2.3.2 >+ * http://getbootstrap.com/2.3.2/javascript.html#affix >+ * ========================================================== >+ * Copyright 2013 Twitter, Inc. >+ * >+ * Licensed under the Apache License, Version 2.0 (the "License"); >+ * you may not use this file except in compliance with the License. >+ * You may obtain a copy of the License at >+ * >+ * http://www.apache.org/licenses/LICENSE-2.0 >+ * >+ * Unless required by applicable law or agreed to in writing, software >+ * distributed under the License is distributed on an "AS IS" BASIS, >+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+ * See the License for the specific language governing permissions and >+ * limitations under the License. >+ * ========================================================== */ >+ >+ >+!function ($) { >+ >+ "use strict"; // jshint ;_; >+ >+ >+ /* AFFIX CLASS DEFINITION >+ * ====================== */ >+ >+ var Affix = function (element, options) { >+ this.options = $.extend({}, $.fn.affix.defaults, options) >+ this.$window = $(window) >+ .on('scroll.affix.data-api', $.proxy(this.checkPosition, this)) >+ .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this)) >+ this.$element = $(element) >+ this.checkPosition() >+ } >+ >+ Affix.prototype.checkPosition = function () { >+ if (!this.$element.is(':visible')) return >+ >+ var scrollHeight = $(document).height() >+ , scrollTop = this.$window.scrollTop() >+ , position = this.$element.offset() >+ , offset = this.options.offset >+ , offsetBottom = offset.bottom >+ , offsetTop = offset.top >+ , reset = 'affix affix-top affix-bottom' >+ , affix >+ >+ if (typeof offset != 'object') offsetBottom = offsetTop = offset >+ if (typeof offsetTop == 'function') offsetTop = offset.top() >+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom() >+ >+ affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? >+ false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? >+ 'bottom' : offsetTop != null && scrollTop <= offsetTop ? >+ 'top' : false >+ >+ if (this.affixed === affix) return >+ >+ this.affixed = affix >+ this.unpin = affix == 'bottom' ? position.top - scrollTop : null >+ >+ this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : '')) >+ } >+ >+ >+ /* AFFIX PLUGIN DEFINITION >+ * ======================= */ >+ >+ var old = $.fn.affix >+ >+ $.fn.affix = function (option) { >+ return this.each(function () { >+ var $this = $(this) >+ , data = $this.data('affix') >+ , options = typeof option == 'object' && option >+ if (!data) $this.data('affix', (data = new Affix(this, options))) >+ if (typeof option == 'string') data[option]() >+ }) >+ } >+ >+ $.fn.affix.Constructor = Affix >+ >+ $.fn.affix.defaults = { >+ offset: 0 >+ } >+ >+ >+ /* AFFIX NO CONFLICT >+ * ================= */ >+ >+ $.fn.affix.noConflict = function () { >+ $.fn.affix = old >+ return this >+ } >+ >+ >+ /* AFFIX DATA-API >+ * ============== */ >+ >+ $(window).on('load', function () { >+ $('[data-spy="affix"]').each(function () { >+ var $spy = $(this) >+ , data = $spy.data() >+ >+ data.offset = data.offset || {} >+ >+ data.offsetBottom && (data.offset.bottom = data.offsetBottom) >+ data.offsetTop && (data.offset.top = data.offsetTop) >+ >+ $spy.affix(data) >+ }) >+ }) >+ >+ >+}(window.jQuery); >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.min.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.min.js >new file mode 100644 >index 0000000..848258d >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/bootstrap-2.3.2/js/bootstrap.min.js >@@ -0,0 +1,6 @@ >+/*! >+* Bootstrap.js by @fat & @mdo >+* Copyright 2013 Twitter, Inc. >+* http://www.apache.org/licenses/LICENSE-2.0.txt >+*/ >+!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery); >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-basic.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-basic.html >new file mode 100644 >index 0000000..5e7b7dc >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-basic.html >@@ -0,0 +1,131 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../styles.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+ </script> >+ >+ >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> Basic example</h1> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h2>Code</h2> >+ >+ <pre> >+<code class='html'> >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+ </script> >+ >+ </head> >+ <body> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ </body> >+</html> >+</code> >+ </pre> >+ </div> >+ >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ }</script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-2.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-2.html >new file mode 100644 >index 0000000..2e97585 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-2.html >@@ -0,0 +1,144 @@ >+<!DOCTYPE html> >+<html lang="en"> >+ <head> >+ <meta charset="utf-8"> >+ <meta name="viewport" content="width=device-width, initial-scale=1.0"> >+ <meta name="description" content=""> >+ <meta name="author" content=""> >+ <link rel="shortcut icon" href="../../assets/ico/favicon.png"> >+ >+ <title>TreeGrid for Bootstrap 2.3.x</title> >+ >+ <!-- Bootstrap core CSS --> >+ <link href="bootstrap-2.3.2/css/bootstrap.css" rel="stylesheet"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.bootstrap2.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ $('.tree2').treegrid({ >+ expanderExpandedClass: 'icon-minus-sign', >+ expanderCollapsedClass: 'icon-plus-sign' >+ }); >+ }); >+ </script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ </head> >+ >+ <body> >+ <div class="container"> >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> Bootstrap 2.3.2 examples</h1> >+ >+ <table class="table tree"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ <h3>Source</h3> >+ >+ <pre><code class="html"><link href="bootstrap-2.3.2/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap2.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+</script></code></pre> >+ <h2>Bootstrap grid example<br> >+ table-bordered table-striped table-condensed<br> >+ with custom expander</h2> >+ <table class="table tree2 table-bordered table-striped table-condensed"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ <h3>Source</h3> >+ >+ <pre><code class="html"><link href="bootstrap-2.3.2/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap2.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ expanderExpandedClass: 'icon-minus-sign', >+ expanderCollapsedClass: 'icon-plus-sign' >+ }); >+ }); >+</script></code></pre> >+ </div> <!-- /container --> >+ >+ >+ <!-- Bootstrap core JavaScript >+ ================================================== --> >+ <!-- Placed at the end of the document so the pages load faster --> >+ </body> >+</html> >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-3.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-3.html >new file mode 100644 >index 0000000..a251e13 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-3.html >@@ -0,0 +1,146 @@ >+<!DOCTYPE html> >+<html lang="en"> >+ <head> >+ <meta charset="utf-8"> >+ <meta name="viewport" content="width=device-width, initial-scale=1.0"> >+ <meta name="description" content=""> >+ <meta name="author" content=""> >+ <link rel="shortcut icon" href="../../assets/ico/favicon.png"> >+ >+ <title>TreeGrid for Bootstrap 3.0.x</title> >+ >+ <!-- Bootstrap core CSS --> >+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+ <script type="text/javascript"> >+ >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ $('.tree-2').treegrid({ >+ expanderExpandedClass: 'glyphicon glyphicon-minus', >+ expanderCollapsedClass: 'glyphicon glyphicon-plus' >+ }); >+ >+ }); >+ </script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ </head> >+ >+ <body> >+ <div class="container"> >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> Bootstrap 3 examples</h1> >+ >+ <table class="table tree"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ <h3>Code</h3> >+ >+ <pre><code class="html"><link href="bootstrap-3.0.0/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+</script></code></pre> >+ <h2>Bootstrap TreeGrid example<br> >+ table-bordered table-striped table-condensed<br> >+ custom expander</h2> >+ <table class="table tree-2 table-bordered table-striped table-condensed"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h3>Code</h3> >+ <pre><code class="html"><link href="bootstrap-3.0.0/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ expanderExpandedClass: 'glyphicon glyphicon-minus', >+ expanderCollapsedClass: 'glyphicon glyphicon-plus' >+ }); >+ }); >+</script></code></pre> >+ </div> <!-- /container --> >+ >+ >+ <!-- Bootstrap core JavaScript >+ ================================================== --> >+ <!-- Placed at the end of the document so the pages load faster --> >+ </body> >+</html> >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-resize.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-resize.html >new file mode 100644 >index 0000000..2da87b0 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-bootstrap-resize.html >@@ -0,0 +1,146 @@ >+<!DOCTYPE html> >+<html lang="en"> >+ <head> >+ <meta charset="utf-8"> >+ <meta name="viewport" content="width=device-width, initial-scale=1.0"> >+ <meta name="description" content=""> >+ <meta name="author" content=""> >+ <link rel="shortcut icon" href="../../assets/ico/favicon.png"> >+ >+ <title>TreeGrid for Bootstrap 3.0.x</title> >+ >+ <!-- Bootstrap core CSS --> >+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+ <script type="text/javascript"> >+ >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ $('.tree-2').treegrid({ >+ expanderExpandedClass: 'glyphicon glyphicon-minus', >+ expanderCollapsedClass: 'glyphicon glyphicon-plus' >+ }); >+ >+ }); >+ </script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ </head> >+ >+ <body> >+ <div class="container"> >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> Bootstrap 3 resize examples</h1> >+ >+ <table class="table tree"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ </table> >+ <h3>Code</h3> >+ >+ <pre><code class="html"><link href="bootstrap-3.0.0/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+</script></code></pre> >+ <h2>Bootstrap TreeGrid example<br> >+ table-bordered table-striped table-condensed<br> >+ custom expander</h2> >+ <table class="table tree-2 table-bordered table-striped table-condensed"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td class="hidden-xs">Additional info</td><td class="hidden-xs hidden-sm">Additional info2</td><td class="hidden-xs hidden-sm hidden-md">Additional info3</td> >+ </tr> >+ </table> >+ >+ <h3>Code</h3> >+ <pre><code class="html"><link href="bootstrap-3.0.0/css/bootstrap.css" rel="stylesheet"> >+<link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+<script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+<script type="text/javascript" src="../js/jquery.treegrid.bootstrap3.js"></script> >+<script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ expanderExpandedClass: 'glyphicon glyphicon-minus', >+ expanderCollapsedClass: 'glyphicon glyphicon-plus' >+ }); >+ }); >+</script></code></pre> >+ </div> <!-- /container --> >+ >+ >+ <!-- Bootstrap core JavaScript >+ ================================================== --> >+ <!-- Placed at the end of the document so the pages load faster --> >+ </body> >+</html> >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-column.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-column.html >new file mode 100644 >index 0000000..595e55a >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-column.html >@@ -0,0 +1,135 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>TreeGrid example with tree in 2nd column</title> >+ >+ <link rel="stylesheet" href="../styles.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ treeColumn: 1 >+ }); >+ }); >+ </script> >+ >+ >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> example with tree in 2nd column</h1> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h2>Code</h2> >+ >+ <pre> >+<code class='html'> >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ treeColumn: 1 >+ }); >+ }); >+ </script> >+ >+ </head> >+ <body> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ </body> >+</html> >+</code> >+ </pre> >+ </div> >+ >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ }</script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-events.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-events.html >new file mode 100644 >index 0000000..4232433 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-events.html >@@ -0,0 +1,155 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>TreeGrid events example</title> >+ >+ <link rel="stylesheet" href="../styles.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ onChange: function() { >+ alert("Changed: " + $(this).attr("id")); >+ }, >+ onCollapse: function() { >+ alert("Collapsed " + $(this).attr("id")); >+ }, >+ onExpand: function() { >+ alert("Expanded: " + $(this).attr("id")); >+ }}); >+ $('#node-1').on("change", function() { >+ alert("Event from " + $(this).attr("id")); >+ }); >+ }); >+ </script> >+ >+ >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> events example</h1> >+ >+ <table class="tree"> >+ <tr id="node-1" class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr id="node-1-1" class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr id="node-1-2" class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr id="node-1-2-1" class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h2>Code</h2> >+ >+ <pre> >+<code class='html'> >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ onChange: function() { >+ alert("Changed: "+$(this).attr("id")); >+ }, >+ onCollapse: function() { >+ alert("Collapsed: "+$(this).attr("id")); >+ }, >+ onExpand: function() { >+ alert("Expanded "+$(this).attr("id")); >+ }}); >+ $('#node-1').on("change", function() { >+ alert("Event from " + $(this).attr("id")); >+ }); >+ }); >+ </script> >+ >+ </head> >+ <body> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ </body> >+</html> >+</code> >+ </pre> >+ </div> >+ >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ }</script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-huge.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-huge.html >new file mode 100644 >index 0000000..a9cce85 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-huge.html >@@ -0,0 +1,113 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../styles.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ //create huge treetable >+ var count_root_elements=100; >+ var count_deep=10; >+ console.log('init'); >+ for(var i=0; i<count_root_elements; i++){ >+ console.log('add'); >+ var tr=$("<tr></tr>").addClass("treegrid-"+i+"-0").appendTo($('.tree')).html("<td>Root node "+i+"</td><td>Additional info</td>"); >+ >+ for(var j=1; j<count_deep; j++){ >+ $("<tr></tr>").addClass("treegrid-"+i+"-"+j).addClass("treegrid-parent-"+i+"-"+(j-1)).appendTo($('.tree')).html("<td>Child node "+i+"-"+j+"</td><td>Additional info</td>"); >+ } >+ } >+ >+ $('.tree').treegrid(); >+ }); >+ </script> >+ >+ >+ >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> Big data example</h1> >+ >+ <table class="tree"></table> >+ >+ <h2>Code</h2> >+ >+ <pre> >+<code class='html'> >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid(); >+ }); >+ </script> >+ >+ </head> >+ <body> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ </body> >+</html> >+</code> >+ </pre> >+ </div> >+ >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ } >+ </script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-save-state.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-save-state.html >new file mode 100644 >index 0000000..7133da1 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/examples/example-save-state.html >@@ -0,0 +1,162 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid save state example</title> >+ >+ <link rel="stylesheet" href="../styles.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript" src="../js/jquery.cookie.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ 'initialState': 'collapsed', >+ 'saveState': true, >+ }); >+ }); >+ </script> >+ >+ >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ >+ <h1><a href="http://maxazan.github.io/jquery-treegrid/">TreeGrid</a> save state example</h1> >+ <p>You can reload page. The tree state is saved.</p> >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h2>Code</h2> >+ >+ <pre> >+<code class='html'> >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <title>Jquery-treegrid basic example</title> >+ >+ <link rel="stylesheet" href="../css/jquery.treegrid.css"> >+ >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="../js/jquery.treegrid.js"></script> >+ <script type="text/javascript"> >+ $(document).ready(function() { >+ $('.tree').treegrid({ >+ 'initialState': 'collapsed', >+ 'saveState': true, >+ }); >+ }); >+ </script> >+ >+ </head> >+ <body> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node 1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-5"> >+ <td>Root node 2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-6 treegrid-parent-5"> >+ <td>Node 2-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-7 treegrid-parent-5"> >+ <td>Node 2-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-8 treegrid-parent-7"> >+ <td>Node 2-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ </body> >+</html> >+</code> >+ </pre> >+ </div> >+ >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ }</script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/collapse.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/collapse.png >new file mode 100644 >index 0000000000000000000000000000000000000000..76577a57a23105b4c821b851902cda145e348d9c >GIT binary patch >literal 2886 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 > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/expand.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/expand.png >new file mode 100644 >index 0000000000000000000000000000000000000000..cfb42a451247095be68232ab38f75842893ce407 >GIT binary patch >literal 2894 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 > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/file.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/file.png >new file mode 100644 >index 0000000000000000000000000000000000000000..813f712f726c935f9adf8d2f2dd0d7683791ef11 >GIT binary patch >literal 342 >zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg >z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%6;pyTSA|c6o&@eC9QG)Hj&ExYL >zO&oVL^)+cM^qd@ApywS>pwx0H@RDN}hq;7mU-SKczYQ-hnrr=;iDAQMZQ+*g=YOM= >z!QlMQEn7FbaD->uKAYgo_j9)W&$$zS*W9}m(ey0q$&7l-XEWO0Y(9M=SnhLbwy<xp >z<-V!w{rtjKUv+o*|6m()ceab>;d>@~SY$Ku*0xPvIOQeV1x7u_z-2-X>_74(yfh7C >znXL|3GZ+d2`3re2hs?MK<V&+KGL$sTUzRzG=^m3+$2Td42G30@X|lcy44dbP=-$#! >h7h_<U68r8SGxL_I=i_|Jgn@o$@O1TaS?83{1OPX3f*b$< > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/folder.png b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/img/folder.png >new file mode 100644 >index 0000000000000000000000000000000000000000..784e8fa48234f4f64b6922a6758f254ee0ca08ec >GIT binary patch >literal 537 >zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ >zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzt4TybR5;7U >zle>x(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl >za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi >z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n >z6o8--^T(=hkBNQ_k{-_GWE<Dm*nZeW0t{q;aLLKDA7AX;UjS;C$UM<^kqJBcOg%kd >za`=W$b`Dg7d87aY^8Vc}vWxQ>;FMW7!p}f{N<AKt_ivG%+H4#CQ-PWa(shVQx&YJ( >z>G3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` >zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E >zW<O8VlWvaXiPQnhL8noy0FRR9bV($ZrR1$z0Ltpo-jkc#i0e4=f4*G-?ybl4tXbgy >b{*Au@zK9=x;oF){00000NkvXXu0mjfJ%;Z& > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/index.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/index.html >new file mode 100644 >index 0000000..cbd06be >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/index.html >@@ -0,0 +1,478 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <meta http-equiv="X-UA-Compatible" content="chrome=1"> >+ <meta name="google-site-verification" content="Qsvvve1CBtl2_PikToO7CdVGsY7bwLrjc_9AgZtt_bk" /> >+ <title>Treegrid jquery plugin</title> >+ >+ <link rel="stylesheet" href="styles.css"> >+ <link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css"> >+ <link rel="stylesheet" href="css/jquery.treegrid.css"> >+ <script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script> >+ <script>hljs.initHighlightingOnLoad();</script> >+ <script> >+ (function(i, s, o, g, r, a, m) { >+ i['GoogleAnalyticsObject'] = r; >+ i[r] = i[r] || function() { >+ (i[r].q = i[r].q || []).push(arguments) >+ }, i[r].l = 1 * new Date(); >+ a = s.createElement(o), >+ m = s.getElementsByTagName(o)[0]; >+ a.async = 1; >+ a.src = g; >+ m.parentNode.insertBefore(a, m) >+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); >+ >+ ga('create', 'UA-43342702-1', 'maxazan.github.io'); >+ ga('send', 'pageview'); >+ >+ </script> >+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> >+ <!--[if lt IE 9]> >+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> >+ <![endif]--> >+ </head> >+ <body> >+ <div class="wrapper"> >+ >+ <ul class="download" style="float:right;"> >+ <li><a href="https://github.com/maxazan/jquery-treegrid/zipball/master">Download <br><strong>ZIP File</strong></a></li> >+ <li><a href="https://github.com/maxazan/jquery-treegrid/tarball/master">Download <br><strong>TAR Ball</strong></a></li> >+ <li><a href="https://github.com/maxazan/jquery-treegrid">View On <br><strong>GitHub</strong></a></li> >+ </ul> >+ >+ <h1>TreeGrid jQuery plugin</h1> >+ <h2>Features</h2> >+ <ul> >+ <li>Create TreeGrid from HTML table</li> >+ <li>Simple and flexible javascript</li> >+ <li>Compatible with bootstrap</li> >+ <li>Ability to save the state of the tree</li> >+ <li>Events support</li> >+ >+ </ul> >+ <h2>Usage</h2> >+ <p>Step 1. Initialize plugin</p> >+ <pre><code> >+<script type="text/javascript" src="js/jquery.js"></script> >+<script type="text/javascript" src="js/jquery.treegrid.js"></script> >+<link rel="stylesheet" href="css/jquery.treegrid.css"> >+ >+<script type="text/javascript"> >+ $('.tree').treegrid(); >+</script></code></pre> >+ <p>Step 2. Make table</p> >+ <pre><code class="html"> >+<table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+</table> >+ >+ </code></pre> >+ <p>Step 3. See result</p> >+ >+ <table class="tree"> >+ <tr class="treegrid-1"> >+ <td>Root node</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1"> >+ <td>Node 1-1</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-3 treegrid-parent-1"> >+ <td>Node 1-2</td><td>Additional info</td> >+ </tr> >+ <tr class="treegrid-4 treegrid-parent-3"> >+ <td>Node 1-2-1</td><td>Additional info</td> >+ </tr> >+ </table> >+ >+ <h2>Other examples</h2> >+ <p><a href="examples/example-basic.html" target="_blank">Basic example</a></p> >+ <p><a href="examples/example-column.html" target="_blank">Tree on 2nd column example</a></p> >+ <p><a href="examples/example-save-state.html" target="_blank">Save state example</a></p> >+ <p><a href="examples/example-bootstrap-2.html" target="_blank">TreeGrid for bootstrap 2.x</a></p> >+ <p><a href="examples/example-bootstrap-3.html" target="_blank">TreeGrid for bootstrap 3.x</a></p> >+ <p><a href="examples/example-bootstrap-resize.html" target="_blank">TreeGrid for bootstrap 3.x resize demo</a></p> >+ <p><a href="examples/example-events.html" target="_blank">Events examples</a></p> >+ <p><a href="examples/example-huge.html" target="_blank">Big data example</a></p> >+ >+ >+ <h2>Configuration Settings</h2> >+ <h3>Settings</h3> >+ <table> >+ <tr><th>Parameter</th><th>Type</th><th>Default value</th><th>Description</th></tr> >+ <tr> >+ <td>treeColumn</td> >+ <td>Numeric</td> >+ <td>0</td> >+ <td>Number of column using for tree</td> >+ </tr> >+ >+ <tr> >+ <td>initialState</td> >+ <td>String</td> >+ <td>expanded</td> >+ <td>Initial state of tree<br> >+ 'expanded' - all nodes will be expanded<br> >+ 'collapsed' - all nodes will be collapsed<br> >+ </td> >+ </tr> >+ <tr> >+ <td>saveState</td> >+ <td>Boolean</td> >+ <td>false</td> >+ <td>If true you can reload page and tree state was saved</td> >+ </tr> >+ <tr> >+ <td>saveStateMethod</td> >+ <td>String</td> >+ <td>cookie</td> >+ <td> >+ 'cookie' - save state to cookie<br> >+ 'hash' - save state to hash<br> >+ </td> >+ </tr> >+ <tr> >+ <td>saveStateName</td> >+ <td>String</td> >+ <td>tree-grid-state</td> >+ <td> >+ Name of cookie or hash to save state. >+ </td> >+ </tr> >+ >+ <tr> >+ <td>expanderTemplate</td> >+ <td>String</td> >+ <td><span class="treegrid-expander"></span></td> >+ <td>HTML Element when you click on that will be collapse/expand branches</td> >+ </tr> >+ <tr> >+ <td>expanderExpandedClass</td> >+ <td>String</td> >+ <td>treegrid-expander-expanded</td> >+ <td>Class using for expander element when it expanded</td> >+ </tr> >+ <tr> >+ <td>expanderCollapsedClass</td> >+ <td>String</td> >+ <td>treegrid-expander-collapsed</td> >+ <td>Class using for expander element when it collapsed</td> >+ </tr> >+ <tr> >+ <td>indentTemplate</td> >+ <td>String</td> >+ <td><span class="treegrid-indent"></span></td> >+ <td>HTML Element that will be placed as padding, depending on the depth of nesting node</td> >+ </tr> >+ >+ <tr> >+ <td>onCollapse</td> >+ <td>Function</td> >+ <td>null</td> >+ <td>Function, which will be executed when one of node will be collapsed</td> >+ </tr> >+ <tr> >+ <td>onExpand</td> >+ <td>Function</td> >+ <td>null</td> >+ <td>Function, which will be executed when one of node will be expanded</td> >+ </tr> >+ <tr> >+ <td>onChange</td> >+ <td>Function</td> >+ <td>null</td> >+ <td>Function, which will be executed when one of node will be expanded or collapsed</td> >+ </tr> >+ </table> >+ >+ <h3>Public methods</h3> >+ >+ <table> >+ <tr> >+ <th>Method name</th> >+ <th>Description</th> >+ <th>Example</th> >+ </tr> >+ <tr> >+ <td>getRootNodes</td> >+ <td>Returns the root branches</td> >+ <td> >+ <pre><code class="javascript">// Expand all root nodes >+$('.tree').treegrid('getRootNodes').treegrid('expand');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getNodeId</td> >+ <td>Return the id of node</td> >+ <td> >+ <pre><code class="javascript">if($('#node-2').treegrid('getNodeId')===2){ >+ // Do something with node 2 >+};</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getParentNodeId</td> >+ <td>Return the id of parent node or null if node is root</td> >+ <td> >+ <pre><code class="javascript">if($('#node-2').treegrid('getParentNodeId')===2){ >+ // Do something if parent node Id is 2 >+};</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getAllNodes</td> >+ <td>Return the all nodes of tree</td> >+ <td> >+ <pre><code class="javascript">// Find all nodes >+ $('#tree-1').treegrid('getAllNodes').each(function() { >+ if ($(this).treegrid("isLast")) { >+ //Do something with all last nodes >+ } >+ }); >+</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getParentNode</td> >+ <td>Return the parent node or null if node is root</td> >+ <td> >+ <pre><code class="javascript">// Expand parent node >+$('#node-2').treegrid('getParentNode').treegrid('collapse'); >+</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getChildNodes</td> >+ <td>Return the child nodes or null if node is leaf</td> >+ <td> >+ <pre><code class="javascript">// Expand child nodes >+$('#node-2').treegrid('getChildNodes').treegrid('expand'); >+</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>getDepth</td> >+ <td>Returns the depth of nested branch</td> >+ <td> >+ <pre><code class="javascript">// Expand all nodes 2nd nesting >+$('.tree').find('tr').each(function(){ >+ if ($(this).treegrid('getDepth')<2){ >+ $(this).treegrid('expand'); >+ } >+});</code></pre> >+ </td> >+ <tr> >+ <td>isNode</td> >+ <td>return true if element is node</td> >+ <td> >+ <pre><code class="javascript"> >+ $('#tree-1').find('tr').each(function() { >+ if ($(this).treegrid("isNode")) { >+ //Do something >+ } >+ }); >+</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>isLeaf</td> >+ <td>Is there a node leaf</td> >+ <td> >+ <pre><code class="javascript">// hide all files >+$('.tree').find('tr').each(function(){ >+ if ($(this).treegrid('isLeaf')){ >+ $(this).hide(); >+ } >+});</code></pre> >+ </td> >+ >+ </tr> >+ <tr> >+ <td>isLast</td> >+ <td>Return true if node is last in branch</td> >+ <td> >+ <pre><code class="javascript">// hide all last elements >+$('.tree').find('tr').each(function(){ >+ if ($(this).treegrid('isLast')){ >+ $(this).hide(); >+ } >+});</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>isFirst</td> >+ <td>Return true if node is first in branch</td> >+ <td> >+ <pre><code class="javascript">// hide all last elements >+$('.tree').find('tr').each(function(){ >+ if ($(this).treegrid('isFirst')){ >+ $(this).hide(); >+ } >+});</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>isExpanded</td> >+ <td>Is node expanded</td> >+ <td> >+ <pre><code class="javascript">if($('#node-2').treegrid('isExpanded')){ >+ // Do something if node expanded >+};</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>isCollapsed</td> >+ <td>Is node collapsed</td> >+ <td> >+ <pre><code class="javascript">if($('#node-2').treegrid('isCollapsed')){ >+ // Do something if node collapsed >+};</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>isOneOfParentsCollapsed</td> >+ <td>Is at least one of the parent nodes is collapsed</td> >+ <td> >+ <pre><code class="javascript">if($('#node-2').treegrid('isOneOfParentCollapsed')){ >+ // Do something if one of parent collapsed >+};</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>expand</td> >+ <td>Expand node</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('expand');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>collapse</td> >+ <td>Collapse node</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('collapse');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>expandRecursive</td> >+ <td>Expand nodes recursively</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('expandRecursive');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>collapseRecursive</td> >+ <td>Collapse nodes recursively</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('collapseRecursive');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>expandAll</td> >+ <td>Expand all nodes</td> >+ <td> >+ <pre><code class="javascript">$('#tree').treegrid('expandAll');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>collapseAll</td> >+ <td>Collapse all nodes</td> >+ <td> >+ <pre><code class="javascript">$('#tree').treegrid('collapseAll');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>toggle</td> >+ <td>Collapse node if it expanded and expand when collapsed</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('toggle');</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>render</td> >+ <td>Redraw the node and all its children</td> >+ <td> >+ <pre><code class="javascript">$('#node-2').treegrid('render');</code></pre> >+ </td> >+ </tr> >+ >+ >+ </table> >+ <h3>Events</h3> >+ <table> >+ <tr> >+ <th>Event name</th> >+ <th>Description</th> >+ <th>Example</th> >+ </tr> >+ <tr> >+ <td>collapse</td> >+ <td>Will fire when node collapsed</td> >+ <td> >+ <pre><code class="javascript">//Alert when node in treegrid with class "tree" collapsed >+$('.tree').treegrid('getRootNodes').on('collapse', function(){ >+ alert(this); >+});</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>expand</td> >+ <td>Will fire when node expanded</td> >+ <td> >+ <pre><code class="javascript">//Alert when node with id "node1" expanded >+$('#node1').on('expand', function(){ >+ alert(this); >+});</code></pre> >+ </td> >+ </tr> >+ <tr> >+ <td>change</td> >+ <td>Will fire when node changed. Expanded or collapsed</td> >+ <td> >+ <pre><code class="javascript">//Alert when node in treegrid with class "tree" changed. >+$('.tree').treegrid('getRootNodes').on('change', function(){ >+ alert(this); >+});</code></pre> >+ </td> >+ </tr> >+ </table> >+ <h2><a href="test.html">Unit Tests</a></h2> >+ >+ </div> >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script type="text/javascript" src="js/jquery.treegrid.min.js"></script> >+ <script type="text/javascript"> >+ $('.tree').treegrid(); >+ </script> >+ <script type="text/javascript"> >+ var metas = document.getElementsByTagName('meta'); >+ var i; >+ if (navigator.userAgent.match(/iPhone/i)) { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0"; >+ } >+ } >+ document.addEventListener("gesturestart", gestureStart, false); >+ } >+ function gestureStart() { >+ for (i = 0; i < metas.length; i++) { >+ if (metas[i].name == "viewport") { >+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6"; >+ } >+ } >+ }</script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.cookie.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.cookie.js >new file mode 100644 >index 0000000..5505f5e >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.cookie.js >@@ -0,0 +1,96 @@ >+/*! >+ * jQuery Cookie Plugin v1.3.1 >+ * https://github.com/carhartl/jquery-cookie >+ * >+ * Copyright 2013 Klaus Hartl >+ * Released under the MIT license >+ */ >+(function (factory) { >+ if (typeof define === 'function' && define.amd) { >+ // AMD. Register as anonymous module. >+ define(['jquery'], factory); >+ } else { >+ // Browser globals. >+ factory(jQuery); >+ } >+}(function ($) { >+ >+ var pluses = /\+/g; >+ >+ function decode(s) { >+ if (config.raw) { >+ return s; >+ } >+ return decodeURIComponent(s.replace(pluses, ' ')); >+ } >+ >+ function decodeAndParse(s) { >+ if (s.indexOf('"') === 0) { >+ // This is a quoted cookie as according to RFC2068, unescape... >+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); >+ } >+ >+ s = decode(s); >+ >+ try { >+ return config.json ? JSON.parse(s) : s; >+ } catch(e) {} >+ } >+ >+ var config = $.cookie = function (key, value, options) { >+ >+ // Write >+ if (value !== undefined) { >+ options = $.extend({}, config.defaults, options); >+ >+ if (typeof options.expires === 'number') { >+ var days = options.expires, t = options.expires = new Date(); >+ t.setDate(t.getDate() + days); >+ } >+ >+ value = config.json ? JSON.stringify(value) : String(value); >+ >+ return (document.cookie = [ >+ config.raw ? key : encodeURIComponent(key), >+ '=', >+ config.raw ? value : encodeURIComponent(value), >+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE >+ options.path ? '; path=' + options.path : '', >+ options.domain ? '; domain=' + options.domain : '', >+ options.secure ? '; secure' : '' >+ ].join('')); >+ } >+ >+ // Read >+ var cookies = document.cookie.split('; '); >+ var result = key ? undefined : {}; >+ for (var i = 0, l = cookies.length; i < l; i++) { >+ var parts = cookies[i].split('='); >+ var name = decode(parts.shift()); >+ var cookie = parts.join('='); >+ >+ if (key && key === name) { >+ result = decodeAndParse(cookie); >+ break; >+ } >+ >+ if (!key) { >+ result[name] = decodeAndParse(cookie); >+ } >+ } >+ >+ return result; >+ }; >+ >+ config.defaults = {}; >+ >+ $.removeCookie = function (key, options) { >+ if ($.cookie(key) !== undefined) { >+ // Must not alter options, thus extending a fresh object... >+ $.cookie(key, '', $.extend({}, options, { expires: -1 })); >+ return true; >+ } >+ return false; >+ }; >+ >+})); >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap2.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap2.js >new file mode 100644 >index 0000000..409bd83 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap2.js >@@ -0,0 +1,5 @@ >+$.extend($.fn.treegrid.defaults, { >+ expanderTemplate: '<i class="treegrid-expander"></i>', >+ expanderExpandedClass: 'icon-chevron-down', >+ expanderCollapsedClass: 'icon-chevron-right' >+}); >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap3.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap3.js >new file mode 100644 >index 0000000..ac4a835 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.bootstrap3.js >@@ -0,0 +1,4 @@ >+$.extend($.fn.treegrid.defaults, { >+ expanderExpandedClass: 'glyphicon glyphicon-chevron-down', >+ expanderCollapsedClass: 'glyphicon glyphicon-chevron-right' >+}); >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.js >new file mode 100644 >index 0000000..5b513eb >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.js >@@ -0,0 +1,626 @@ >+/* >+ * jQuery treegrid Plugin 0.3.0 >+ * https://github.com/maxazan/jquery-treegrid >+ * >+ * Copyright 2013, Pomazan Max >+ * Licensed under the MIT licenses. >+ */ >+(function($) { >+ >+ var methods = { >+ /** >+ * Initialize tree >+ * >+ * @param {Object} options >+ * @returns {Object[]} >+ */ >+ initTree: function(options) { >+ var settings = $.extend({}, this.treegrid.defaults, options); >+ return this.each(function() { >+ var $this = $(this); >+ $this.treegrid('setTreeContainer', $(this)); >+ $this.treegrid('setSettings', settings); >+ settings.getRootNodes.apply(this, [$(this)]).treegrid('initNode', settings); >+ $this.treegrid('getRootNodes').treegrid('render'); >+ }); >+ }, >+ /** >+ * Initialize node >+ * >+ * @param {Object} settings >+ * @returns {Object[]} >+ */ >+ initNode: function(settings) { >+ return this.each(function() { >+ var $this = $(this); >+ $this.treegrid('setTreeContainer', settings.getTreeGridContainer.apply(this)); >+ $this.treegrid('getChildNodes').treegrid('initNode', settings); >+ $this.treegrid('initExpander').treegrid('initIndent').treegrid('initEvents').treegrid('initState').treegrid('initChangeEvent').treegrid("initSettingsEvents"); >+ }); >+ }, >+ initChangeEvent: function() { >+ var $this = $(this); >+ //Save state on change >+ $this.on("change", function() { >+ var $this = $(this); >+ $this.treegrid('render'); >+ if ($this.treegrid('getSetting', 'saveState')) { >+ $this.treegrid('saveState'); >+ } >+ }); >+ return $this; >+ }, >+ /** >+ * Initialize node events >+ * >+ * @returns {Node} >+ */ >+ initEvents: function() { >+ var $this = $(this); >+ //Default behavior on collapse >+ $this.on("collapse", function() { >+ var $this = $(this); >+ $this.removeClass('treegrid-expanded'); >+ $this.addClass('treegrid-collapsed'); >+ }); >+ //Default behavior on expand >+ $this.on("expand", function() { >+ var $this = $(this); >+ $this.removeClass('treegrid-collapsed'); >+ $this.addClass('treegrid-expanded'); >+ }); >+ >+ return $this; >+ }, >+ /** >+ * Initialize events from settings >+ * >+ * @returns {Node} >+ */ >+ initSettingsEvents: function() { >+ var $this = $(this); >+ //Save state on change >+ $this.on("change", function() { >+ var $this = $(this); >+ if (typeof($this.treegrid('getSetting', 'onChange')) === "function") { >+ $this.treegrid('getSetting', 'onChange').apply($this); >+ } >+ }); >+ //Default behavior on collapse >+ $this.on("collapse", function() { >+ var $this = $(this); >+ if (typeof($this.treegrid('getSetting', 'onCollapse')) === "function") { >+ $this.treegrid('getSetting', 'onCollapse').apply($this); >+ } >+ }); >+ //Default behavior on expand >+ $this.on("expand", function() { >+ var $this = $(this); >+ if (typeof($this.treegrid('getSetting', 'onExpand')) === "function") { >+ $this.treegrid('getSetting', 'onExpand').apply($this); >+ } >+ >+ }); >+ >+ return $this; >+ }, >+ /** >+ * Initialize expander for node >+ * >+ * @returns {Node} >+ */ >+ initExpander: function() { >+ var $this = $(this); >+ var cell = $this.find('td').get($this.treegrid('getSetting', 'treeColumn')); >+ var tpl = $this.treegrid('getSetting', 'expanderTemplate'); >+ var expander = $this.treegrid('getSetting', 'getExpander').apply(this); >+ if (expander) { >+ expander.remove(); >+ } >+ $(tpl).prependTo(cell).click(function() { >+ $($(this).closest('tr')).treegrid('toggle'); >+ }); >+ return $this; >+ }, >+ /** >+ * Initialize indent for node >+ * >+ * @returns {Node} >+ */ >+ initIndent: function() { >+ var $this = $(this); >+ $this.find('.treegrid-indent').remove(); >+ var tpl = $this.treegrid('getSetting', 'indentTemplate'); >+ var expander = $this.find('.treegrid-expander'); >+ var depth = $this.treegrid('getDepth'); >+ for (var i = 0; i < depth; i++) { >+ $(tpl).insertBefore(expander); >+ } >+ return $this; >+ }, >+ /** >+ * Initialise state of node >+ * >+ * @returns {Node} >+ */ >+ initState: function() { >+ var $this = $(this); >+ if ($this.treegrid('getSetting', 'saveState') && !$this.treegrid('isFirstInit')) { >+ $this.treegrid('restoreState'); >+ } else { >+ if ($this.treegrid('getSetting', 'initialState') === "expanded") { >+ $this.treegrid('expand'); >+ } else { >+ $this.treegrid('collapse'); >+ } >+ } >+ return $this; >+ }, >+ /** >+ * Return true if this tree was never been initialised >+ * >+ * @returns {Boolean} >+ */ >+ isFirstInit: function() { >+ var tree = $(this).treegrid('getTreeContainer'); >+ if (tree.data('first_init') === undefined) { >+ tree.data('first_init', $.cookie(tree.treegrid('getSetting', 'saveStateName')) === undefined); >+ } >+ return tree.data('first_init'); >+ }, >+ /** >+ * Save state of current node >+ * >+ * @returns {Node} >+ */ >+ saveState: function() { >+ var $this = $(this); >+ if ($this.treegrid('getSetting', 'saveStateMethod') === 'cookie') { >+ >+ var stateArrayString = $.cookie($this.treegrid('getSetting', 'saveStateName')) || ''; >+ var stateArray = (stateArrayString === '' ? [] : stateArrayString.split(',')); >+ var nodeId = $this.treegrid('getNodeId'); >+ >+ if ($this.treegrid('isExpanded')) { >+ if ($.inArray(nodeId, stateArray) === -1) { >+ stateArray.push(nodeId); >+ } >+ } else if ($this.treegrid('isCollapsed')) { >+ if ($.inArray(nodeId, stateArray) !== -1) { >+ stateArray.splice($.inArray(nodeId, stateArray), 1); >+ } >+ } >+ $.cookie($this.treegrid('getSetting', 'saveStateName'), stateArray.join(',')); >+ } >+ return $this; >+ }, >+ /** >+ * Restore state of current node. >+ * >+ * @returns {Node} >+ */ >+ restoreState: function() { >+ var $this = $(this); >+ if ($this.treegrid('getSetting', 'saveStateMethod') === 'cookie') { >+ var stateArray = $.cookie($this.treegrid('getSetting', 'saveStateName')).split(','); >+ if ($.inArray($this.treegrid('getNodeId'), stateArray) !== -1) { >+ $this.treegrid('expand'); >+ } else { >+ $this.treegrid('collapse'); >+ } >+ >+ } >+ return $this; >+ }, >+ /** >+ * Method return setting by name >+ * >+ * @param {type} name >+ * @returns {unresolved} >+ */ >+ getSetting: function(name) { >+ if (!$(this).treegrid('getTreeContainer')) { >+ return null; >+ } >+ return $(this).treegrid('getTreeContainer').data('settings')[name]; >+ }, >+ /** >+ * Add new settings >+ * >+ * @param {Object} settings >+ */ >+ setSettings: function(settings) { >+ $(this).treegrid('getTreeContainer').data('settings', settings); >+ }, >+ /** >+ * Return tree container >+ * >+ * @returns {HtmlElement} >+ */ >+ getTreeContainer: function() { >+ return $(this).data('treegrid'); >+ }, >+ /** >+ * Set tree container >+ * >+ * @param {HtmlE;ement} container >+ */ >+ setTreeContainer: function(container) { >+ return $(this).data('treegrid', container); >+ }, >+ /** >+ * Method return all root nodes of tree. >+ * >+ * Start init all child nodes from it. >+ * >+ * @returns {Array} >+ */ >+ getRootNodes: function() { >+ return $(this).treegrid('getSetting', 'getRootNodes').apply(this, [$(this).treegrid('getTreeContainer')]); >+ }, >+ /** >+ * Method return all nodes of tree. >+ * >+ * @returns {Array} >+ */ >+ getAllNodes: function() { >+ return $(this).treegrid('getSetting', 'getAllNodes').apply(this, [$(this).treegrid('getTreeContainer')]); >+ }, >+ /** >+ * Mthod return true if element is Node >+ * >+ * @returns {String} >+ */ >+ isNode: function() { >+ return $(this).treegrid('getNodeId') !== null; >+ }, >+ /** >+ * Mthod return id of node >+ * >+ * @returns {String} >+ */ >+ getNodeId: function() { >+ if ($(this).treegrid('getSetting', 'getNodeId') === null) { >+ return null; >+ } else { >+ return $(this).treegrid('getSetting', 'getNodeId').apply(this); >+ } >+ }, >+ /** >+ * Method return parent id of node or null if root node >+ * >+ * @returns {String} >+ */ >+ getParentNodeId: function() { >+ return $(this).treegrid('getSetting', 'getParentNodeId').apply(this); >+ }, >+ /** >+ * Method return parent node or null if root node >+ * >+ * @returns {Object[]} >+ */ >+ getParentNode: function() { >+ if ($(this).treegrid('getParentNodeId') === null) { >+ return null; >+ } else { >+ return $(this).treegrid('getSetting', 'getNodeById').apply(this, [$(this).treegrid('getParentNodeId'), $(this).treegrid('getTreeContainer')]); >+ } >+ }, >+ /** >+ * Method return array of child nodes or null if node is leaf >+ * >+ * @returns {Object[]} >+ */ >+ getChildNodes: function() { >+ return $(this).treegrid('getSetting', 'getChildNodes').apply(this, [$(this).treegrid('getNodeId'), $(this).treegrid('getTreeContainer')]); >+ }, >+ /** >+ * Method return depth of tree. >+ * >+ * This method is needs for calculate indent >+ * >+ * @returns {Number} >+ */ >+ getDepth: function() { >+ if ($(this).treegrid('getParentNode') === null) { >+ return 0; >+ } >+ return $(this).treegrid('getParentNode').treegrid('getDepth') + 1; >+ }, >+ /** >+ * Method return true if node is root >+ * >+ * @returns {Boolean} >+ */ >+ isRoot: function() { >+ return $(this).treegrid('getDepth') === 0; >+ }, >+ /** >+ * Method return true if node has no child nodes >+ * >+ * @returns {Boolean} >+ */ >+ isLeaf: function() { >+ return $(this).treegrid('getChildNodes').length === 0; >+ }, >+ /** >+ * Method return true if node last in branch >+ * >+ * @returns {Boolean} >+ */ >+ isLast: function() { >+ if ($(this).treegrid('isNode')) { >+ var parentNode = $(this).treegrid('getParentNode'); >+ if (parentNode === null) { >+ if ($(this).treegrid('getNodeId') === $(this).treegrid('getRootNodes').last().treegrid('getNodeId')) { >+ return true; >+ } >+ } else { >+ if ($(this).treegrid('getNodeId') === parentNode.treegrid('getChildNodes').last().treegrid('getNodeId')) { >+ return true; >+ } >+ } >+ } >+ return false; >+ }, >+ /** >+ * Method return true if node first in branch >+ * >+ * @returns {Boolean} >+ */ >+ isFirst: function() { >+ if ($(this).treegrid('isNode')) { >+ var parentNode = $(this).treegrid('getParentNode'); >+ if (parentNode === null) { >+ if ($(this).treegrid('getNodeId') === $(this).treegrid('getRootNodes').first().treegrid('getNodeId')) { >+ return true; >+ } >+ } else { >+ if ($(this).treegrid('getNodeId') === parentNode.treegrid('getChildNodes').first().treegrid('getNodeId')) { >+ return true; >+ } >+ } >+ } >+ return false; >+ }, >+ /** >+ * Return true if node expanded >+ * >+ * @returns {Boolean} >+ */ >+ isExpanded: function() { >+ return $(this).hasClass('treegrid-expanded'); >+ }, >+ /** >+ * Return true if node collapsed >+ * >+ * @returns {Boolean} >+ */ >+ isCollapsed: function() { >+ return $(this).hasClass('treegrid-collapsed'); >+ }, >+ /** >+ * Return true if at least one of parent node is collapsed >+ * >+ * @returns {Boolean} >+ */ >+ isOneOfParentsCollapsed: function() { >+ var $this = $(this); >+ if ($this.treegrid('isRoot')) { >+ return false; >+ } else { >+ if ($this.treegrid('getParentNode').treegrid('isCollapsed')) { >+ return true; >+ } else { >+ return $this.treegrid('getParentNode').treegrid('isOneOfParentsCollapsed'); >+ } >+ } >+ }, >+ /** >+ * Expand node >+ * >+ * @returns {Node} >+ */ >+ expand: function() { >+ if (!this.treegrid('isLeaf') && !this.treegrid("isExpanded")) { >+ this.trigger("expand"); >+ this.trigger("change"); >+ return this; >+ } >+ return this; >+ }, >+ /** >+ * Expand all nodes >+ * >+ * @returns {Node} >+ */ >+ expandAll: function() { >+ var $this = $(this); >+ $this.treegrid('getRootNodes').treegrid('expandRecursive'); >+ return $this; >+ }, >+ /** >+ * Expand current node and all child nodes begin from current >+ * >+ * @returns {Node} >+ */ >+ expandRecursive: function() { >+ return $(this).each(function() { >+ var $this = $(this); >+ $this.treegrid('expand'); >+ if (!$this.treegrid('isLeaf')) { >+ $this.treegrid('getChildNodes').treegrid('expandRecursive'); >+ } >+ }); >+ }, >+ /** >+ * Collapse node >+ * >+ * @returns {Node} >+ */ >+ collapse: function() { >+ return $(this).each(function() { >+ var $this = $(this); >+ if (!$this.treegrid('isLeaf') && !$this.treegrid("isCollapsed")) { >+ $this.trigger("collapse"); >+ $this.trigger("change"); >+ } >+ }); >+ }, >+ /** >+ * Collapse all nodes >+ * >+ * @returns {Node} >+ */ >+ collapseAll: function() { >+ var $this = $(this); >+ $this.treegrid('getRootNodes').treegrid('collapseRecursive'); >+ return $this; >+ }, >+ /** >+ * Collapse current node and all child nodes begin from current >+ * >+ * @returns {Node} >+ */ >+ collapseRecursive: function() { >+ return $(this).each(function() { >+ var $this = $(this); >+ $this.treegrid('collapse'); >+ if (!$this.treegrid('isLeaf')) { >+ $this.treegrid('getChildNodes').treegrid('collapseRecursive'); >+ } >+ }); >+ }, >+ /** >+ * Expand if collapsed, Collapse if expanded >+ * >+ * @returns {Node} >+ */ >+ toggle: function() { >+ var $this = $(this); >+ if ($this.treegrid('isExpanded')) { >+ $this.treegrid('collapse'); >+ } else { >+ $this.treegrid('expand'); >+ } >+ return $this; >+ }, >+ /** >+ * Rendering node >+ * >+ * @returns {Node} >+ */ >+ render: function() { >+ return $(this).each(function() { >+ var $this = $(this); >+ //if parent colapsed we hidden >+ if ($this.treegrid('isOneOfParentsCollapsed')) { >+ $this.hide(); >+ } else { >+ $this.show(); >+ } >+ if (!$this.treegrid('isLeaf')) { >+ $this.treegrid('renderExpander'); >+ $this.treegrid('getChildNodes').treegrid('render'); >+ } >+ }); >+ }, >+ /** >+ * Rendering expander depends on node state >+ * >+ * @returns {Node} >+ */ >+ renderExpander: function() { >+ return $(this).each(function() { >+ var $this = $(this); >+ var expander = $this.treegrid('getSetting', 'getExpander').apply(this); >+ if (expander) { >+ >+ if (!$this.treegrid('isCollapsed')) { >+ expander.removeClass($this.treegrid('getSetting', 'expanderCollapsedClass')); >+ expander.addClass($this.treegrid('getSetting', 'expanderExpandedClass')); >+ } else { >+ expander.removeClass($this.treegrid('getSetting', 'expanderExpandedClass')); >+ expander.addClass($this.treegrid('getSetting', 'expanderCollapsedClass')); >+ } >+ } else { >+ $this.treegrid('initExpander'); >+ $this.treegrid('renderExpander'); >+ } >+ }); >+ } >+ }; >+ $.fn.treegrid = function(method) { >+ if (methods[method]) { >+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); >+ } else if (typeof method === 'object' || !method) { >+ return methods.initTree.apply(this, arguments); >+ } else { >+ $.error('Method with name ' + method + ' does not exists for jQuery.treegrid'); >+ } >+ }; >+ /** >+ * Plugin's default options >+ */ >+ $.fn.treegrid.defaults = { >+ initialState: 'expanded', >+ saveState: false, >+ saveStateMethod: 'cookie', >+ saveStateName: 'tree-grid-state', >+ expanderTemplate: '<span class="treegrid-expander"></span>', >+ indentTemplate: '<span class="treegrid-indent"></span>', >+ expanderExpandedClass: 'treegrid-expander-expanded', >+ expanderCollapsedClass: 'treegrid-expander-collapsed', >+ treeColumn: 0, >+ getExpander: function() { >+ return $(this).find('.treegrid-expander'); >+ }, >+ getNodeId: function() { >+ var template = /treegrid-([A-Za-z0-9_-]+)/; >+ if (template.test($(this).attr('class'))) { >+ return template.exec($(this).attr('class'))[1]; >+ } >+ return null; >+ }, >+ getParentNodeId: function() { >+ var template = /treegrid-parent-([A-Za-z0-9_-]+)/; >+ if (template.test($(this).attr('class'))) { >+ return template.exec($(this).attr('class'))[1]; >+ } >+ return null; >+ }, >+ getNodeById: function(id, treegridContainer) { >+ var templateClass = "treegrid-" + id; >+ return treegridContainer.find('tr.' + templateClass); >+ }, >+ getChildNodes: function(id, treegridContainer) { >+ var templateClass = "treegrid-parent-" + id; >+ return treegridContainer.find('tr.' + templateClass); >+ }, >+ getTreeGridContainer: function() { >+ return $(this).closest('table'); >+ }, >+ getRootNodes: function(treegridContainer) { >+ var result = $.grep(treegridContainer.find('tr'), function(element) { >+ var classNames = $(element).attr('class'); >+ var templateClass = /treegrid-([A-Za-z0-9_-]+)/; >+ var templateParentClass = /treegrid-parent-([A-Za-z0-9_-]+)/; >+ return templateClass.test(classNames) && !templateParentClass.test(classNames); >+ }); >+ return $(result); >+ }, >+ getAllNodes: function(treegridContainer) { >+ var result = $.grep(treegridContainer.find('tr'), function(element) { >+ var classNames = $(element).attr('class'); >+ var templateClass = /treegrid-([A-Za-z0-9_-]+)/; >+ return templateClass.test(classNames); >+ }); >+ return $(result); >+ }, >+ //Events >+ onCollapse: null, >+ onExpand: null, >+ onChange: null >+ >+ }; >+})(jQuery); >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.min.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.min.js >new file mode 100644 >index 0000000..7b7566f >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/js/jquery.treegrid.min.js >@@ -0,0 +1,2 @@ >+/*! jquery-treegrid 0.3.0 */ >+!function(a){var b={initTree:function(b){var c=a.extend({},this.treegrid.defaults,b);return this.each(function(){var b=a(this);b.treegrid("setTreeContainer",a(this)),b.treegrid("setSettings",c),c.getRootNodes.apply(this,[a(this)]).treegrid("initNode",c),b.treegrid("getRootNodes").treegrid("render")})},initNode:function(b){return this.each(function(){var c=a(this);c.treegrid("setTreeContainer",b.getTreeGridContainer.apply(this)),c.treegrid("getChildNodes").treegrid("initNode",b),c.treegrid("initExpander").treegrid("initIndent").treegrid("initEvents").treegrid("initState").treegrid("initChangeEvent").treegrid("initSettingsEvents")})},initChangeEvent:function(){var b=a(this);return b.on("change",function(){var b=a(this);b.treegrid("render"),b.treegrid("getSetting","saveState")&&b.treegrid("saveState")}),b},initEvents:function(){var b=a(this);return b.on("collapse",function(){var b=a(this);b.removeClass("treegrid-expanded"),b.addClass("treegrid-collapsed")}),b.on("expand",function(){var b=a(this);b.removeClass("treegrid-collapsed"),b.addClass("treegrid-expanded")}),b},initSettingsEvents:function(){var b=a(this);return b.on("change",function(){var b=a(this);"function"==typeof b.treegrid("getSetting","onChange")&&b.treegrid("getSetting","onChange").apply(b)}),b.on("collapse",function(){var b=a(this);"function"==typeof b.treegrid("getSetting","onCollapse")&&b.treegrid("getSetting","onCollapse").apply(b)}),b.on("expand",function(){var b=a(this);"function"==typeof b.treegrid("getSetting","onExpand")&&b.treegrid("getSetting","onExpand").apply(b)}),b},initExpander:function(){var b=a(this),c=b.find("td").get(b.treegrid("getSetting","treeColumn")),d=b.treegrid("getSetting","expanderTemplate"),e=b.treegrid("getSetting","getExpander").apply(this);return e&&e.remove(),a(d).prependTo(c).click(function(){a(a(this).closest("tr")).treegrid("toggle")}),b},initIndent:function(){var b=a(this);b.find(".treegrid-indent").remove();for(var c=b.treegrid("getSetting","indentTemplate"),d=b.find(".treegrid-expander"),e=b.treegrid("getDepth"),f=0;e>f;f++)a(c).insertBefore(d);return b},initState:function(){var b=a(this);return b.treegrid(b.treegrid("getSetting","saveState")&&!b.treegrid("isFirstInit")?"restoreState":"expanded"===b.treegrid("getSetting","initialState")?"expand":"collapse"),b},isFirstInit:function(){var b=a(this).treegrid("getTreeContainer");return void 0===b.data("first_init")&&b.data("first_init",void 0===a.cookie(b.treegrid("getSetting","saveStateName"))),b.data("first_init")},saveState:function(){var b=a(this);if("cookie"===b.treegrid("getSetting","saveStateMethod")){var c=a.cookie(b.treegrid("getSetting","saveStateName"))||"",d=""===c?[]:c.split(","),e=b.treegrid("getNodeId");b.treegrid("isExpanded")?-1===a.inArray(e,d)&&d.push(e):b.treegrid("isCollapsed")&&-1!==a.inArray(e,d)&&d.splice(a.inArray(e,d),1),a.cookie(b.treegrid("getSetting","saveStateName"),d.join(","))}return b},restoreState:function(){var b=a(this);if("cookie"===b.treegrid("getSetting","saveStateMethod")){var c=a.cookie(b.treegrid("getSetting","saveStateName")).split(",");b.treegrid(-1!==a.inArray(b.treegrid("getNodeId"),c)?"expand":"collapse")}return b},getSetting:function(b){return a(this).treegrid("getTreeContainer")?a(this).treegrid("getTreeContainer").data("settings")[b]:null},setSettings:function(b){a(this).treegrid("getTreeContainer").data("settings",b)},getTreeContainer:function(){return a(this).data("treegrid")},setTreeContainer:function(b){return a(this).data("treegrid",b)},getRootNodes:function(){return a(this).treegrid("getSetting","getRootNodes").apply(this,[a(this).treegrid("getTreeContainer")])},getAllNodes:function(){return a(this).treegrid("getSetting","getAllNodes").apply(this,[a(this).treegrid("getTreeContainer")])},isNode:function(){return null!==a(this).treegrid("getNodeId")},getNodeId:function(){return null===a(this).treegrid("getSetting","getNodeId")?null:a(this).treegrid("getSetting","getNodeId").apply(this)},getParentNodeId:function(){return a(this).treegrid("getSetting","getParentNodeId").apply(this)},getParentNode:function(){return null===a(this).treegrid("getParentNodeId")?null:a(this).treegrid("getSetting","getNodeById").apply(this,[a(this).treegrid("getParentNodeId"),a(this).treegrid("getTreeContainer")])},getChildNodes:function(){return a(this).treegrid("getSetting","getChildNodes").apply(this,[a(this).treegrid("getNodeId"),a(this).treegrid("getTreeContainer")])},getDepth:function(){return null===a(this).treegrid("getParentNode")?0:a(this).treegrid("getParentNode").treegrid("getDepth")+1},isRoot:function(){return 0===a(this).treegrid("getDepth")},isLeaf:function(){return 0===a(this).treegrid("getChildNodes").length},isLast:function(){if(a(this).treegrid("isNode")){var b=a(this).treegrid("getParentNode");if(null===b){if(a(this).treegrid("getNodeId")===a(this).treegrid("getRootNodes").last().treegrid("getNodeId"))return!0}else if(a(this).treegrid("getNodeId")===b.treegrid("getChildNodes").last().treegrid("getNodeId"))return!0}return!1},isFirst:function(){if(a(this).treegrid("isNode")){var b=a(this).treegrid("getParentNode");if(null===b){if(a(this).treegrid("getNodeId")===a(this).treegrid("getRootNodes").first().treegrid("getNodeId"))return!0}else if(a(this).treegrid("getNodeId")===b.treegrid("getChildNodes").first().treegrid("getNodeId"))return!0}return!1},isExpanded:function(){return a(this).hasClass("treegrid-expanded")},isCollapsed:function(){return a(this).hasClass("treegrid-collapsed")},isOneOfParentsCollapsed:function(){var b=a(this);return b.treegrid("isRoot")?!1:b.treegrid("getParentNode").treegrid("isCollapsed")?!0:b.treegrid("getParentNode").treegrid("isOneOfParentsCollapsed")},expand:function(){return this.treegrid("isLeaf")||this.treegrid("isExpanded")?this:(this.trigger("expand"),this.trigger("change"),this)},expandAll:function(){var b=a(this);return b.treegrid("getRootNodes").treegrid("expandRecursive"),b},expandRecursive:function(){return a(this).each(function(){var b=a(this);b.treegrid("expand"),b.treegrid("isLeaf")||b.treegrid("getChildNodes").treegrid("expandRecursive")})},collapse:function(){return a(this).each(function(){var b=a(this);b.treegrid("isLeaf")||b.treegrid("isCollapsed")||(b.trigger("collapse"),b.trigger("change"))})},collapseAll:function(){var b=a(this);return b.treegrid("getRootNodes").treegrid("collapseRecursive"),b},collapseRecursive:function(){return a(this).each(function(){var b=a(this);b.treegrid("collapse"),b.treegrid("isLeaf")||b.treegrid("getChildNodes").treegrid("collapseRecursive")})},toggle:function(){var b=a(this);return b.treegrid(b.treegrid("isExpanded")?"collapse":"expand"),b},render:function(){return a(this).each(function(){var b=a(this);b.treegrid("isOneOfParentsCollapsed")?b.hide():b.show(),b.treegrid("isLeaf")||(b.treegrid("renderExpander"),b.treegrid("getChildNodes").treegrid("render"))})},renderExpander:function(){return a(this).each(function(){var b=a(this),c=b.treegrid("getSetting","getExpander").apply(this);c?b.treegrid("isCollapsed")?(c.removeClass(b.treegrid("getSetting","expanderExpandedClass")),c.addClass(b.treegrid("getSetting","expanderCollapsedClass"))):(c.removeClass(b.treegrid("getSetting","expanderCollapsedClass")),c.addClass(b.treegrid("getSetting","expanderExpandedClass"))):(b.treegrid("initExpander"),b.treegrid("renderExpander"))})}};a.fn.treegrid=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method with name "+c+" does not exists for jQuery.treegrid"):b.initTree.apply(this,arguments)},a.fn.treegrid.defaults={initialState:"expanded",saveState:!1,saveStateMethod:"cookie",saveStateName:"tree-grid-state",expanderTemplate:'<span class="treegrid-expander"></span>',indentTemplate:'<span class="treegrid-indent"></span>',expanderExpandedClass:"treegrid-expander-expanded",expanderCollapsedClass:"treegrid-expander-collapsed",treeColumn:0,getExpander:function(){return a(this).find(".treegrid-expander")},getNodeId:function(){var b=/treegrid-([A-Za-z0-9_-]+)/;return b.test(a(this).attr("class"))?b.exec(a(this).attr("class"))[1]:null},getParentNodeId:function(){var b=/treegrid-parent-([A-Za-z0-9_-]+)/;return b.test(a(this).attr("class"))?b.exec(a(this).attr("class"))[1]:null},getNodeById:function(a,b){var c="treegrid-"+a;return b.find("tr."+c)},getChildNodes:function(a,b){var c="treegrid-parent-"+a;return b.find("tr."+c)},getTreeGridContainer:function(){return a(this).closest("table")},getRootNodes:function(b){var c=a.grep(b.find("tr"),function(b){var c=a(b).attr("class"),d=/treegrid-([A-Za-z0-9_-]+)/,e=/treegrid-parent-([A-Za-z0-9_-]+)/;return d.test(c)&&!e.test(c)});return a(c)},getAllNodes:function(b){var c=a.grep(b.find("tr"),function(b){var c=a(b).attr("class"),d=/treegrid-([A-Za-z0-9_-]+)/;return d.test(c)});return a(c)},onCollapse:null,onExpand:null,onChange:null}}(jQuery); >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/package.json b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/package.json >new file mode 100644 >index 0000000..bd605d1 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/package.json >@@ -0,0 +1,35 @@ >+{ >+ "name": "jquery-treegrid", >+ "version": "0.3.0", >+ "description": "jQuery TreeGrid plugin", >+ "main": "index.js", >+ "directories": { >+ "example": "examples", >+ "test": "tests" >+ }, >+ "scripts": { >+ "test": "echo \"Error: no test specified\" && exit 1" >+ }, >+ "repository": { >+ "type": "git", >+ "url": "https://github.com/maxazan/jquery-treegrid.git" >+ }, >+ "devDependencies": { >+ "grunt": "~0.4.5", >+ "grunt-contrib-jshint": "~0.10.0", >+ "grunt-contrib-nodeunit": "~0.4.1", >+ "grunt-contrib-uglify": "~0.5.0" >+ }, >+ "keywords": [ >+ "treegrid", >+ "table", >+ "grid", >+ "ui" >+ ], >+ "author": "Maksym Pomazan", >+ "license": "MIT", >+ "bugs": { >+ "url": "https://github.com/maxazan/jquery-treegrid/issues" >+ }, >+ "homepage": "https://github.com/maxazan/jquery-treegrid" >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/params.json b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/params.json >new file mode 100644 >index 0000000..021abfc >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/params.json >@@ -0,0 +1 @@ >+{"name":"Jquery-treegrid","tagline":"TreeGrid plugin for jQuery","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `<a>` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at http://help.github.com/pages or contact support@github.com and weâll help you sort it out.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/styles.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/styles.css >new file mode 100644 >index 0000000..ac9b122 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/styles.css >@@ -0,0 +1,250 @@ >+@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700); >+ >+body { >+ padding:50px; >+ font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; >+ color:#777; >+ font-weight:300; >+} >+ >+h1, h2, h3, h4, h5, h6 { >+ color:#222; >+ margin:0 0 20px; >+} >+ >+p, ul, ol, table, pre, dl { >+ margin:0 0 20px; >+} >+ >+h1, h2, h3 { >+ line-height:1.1; >+} >+ >+h1 { >+ font-size:28px; >+} >+ >+h2 { >+ color:#393939; >+} >+ >+h3, h4, h5, h6 { >+ color:#494949; >+} >+ >+a { >+ color:#39c; >+ font-weight:400; >+ text-decoration:none; >+} >+ >+a small { >+ font-size:11px; >+ color:#777; >+ margin-top:-0.6em; >+ display:block; >+} >+ >+.wrapper { >+ width:860px; >+ margin:0 auto; >+} >+ >+blockquote { >+ border-left:1px solid #e5e5e5; >+ margin:0; >+ padding:0 0 0 20px; >+ font-style:italic; >+} >+ >+code, pre { >+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; >+ color:#333; >+ font-size:12px; >+} >+ >+pre { >+ padding:8px 15px; >+ background: #f8f8f8; >+ border-radius:5px; >+ border:1px solid #e5e5e5; >+ overflow-x: auto; >+} >+ >+table { >+ width:100%; >+ border-collapse:collapse; >+} >+ >+th, td { >+ text-align:left; >+ padding:5px 10px; >+ border-bottom:1px solid #e5e5e5; >+} >+ >+dt { >+ color:#444; >+ font-weight:700; >+} >+ >+th { >+ color:#444; >+} >+ >+img { >+ max-width:100%; >+} >+ >+ >+ul.download { >+ list-style:none; >+ height:40px; >+ >+ padding:0; >+ >+ background: #eee; >+ background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); >+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); >+ background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); >+ background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); >+ background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); >+ background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%); >+ >+ border-radius:5px; >+ border:1px solid #d2d2d2; >+ box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0; >+ width:270px; >+} >+ >+ul.download li { >+ width:89px; >+ float:left; >+ border-right:1px solid #d2d2d2; >+ height:40px; >+} >+ >+ul.download a { >+ line-height:1; >+ font-size:11px; >+ color:#999; >+ display:block; >+ text-align:center; >+ padding-top:6px; >+ height:40px; >+} >+ >+strong { >+ color:#222; >+ font-weight:700; >+} >+ >+header ul li + li { >+ width:88px; >+ border-left:1px solid #fff; >+} >+ >+header ul li + li + li { >+ border-right:none; >+ width:89px; >+} >+ >+header ul a strong { >+ font-size:14px; >+ display:block; >+ color:#222; >+} >+ >+section { >+ width:500px; >+ float:right; >+ padding-bottom:50px; >+} >+ >+small { >+ font-size:11px; >+} >+ >+hr { >+ border:0; >+ background:#e5e5e5; >+ height:1px; >+ margin:0 0 20px; >+} >+ >+footer { >+ width:270px; >+ float:left; >+ position:fixed; >+ bottom:50px; >+} >+ >+@media print, screen and (max-width: 960px) { >+ >+ div.wrapper { >+ width:auto; >+ margin:0; >+ } >+ >+ header, section, footer { >+ float:none; >+ position:static; >+ width:auto; >+ } >+ >+ header { >+ padding-right:320px; >+ } >+ >+ section { >+ border:1px solid #e5e5e5; >+ border-width:1px 0; >+ padding:20px 0; >+ margin:0 0 20px; >+ } >+ >+ header a small { >+ display:inline; >+ } >+ >+ header ul { >+ position:absolute; >+ right:50px; >+ top:52px; >+ } >+} >+ >+@media print, screen and (max-width: 720px) { >+ body { >+ word-wrap:break-word; >+ } >+ >+ header { >+ padding:0; >+ } >+ >+ header ul, header p.view { >+ position:static; >+ } >+ >+ pre, code { >+ word-wrap:normal; >+ } >+} >+ >+@media print, screen and (max-width: 480px) { >+ body { >+ padding:15px; >+ } >+ >+ header ul { >+ display:none; >+ } >+} >+ >+@media print { >+ body { >+ padding:0.4in; >+ font-size:12pt; >+ color:#444; >+ } >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/test.html b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/test.html >new file mode 100644 >index 0000000..4dde298 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/test.html >@@ -0,0 +1,207 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <title>jQuery TreeGrid Unit tests</title> >+ <link rel="stylesheet" href="tests/qunit-1.12.0.css"> >+ <link rel="stylesheet" href="css/jquery.treegrid.css"> >+ </head> >+ <body> >+ <div id="qunit"></div> >+ <div id="qunit-fixture"></div> >+ <table> >+ <tr> >+ <td> >+ <table id='tree-1' border="1" cellpadding="0" cellspacing="0"> >+ <tr id="tree-head-1"> >+ <th>1</th><th>2</th> >+ </tr> >+ <tr class="treegrid-1" id="node-1"> >+ <td>1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1" id="node-1-1"> >+ <td>1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-3 treegrid-parent-2' id="node-1-1-1"> >+ <td>1.1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-9 treegrid-parent-2' id="node-1-1-2"> >+ <td>1.1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-10 treegrid-parent-9' id="node-1-1-2-1"> >+ <td>1.1.2.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-4 treegrid-parent-1' id="node-1-2"> >+ <td>1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-5 treegrid-parent-1' id="node-1-3"> >+ <td>1.3</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-6 treegrid-parent-5' id="node-1-3-1"> >+ <td>1.3.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-7 treegrid-parent-1' id="node-1-4"> >+ <td>1.4</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-8 treegrid-parent-7' id="node-1-4-1"> >+ <td>1.4.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-12 treegrid-parent-1' id="node-1-5"> >+ <td>1.5</td><td>Simple text of ...</td> >+ </tr> >+ >+ <tr class="treegrid-11" id="node-2"> >+ <td>2</td><td>Simple text of ...</td> >+ </tr> >+ <tr id="tree-summary-1"> >+ <td>Total</td><td>343</td> >+ </tr> >+ >+ </table> >+ </td> >+ </tr> >+ </table> >+ <hr> >+ <table id='tree-2' border="1" cellpadding="0" cellspacing="0"> >+ <tr> >+ <th>1</th><th>2</th> >+ </tr> >+ <tr class="treegrid-1" id="tnode-1"> >+ <td>1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-2 treegrid-parent-1" id="tnode-1-1"> >+ <td>1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-3 treegrid-parent-2' id="tnode-1-1-1"> >+ <td>1.1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-9 treegrid-parent-2' id="tnode-1-1-2"> >+ <td>1.1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-10 treegrid-parent-9' id="tnode-1-1-2-1"> >+ <td>1.1.2.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-4 treegrid-parent-1' id="tnode-1-2"> >+ <td>1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-5 treegrid-parent-1' id="tnode-1-3"> >+ <td>1.3</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-6 treegrid-parent-5' id="tnode-1-3-1"> >+ <td>1.3.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-7 treegrid-parent-1' id="tnode-1-4"> >+ <td>1.4</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-8 treegrid-parent-7' id="tnode-1-4-1"> >+ <td>1.4.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-11" id="tnode-2"> >+ <td>2</td><td>Simple text of ...</td> >+ </tr> >+ </table> >+ <hr> >+ >+ <table id='tree-3' border="1" cellpadding="0" cellspacing="0"> >+ <tr> >+ <th>1</th><th>2</th> >+ </tr> >+ <tr class="treegrid-alfa1" id="anode-1"> >+ <td>1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-alfa2 treegrid-parent-alfa1" id="anode-1-1"> >+ <td>1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa3 treegrid-parent-alfa2' id="anode-1-1-1"> >+ <td>1.1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa9 treegrid-parent-alfa2' id="anode-1-1-2"> >+ <td>1.1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa10 treegrid-parent-alfa9' id="anode-1-1-2-1"> >+ <td>1.1.2.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa4 treegrid-parent-alfa1' id="anode-1-2"> >+ <td>1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa5 treegrid-parent-alfa1' id="anode-1-3"> >+ <td>1.3</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa6 treegrid-parent-alfa5' id="anode-1-3-1"> >+ <td>1.3.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa7 treegrid-parent-alfa1' id="anode-1-4"> >+ <td>1.4</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa8 treegrid-parent-alfa7' id="anode-1-4-1"> >+ <td>1.4.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-alfa11" id="anode-2"> >+ <td>2</td><td>Simple text of ...</td> >+ </tr> >+ </table> >+ >+ <hr> >+ Event tests >+ <table id='tree-4' border="1" cellpadding="0" cellspacing="0"> >+ <tr> >+ <th>1</th><th>2</th> >+ </tr> >+ <tr class="treegrid-alfa1" id="anode-1"> >+ <td>1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-alfa2 treegrid-parent-alfa1" id="anode-1-1"> >+ <td>1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa3 treegrid-parent-alfa2' id="anode-1-1-1"> >+ <td>1.1.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa9 treegrid-parent-alfa2' id="anode-1-1-2"> >+ <td>1.1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa10 treegrid-parent-alfa9' id="anode-1-1-2-1"> >+ <td>1.1.2.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa4 treegrid-parent-alfa1' id="anode-1-2"> >+ <td>1.2</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa5 treegrid-parent-alfa1' id="anode-1-3"> >+ <td>1.3</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa6 treegrid-parent-alfa5' id="anode-1-3-1"> >+ <td>1.3.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa7 treegrid-parent-alfa1' id="anode-1-4"> >+ <td>1.4</td><td>Simple text of ...</td> >+ </tr> >+ <tr class='treegrid-alfa8 treegrid-parent-alfa7' id="anode-1-4-1"> >+ <td>1.4.1</td><td>Simple text of ...</td> >+ </tr> >+ <tr class="treegrid-alfa11" id="anode-2"> >+ <td>2</td><td>Simple text of ...</td> >+ </tr> >+ </table> >+ >+ <hr> >+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> >+ <script src="js/jquery.treegrid.min.js"></script> >+ <script src="js/jquery.cookie.js"></script> >+ <script> >+ var globalCounter = 0; >+ var saveStateName = 'state-save-4'; >+ $("#tree-1").treegrid({initialState: 'collapsed'}); >+ $("#tree-2").treegrid({treeColumn: 1, initialState: 'expanded', 'saveState': true, 'saveStateName': saveStateName}); >+ $("#tree-3").treegrid({initialState: 'collapsed'}); >+ $("#tree-4").treegrid({onChange: function() { >+ globalCounter++; >+ }, onCollapse: function() { >+ globalCounter++; >+ }, onExpand: function() { >+ globalCounter++; >+ }}); >+ </script> >+ <script src="tests/qunit-1.12.0.js"></script> >+ <script src="tests/tests.js"></script> >+ >+ </body> >+</html> >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.css b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.css >new file mode 100644 >index 0000000..7ba3f9a >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.css >@@ -0,0 +1,244 @@ >+/** >+ * QUnit v1.12.0 - A JavaScript Unit Testing Framework >+ * >+ * http://qunitjs.com >+ * >+ * Copyright 2012 jQuery Foundation and other contributors >+ * Released under the MIT license. >+ * http://jquery.org/license >+ */ >+ >+/** Font Family and Sizes */ >+ >+#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { >+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; >+} >+ >+#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } >+#qunit-tests { font-size: smaller; } >+ >+ >+/** Resets */ >+ >+#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { >+ margin: 0; >+ padding: 0; >+} >+ >+ >+/** Header */ >+ >+#qunit-header { >+ padding: 0.5em 0 0.5em 1em; >+ >+ color: #8699a4; >+ background-color: #0d3349; >+ >+ font-size: 1.5em; >+ line-height: 1em; >+ font-weight: normal; >+ >+ border-radius: 5px 5px 0 0; >+ -moz-border-radius: 5px 5px 0 0; >+ -webkit-border-top-right-radius: 5px; >+ -webkit-border-top-left-radius: 5px; >+} >+ >+#qunit-header a { >+ text-decoration: none; >+ color: #c2ccd1; >+} >+ >+#qunit-header a:hover, >+#qunit-header a:focus { >+ color: #fff; >+} >+ >+#qunit-testrunner-toolbar label { >+ display: inline-block; >+ padding: 0 .5em 0 .1em; >+} >+ >+#qunit-banner { >+ height: 5px; >+} >+ >+#qunit-testrunner-toolbar { >+ padding: 0.5em 0 0.5em 2em; >+ color: #5E740B; >+ background-color: #eee; >+ overflow: hidden; >+} >+ >+#qunit-userAgent { >+ padding: 0.5em 0 0.5em 2.5em; >+ background-color: #2b81af; >+ color: #fff; >+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; >+} >+ >+#qunit-modulefilter-container { >+ float: right; >+} >+ >+/** Tests: Pass/Fail */ >+ >+#qunit-tests { >+ list-style-position: inside; >+} >+ >+#qunit-tests li { >+ padding: 0.4em 0.5em 0.4em 2.5em; >+ border-bottom: 1px solid #fff; >+ list-style-position: inside; >+} >+ >+#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { >+ display: none; >+} >+ >+#qunit-tests li strong { >+ cursor: pointer; >+} >+ >+#qunit-tests li a { >+ padding: 0.5em; >+ color: #c2ccd1; >+ text-decoration: none; >+} >+#qunit-tests li a:hover, >+#qunit-tests li a:focus { >+ color: #000; >+} >+ >+#qunit-tests li .runtime { >+ float: right; >+ font-size: smaller; >+} >+ >+.qunit-assert-list { >+ margin-top: 0.5em; >+ padding: 0.5em; >+ >+ background-color: #fff; >+ >+ border-radius: 5px; >+ -moz-border-radius: 5px; >+ -webkit-border-radius: 5px; >+} >+ >+.qunit-collapsed { >+ display: none; >+} >+ >+#qunit-tests table { >+ border-collapse: collapse; >+ margin-top: .2em; >+} >+ >+#qunit-tests th { >+ text-align: right; >+ vertical-align: top; >+ padding: 0 .5em 0 0; >+} >+ >+#qunit-tests td { >+ vertical-align: top; >+} >+ >+#qunit-tests pre { >+ margin: 0; >+ white-space: pre-wrap; >+ word-wrap: break-word; >+} >+ >+#qunit-tests del { >+ background-color: #e0f2be; >+ color: #374e0c; >+ text-decoration: none; >+} >+ >+#qunit-tests ins { >+ background-color: #ffcaca; >+ color: #500; >+ text-decoration: none; >+} >+ >+/*** Test Counts */ >+ >+#qunit-tests b.counts { color: black; } >+#qunit-tests b.passed { color: #5E740B; } >+#qunit-tests b.failed { color: #710909; } >+ >+#qunit-tests li li { >+ padding: 5px; >+ background-color: #fff; >+ border-bottom: none; >+ list-style-position: inside; >+} >+ >+/*** Passing Styles */ >+ >+#qunit-tests li li.pass { >+ color: #3c510c; >+ background-color: #fff; >+ border-left: 10px solid #C6E746; >+} >+ >+#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } >+#qunit-tests .pass .test-name { color: #366097; } >+ >+#qunit-tests .pass .test-actual, >+#qunit-tests .pass .test-expected { color: #999999; } >+ >+#qunit-banner.qunit-pass { background-color: #C6E746; } >+ >+/*** Failing Styles */ >+ >+#qunit-tests li li.fail { >+ color: #710909; >+ background-color: #fff; >+ border-left: 10px solid #EE5757; >+ white-space: pre; >+} >+ >+#qunit-tests > li:last-child { >+ border-radius: 0 0 5px 5px; >+ -moz-border-radius: 0 0 5px 5px; >+ -webkit-border-bottom-right-radius: 5px; >+ -webkit-border-bottom-left-radius: 5px; >+} >+ >+#qunit-tests .fail { color: #000000; background-color: #EE5757; } >+#qunit-tests .fail .test-name, >+#qunit-tests .fail .module-name { color: #000000; } >+ >+#qunit-tests .fail .test-actual { color: #EE5757; } >+#qunit-tests .fail .test-expected { color: green; } >+ >+#qunit-banner.qunit-fail { background-color: #EE5757; } >+ >+ >+/** Result */ >+ >+#qunit-testresult { >+ padding: 0.5em 0.5em 0.5em 2.5em; >+ >+ color: #2b81af; >+ background-color: #D2E0E6; >+ >+ border-bottom: 1px solid white; >+} >+#qunit-testresult .module-name { >+ font-weight: bold; >+} >+ >+/** Fixture */ >+ >+#qunit-fixture { >+ position: absolute; >+ top: -10000px; >+ left: -10000px; >+ width: 1000px; >+ height: 1000px; >+} >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.js >new file mode 100644 >index 0000000..84c7390 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/qunit-1.12.0.js >@@ -0,0 +1,2212 @@ >+/** >+ * QUnit v1.12.0 - A JavaScript Unit Testing Framework >+ * >+ * http://qunitjs.com >+ * >+ * Copyright 2013 jQuery Foundation and other contributors >+ * Released under the MIT license. >+ * https://jquery.org/license/ >+ */ >+ >+(function( window ) { >+ >+var QUnit, >+ assert, >+ config, >+ onErrorFnPrev, >+ testId = 0, >+ fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""), >+ toString = Object.prototype.toString, >+ hasOwn = Object.prototype.hasOwnProperty, >+ // Keep a local reference to Date (GH-283) >+ Date = window.Date, >+ setTimeout = window.setTimeout, >+ defined = { >+ setTimeout: typeof window.setTimeout !== "undefined", >+ sessionStorage: (function() { >+ var x = "qunit-test-string"; >+ try { >+ sessionStorage.setItem( x, x ); >+ sessionStorage.removeItem( x ); >+ return true; >+ } catch( e ) { >+ return false; >+ } >+ }()) >+ }, >+ /** >+ * Provides a normalized error string, correcting an issue >+ * with IE 7 (and prior) where Error.prototype.toString is >+ * not properly implemented >+ * >+ * Based on http://es5.github.com/#x15.11.4.4 >+ * >+ * @param {String|Error} error >+ * @return {String} error message >+ */ >+ errorString = function( error ) { >+ var name, message, >+ errorString = error.toString(); >+ if ( errorString.substring( 0, 7 ) === "[object" ) { >+ name = error.name ? error.name.toString() : "Error"; >+ message = error.message ? error.message.toString() : ""; >+ if ( name && message ) { >+ return name + ": " + message; >+ } else if ( name ) { >+ return name; >+ } else if ( message ) { >+ return message; >+ } else { >+ return "Error"; >+ } >+ } else { >+ return errorString; >+ } >+ }, >+ /** >+ * Makes a clone of an object using only Array or Object as base, >+ * and copies over the own enumerable properties. >+ * >+ * @param {Object} obj >+ * @return {Object} New object with only the own properties (recursively). >+ */ >+ objectValues = function( obj ) { >+ // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392. >+ /*jshint newcap: false */ >+ var key, val, >+ vals = QUnit.is( "array", obj ) ? [] : {}; >+ for ( key in obj ) { >+ if ( hasOwn.call( obj, key ) ) { >+ val = obj[key]; >+ vals[key] = val === Object(val) ? objectValues(val) : val; >+ } >+ } >+ return vals; >+ }; >+ >+function Test( settings ) { >+ extend( this, settings ); >+ this.assertions = []; >+ this.testNumber = ++Test.count; >+} >+ >+Test.count = 0; >+ >+Test.prototype = { >+ init: function() { >+ var a, b, li, >+ tests = id( "qunit-tests" ); >+ >+ if ( tests ) { >+ b = document.createElement( "strong" ); >+ b.innerHTML = this.nameHtml; >+ >+ // `a` initialized at top of scope >+ a = document.createElement( "a" ); >+ a.innerHTML = "Rerun"; >+ a.href = QUnit.url({ testNumber: this.testNumber }); >+ >+ li = document.createElement( "li" ); >+ li.appendChild( b ); >+ li.appendChild( a ); >+ li.className = "running"; >+ li.id = this.id = "qunit-test-output" + testId++; >+ >+ tests.appendChild( li ); >+ } >+ }, >+ setup: function() { >+ if ( >+ // Emit moduleStart when we're switching from one module to another >+ this.module !== config.previousModule || >+ // They could be equal (both undefined) but if the previousModule property doesn't >+ // yet exist it means this is the first test in a suite that isn't wrapped in a >+ // module, in which case we'll just emit a moduleStart event for 'undefined'. >+ // Without this, reporters can get testStart before moduleStart which is a problem. >+ !hasOwn.call( config, "previousModule" ) >+ ) { >+ if ( hasOwn.call( config, "previousModule" ) ) { >+ runLoggingCallbacks( "moduleDone", QUnit, { >+ name: config.previousModule, >+ failed: config.moduleStats.bad, >+ passed: config.moduleStats.all - config.moduleStats.bad, >+ total: config.moduleStats.all >+ }); >+ } >+ config.previousModule = this.module; >+ config.moduleStats = { all: 0, bad: 0 }; >+ runLoggingCallbacks( "moduleStart", QUnit, { >+ name: this.module >+ }); >+ } >+ >+ config.current = this; >+ >+ this.testEnvironment = extend({ >+ setup: function() {}, >+ teardown: function() {} >+ }, this.moduleTestEnvironment ); >+ >+ this.started = +new Date(); >+ runLoggingCallbacks( "testStart", QUnit, { >+ name: this.testName, >+ module: this.module >+ }); >+ >+ /*jshint camelcase:false */ >+ >+ >+ /** >+ * Expose the current test environment. >+ * >+ * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead. >+ */ >+ QUnit.current_testEnvironment = this.testEnvironment; >+ >+ /*jshint camelcase:true */ >+ >+ if ( !config.pollution ) { >+ saveGlobal(); >+ } >+ if ( config.notrycatch ) { >+ this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); >+ return; >+ } >+ try { >+ this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); >+ } catch( e ) { >+ QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); >+ } >+ }, >+ run: function() { >+ config.current = this; >+ >+ var running = id( "qunit-testresult" ); >+ >+ if ( running ) { >+ running.innerHTML = "Running: <br/>" + this.nameHtml; >+ } >+ >+ if ( this.async ) { >+ QUnit.stop(); >+ } >+ >+ this.callbackStarted = +new Date(); >+ >+ if ( config.notrycatch ) { >+ this.callback.call( this.testEnvironment, QUnit.assert ); >+ this.callbackRuntime = +new Date() - this.callbackStarted; >+ return; >+ } >+ >+ try { >+ this.callback.call( this.testEnvironment, QUnit.assert ); >+ this.callbackRuntime = +new Date() - this.callbackStarted; >+ } catch( e ) { >+ this.callbackRuntime = +new Date() - this.callbackStarted; >+ >+ QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); >+ // else next test will carry the responsibility >+ saveGlobal(); >+ >+ // Restart the tests if they're blocking >+ if ( config.blocking ) { >+ QUnit.start(); >+ } >+ } >+ }, >+ teardown: function() { >+ config.current = this; >+ if ( config.notrycatch ) { >+ if ( typeof this.callbackRuntime === "undefined" ) { >+ this.callbackRuntime = +new Date() - this.callbackStarted; >+ } >+ this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); >+ return; >+ } else { >+ try { >+ this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); >+ } catch( e ) { >+ QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); >+ } >+ } >+ checkPollution(); >+ }, >+ finish: function() { >+ config.current = this; >+ if ( config.requireExpects && this.expected === null ) { >+ QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack ); >+ } else if ( this.expected !== null && this.expected !== this.assertions.length ) { >+ QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack ); >+ } else if ( this.expected === null && !this.assertions.length ) { >+ QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack ); >+ } >+ >+ var i, assertion, a, b, time, li, ol, >+ test = this, >+ good = 0, >+ bad = 0, >+ tests = id( "qunit-tests" ); >+ >+ this.runtime = +new Date() - this.started; >+ config.stats.all += this.assertions.length; >+ config.moduleStats.all += this.assertions.length; >+ >+ if ( tests ) { >+ ol = document.createElement( "ol" ); >+ ol.className = "qunit-assert-list"; >+ >+ for ( i = 0; i < this.assertions.length; i++ ) { >+ assertion = this.assertions[i]; >+ >+ li = document.createElement( "li" ); >+ li.className = assertion.result ? "pass" : "fail"; >+ li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" ); >+ ol.appendChild( li ); >+ >+ if ( assertion.result ) { >+ good++; >+ } else { >+ bad++; >+ config.stats.bad++; >+ config.moduleStats.bad++; >+ } >+ } >+ >+ // store result when possible >+ if ( QUnit.config.reorder && defined.sessionStorage ) { >+ if ( bad ) { >+ sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad ); >+ } else { >+ sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName ); >+ } >+ } >+ >+ if ( bad === 0 ) { >+ addClass( ol, "qunit-collapsed" ); >+ } >+ >+ // `b` initialized at top of scope >+ b = document.createElement( "strong" ); >+ b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>"; >+ >+ addEvent(b, "click", function() { >+ var next = b.parentNode.lastChild, >+ collapsed = hasClass( next, "qunit-collapsed" ); >+ ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" ); >+ }); >+ >+ addEvent(b, "dblclick", function( e ) { >+ var target = e && e.target ? e.target : window.event.srcElement; >+ if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { >+ target = target.parentNode; >+ } >+ if ( window.location && target.nodeName.toLowerCase() === "strong" ) { >+ window.location = QUnit.url({ testNumber: test.testNumber }); >+ } >+ }); >+ >+ // `time` initialized at top of scope >+ time = document.createElement( "span" ); >+ time.className = "runtime"; >+ time.innerHTML = this.runtime + " ms"; >+ >+ // `li` initialized at top of scope >+ li = id( this.id ); >+ li.className = bad ? "fail" : "pass"; >+ li.removeChild( li.firstChild ); >+ a = li.firstChild; >+ li.appendChild( b ); >+ li.appendChild( a ); >+ li.appendChild( time ); >+ li.appendChild( ol ); >+ >+ } else { >+ for ( i = 0; i < this.assertions.length; i++ ) { >+ if ( !this.assertions[i].result ) { >+ bad++; >+ config.stats.bad++; >+ config.moduleStats.bad++; >+ } >+ } >+ } >+ >+ runLoggingCallbacks( "testDone", QUnit, { >+ name: this.testName, >+ module: this.module, >+ failed: bad, >+ passed: this.assertions.length - bad, >+ total: this.assertions.length, >+ duration: this.runtime >+ }); >+ >+ QUnit.reset(); >+ >+ config.current = undefined; >+ }, >+ >+ queue: function() { >+ var bad, >+ test = this; >+ >+ synchronize(function() { >+ test.init(); >+ }); >+ function run() { >+ // each of these can by async >+ synchronize(function() { >+ test.setup(); >+ }); >+ synchronize(function() { >+ test.run(); >+ }); >+ synchronize(function() { >+ test.teardown(); >+ }); >+ synchronize(function() { >+ test.finish(); >+ }); >+ } >+ >+ // `bad` initialized at top of scope >+ // defer when previous test run passed, if storage is available >+ bad = QUnit.config.reorder && defined.sessionStorage && >+ +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName ); >+ >+ if ( bad ) { >+ run(); >+ } else { >+ synchronize( run, true ); >+ } >+ } >+}; >+ >+// Root QUnit object. >+// `QUnit` initialized at top of scope >+QUnit = { >+ >+ // call on start of module test to prepend name to all tests >+ module: function( name, testEnvironment ) { >+ config.currentModule = name; >+ config.currentModuleTestEnvironment = testEnvironment; >+ config.modules[name] = true; >+ }, >+ >+ asyncTest: function( testName, expected, callback ) { >+ if ( arguments.length === 2 ) { >+ callback = expected; >+ expected = null; >+ } >+ >+ QUnit.test( testName, expected, callback, true ); >+ }, >+ >+ test: function( testName, expected, callback, async ) { >+ var test, >+ nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>"; >+ >+ if ( arguments.length === 2 ) { >+ callback = expected; >+ expected = null; >+ } >+ >+ if ( config.currentModule ) { >+ nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml; >+ } >+ >+ test = new Test({ >+ nameHtml: nameHtml, >+ testName: testName, >+ expected: expected, >+ async: async, >+ callback: callback, >+ module: config.currentModule, >+ moduleTestEnvironment: config.currentModuleTestEnvironment, >+ stack: sourceFromStacktrace( 2 ) >+ }); >+ >+ if ( !validTest( test ) ) { >+ return; >+ } >+ >+ test.queue(); >+ }, >+ >+ // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through. >+ expect: function( asserts ) { >+ if (arguments.length === 1) { >+ config.current.expected = asserts; >+ } else { >+ return config.current.expected; >+ } >+ }, >+ >+ start: function( count ) { >+ // QUnit hasn't been initialized yet. >+ // Note: RequireJS (et al) may delay onLoad >+ if ( config.semaphore === undefined ) { >+ QUnit.begin(function() { >+ // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first >+ setTimeout(function() { >+ QUnit.start( count ); >+ }); >+ }); >+ return; >+ } >+ >+ config.semaphore -= count || 1; >+ // don't start until equal number of stop-calls >+ if ( config.semaphore > 0 ) { >+ return; >+ } >+ // ignore if start is called more often then stop >+ if ( config.semaphore < 0 ) { >+ config.semaphore = 0; >+ QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) ); >+ return; >+ } >+ // A slight delay, to avoid any current callbacks >+ if ( defined.setTimeout ) { >+ setTimeout(function() { >+ if ( config.semaphore > 0 ) { >+ return; >+ } >+ if ( config.timeout ) { >+ clearTimeout( config.timeout ); >+ } >+ >+ config.blocking = false; >+ process( true ); >+ }, 13); >+ } else { >+ config.blocking = false; >+ process( true ); >+ } >+ }, >+ >+ stop: function( count ) { >+ config.semaphore += count || 1; >+ config.blocking = true; >+ >+ if ( config.testTimeout && defined.setTimeout ) { >+ clearTimeout( config.timeout ); >+ config.timeout = setTimeout(function() { >+ QUnit.ok( false, "Test timed out" ); >+ config.semaphore = 1; >+ QUnit.start(); >+ }, config.testTimeout ); >+ } >+ } >+}; >+ >+// `assert` initialized at top of scope >+// Assert helpers >+// All of these must either call QUnit.push() or manually do: >+// - runLoggingCallbacks( "log", .. ); >+// - config.current.assertions.push({ .. }); >+// We attach it to the QUnit object *after* we expose the public API, >+// otherwise `assert` will become a global variable in browsers (#341). >+assert = { >+ /** >+ * Asserts rough true-ish result. >+ * @name ok >+ * @function >+ * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); >+ */ >+ ok: function( result, msg ) { >+ if ( !config.current ) { >+ throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) ); >+ } >+ result = !!result; >+ msg = msg || (result ? "okay" : "failed" ); >+ >+ var source, >+ details = { >+ module: config.current.module, >+ name: config.current.testName, >+ result: result, >+ message: msg >+ }; >+ >+ msg = "<span class='test-message'>" + escapeText( msg ) + "</span>"; >+ >+ if ( !result ) { >+ source = sourceFromStacktrace( 2 ); >+ if ( source ) { >+ details.source = source; >+ msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>"; >+ } >+ } >+ runLoggingCallbacks( "log", QUnit, details ); >+ config.current.assertions.push({ >+ result: result, >+ message: msg >+ }); >+ }, >+ >+ /** >+ * Assert that the first two arguments are equal, with an optional message. >+ * Prints out both actual and expected values. >+ * @name equal >+ * @function >+ * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" ); >+ */ >+ equal: function( actual, expected, message ) { >+ /*jshint eqeqeq:false */ >+ QUnit.push( expected == actual, actual, expected, message ); >+ }, >+ >+ /** >+ * @name notEqual >+ * @function >+ */ >+ notEqual: function( actual, expected, message ) { >+ /*jshint eqeqeq:false */ >+ QUnit.push( expected != actual, actual, expected, message ); >+ }, >+ >+ /** >+ * @name propEqual >+ * @function >+ */ >+ propEqual: function( actual, expected, message ) { >+ actual = objectValues(actual); >+ expected = objectValues(expected); >+ QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); >+ }, >+ >+ /** >+ * @name notPropEqual >+ * @function >+ */ >+ notPropEqual: function( actual, expected, message ) { >+ actual = objectValues(actual); >+ expected = objectValues(expected); >+ QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); >+ }, >+ >+ /** >+ * @name deepEqual >+ * @function >+ */ >+ deepEqual: function( actual, expected, message ) { >+ QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); >+ }, >+ >+ /** >+ * @name notDeepEqual >+ * @function >+ */ >+ notDeepEqual: function( actual, expected, message ) { >+ QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); >+ }, >+ >+ /** >+ * @name strictEqual >+ * @function >+ */ >+ strictEqual: function( actual, expected, message ) { >+ QUnit.push( expected === actual, actual, expected, message ); >+ }, >+ >+ /** >+ * @name notStrictEqual >+ * @function >+ */ >+ notStrictEqual: function( actual, expected, message ) { >+ QUnit.push( expected !== actual, actual, expected, message ); >+ }, >+ >+ "throws": function( block, expected, message ) { >+ var actual, >+ expectedOutput = expected, >+ ok = false; >+ >+ // 'expected' is optional >+ if ( typeof expected === "string" ) { >+ message = expected; >+ expected = null; >+ } >+ >+ config.current.ignoreGlobalErrors = true; >+ try { >+ block.call( config.current.testEnvironment ); >+ } catch (e) { >+ actual = e; >+ } >+ config.current.ignoreGlobalErrors = false; >+ >+ if ( actual ) { >+ // we don't want to validate thrown error >+ if ( !expected ) { >+ ok = true; >+ expectedOutput = null; >+ // expected is a regexp >+ } else if ( QUnit.objectType( expected ) === "regexp" ) { >+ ok = expected.test( errorString( actual ) ); >+ // expected is a constructor >+ } else if ( actual instanceof expected ) { >+ ok = true; >+ // expected is a validation function which returns true is validation passed >+ } else if ( expected.call( {}, actual ) === true ) { >+ expectedOutput = null; >+ ok = true; >+ } >+ >+ QUnit.push( ok, actual, expectedOutput, message ); >+ } else { >+ QUnit.pushFailure( message, null, "No exception was thrown." ); >+ } >+ } >+}; >+ >+/** >+ * @deprecated since 1.8.0 >+ * Kept assertion helpers in root for backwards compatibility. >+ */ >+extend( QUnit, assert ); >+ >+/** >+ * @deprecated since 1.9.0 >+ * Kept root "raises()" for backwards compatibility. >+ * (Note that we don't introduce assert.raises). >+ */ >+QUnit.raises = assert[ "throws" ]; >+ >+/** >+ * @deprecated since 1.0.0, replaced with error pushes since 1.3.0 >+ * Kept to avoid TypeErrors for undefined methods. >+ */ >+QUnit.equals = function() { >+ QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" ); >+}; >+QUnit.same = function() { >+ QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" ); >+}; >+ >+// We want access to the constructor's prototype >+(function() { >+ function F() {} >+ F.prototype = QUnit; >+ QUnit = new F(); >+ // Make F QUnit's constructor so that we can add to the prototype later >+ QUnit.constructor = F; >+}()); >+ >+/** >+ * Config object: Maintain internal state >+ * Later exposed as QUnit.config >+ * `config` initialized at top of scope >+ */ >+config = { >+ // The queue of tests to run >+ queue: [], >+ >+ // block until document ready >+ blocking: true, >+ >+ // when enabled, show only failing tests >+ // gets persisted through sessionStorage and can be changed in UI via checkbox >+ hidepassed: false, >+ >+ // by default, run previously failed tests first >+ // very useful in combination with "Hide passed tests" checked >+ reorder: true, >+ >+ // by default, modify document.title when suite is done >+ altertitle: true, >+ >+ // when enabled, all tests must call expect() >+ requireExpects: false, >+ >+ // add checkboxes that are persisted in the query-string >+ // when enabled, the id is set to `true` as a `QUnit.config` property >+ urlConfig: [ >+ { >+ id: "noglobals", >+ label: "Check for Globals", >+ tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings." >+ }, >+ { >+ id: "notrycatch", >+ label: "No try-catch", >+ tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings." >+ } >+ ], >+ >+ // Set of all modules. >+ modules: {}, >+ >+ // logging callback queues >+ begin: [], >+ done: [], >+ log: [], >+ testStart: [], >+ testDone: [], >+ moduleStart: [], >+ moduleDone: [] >+}; >+ >+// Export global variables, unless an 'exports' object exists, >+// in that case we assume we're in CommonJS (dealt with on the bottom of the script) >+if ( typeof exports === "undefined" ) { >+ extend( window, QUnit.constructor.prototype ); >+ >+ // Expose QUnit object >+ window.QUnit = QUnit; >+} >+ >+// Initialize more QUnit.config and QUnit.urlParams >+(function() { >+ var i, >+ location = window.location || { search: "", protocol: "file:" }, >+ params = location.search.slice( 1 ).split( "&" ), >+ length = params.length, >+ urlParams = {}, >+ current; >+ >+ if ( params[ 0 ] ) { >+ for ( i = 0; i < length; i++ ) { >+ current = params[ i ].split( "=" ); >+ current[ 0 ] = decodeURIComponent( current[ 0 ] ); >+ // allow just a key to turn on a flag, e.g., test.html?noglobals >+ current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; >+ urlParams[ current[ 0 ] ] = current[ 1 ]; >+ } >+ } >+ >+ QUnit.urlParams = urlParams; >+ >+ // String search anywhere in moduleName+testName >+ config.filter = urlParams.filter; >+ >+ // Exact match of the module name >+ config.module = urlParams.module; >+ >+ config.testNumber = parseInt( urlParams.testNumber, 10 ) || null; >+ >+ // Figure out if we're running the tests from a server or not >+ QUnit.isLocal = location.protocol === "file:"; >+}()); >+ >+// Extend QUnit object, >+// these after set here because they should not be exposed as global functions >+extend( QUnit, { >+ assert: assert, >+ >+ config: config, >+ >+ // Initialize the configuration options >+ init: function() { >+ extend( config, { >+ stats: { all: 0, bad: 0 }, >+ moduleStats: { all: 0, bad: 0 }, >+ started: +new Date(), >+ updateRate: 1000, >+ blocking: false, >+ autostart: true, >+ autorun: false, >+ filter: "", >+ queue: [], >+ semaphore: 1 >+ }); >+ >+ var tests, banner, result, >+ qunit = id( "qunit" ); >+ >+ if ( qunit ) { >+ qunit.innerHTML = >+ "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + >+ "<h2 id='qunit-banner'></h2>" + >+ "<div id='qunit-testrunner-toolbar'></div>" + >+ "<h2 id='qunit-userAgent'></h2>" + >+ "<ol id='qunit-tests'></ol>"; >+ } >+ >+ tests = id( "qunit-tests" ); >+ banner = id( "qunit-banner" ); >+ result = id( "qunit-testresult" ); >+ >+ if ( tests ) { >+ tests.innerHTML = ""; >+ } >+ >+ if ( banner ) { >+ banner.className = ""; >+ } >+ >+ if ( result ) { >+ result.parentNode.removeChild( result ); >+ } >+ >+ if ( tests ) { >+ result = document.createElement( "p" ); >+ result.id = "qunit-testresult"; >+ result.className = "result"; >+ tests.parentNode.insertBefore( result, tests ); >+ result.innerHTML = "Running...<br/> "; >+ } >+ }, >+ >+ // Resets the test setup. Useful for tests that modify the DOM. >+ /* >+ DEPRECATED: Use multiple tests instead of resetting inside a test. >+ Use testStart or testDone for custom cleanup. >+ This method will throw an error in 2.0, and will be removed in 2.1 >+ */ >+ reset: function() { >+ var fixture = id( "qunit-fixture" ); >+ if ( fixture ) { >+ fixture.innerHTML = config.fixture; >+ } >+ }, >+ >+ // Trigger an event on an element. >+ // @example triggerEvent( document.body, "click" ); >+ triggerEvent: function( elem, type, event ) { >+ if ( document.createEvent ) { >+ event = document.createEvent( "MouseEvents" ); >+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, >+ 0, 0, 0, 0, 0, false, false, false, false, 0, null); >+ >+ elem.dispatchEvent( event ); >+ } else if ( elem.fireEvent ) { >+ elem.fireEvent( "on" + type ); >+ } >+ }, >+ >+ // Safe object type checking >+ is: function( type, obj ) { >+ return QUnit.objectType( obj ) === type; >+ }, >+ >+ objectType: function( obj ) { >+ if ( typeof obj === "undefined" ) { >+ return "undefined"; >+ // consider: typeof null === object >+ } >+ if ( obj === null ) { >+ return "null"; >+ } >+ >+ var match = toString.call( obj ).match(/^\[object\s(.*)\]$/), >+ type = match && match[1] || ""; >+ >+ switch ( type ) { >+ case "Number": >+ if ( isNaN(obj) ) { >+ return "nan"; >+ } >+ return "number"; >+ case "String": >+ case "Boolean": >+ case "Array": >+ case "Date": >+ case "RegExp": >+ case "Function": >+ return type.toLowerCase(); >+ } >+ if ( typeof obj === "object" ) { >+ return "object"; >+ } >+ return undefined; >+ }, >+ >+ push: function( result, actual, expected, message ) { >+ if ( !config.current ) { >+ throw new Error( "assertion outside test context, was " + sourceFromStacktrace() ); >+ } >+ >+ var output, source, >+ details = { >+ module: config.current.module, >+ name: config.current.testName, >+ result: result, >+ message: message, >+ actual: actual, >+ expected: expected >+ }; >+ >+ message = escapeText( message ) || ( result ? "okay" : "failed" ); >+ message = "<span class='test-message'>" + message + "</span>"; >+ output = message; >+ >+ if ( !result ) { >+ expected = escapeText( QUnit.jsDump.parse(expected) ); >+ actual = escapeText( QUnit.jsDump.parse(actual) ); >+ output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>"; >+ >+ if ( actual !== expected ) { >+ output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>"; >+ output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>"; >+ } >+ >+ source = sourceFromStacktrace(); >+ >+ if ( source ) { >+ details.source = source; >+ output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>"; >+ } >+ >+ output += "</table>"; >+ } >+ >+ runLoggingCallbacks( "log", QUnit, details ); >+ >+ config.current.assertions.push({ >+ result: !!result, >+ message: output >+ }); >+ }, >+ >+ pushFailure: function( message, source, actual ) { >+ if ( !config.current ) { >+ throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) ); >+ } >+ >+ var output, >+ details = { >+ module: config.current.module, >+ name: config.current.testName, >+ result: false, >+ message: message >+ }; >+ >+ message = escapeText( message ) || "error"; >+ message = "<span class='test-message'>" + message + "</span>"; >+ output = message; >+ >+ output += "<table>"; >+ >+ if ( actual ) { >+ output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>"; >+ } >+ >+ if ( source ) { >+ details.source = source; >+ output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>"; >+ } >+ >+ output += "</table>"; >+ >+ runLoggingCallbacks( "log", QUnit, details ); >+ >+ config.current.assertions.push({ >+ result: false, >+ message: output >+ }); >+ }, >+ >+ url: function( params ) { >+ params = extend( extend( {}, QUnit.urlParams ), params ); >+ var key, >+ querystring = "?"; >+ >+ for ( key in params ) { >+ if ( hasOwn.call( params, key ) ) { >+ querystring += encodeURIComponent( key ) + "=" + >+ encodeURIComponent( params[ key ] ) + "&"; >+ } >+ } >+ return window.location.protocol + "//" + window.location.host + >+ window.location.pathname + querystring.slice( 0, -1 ); >+ }, >+ >+ extend: extend, >+ id: id, >+ addEvent: addEvent, >+ addClass: addClass, >+ hasClass: hasClass, >+ removeClass: removeClass >+ // load, equiv, jsDump, diff: Attached later >+}); >+ >+/** >+ * @deprecated: Created for backwards compatibility with test runner that set the hook function >+ * into QUnit.{hook}, instead of invoking it and passing the hook function. >+ * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here. >+ * Doing this allows us to tell if the following methods have been overwritten on the actual >+ * QUnit object. >+ */ >+extend( QUnit.constructor.prototype, { >+ >+ // Logging callbacks; all receive a single argument with the listed properties >+ // run test/logs.html for any related changes >+ begin: registerLoggingCallback( "begin" ), >+ >+ // done: { failed, passed, total, runtime } >+ done: registerLoggingCallback( "done" ), >+ >+ // log: { result, actual, expected, message } >+ log: registerLoggingCallback( "log" ), >+ >+ // testStart: { name } >+ testStart: registerLoggingCallback( "testStart" ), >+ >+ // testDone: { name, failed, passed, total, duration } >+ testDone: registerLoggingCallback( "testDone" ), >+ >+ // moduleStart: { name } >+ moduleStart: registerLoggingCallback( "moduleStart" ), >+ >+ // moduleDone: { name, failed, passed, total } >+ moduleDone: registerLoggingCallback( "moduleDone" ) >+}); >+ >+if ( typeof document === "undefined" || document.readyState === "complete" ) { >+ config.autorun = true; >+} >+ >+QUnit.load = function() { >+ runLoggingCallbacks( "begin", QUnit, {} ); >+ >+ // Initialize the config, saving the execution queue >+ var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, >+ urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter, >+ numModules = 0, >+ moduleNames = [], >+ moduleFilterHtml = "", >+ urlConfigHtml = "", >+ oldconfig = extend( {}, config ); >+ >+ QUnit.init(); >+ extend(config, oldconfig); >+ >+ config.blocking = false; >+ >+ len = config.urlConfig.length; >+ >+ for ( i = 0; i < len; i++ ) { >+ val = config.urlConfig[i]; >+ if ( typeof val === "string" ) { >+ val = { >+ id: val, >+ label: val, >+ tooltip: "[no tooltip available]" >+ }; >+ } >+ config[ val.id ] = QUnit.urlParams[ val.id ]; >+ urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) + >+ "' name='" + escapeText( val.id ) + >+ "' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) + >+ " title='" + escapeText( val.tooltip ) + >+ "'><label for='qunit-urlconfig-" + escapeText( val.id ) + >+ "' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>"; >+ } >+ for ( i in config.modules ) { >+ if ( config.modules.hasOwnProperty( i ) ) { >+ moduleNames.push(i); >+ } >+ } >+ numModules = moduleNames.length; >+ moduleNames.sort( function( a, b ) { >+ return a.localeCompare( b ); >+ }); >+ moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " + >+ ( config.module === undefined ? "selected='selected'" : "" ) + >+ ">< All Modules ></option>"; >+ >+ >+ for ( i = 0; i < numModules; i++) { >+ moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " + >+ ( config.module === moduleNames[i] ? "selected='selected'" : "" ) + >+ ">" + escapeText(moduleNames[i]) + "</option>"; >+ } >+ moduleFilterHtml += "</select>"; >+ >+ // `userAgent` initialized at top of scope >+ userAgent = id( "qunit-userAgent" ); >+ if ( userAgent ) { >+ userAgent.innerHTML = navigator.userAgent; >+ } >+ >+ // `banner` initialized at top of scope >+ banner = id( "qunit-header" ); >+ if ( banner ) { >+ banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> "; >+ } >+ >+ // `toolbar` initialized at top of scope >+ toolbar = id( "qunit-testrunner-toolbar" ); >+ if ( toolbar ) { >+ // `filter` initialized at top of scope >+ filter = document.createElement( "input" ); >+ filter.type = "checkbox"; >+ filter.id = "qunit-filter-pass"; >+ >+ addEvent( filter, "click", function() { >+ var tmp, >+ ol = document.getElementById( "qunit-tests" ); >+ >+ if ( filter.checked ) { >+ ol.className = ol.className + " hidepass"; >+ } else { >+ tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; >+ ol.className = tmp.replace( / hidepass /, " " ); >+ } >+ if ( defined.sessionStorage ) { >+ if (filter.checked) { >+ sessionStorage.setItem( "qunit-filter-passed-tests", "true" ); >+ } else { >+ sessionStorage.removeItem( "qunit-filter-passed-tests" ); >+ } >+ } >+ }); >+ >+ if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) { >+ filter.checked = true; >+ // `ol` initialized at top of scope >+ ol = document.getElementById( "qunit-tests" ); >+ ol.className = ol.className + " hidepass"; >+ } >+ toolbar.appendChild( filter ); >+ >+ // `label` initialized at top of scope >+ label = document.createElement( "label" ); >+ label.setAttribute( "for", "qunit-filter-pass" ); >+ label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." ); >+ label.innerHTML = "Hide passed tests"; >+ toolbar.appendChild( label ); >+ >+ urlConfigCheckboxesContainer = document.createElement("span"); >+ urlConfigCheckboxesContainer.innerHTML = urlConfigHtml; >+ urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input"); >+ // For oldIE support: >+ // * Add handlers to the individual elements instead of the container >+ // * Use "click" instead of "change" >+ // * Fallback from event.target to event.srcElement >+ addEvents( urlConfigCheckboxes, "click", function( event ) { >+ var params = {}, >+ target = event.target || event.srcElement; >+ params[ target.name ] = target.checked ? true : undefined; >+ window.location = QUnit.url( params ); >+ }); >+ toolbar.appendChild( urlConfigCheckboxesContainer ); >+ >+ if (numModules > 1) { >+ moduleFilter = document.createElement( "span" ); >+ moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); >+ moduleFilter.innerHTML = moduleFilterHtml; >+ addEvent( moduleFilter.lastChild, "change", function() { >+ var selectBox = moduleFilter.getElementsByTagName("select")[0], >+ selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value); >+ >+ window.location = QUnit.url({ >+ module: ( selectedModule === "" ) ? undefined : selectedModule, >+ // Remove any existing filters >+ filter: undefined, >+ testNumber: undefined >+ }); >+ }); >+ toolbar.appendChild(moduleFilter); >+ } >+ } >+ >+ // `main` initialized at top of scope >+ main = id( "qunit-fixture" ); >+ if ( main ) { >+ config.fixture = main.innerHTML; >+ } >+ >+ if ( config.autostart ) { >+ QUnit.start(); >+ } >+}; >+ >+addEvent( window, "load", QUnit.load ); >+ >+// `onErrorFnPrev` initialized at top of scope >+// Preserve other handlers >+onErrorFnPrev = window.onerror; >+ >+// Cover uncaught exceptions >+// Returning true will suppress the default browser handler, >+// returning false will let it run. >+window.onerror = function ( error, filePath, linerNr ) { >+ var ret = false; >+ if ( onErrorFnPrev ) { >+ ret = onErrorFnPrev( error, filePath, linerNr ); >+ } >+ >+ // Treat return value as window.onerror itself does, >+ // Only do our handling if not suppressed. >+ if ( ret !== true ) { >+ if ( QUnit.config.current ) { >+ if ( QUnit.config.current.ignoreGlobalErrors ) { >+ return true; >+ } >+ QUnit.pushFailure( error, filePath + ":" + linerNr ); >+ } else { >+ QUnit.test( "global failure", extend( function() { >+ QUnit.pushFailure( error, filePath + ":" + linerNr ); >+ }, { validTest: validTest } ) ); >+ } >+ return false; >+ } >+ >+ return ret; >+}; >+ >+function done() { >+ config.autorun = true; >+ >+ // Log the last module results >+ if ( config.currentModule ) { >+ runLoggingCallbacks( "moduleDone", QUnit, { >+ name: config.currentModule, >+ failed: config.moduleStats.bad, >+ passed: config.moduleStats.all - config.moduleStats.bad, >+ total: config.moduleStats.all >+ }); >+ } >+ delete config.previousModule; >+ >+ var i, key, >+ banner = id( "qunit-banner" ), >+ tests = id( "qunit-tests" ), >+ runtime = +new Date() - config.started, >+ passed = config.stats.all - config.stats.bad, >+ html = [ >+ "Tests completed in ", >+ runtime, >+ " milliseconds.<br/>", >+ "<span class='passed'>", >+ passed, >+ "</span> assertions of <span class='total'>", >+ config.stats.all, >+ "</span> passed, <span class='failed'>", >+ config.stats.bad, >+ "</span> failed." >+ ].join( "" ); >+ >+ if ( banner ) { >+ banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" ); >+ } >+ >+ if ( tests ) { >+ id( "qunit-testresult" ).innerHTML = html; >+ } >+ >+ if ( config.altertitle && typeof document !== "undefined" && document.title ) { >+ // show â for good, â for bad suite result in title >+ // use escape sequences in case file gets loaded with non-utf-8-charset >+ document.title = [ >+ ( config.stats.bad ? "\u2716" : "\u2714" ), >+ document.title.replace( /^[\u2714\u2716] /i, "" ) >+ ].join( " " ); >+ } >+ >+ // clear own sessionStorage items if all tests passed >+ if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { >+ // `key` & `i` initialized at top of scope >+ for ( i = 0; i < sessionStorage.length; i++ ) { >+ key = sessionStorage.key( i++ ); >+ if ( key.indexOf( "qunit-test-" ) === 0 ) { >+ sessionStorage.removeItem( key ); >+ } >+ } >+ } >+ >+ // scroll back to top to show results >+ if ( window.scrollTo ) { >+ window.scrollTo(0, 0); >+ } >+ >+ runLoggingCallbacks( "done", QUnit, { >+ failed: config.stats.bad, >+ passed: passed, >+ total: config.stats.all, >+ runtime: runtime >+ }); >+} >+ >+/** @return Boolean: true if this test should be ran */ >+function validTest( test ) { >+ var include, >+ filter = config.filter && config.filter.toLowerCase(), >+ module = config.module && config.module.toLowerCase(), >+ fullName = (test.module + ": " + test.testName).toLowerCase(); >+ >+ // Internally-generated tests are always valid >+ if ( test.callback && test.callback.validTest === validTest ) { >+ delete test.callback.validTest; >+ return true; >+ } >+ >+ if ( config.testNumber ) { >+ return test.testNumber === config.testNumber; >+ } >+ >+ if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) { >+ return false; >+ } >+ >+ if ( !filter ) { >+ return true; >+ } >+ >+ include = filter.charAt( 0 ) !== "!"; >+ if ( !include ) { >+ filter = filter.slice( 1 ); >+ } >+ >+ // If the filter matches, we need to honour include >+ if ( fullName.indexOf( filter ) !== -1 ) { >+ return include; >+ } >+ >+ // Otherwise, do the opposite >+ return !include; >+} >+ >+// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) >+// Later Safari and IE10 are supposed to support error.stack as well >+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack >+function extractStacktrace( e, offset ) { >+ offset = offset === undefined ? 3 : offset; >+ >+ var stack, include, i; >+ >+ if ( e.stacktrace ) { >+ // Opera >+ return e.stacktrace.split( "\n" )[ offset + 3 ]; >+ } else if ( e.stack ) { >+ // Firefox, Chrome >+ stack = e.stack.split( "\n" ); >+ if (/^error$/i.test( stack[0] ) ) { >+ stack.shift(); >+ } >+ if ( fileName ) { >+ include = []; >+ for ( i = offset; i < stack.length; i++ ) { >+ if ( stack[ i ].indexOf( fileName ) !== -1 ) { >+ break; >+ } >+ include.push( stack[ i ] ); >+ } >+ if ( include.length ) { >+ return include.join( "\n" ); >+ } >+ } >+ return stack[ offset ]; >+ } else if ( e.sourceURL ) { >+ // Safari, PhantomJS >+ // hopefully one day Safari provides actual stacktraces >+ // exclude useless self-reference for generated Error objects >+ if ( /qunit.js$/.test( e.sourceURL ) ) { >+ return; >+ } >+ // for actual exceptions, this is useful >+ return e.sourceURL + ":" + e.line; >+ } >+} >+function sourceFromStacktrace( offset ) { >+ try { >+ throw new Error(); >+ } catch ( e ) { >+ return extractStacktrace( e, offset ); >+ } >+} >+ >+/** >+ * Escape text for attribute or text content. >+ */ >+function escapeText( s ) { >+ if ( !s ) { >+ return ""; >+ } >+ s = s + ""; >+ // Both single quotes and double quotes (for attributes) >+ return s.replace( /['"<>&]/g, function( s ) { >+ switch( s ) { >+ case "'": >+ return "'"; >+ case "\"": >+ return """; >+ case "<": >+ return "<"; >+ case ">": >+ return ">"; >+ case "&": >+ return "&"; >+ } >+ }); >+} >+ >+function synchronize( callback, last ) { >+ config.queue.push( callback ); >+ >+ if ( config.autorun && !config.blocking ) { >+ process( last ); >+ } >+} >+ >+function process( last ) { >+ function next() { >+ process( last ); >+ } >+ var start = new Date().getTime(); >+ config.depth = config.depth ? config.depth + 1 : 1; >+ >+ while ( config.queue.length && !config.blocking ) { >+ if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { >+ config.queue.shift()(); >+ } else { >+ setTimeout( next, 13 ); >+ break; >+ } >+ } >+ config.depth--; >+ if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { >+ done(); >+ } >+} >+ >+function saveGlobal() { >+ config.pollution = []; >+ >+ if ( config.noglobals ) { >+ for ( var key in window ) { >+ if ( hasOwn.call( window, key ) ) { >+ // in Opera sometimes DOM element ids show up here, ignore them >+ if ( /^qunit-test-output/.test( key ) ) { >+ continue; >+ } >+ config.pollution.push( key ); >+ } >+ } >+ } >+} >+ >+function checkPollution() { >+ var newGlobals, >+ deletedGlobals, >+ old = config.pollution; >+ >+ saveGlobal(); >+ >+ newGlobals = diff( config.pollution, old ); >+ if ( newGlobals.length > 0 ) { >+ QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); >+ } >+ >+ deletedGlobals = diff( old, config.pollution ); >+ if ( deletedGlobals.length > 0 ) { >+ QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); >+ } >+} >+ >+// returns a new Array with the elements that are in a but not in b >+function diff( a, b ) { >+ var i, j, >+ result = a.slice(); >+ >+ for ( i = 0; i < result.length; i++ ) { >+ for ( j = 0; j < b.length; j++ ) { >+ if ( result[i] === b[j] ) { >+ result.splice( i, 1 ); >+ i--; >+ break; >+ } >+ } >+ } >+ return result; >+} >+ >+function extend( a, b ) { >+ for ( var prop in b ) { >+ if ( hasOwn.call( b, prop ) ) { >+ // Avoid "Member not found" error in IE8 caused by messing with window.constructor >+ if ( !( prop === "constructor" && a === window ) ) { >+ if ( b[ prop ] === undefined ) { >+ delete a[ prop ]; >+ } else { >+ a[ prop ] = b[ prop ]; >+ } >+ } >+ } >+ } >+ >+ return a; >+} >+ >+/** >+ * @param {HTMLElement} elem >+ * @param {string} type >+ * @param {Function} fn >+ */ >+function addEvent( elem, type, fn ) { >+ // Standards-based browsers >+ if ( elem.addEventListener ) { >+ elem.addEventListener( type, fn, false ); >+ // IE >+ } else { >+ elem.attachEvent( "on" + type, fn ); >+ } >+} >+ >+/** >+ * @param {Array|NodeList} elems >+ * @param {string} type >+ * @param {Function} fn >+ */ >+function addEvents( elems, type, fn ) { >+ var i = elems.length; >+ while ( i-- ) { >+ addEvent( elems[i], type, fn ); >+ } >+} >+ >+function hasClass( elem, name ) { >+ return (" " + elem.className + " ").indexOf(" " + name + " ") > -1; >+} >+ >+function addClass( elem, name ) { >+ if ( !hasClass( elem, name ) ) { >+ elem.className += (elem.className ? " " : "") + name; >+ } >+} >+ >+function removeClass( elem, name ) { >+ var set = " " + elem.className + " "; >+ // Class name may appear multiple times >+ while ( set.indexOf(" " + name + " ") > -1 ) { >+ set = set.replace(" " + name + " " , " "); >+ } >+ // If possible, trim it for prettiness, but not necessarily >+ elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, ""); >+} >+ >+function id( name ) { >+ return !!( typeof document !== "undefined" && document && document.getElementById ) && >+ document.getElementById( name ); >+} >+ >+function registerLoggingCallback( key ) { >+ return function( callback ) { >+ config[key].push( callback ); >+ }; >+} >+ >+// Supports deprecated method of completely overwriting logging callbacks >+function runLoggingCallbacks( key, scope, args ) { >+ var i, callbacks; >+ if ( QUnit.hasOwnProperty( key ) ) { >+ QUnit[ key ].call(scope, args ); >+ } else { >+ callbacks = config[ key ]; >+ for ( i = 0; i < callbacks.length; i++ ) { >+ callbacks[ i ].call( scope, args ); >+ } >+ } >+} >+ >+// Test for equality any JavaScript type. >+// Author: Philippe Rathé <prathe@gmail.com> >+QUnit.equiv = (function() { >+ >+ // Call the o related callback with the given arguments. >+ function bindCallbacks( o, callbacks, args ) { >+ var prop = QUnit.objectType( o ); >+ if ( prop ) { >+ if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { >+ return callbacks[ prop ].apply( callbacks, args ); >+ } else { >+ return callbacks[ prop ]; // or undefined >+ } >+ } >+ } >+ >+ // the real equiv function >+ var innerEquiv, >+ // stack to decide between skip/abort functions >+ callers = [], >+ // stack to avoiding loops from circular referencing >+ parents = [], >+ parentsB = [], >+ >+ getProto = Object.getPrototypeOf || function ( obj ) { >+ /*jshint camelcase:false */ >+ return obj.__proto__; >+ }, >+ callbacks = (function () { >+ >+ // for string, boolean, number and null >+ function useStrictEquality( b, a ) { >+ /*jshint eqeqeq:false */ >+ if ( b instanceof a.constructor || a instanceof b.constructor ) { >+ // to catch short annotation VS 'new' annotation of a >+ // declaration >+ // e.g. var i = 1; >+ // var j = new Number(1); >+ return a == b; >+ } else { >+ return a === b; >+ } >+ } >+ >+ return { >+ "string": useStrictEquality, >+ "boolean": useStrictEquality, >+ "number": useStrictEquality, >+ "null": useStrictEquality, >+ "undefined": useStrictEquality, >+ >+ "nan": function( b ) { >+ return isNaN( b ); >+ }, >+ >+ "date": function( b, a ) { >+ return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); >+ }, >+ >+ "regexp": function( b, a ) { >+ return QUnit.objectType( b ) === "regexp" && >+ // the regex itself >+ a.source === b.source && >+ // and its modifiers >+ a.global === b.global && >+ // (gmi) ... >+ a.ignoreCase === b.ignoreCase && >+ a.multiline === b.multiline && >+ a.sticky === b.sticky; >+ }, >+ >+ // - skip when the property is a method of an instance (OOP) >+ // - abort otherwise, >+ // initial === would have catch identical references anyway >+ "function": function() { >+ var caller = callers[callers.length - 1]; >+ return caller !== Object && typeof caller !== "undefined"; >+ }, >+ >+ "array": function( b, a ) { >+ var i, j, len, loop, aCircular, bCircular; >+ >+ // b could be an object literal here >+ if ( QUnit.objectType( b ) !== "array" ) { >+ return false; >+ } >+ >+ len = a.length; >+ if ( len !== b.length ) { >+ // safe and faster >+ return false; >+ } >+ >+ // track reference to avoid circular references >+ parents.push( a ); >+ parentsB.push( b ); >+ for ( i = 0; i < len; i++ ) { >+ loop = false; >+ for ( j = 0; j < parents.length; j++ ) { >+ aCircular = parents[j] === a[i]; >+ bCircular = parentsB[j] === b[i]; >+ if ( aCircular || bCircular ) { >+ if ( a[i] === b[i] || aCircular && bCircular ) { >+ loop = true; >+ } else { >+ parents.pop(); >+ parentsB.pop(); >+ return false; >+ } >+ } >+ } >+ if ( !loop && !innerEquiv(a[i], b[i]) ) { >+ parents.pop(); >+ parentsB.pop(); >+ return false; >+ } >+ } >+ parents.pop(); >+ parentsB.pop(); >+ return true; >+ }, >+ >+ "object": function( b, a ) { >+ /*jshint forin:false */ >+ var i, j, loop, aCircular, bCircular, >+ // Default to true >+ eq = true, >+ aProperties = [], >+ bProperties = []; >+ >+ // comparing constructors is more strict than using >+ // instanceof >+ if ( a.constructor !== b.constructor ) { >+ // Allow objects with no prototype to be equivalent to >+ // objects with Object as their constructor. >+ if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) || >+ ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) { >+ return false; >+ } >+ } >+ >+ // stack constructor before traversing properties >+ callers.push( a.constructor ); >+ >+ // track reference to avoid circular references >+ parents.push( a ); >+ parentsB.push( b ); >+ >+ // be strict: don't ensure hasOwnProperty and go deep >+ for ( i in a ) { >+ loop = false; >+ for ( j = 0; j < parents.length; j++ ) { >+ aCircular = parents[j] === a[i]; >+ bCircular = parentsB[j] === b[i]; >+ if ( aCircular || bCircular ) { >+ if ( a[i] === b[i] || aCircular && bCircular ) { >+ loop = true; >+ } else { >+ eq = false; >+ break; >+ } >+ } >+ } >+ aProperties.push(i); >+ if ( !loop && !innerEquiv(a[i], b[i]) ) { >+ eq = false; >+ break; >+ } >+ } >+ >+ parents.pop(); >+ parentsB.pop(); >+ callers.pop(); // unstack, we are done >+ >+ for ( i in b ) { >+ bProperties.push( i ); // collect b's properties >+ } >+ >+ // Ensures identical properties name >+ return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); >+ } >+ }; >+ }()); >+ >+ innerEquiv = function() { // can take multiple arguments >+ var args = [].slice.apply( arguments ); >+ if ( args.length < 2 ) { >+ return true; // end transition >+ } >+ >+ return (function( a, b ) { >+ if ( a === b ) { >+ return true; // catch the most you can >+ } else if ( a === null || b === null || typeof a === "undefined" || >+ typeof b === "undefined" || >+ QUnit.objectType(a) !== QUnit.objectType(b) ) { >+ return false; // don't lose time with error prone cases >+ } else { >+ return bindCallbacks(a, callbacks, [ b, a ]); >+ } >+ >+ // apply transition with (1..n) arguments >+ }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) ); >+ }; >+ >+ return innerEquiv; >+}()); >+ >+/** >+ * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | >+ * http://flesler.blogspot.com Licensed under BSD >+ * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 >+ * >+ * @projectDescription Advanced and extensible data dumping for Javascript. >+ * @version 1.0.0 >+ * @author Ariel Flesler >+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} >+ */ >+QUnit.jsDump = (function() { >+ function quote( str ) { >+ return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; >+ } >+ function literal( o ) { >+ return o + ""; >+ } >+ function join( pre, arr, post ) { >+ var s = jsDump.separator(), >+ base = jsDump.indent(), >+ inner = jsDump.indent(1); >+ if ( arr.join ) { >+ arr = arr.join( "," + s + inner ); >+ } >+ if ( !arr ) { >+ return pre + post; >+ } >+ return [ pre, inner + arr, base + post ].join(s); >+ } >+ function array( arr, stack ) { >+ var i = arr.length, ret = new Array(i); >+ this.up(); >+ while ( i-- ) { >+ ret[i] = this.parse( arr[i] , undefined , stack); >+ } >+ this.down(); >+ return join( "[", ret, "]" ); >+ } >+ >+ var reName = /^function (\w+)/, >+ jsDump = { >+ // type is used mostly internally, you can fix a (custom)type in advance >+ parse: function( obj, type, stack ) { >+ stack = stack || [ ]; >+ var inStack, res, >+ parser = this.parsers[ type || this.typeOf(obj) ]; >+ >+ type = typeof parser; >+ inStack = inArray( obj, stack ); >+ >+ if ( inStack !== -1 ) { >+ return "recursion(" + (inStack - stack.length) + ")"; >+ } >+ if ( type === "function" ) { >+ stack.push( obj ); >+ res = parser.call( this, obj, stack ); >+ stack.pop(); >+ return res; >+ } >+ return ( type === "string" ) ? parser : this.parsers.error; >+ }, >+ typeOf: function( obj ) { >+ var type; >+ if ( obj === null ) { >+ type = "null"; >+ } else if ( typeof obj === "undefined" ) { >+ type = "undefined"; >+ } else if ( QUnit.is( "regexp", obj) ) { >+ type = "regexp"; >+ } else if ( QUnit.is( "date", obj) ) { >+ type = "date"; >+ } else if ( QUnit.is( "function", obj) ) { >+ type = "function"; >+ } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) { >+ type = "window"; >+ } else if ( obj.nodeType === 9 ) { >+ type = "document"; >+ } else if ( obj.nodeType ) { >+ type = "node"; >+ } else if ( >+ // native arrays >+ toString.call( obj ) === "[object Array]" || >+ // NodeList objects >+ ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) >+ ) { >+ type = "array"; >+ } else if ( obj.constructor === Error.prototype.constructor ) { >+ type = "error"; >+ } else { >+ type = typeof obj; >+ } >+ return type; >+ }, >+ separator: function() { >+ return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " "; >+ }, >+ // extra can be a number, shortcut for increasing-calling-decreasing >+ indent: function( extra ) { >+ if ( !this.multiline ) { >+ return ""; >+ } >+ var chr = this.indentChar; >+ if ( this.HTML ) { >+ chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); >+ } >+ return new Array( this.depth + ( extra || 0 ) ).join(chr); >+ }, >+ up: function( a ) { >+ this.depth += a || 1; >+ }, >+ down: function( a ) { >+ this.depth -= a || 1; >+ }, >+ setParser: function( name, parser ) { >+ this.parsers[name] = parser; >+ }, >+ // The next 3 are exposed so you can use them >+ quote: quote, >+ literal: literal, >+ join: join, >+ // >+ depth: 1, >+ // This is the list of parsers, to modify them, use jsDump.setParser >+ parsers: { >+ window: "[Window]", >+ document: "[Document]", >+ error: function(error) { >+ return "Error(\"" + error.message + "\")"; >+ }, >+ unknown: "[Unknown]", >+ "null": "null", >+ "undefined": "undefined", >+ "function": function( fn ) { >+ var ret = "function", >+ // functions never have name in IE >+ name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1]; >+ >+ if ( name ) { >+ ret += " " + name; >+ } >+ ret += "( "; >+ >+ ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" ); >+ return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" ); >+ }, >+ array: array, >+ nodelist: array, >+ "arguments": array, >+ object: function( map, stack ) { >+ /*jshint forin:false */ >+ var ret = [ ], keys, key, val, i; >+ QUnit.jsDump.up(); >+ keys = []; >+ for ( key in map ) { >+ keys.push( key ); >+ } >+ keys.sort(); >+ for ( i = 0; i < keys.length; i++ ) { >+ key = keys[ i ]; >+ val = map[ key ]; >+ ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) ); >+ } >+ QUnit.jsDump.down(); >+ return join( "{", ret, "}" ); >+ }, >+ node: function( node ) { >+ var len, i, val, >+ open = QUnit.jsDump.HTML ? "<" : "<", >+ close = QUnit.jsDump.HTML ? ">" : ">", >+ tag = node.nodeName.toLowerCase(), >+ ret = open + tag, >+ attrs = node.attributes; >+ >+ if ( attrs ) { >+ for ( i = 0, len = attrs.length; i < len; i++ ) { >+ val = attrs[i].nodeValue; >+ // IE6 includes all attributes in .attributes, even ones not explicitly set. >+ // Those have values like undefined, null, 0, false, "" or "inherit". >+ if ( val && val !== "inherit" ) { >+ ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" ); >+ } >+ } >+ } >+ ret += close; >+ >+ // Show content of TextNode or CDATASection >+ if ( node.nodeType === 3 || node.nodeType === 4 ) { >+ ret += node.nodeValue; >+ } >+ >+ return ret + open + "/" + tag + close; >+ }, >+ // function calls it internally, it's the arguments part of the function >+ functionArgs: function( fn ) { >+ var args, >+ l = fn.length; >+ >+ if ( !l ) { >+ return ""; >+ } >+ >+ args = new Array(l); >+ while ( l-- ) { >+ // 97 is 'a' >+ args[l] = String.fromCharCode(97+l); >+ } >+ return " " + args.join( ", " ) + " "; >+ }, >+ // object calls it internally, the key part of an item in a map >+ key: quote, >+ // function calls it internally, it's the content of the function >+ functionCode: "[code]", >+ // node calls it internally, it's an html attribute value >+ attribute: quote, >+ string: quote, >+ date: quote, >+ regexp: literal, >+ number: literal, >+ "boolean": literal >+ }, >+ // if true, entities are escaped ( <, >, \t, space and \n ) >+ HTML: false, >+ // indentation unit >+ indentChar: " ", >+ // if true, items in a collection, are separated by a \n, else just a space. >+ multiline: true >+ }; >+ >+ return jsDump; >+}()); >+ >+// from jquery.js >+function inArray( elem, array ) { >+ if ( array.indexOf ) { >+ return array.indexOf( elem ); >+ } >+ >+ for ( var i = 0, length = array.length; i < length; i++ ) { >+ if ( array[ i ] === elem ) { >+ return i; >+ } >+ } >+ >+ return -1; >+} >+ >+/* >+ * Javascript Diff Algorithm >+ * By John Resig (http://ejohn.org/) >+ * Modified by Chu Alan "sprite" >+ * >+ * Released under the MIT license. >+ * >+ * More Info: >+ * http://ejohn.org/projects/javascript-diff-algorithm/ >+ * >+ * Usage: QUnit.diff(expected, actual) >+ * >+ * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over" >+ */ >+QUnit.diff = (function() { >+ /*jshint eqeqeq:false, eqnull:true */ >+ function diff( o, n ) { >+ var i, >+ ns = {}, >+ os = {}; >+ >+ for ( i = 0; i < n.length; i++ ) { >+ if ( !hasOwn.call( ns, n[i] ) ) { >+ ns[ n[i] ] = { >+ rows: [], >+ o: null >+ }; >+ } >+ ns[ n[i] ].rows.push( i ); >+ } >+ >+ for ( i = 0; i < o.length; i++ ) { >+ if ( !hasOwn.call( os, o[i] ) ) { >+ os[ o[i] ] = { >+ rows: [], >+ n: null >+ }; >+ } >+ os[ o[i] ].rows.push( i ); >+ } >+ >+ for ( i in ns ) { >+ if ( hasOwn.call( ns, i ) ) { >+ if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) { >+ n[ ns[i].rows[0] ] = { >+ text: n[ ns[i].rows[0] ], >+ row: os[i].rows[0] >+ }; >+ o[ os[i].rows[0] ] = { >+ text: o[ os[i].rows[0] ], >+ row: ns[i].rows[0] >+ }; >+ } >+ } >+ } >+ >+ for ( i = 0; i < n.length - 1; i++ ) { >+ if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null && >+ n[ i + 1 ] == o[ n[i].row + 1 ] ) { >+ >+ n[ i + 1 ] = { >+ text: n[ i + 1 ], >+ row: n[i].row + 1 >+ }; >+ o[ n[i].row + 1 ] = { >+ text: o[ n[i].row + 1 ], >+ row: i + 1 >+ }; >+ } >+ } >+ >+ for ( i = n.length - 1; i > 0; i-- ) { >+ if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null && >+ n[ i - 1 ] == o[ n[i].row - 1 ]) { >+ >+ n[ i - 1 ] = { >+ text: n[ i - 1 ], >+ row: n[i].row - 1 >+ }; >+ o[ n[i].row - 1 ] = { >+ text: o[ n[i].row - 1 ], >+ row: i - 1 >+ }; >+ } >+ } >+ >+ return { >+ o: o, >+ n: n >+ }; >+ } >+ >+ return function( o, n ) { >+ o = o.replace( /\s+$/, "" ); >+ n = n.replace( /\s+$/, "" ); >+ >+ var i, pre, >+ str = "", >+ out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ), >+ oSpace = o.match(/\s+/g), >+ nSpace = n.match(/\s+/g); >+ >+ if ( oSpace == null ) { >+ oSpace = [ " " ]; >+ } >+ else { >+ oSpace.push( " " ); >+ } >+ >+ if ( nSpace == null ) { >+ nSpace = [ " " ]; >+ } >+ else { >+ nSpace.push( " " ); >+ } >+ >+ if ( out.n.length === 0 ) { >+ for ( i = 0; i < out.o.length; i++ ) { >+ str += "<del>" + out.o[i] + oSpace[i] + "</del>"; >+ } >+ } >+ else { >+ if ( out.n[0].text == null ) { >+ for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) { >+ str += "<del>" + out.o[n] + oSpace[n] + "</del>"; >+ } >+ } >+ >+ for ( i = 0; i < out.n.length; i++ ) { >+ if (out.n[i].text == null) { >+ str += "<ins>" + out.n[i] + nSpace[i] + "</ins>"; >+ } >+ else { >+ // `pre` initialized at top of scope >+ pre = ""; >+ >+ for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) { >+ pre += "<del>" + out.o[n] + oSpace[n] + "</del>"; >+ } >+ str += " " + out.n[i].text + nSpace[i] + pre; >+ } >+ } >+ } >+ >+ return str; >+ }; >+}()); >+ >+// for CommonJS environments, export everything >+if ( typeof exports !== "undefined" ) { >+ extend( exports, QUnit.constructor.prototype ); >+} >+ >+// get at whatever the global object is, like window in browsers >+}( (function() {return this;}.call()) )); >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/tests.js b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/tests.js >new file mode 100644 >index 0000000..a8c13b1 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/tests/tests.js >@@ -0,0 +1,188 @@ >+test("getRootNodes()", function() { >+ var rootNodes = $('#tree-1').treegrid('getRootNodes'); >+ ok(rootNodes.length === 2, "Length need to be 2"); >+ equal($(rootNodes.get(0)).attr('id'), 'node-1', 'Test node 1'); >+ equal($(rootNodes.get(1)).attr('id'), 'node-2', 'Test node 2'); >+ var rootNodes2 = $('#node-1-1-2-1').treegrid('getRootNodes'); >+ equal(rootNodes.length, rootNodes2.length, "Length need to be equal"); >+}); >+ >+test("isolated options", function() { >+ ok($('#node-1-1-2-1').treegrid('getSetting', 'initialState') !== $('#tnode-1-1-2-1').treegrid('getSetting', 'initialState'), "need to be not equal"); >+}); >+ >+test("treeColumn test", function() { >+ ok($($('#node-1-1-2').find('td').get(1)).find('.treegrid-expander').length === 0, "0"); >+ ok($($('#node-1-1-2').find('td').get(0)).find('.treegrid-expander').length === 1, "1"); >+ ok($($('#tnode-1-1-2').find('td').get(0)).find('.treegrid-expander').length === 0, "0"); >+ ok($($('#tnode-1-1-2').find('td').get(1)).find('.treegrid-expander').length === 1, "1"); >+}); >+ >+test("getNodeId()", function() { >+ equal($('#node-1-1-2-1').treegrid('getNodeId'), 10, "Return 10"); >+ equal($('#node-1-1-2').treegrid('getNodeId'), 9, "Return 9"); >+}); >+ >+test("getParentNodeId()", function() { >+ equal($('#node-1-1-2-1').treegrid('getParentNodeId'), 9, "Return 9"); >+ equal($('#node-1-1-2').treegrid('getParentNodeId'), 2, "Return 2"); >+ equal($('#node-1-1-2').treegrid('getParentNodeId'), $('#node-1-1').treegrid('getNodeId'), "Equal id"); >+}); >+ >+test("getParentNode()", function() { >+ equal($('#node-1-1-2-1').treegrid('getParentNode').treegrid('getNodeId'), 9, "Return 9"); >+ equal($('#node-1').treegrid('getParentNode'), null, "Return null"); >+}); >+ >+test("getChildNodes()", function() { >+ equal($('#node-1').treegrid('getChildNodes').length, 5, "Return 5"); >+ equal($('#node-1-1-2-1').treegrid('getChildNodes').length, [], "Return []"); >+}); >+ >+test("getDepth()", function() { >+ equal($('#node-1').treegrid('getDepth'), 0, "Return 0"); >+ equal($('#node-1-1-2-1').treegrid('getDepth'), 3, "Return 3"); >+}); >+ >+test("isLeaf()", function() { >+ ok($('#node-1-1-2-1').treegrid('isLeaf') === true, "true"); >+ ok($('#node-1').treegrid('isLeaf') === false, "false"); >+}); >+ >+test("isLast()", function() { >+ //Test root nodes >+ ok($('#node-1').treegrid('isLast') === false, "Not Last!"); >+ ok($('#node-2').treegrid('isLast') === true, "Last!"); >+ //Test nodes with branch >+ ok($('#node-1-4').treegrid('isLast') === false, "Not Last test!"); >+ ok($('#node-1-5').treegrid('isLast') === true, "Last test!"); >+ ok($('#node-1-1-2-1').treegrid('isLast') === true, "Last test!"); >+ ok($('#node-1-2').treegrid('isLast') === false, "Not Last test!"); >+}); >+ >+test("isFirst()", function() { >+ //Test root nodes >+ ok($('#node-1').treegrid('isFirst') === true, "First!"); >+ ok($('#node-2').treegrid('isFirst') === false, "Not first!"); >+ //Test nodes with branch >+ ok($('#node-1-1').treegrid('isFirst') === true, "First!"); >+ ok($('#node-1-4').treegrid('isFirst') === false, "Not first!"); >+ ok($('#node-1-1-2-1').treegrid('isFirst') === true, "First!"); >+ ok($('#node-1-2').treegrid('isFirst') === false, "Not First!"); >+}); >+ >+test("isRoot()", function() { >+ ok($('#node-1').treegrid('isRoot') === true, "Root test!"); >+ ok($('#node-1-2').treegrid('isRoot') === false, "Not Root test!"); >+ ok($('#node-2').treegrid('isRoot') === true, "Other root test!"); >+}); >+ >+test("expand(), collapse(), isExpanded(), isCollapsed()", function() { >+ $('#node-1').treegrid('expand'); >+ ok($('#node-1').treegrid('isExpanded') === true, "Expanded"); >+ ok($('#node-1').hasClass('treegrid-expanded'), "Expanded class"); >+ $('#node-1').treegrid('collapse'); >+ ok($('#node-1').treegrid('isCollapsed') === true, "Collapsed"); >+ ok($('#node-1').hasClass('treegrid-collapsed'), "Collapsed class"); >+ $('#node-1').find('.treegrid-expander').click(); >+ ok($('#node-1').treegrid('isExpanded') === true, "Expanded after click simulate"); >+ $('#node-1').treegrid('collapse'); >+ ok($('#node-1-1').is(':visible') === false, "hidden child node 1-1"); >+ ok($('#node-1-1-2').is(':visible') === false, "hidden child node 1-1-2"); >+ ok($('#node-1-1-2-1').is(':visible') === false, "hidden child node 1-1-2-1"); >+}); >+ >+test("expandAll()", function() { >+ $('#tree-1').treegrid('expandAll'); >+ ok($('#node-1').treegrid('isExpanded') === true, "Expanded"); >+ ok($('#node-1-1').treegrid('isExpanded') === true, "Expanded 1-1"); >+ ok($('#node-1-1-2').treegrid('isExpanded') === true, "Expanded 1-1-2"); >+}); >+ >+test("collapseAll()", function() { >+ $('#tree-1').treegrid('collapseAll'); >+ ok($('#node-1').treegrid('isExpanded') === false, "Collapsed"); >+ ok($('#node-1-1').treegrid('isExpanded') === false, "Collapsed 1-1"); >+ ok($('#node-1-1-2').treegrid('isExpanded') === false, "Collapsed 1-1-2"); >+ $('#node-1-1-2').treegrid('expandAll'); >+ ok($('#node-1-1').treegrid('isExpanded') === true, "Expanded 1-1"); >+}); >+ >+test("Save state (cookie method)", function() { >+ ok($.cookie(saveStateName) !== undefined, "Cookie set"); >+ $.cookie(saveStateName, '1,5'); >+ $('#tnode-1').treegrid('restoreState'); >+ $('#tnode-1-3').treegrid('restoreState'); >+ ok($('#tnode-1').treegrid('isExpanded'), "tnode-1 expanded"); >+ ok($('#tnode-1-3').treegrid('isExpanded'), "tnode-1-3 expanded"); >+ $.cookie(saveStateName, '2'); >+ $('#tnode-1').treegrid('restoreState'); >+ $('#tnode-1-3').treegrid('restoreState'); >+ $('#tnode-1-1').treegrid('restoreState'); >+ ok($('#tnode-1').treegrid('isCollapsed'), "tnode-1 collapsed"); >+ ok($('#tnode-1-3').treegrid('isCollapsed'), "tnode-1-3 collpased"); >+ ok($('#tnode-1-1').treegrid('isExpanded'), "tnode-1-1 expanded"); >+}); >+ >+test("Alphanumeric id", function() { >+ equal($('#anode-1').treegrid('getDepth'), 0, "Return 0"); >+ equal($('#anode-1-1-2-1').treegrid('getDepth'), 3, "Return 3"); >+ equal($('#anode-1').treegrid('getChildNodes').length, 4, "Return 4"); >+ equal($('#anode-1-1-2-1').treegrid('getChildNodes').length, [], "Return []"); >+}); >+ >+test("getAllNodes", function() { >+ equal($('#tree-1').treegrid('getAllNodes').length, 12, "12"); >+}); >+ >+test("isNode", function() { >+ ok($('#tree-head-1').treegrid("isNode") === false, 'Head is not node'); >+ ok($('#tree-summary-1').treegrid("isNode") === false, 'Summary is not node'); >+ ok($('#node-1-1').treegrid("isNode") === true, 'Node is node'); >+}); >+ >+test("getLast from getAllNodes", function() { >+ $('#tree-1').treegrid('getAllNodes').each(function() { >+ if ($(this).treegrid("isLast")) { >+ ok($.inArray($(this).treegrid('getNodeId'), [11, 7, 9, 10, 6, 8])); >+ } >+ }); >+}); >+ >+test("getLast from tr.each", function() { >+ $('#tree-1').find('tr').each(function() { >+ if ($(this).treegrid("isNode") && $(this).treegrid("isLast")) { >+ ok($.inArray($(this).treegrid('getNodeId'), [11, 7, 9, 10, 6, 8])); >+ } >+ }); >+}); >+ >+test("Event collapse/expand", function() { >+ var count = 0; >+ $('#tree-4').find('#anode-1').treegrid("collapse"); >+ $('#tree-4').treegrid("getAllNodes").one("collapse", function(event) { >+ count++; >+ }); >+ $('#tree-4').treegrid("getAllNodes").one("expand", function(event) { >+ count++; >+ }); >+ $('#tree-4').find('#anode-1').treegrid("expand"); >+ $('#tree-4').find('#anode-1').treegrid("collapse"); >+ equal(count, 2); >+}); >+ >+test("Event change", function() { >+ var count = 0; >+ $('#tree-4').find('#anode-1').treegrid("collapse"); >+ var func=function(event) { >+ count++; >+ }; >+ $('#tree-4').treegrid("getAllNodes").on("change", func); >+ $('#tree-4').find('#anode-1').treegrid("expand"); >+ $('#tree-4').find('#anode-1').treegrid("collapse"); >+ $('#tree-4').find('#anode-1').treegrid("expand"); >+ $('#tree-4').find('#anode-1').treegrid("collapse"); >+ $('#tree-4').treegrid("getAllNodes").off("change", func); >+ >+ equal(count, 4); >+}); >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/treegrid.jquery.json b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/treegrid.jquery.json >new file mode 100644 >index 0000000..bac922e >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/lib/jquery-treegrid/treegrid.jquery.json >@@ -0,0 +1,37 @@ >+{ >+ "name": "treegrid", >+ "description": "jquery plugin for showing a HTML table as tree", >+ "keywords": [ >+ "treegrid", >+ "tree", >+ "grid", >+ "explorer", >+ "file", >+ "table", >+ "tree", >+ "ui" >+ ], >+ "version": "0.3.0", >+ "title": "TreeGrid plugin for jQuery", >+ "author": { >+ "name": "Pomazan Max" >+ }, >+ "maintainers": [ >+ { >+ "name": "Pomazan Max" >+ } >+ ], >+ "licenses": [ >+ { >+ "type": "MIT", >+ "url": "http://opensource.org/licenses/MIT" >+ } >+ ], >+ "bugs": "https://github.com/maxazan/jquery-treegrid/issues", >+ "homepage": "http://maxazan.github.io/jquery-treegrid/", >+ "docs": "http://maxazan.github.io/jquery-treegrid/", >+ "demo": "http://maxazan.github.io/jquery-treegrid/", >+ "dependencies": { >+ "jquery": ">=1.10.0" >+ } >+} >\ No newline at end of file >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 15707
:
47479
|
47480
|
47481
|
47482
|
47483
|
47484
|
47728
|
47729
|
47730
|
47731
|
47732
|
47733
|
47734
|
47849
|
47850
|
47851
|
47852
|
47853
|
47854
|
47855
|
47868
|
47869
|
47870
|
47871
|
47872
|
47873
|
47874
|
48072
|
50400
|
50401
|
50402
|
50403
|
50404
|
50405
|
50406
|
50407
|
50408
|
52267
|
52268
|
52269
|
52270
|
52271
|
52272
|
52273
|
52274
|
52275
|
52367
|
52370
|
52562
|
52563
|
52564
|
52565
|
52566
|
52567
|
52568
|
52569
|
52570
|
52571
|
52572
|
52573
|
52574
|
52575
|
57080
|
57081
|
57082
|
57083
|
57084
|
57085
|
57086
|
57087
|
57088
|
57089
|
57090
|
57091
|
57092
|
57093
|
58086
|
60504
|
60505
|
60506
|
60507
|
60508
|
60509
|
60510
|
60511
|
60512
|
60513
|
60514
|
60515
|
60516
|
60517
|
60518
|
60572
|
60573
|
60574
|
60575
|
60576
|
60577
|
60578
|
60579
|
60580
|
60581
|
60582
|
60583
|
60584
|
60585
|
60586
|
60587
|
60755
|
60756
|
60757
|
60758
|
60759
|
60760
|
60761
|
60762
|
60763
|
60764
|
60765
|
60766
|
60767
|
60768
|
60769
|
60770
|
60771
|
65666
|
65667
|
65668
|
65669
|
65670
|
65671
|
65672
|
65673
|
65674
|
65675
|
65676
|
65677
|
65678
|
65679
|
65680
|
65681
|
69514
|
69515
|
69516
|
69517
|
69518
|
69519
|
69520
|
69521
|
69522
|
69523
|
69524
|
69525
|
69526
|
69527
|
69528
|
69529
|
69573
|
69574
|
69575
|
69576
|
69577
|
69578
|
69579
|
69580
|
69581
|
69582
|
69583
|
69584
|
69585
|
69586
|
69587
|
69588
|
69589