├── Setup.hs
├── sample.png
├── fonts
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.ttf
├── glyphicons-halflings-regular.woff
└── glyphicons-halflings-regular.svg
├── .gitignore
├── pages
├── about.html
├── contact.html
├── tos.html
├── privacy.html
├── signup.html
└── team.html
├── templates
├── footer.html
├── page.html
├── post.html
├── archive.html
└── nav.html
├── hakyll-bootstrap.cabal
├── posts
└── post1.md
├── stack.yaml
├── LICENSE
├── README.md
├── css
├── syntax.css
├── carousel.css
├── bootstrap-theme.min.css
└── bootstrap-theme.css
├── Main.hs
├── index.html
└── js
├── holder.js
└── bootstrap.min.js
/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
--------------------------------------------------------------------------------
/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sdiehl/hakyll-bootstrap/HEAD/sample.png
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sdiehl/hakyll-bootstrap/HEAD/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sdiehl/hakyll-bootstrap/HEAD/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sdiehl/hakyll-bootstrap/HEAD/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | cabal-dev
3 | *.o
4 | *.hi
5 | *.chi
6 | *.chs.h
7 | *.swp
8 | _cache
9 | _site
10 | cabal.sandbox.config
11 | .cabal-sandbox/
12 | .stack-work
13 |
--------------------------------------------------------------------------------
/pages/about.html:
--------------------------------------------------------------------------------
1 |
About Us
2 |
3 |
4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
5 | non est in neque luctus eleifend. Sed tincidunt vestibulum
6 | facilisis. Aenean ut pulvinar massa.
7 |
8 |
--------------------------------------------------------------------------------
/pages/contact.html:
--------------------------------------------------------------------------------
1 | Contact Us
2 |
3 |
4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
5 | non est in neque luctus eleifend. Sed tincidunt vestibulum
6 | facilisis. Aenean ut pulvinar massa.
7 |
8 |
--------------------------------------------------------------------------------
/pages/tos.html:
--------------------------------------------------------------------------------
1 | Terms of Service
2 |
3 |
4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
5 | non est in neque luctus eleifend. Sed tincidunt vestibulum
6 | facilisis. Aenean ut pulvinar massa.
7 |
8 |
--------------------------------------------------------------------------------
/pages/privacy.html:
--------------------------------------------------------------------------------
1 | Privacy Policy
2 |
3 |
4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
5 | non est in neque luctus eleifend. Sed tincidunt vestibulum
6 | facilisis. Aenean ut pulvinar massa.
7 |
8 |
--------------------------------------------------------------------------------
/templates/footer.html:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/hakyll-bootstrap.cabal:
--------------------------------------------------------------------------------
1 | name: hakyll-bootstrap
2 | version: 0.1.0.0
3 | license: MIT
4 | license-file: LICENSE
5 | category: Web
6 | author: Stephen Diehl
7 | maintainer: stephen.m.diehl@gmail.com
8 | build-type: Simple
9 | cabal-version: >=1.16
10 |
11 | executable blog
12 | default-language: Haskell2010
13 | main-is: Main.hs
14 | build-depends:
15 | base >= 4.6
16 | , containers >= 0.5 && <0.6
17 | , pandoc >= 1.11
18 | , hakyll >= 4.3
19 |
--------------------------------------------------------------------------------
/pages/signup.html:
--------------------------------------------------------------------------------
1 | Signup
2 |
3 |
20 |
--------------------------------------------------------------------------------
/posts/post1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Example Blog Post
3 | author: Stephen Diehl
4 | date: 2013-11-13
5 | mathjax: on
6 | ---
7 |
8 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
9 | non est in neque luctus eleifend. Sed tincidunt vestibulum
10 | facilisis. Aenean ut pulvinar massa.
11 |
12 | Some math:
13 |
14 | $$
15 | \begin{aligned}
16 | \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
17 | \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
18 | \nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
19 | $$
20 |
21 | Some code:
22 |
23 | ```haskell
24 | newtype MonadMonoid m a = MonadMonoid { unMonad :: a -> m a }
25 |
26 | instance Monad m => Monoid (MonadMonoid m a) where
27 | mempty = MonadMonoid return
28 | mappend f g = MonadMonoid (f >=> g)
29 | ```
30 |
31 | Fin.
32 |
--------------------------------------------------------------------------------
/templates/page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | $title$
9 |
10 |
11 |
12 |
13 |
20 |
21 |
22 |
23 | $partial("templates/nav.html")$
24 |
25 |
26 | $body$
27 | $partial("templates/footer.html")$
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/stack.yaml:
--------------------------------------------------------------------------------
1 | # For more information, see: https://github.com/commercialhaskell/stack/blob/release/doc/yaml_configuration.md
2 |
3 | # Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
4 | resolver: lts-9.10
5 |
6 | # Local packages, usually specified by relative directory name
7 | packages:
8 | - '.'
9 |
10 | # Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
11 | extra-deps: []
12 |
13 | # Override default flag values for local packages and extra-deps
14 | flags: {}
15 |
16 | # Extra package databases containing global packages
17 | extra-package-dbs: []
18 |
19 | # Control whether we use the GHC we find on the path
20 | # system-ghc: true
21 |
22 | # Require a specific version of stack, using version ranges
23 | # require-stack-version: -any # Default
24 | # require-stack-version: >= 0.1.4.0
25 |
26 | # Override the architecture used by stack, especially useful on Windows
27 | # arch: i386
28 | # arch: x86_64
29 |
30 | # Extra directories used by stack for building
31 | # extra-include-dirs: [/path/to/dir]
32 | # extra-lib-dirs: [/path/to/dir]
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2017 Stephen Diehl
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/templates/post.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | $title$
9 |
10 |
11 |
12 |
13 | $mathjax$
14 |
20 |
21 |
22 | $partial("templates/nav.html")$
23 |
24 |
25 |
$title$
26 | $body$
27 | $partial("templates/footer.html")$
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/templates/archive.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | $title$
9 |
10 |
11 |
12 |
13 |
20 |
21 |
22 | $partial("templates/nav.html")$
23 |
24 |
25 |
$title$
26 |
27 | $for(posts)$
28 |
29 | $title$ - $date$
30 |
31 | $endfor$
32 |
33 | $partial("templates/footer.html")$
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | hakyll-bootstrap
2 | ================
3 |
4 |
5 |
6 |
7 |
8 | A template for a small corporate Hakyll site.
9 |
10 | **Using stack**
11 |
12 | ```bash
13 | $ stack build
14 | $ stack exec blog -- preview
15 | ```
16 |
17 | **Using cabal**
18 |
19 | To get started run:
20 |
21 | ```shell
22 | $ cabal sandbox init
23 | $ cabal install --only-dependencies
24 | $ cabal run preview
25 | ```
26 |
27 | The default static pages are renderd with plain HTML with mixins
28 | from the ``/templates`` folder..
29 |
30 | ```
31 | index.html
32 |
33 | pages/
34 | about.html
35 | contact.html
36 | privacy.html
37 | signup.html
38 | team.html
39 | tos.html
40 | ```
41 |
42 | Blog posts are placed under the ``/posts`` folder and are
43 | generated from Markdown.
44 |
45 | Inline math is enabled via setting the ``mathjax`` metadata to
46 | ``on``, by default MathJax is disabled.
47 |
48 | ```text
49 | ---
50 | title: Example Blog Post
51 | author: Stephen Diehl
52 | date: 2013-11-13
53 | mathjax: on
54 | ---
55 |
56 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam
57 | non est in neque luctus eleifend. Sed tincidunt vestibulum
58 | facilisis. Aenean ut pulvinar massa.
59 | ```
60 |
61 | License
62 | --------
63 |
64 | Released under MIT License.
65 |
--------------------------------------------------------------------------------
/css/syntax.css:
--------------------------------------------------------------------------------
1 | /* Generated by pandoc. */
2 | table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
3 | { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
4 | td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
5 | td.sourceCode { padding-left: 5px; }
6 | code.sourceCode span.kw { color: #007020; font-weight: bold; }
7 | code.sourceCode span.dt { color: #902000; }
8 | code.sourceCode span.dv { color: #40a070; }
9 | code.sourceCode span.bn { color: #40a070; }
10 | code.sourceCode span.fl { color: #40a070; }
11 | code.sourceCode span.ch { color: #4070a0; }
12 | code.sourceCode span.st { color: #4070a0; }
13 | code.sourceCode span.co { color: #60a0b0; font-style: italic; }
14 | code.sourceCode span.ot { color: #007020; }
15 | code.sourceCode span.al { color: red; font-weight: bold; }
16 | code.sourceCode span.fu { color: #06287e; }
17 | code.sourceCode span.re { }
18 | code.sourceCode span.er { color: red; font-weight: bold; }
19 |
20 | pre{
21 | font: 15px/19px Inconsolata,"Lucida Console",Terminal,"Courier New",Courier;
22 | padding: 5px;
23 | }
24 |
25 | div > pre.sourceCode {
26 | margin-top: 30px;
27 | margin-bottom: 30px;
28 | padding-left: 20px;
29 | /* Override bootstrap */
30 | border-radius: 0px;
31 |
32 | border-right: none !important;
33 | border-left: 1px solid #ccc;
34 | border-top: none !important;
35 | border-bottom: none !important;
36 | background: none !important;
37 | }
38 |
--------------------------------------------------------------------------------
/templates/nav.html:
--------------------------------------------------------------------------------
1 |
38 |
--------------------------------------------------------------------------------
/pages/team.html:
--------------------------------------------------------------------------------
1 | Team
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Lorem ipsum dolor sit amet, consectetur adipiscing
11 | elit. Nullam non est in neque luctus eleifend. Sed
12 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
13 | Nulla consectetur ac nunc eu suscipit. Ut bibendum metus
14 | urna, vel tristique leo tempus a. Aenean et vehicula dolor.
15 | Morbi sit amet convallis nibh, vitae dapibus dui.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Lorem ipsum dolor sit amet, consectetur adipiscing
28 | elit. Nullam non est in neque luctus eleifend. Sed
29 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
30 | Nulla consectetur ac nunc eu suscipit. Ut bibendum metus
31 | urna, vel tristique leo tempus a. Aenean et vehicula dolor.
32 | Morbi sit amet convallis nibh, vitae dapibus dui.
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
Lorem ipsum dolor sit amet, consectetur adipiscing
45 | elit. Nullam non est in neque luctus eleifend. Sed
46 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
47 | Nulla consectetur ac nunc eu suscipit. Ut bibendum metus
48 | urna, vel tristique leo tempus a. Aenean et vehicula dolor.
49 | Morbi sit amet convallis nibh, vitae dapibus dui.
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/css/carousel.css:
--------------------------------------------------------------------------------
1 | /* GLOBAL STYLES
2 | -------------------------------------------------- */
3 | /* Padding below the footer and lighter body text */
4 |
5 | body {
6 | padding-bottom: 40px;
7 | color: #5a5a5a;
8 | }
9 |
10 |
11 |
12 | /* CUSTOMIZE THE NAVBAR
13 | -------------------------------------------------- */
14 |
15 | /* Special class on .container surrounding .navbar, used for positioning it into place. */
16 | .navbar-wrapper {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | right: 0;
21 | z-index: 20;
22 | }
23 |
24 | /* Flip around the padding for proper display in narrow viewports */
25 | .navbar-wrapper .container {
26 | padding-left: 0;
27 | padding-right: 0;
28 | }
29 | .navbar-wrapper .navbar {
30 | padding-left: 15px;
31 | padding-right: 15px;
32 | }
33 |
34 |
35 | /* CUSTOMIZE THE CAROUSEL
36 | -------------------------------------------------- */
37 |
38 | /* Carousel base class */
39 | .carousel {
40 | height: 500px;
41 | margin-bottom: 60px;
42 | }
43 | /* Since positioning the image, we need to help out the caption */
44 | .carousel-caption {
45 | z-index: 10;
46 | }
47 |
48 | /* Declare heights because of positioning of img element */
49 | .carousel .item {
50 | height: 500px;
51 | background-color: #777;
52 | }
53 | .carousel-inner > .item > img {
54 | position: absolute;
55 | top: 0;
56 | left: 0;
57 | min-width: 100%;
58 | height: 500px;
59 | }
60 |
61 |
62 |
63 | /* MARKETING CONTENT
64 | -------------------------------------------------- */
65 |
66 | /* Pad the edges of the mobile views a bit */
67 | .marketing {
68 | padding-left: 15px;
69 | padding-right: 15px;
70 | }
71 |
72 | /* Center align the text within the three columns below the carousel */
73 | .marketing .col-lg-4 {
74 | text-align: center;
75 | margin-bottom: 20px;
76 | }
77 | .marketing h2 {
78 | font-weight: normal;
79 | }
80 | .marketing .col-lg-4 p {
81 | margin-left: 10px;
82 | margin-right: 10px;
83 | }
84 |
85 |
86 | /* Featurettes
87 | ------------------------- */
88 |
89 | .featurette-divider {
90 | margin: 80px 0; /* Space out the Bootstrap more */
91 | }
92 |
93 | /* Thin out the marketing headings */
94 | .featurette-heading {
95 | font-weight: 300;
96 | line-height: 1;
97 | letter-spacing: -1px;
98 | }
99 |
100 |
101 |
102 | /* RESPONSIVE CSS
103 | -------------------------------------------------- */
104 |
105 | @media (min-width: 768px) {
106 |
107 | /* Remove the edge padding needed for mobile */
108 | .marketing {
109 | padding-left: 0;
110 | padding-right: 0;
111 | }
112 |
113 | /* Navbar positioning foo */
114 | .navbar-wrapper {
115 | margin-top: 20px;
116 | }
117 | .navbar-wrapper .container {
118 | padding-left: 15px;
119 | padding-right: 15px;
120 | }
121 | .navbar-wrapper .navbar {
122 | padding-left: 0;
123 | padding-right: 0;
124 | }
125 |
126 | /* The navbar becomes detached from the top, so we round the corners */
127 | .navbar-wrapper .navbar {
128 | border-radius: 4px;
129 | }
130 |
131 | /* Bump up size of carousel content */
132 | .carousel-caption p {
133 | margin-bottom: 20px;
134 | font-size: 21px;
135 | line-height: 1.4;
136 | }
137 |
138 | .featurette-heading {
139 | font-size: 50px;
140 | }
141 |
142 | }
143 |
144 | @media (min-width: 992px) {
145 | .featurette-heading {
146 | margin-top: 120px;
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/Main.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE OverloadedStrings #-}
2 | --------------------------------------------------------------------
3 | -- |
4 | -- Copyright : (c) Stephen Diehl 2013
5 | -- License : MIT
6 | -- Maintainer: stephen.m.diehl@gmail.com
7 | -- Stability : experimental
8 | -- Portability: non-portable
9 | --
10 | --------------------------------------------------------------------
11 |
12 | module Main where
13 |
14 | import Hakyll
15 | import Text.Pandoc
16 | import Data.Monoid (mappend)
17 | import qualified Data.Map as M
18 | import Data.Maybe (isJust)
19 |
20 | --------------------------------------------------------------------
21 | -- Contexts
22 | --------------------------------------------------------------------
23 |
24 | postCtx :: Context String
25 | postCtx =
26 | dateField "date" "%B %e, %Y"
27 | `mappend` mathCtx
28 | `mappend` defaultContext
29 |
30 | mathCtx :: Context String
31 | mathCtx = field "mathjax" $ \item -> do
32 | metadata <- getMetadata $ itemIdentifier item
33 | return ""
34 | return $ if isJust $ lookupString "mathjax" metadata
35 | then ""
36 | else ""
37 |
38 | archiveCtx posts =
39 | listField "posts" postCtx (return posts)
40 | `mappend` constField "title" "Archives"
41 | `mappend` defaultContext
42 |
43 | indexCtx posts =
44 | listField "posts" postCtx (return posts)
45 | `mappend` constField "title" "Home"
46 | `mappend` defaultContext
47 |
48 | --------------------------------------------------------------------
49 | -- Rules
50 | --------------------------------------------------------------------
51 |
52 | static :: Rules ()
53 | static = do
54 | match "fonts/*" $ do
55 | route idRoute
56 | compile $ copyFileCompiler
57 | match "img/*" $ do
58 | route idRoute
59 | compile $ copyFileCompiler
60 | match "css/*" $ do
61 | route idRoute
62 | compile compressCssCompiler
63 | match "js/*" $ do
64 | route idRoute
65 | compile $ copyFileCompiler
66 |
67 | pages :: Rules ()
68 | pages = do
69 | match "pages/*" $ do
70 | route $ setExtension "html"
71 | compile $ getResourceBody
72 | >>= loadAndApplyTemplate "templates/page.html" postCtx
73 | >>= relativizeUrls
74 |
75 | posts :: Rules ()
76 | posts = do
77 | match "posts/*" $ do
78 | route $ setExtension "html"
79 | compile $ compiler
80 | >>= loadAndApplyTemplate "templates/post.html" postCtx
81 | >>= relativizeUrls
82 |
83 | archive :: Rules ()
84 | archive = do
85 | create ["archive.html"] $ do
86 | route idRoute
87 | compile $ do
88 | posts <- recentFirst =<< loadAll "posts/*"
89 | makeItem ""
90 | >>= loadAndApplyTemplate "templates/archive.html" (archiveCtx posts)
91 | >>= relativizeUrls
92 |
93 | index :: Rules ()
94 | index = do
95 | match "index.html" $ do
96 | route idRoute
97 | compile $ do
98 | posts <- recentFirst =<< loadAll "posts/*"
99 | getResourceBody
100 | >>= applyAsTemplate (indexCtx posts)
101 | >>= relativizeUrls
102 |
103 | templates :: Rules ()
104 | templates = match "templates/*" $ compile templateCompiler
105 |
106 | --------------------------------------------------------------------
107 | -- Configuration
108 | --------------------------------------------------------------------
109 |
110 | compiler :: Compiler (Item String)
111 | compiler = pandocCompilerWith defaultHakyllReaderOptions pandocOptions
112 |
113 | pandocOptions :: WriterOptions
114 | pandocOptions = defaultHakyllWriterOptions{ writerHTMLMathMethod = MathJax "" }
115 |
116 | cfg :: Configuration
117 | cfg = defaultConfiguration
118 |
119 | main :: IO ()
120 | main = hakyllWith cfg $ do
121 | static
122 | pages
123 | posts
124 | archive
125 | index
126 | templates
127 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | $title$
9 |
10 |
11 |
12 |
13 |
18 |
19 |
20 | $partial("templates/nav.html")$
21 |
22 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
41 |
42 |
43 |
44 |
51 |
52 |
53 |
54 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
Heading 1
76 |
Lorem ipsum dolor sit amet, consectetur adipiscing
77 | elit. Nullam non est in neque luctus eleifend. Sed
78 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
79 |
80 |
View details »
81 |
82 |
83 |
84 |
Heading 2
85 |
Lorem ipsum dolor sit amet, consectetur adipiscing
86 | elit. Nullam non est in neque luctus eleifend. Sed
87 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
88 |
89 |
View details »
90 |
91 |
92 |
93 |
Heading 3
94 |
Lorem ipsum dolor sit amet, consectetur adipiscing
95 | elit. Nullam non est in neque luctus eleifend. Sed
96 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
97 |
98 |
View details »
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
Heading 1
107 |
Lorem ipsum dolor sit amet, consectetur adipiscing
108 | elit. Nullam non est in neque luctus eleifend. Sed
109 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
Heading 2
125 |
Lorem ipsum dolor sit amet, consectetur adipiscing
126 | elit. Nullam non est in neque luctus eleifend. Sed
127 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
Header 3
137 |
Lorem ipsum dolor sit amet, consectetur adipiscing
138 | elit. Nullam non est in neque luctus eleifend. Sed
139 | tincidunt vestibulum facilisis. Aenean ut pulvinar massa.
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 | $partial("templates/footer.html")$
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/js/holder.js:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Holder - 2.1 - client side image placeholders
4 | (c) 2012-2013 Ivan Malopinsky / http://imsky.co
5 |
6 | Provided under the MIT License.
7 | Commercial use requires attribution.
8 |
9 | */
10 |
11 | var Holder = Holder || {};
12 | (function (app, win) {
13 |
14 | var preempted = false,
15 | fallback = false,
16 | canvas = document.createElement('canvas');
17 |
18 | if (!canvas.getContext) {
19 | fallback = true;
20 | } else {
21 | if (canvas.toDataURL("image/png")
22 | .indexOf("data:image/png") < 0) {
23 | //Android doesn't support data URI
24 | fallback = true;
25 | } else {
26 | var ctx = canvas.getContext("2d");
27 | }
28 | }
29 |
30 | var dpr = 1, bsr = 1;
31 |
32 | if(!fallback){
33 | dpr = window.devicePixelRatio || 1,
34 | bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
35 | }
36 |
37 | var ratio = dpr / bsr;
38 |
39 | //getElementsByClassName polyfill
40 | document.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll("."+e);if(t.evaluate){r=".//*[contains(concat(' ', @class, ' '), ' "+e+" ')]",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName("*"),r=new RegExp("(^|\\s)"+e+"(\\s|$)");for(i=0;i= 0.75) {
98 | text_height = Math.floor(text_height * 0.75 * (width / text_width));
99 | }
100 | //Resetting font size if necessary
101 | ctx.font = "bold " + (text_height * ratio) + "px " + font;
102 | ctx.fillText(text, (width / 2), (height / 2), width);
103 | return canvas.toDataURL("image/png");
104 | }
105 |
106 | function render(mode, el, holder, src) {
107 | var dimensions = holder.dimensions,
108 | theme = holder.theme,
109 | text = holder.text ? decodeURIComponent(holder.text) : holder.text;
110 | var dimensions_caption = dimensions.width + "x" + dimensions.height;
111 | theme = (text ? extend(theme, {
112 | text: text
113 | }) : theme);
114 | theme = (holder.font ? extend(theme, {
115 | font: holder.font
116 | }) : theme);
117 | el.setAttribute("data-src", src);
118 | theme.literalText = dimensions_caption;
119 | holder.originalTheme = holder.theme;
120 | holder.theme = theme;
121 |
122 | if (mode == "image") {
123 | el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
124 | if (fallback || !holder.auto) {
125 | el.style.width = dimensions.width + "px";
126 | el.style.height = dimensions.height + "px";
127 | }
128 | if (fallback) {
129 | el.style.backgroundColor = theme.background;
130 | } else {
131 | el.setAttribute("src", draw(ctx, dimensions, theme, ratio));
132 | }
133 | } else if (mode == "background") {
134 | if (!fallback) {
135 | el.style.backgroundImage = "url(" + draw(ctx, dimensions, theme, ratio) + ")";
136 | el.style.backgroundSize = dimensions.width + "px " + dimensions.height + "px";
137 | }
138 | } else if (mode == "fluid") {
139 | el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
140 | if (dimensions.height.slice(-1) == "%") {
141 | el.style.height = dimensions.height
142 | } else {
143 | el.style.height = dimensions.height + "px"
144 | }
145 | if (dimensions.width.slice(-1) == "%") {
146 | el.style.width = dimensions.width
147 | } else {
148 | el.style.width = dimensions.width + "px"
149 | }
150 | if (el.style.display == "inline" || el.style.display === "") {
151 | el.style.display = "block";
152 | }
153 | if (fallback) {
154 | el.style.backgroundColor = theme.background;
155 | } else {
156 | el.holderData = holder;
157 | fluid_images.push(el);
158 | fluid_update(el);
159 | }
160 | }
161 | }
162 |
163 | function fluid_update(element) {
164 | var images;
165 | if (element.nodeType == null) {
166 | images = fluid_images;
167 | } else {
168 | images = [element]
169 | }
170 | for (var i in images) {
171 | var el = images[i]
172 | if (el.holderData) {
173 | var holder = el.holderData;
174 | el.setAttribute("src", draw(ctx, {
175 | height: el.clientHeight,
176 | width: el.clientWidth
177 | }, holder.theme, ratio, !! holder.literal));
178 | }
179 | }
180 | }
181 |
182 | function parse_flags(flags, options) {
183 | var ret = {
184 | theme: settings.themes.gray
185 | };
186 | var render = false;
187 | for (sl = flags.length, j = 0; j < sl; j++) {
188 | var flag = flags[j];
189 | if (app.flags.dimensions.match(flag)) {
190 | render = true;
191 | ret.dimensions = app.flags.dimensions.output(flag);
192 | } else if (app.flags.fluid.match(flag)) {
193 | render = true;
194 | ret.dimensions = app.flags.fluid.output(flag);
195 | ret.fluid = true;
196 | } else if (app.flags.literal.match(flag)) {
197 | ret.literal = true;
198 | } else if (app.flags.colors.match(flag)) {
199 | ret.theme = app.flags.colors.output(flag);
200 | } else if (options.themes[flag]) {
201 | //If a theme is specified, it will override custom colors
202 | ret.theme = options.themes[flag];
203 | } else if (app.flags.font.match(flag)) {
204 | ret.font = app.flags.font.output(flag);
205 | } else if (app.flags.auto.match(flag)) {
206 | ret.auto = true;
207 | } else if (app.flags.text.match(flag)) {
208 | ret.text = app.flags.text.output(flag);
209 | }
210 | }
211 | return render ? ret : false;
212 | }
213 | var fluid_images = [];
214 | var settings = {
215 | domain: "holder.js",
216 | images: "img",
217 | bgnodes: ".holderjs",
218 | themes: {
219 | "gray": {
220 | background: "#eee",
221 | foreground: "#aaa",
222 | size: 12
223 | },
224 | "social": {
225 | background: "#3a5a97",
226 | foreground: "#fff",
227 | size: 12
228 | },
229 | "industrial": {
230 | background: "#434A52",
231 | foreground: "#C2F200",
232 | size: 12
233 | }
234 | },
235 | stylesheet: ""
236 | };
237 | app.flags = {
238 | dimensions: {
239 | regex: /^(\d+)x(\d+)$/,
240 | output: function (val) {
241 | var exec = this.regex.exec(val);
242 | return {
243 | width: +exec[1],
244 | height: +exec[2]
245 | }
246 | }
247 | },
248 | fluid: {
249 | regex: /^([0-9%]+)x([0-9%]+)$/,
250 | output: function (val) {
251 | var exec = this.regex.exec(val);
252 | return {
253 | width: exec[1],
254 | height: exec[2]
255 | }
256 | }
257 | },
258 | colors: {
259 | regex: /#([0-9a-f]{3,})\:#([0-9a-f]{3,})/i,
260 | output: function (val) {
261 | var exec = this.regex.exec(val);
262 | return {
263 | size: settings.themes.gray.size,
264 | foreground: "#" + exec[2],
265 | background: "#" + exec[1]
266 | }
267 | }
268 | },
269 | text: {
270 | regex: /text\:(.*)/,
271 | output: function (val) {
272 | return this.regex.exec(val)[1];
273 | }
274 | },
275 | font: {
276 | regex: /font\:(.*)/,
277 | output: function (val) {
278 | return this.regex.exec(val)[1];
279 | }
280 | },
281 | auto: {
282 | regex: /^auto$/
283 | },
284 | literal: {
285 | regex: /^literal$/
286 | }
287 | }
288 | for (var flag in app.flags) {
289 | if (!app.flags.hasOwnProperty(flag)) continue;
290 | app.flags[flag].match = function (val) {
291 | return val.match(this.regex)
292 | }
293 | }
294 | app.add_theme = function (name, theme) {
295 | name != null && theme != null && (settings.themes[name] = theme);
296 | return app;
297 | };
298 | app.add_image = function (src, el) {
299 | var node = selector(el);
300 | if (node.length) {
301 | for (var i = 0, l = node.length; i < l; i++) {
302 | var img = document.createElement("img")
303 | img.setAttribute("data-src", src);
304 | node[i].appendChild(img);
305 | }
306 | }
307 | return app;
308 | };
309 | app.run = function (o) {
310 | var options = extend(settings, o),
311 | images = [],
312 | imageNodes = [],
313 | bgnodes = [];
314 | if (typeof (options.images) == "string") {
315 | imageNodes = selector(options.images);
316 | } else if (window.NodeList && options.images instanceof window.NodeList) {
317 | imageNodes = options.images;
318 | } else if (window.Node && options.images instanceof window.Node) {
319 | imageNodes = [options.images];
320 | }
321 | if (typeof (options.bgnodes) == "string") {
322 | bgnodes = selector(options.bgnodes);
323 | } else if (window.NodeList && options.elements instanceof window.NodeList) {
324 | bgnodes = options.bgnodes;
325 | } else if (window.Node && options.bgnodes instanceof window.Node) {
326 | bgnodes = [options.bgnodes];
327 | }
328 | preempted = true;
329 | for (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);
330 | var holdercss = document.getElementById("holderjs-style");
331 | if (!holdercss) {
332 | holdercss = document.createElement("style");
333 | holdercss.setAttribute("id", "holderjs-style");
334 | holdercss.type = "text/css";
335 | document.getElementsByTagName("head")[0].appendChild(holdercss);
336 | }
337 | if (!options.nocss) {
338 | if (holdercss.styleSheet) {
339 | holdercss.styleSheet.cssText += options.stylesheet;
340 | } else {
341 | holdercss.appendChild(document.createTextNode(options.stylesheet));
342 | }
343 | }
344 | var cssregex = new RegExp(options.domain + "\/(.*?)\"?\\)");
345 | for (var l = bgnodes.length, i = 0; i < l; i++) {
346 | var src = window.getComputedStyle(bgnodes[i], null)
347 | .getPropertyValue("background-image");
348 | var flags = src.match(cssregex);
349 | var bgsrc = bgnodes[i].getAttribute("data-background-src");
350 | if (flags) {
351 | var holder = parse_flags(flags[1].split("/"), options);
352 | if (holder) {
353 | render("background", bgnodes[i], holder, src);
354 | }
355 | } else if (bgsrc != null) {
356 | var holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1)
357 | .split("/"), options);
358 | if (holder) {
359 | render("background", bgnodes[i], holder, src);
360 | }
361 | }
362 | }
363 | for (l = images.length, i = 0; i < l; i++) {
364 | var attr_data_src, attr_src;
365 | attr_src = attr_data_src = src = null;
366 | try {
367 | attr_src = images[i].getAttribute("src");
368 | attr_datasrc = images[i].getAttribute("data-src");
369 | } catch (e) {}
370 | if (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) {
371 | src = attr_src;
372 | } else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) {
373 | src = attr_datasrc;
374 | }
375 | if (src) {
376 | var holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1)
377 | .split("/"), options);
378 | if (holder) {
379 | if (holder.fluid) {
380 | render("fluid", images[i], holder, src)
381 | } else {
382 | render("image", images[i], holder, src);
383 | }
384 | }
385 | }
386 | }
387 | return app;
388 | };
389 | contentLoaded(win, function () {
390 | if (window.addEventListener) {
391 | window.addEventListener("resize", fluid_update, false);
392 | window.addEventListener("orientationchange", fluid_update, false);
393 | } else {
394 | window.attachEvent("onresize", fluid_update)
395 | }
396 | preempted || app.run();
397 | });
398 | if (typeof define === "function" && define.amd) {
399 | define([], function () {
400 | return app;
401 | });
402 | }
403 |
404 | })(Holder, window);
405 |
--------------------------------------------------------------------------------
/css/bootstrap-theme.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.2 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | .btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#2d6ca2));background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-moz-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#419641));background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#eb9316));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c12e2a));background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#2aabd2));background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f3f3f3));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#222),to(#282828));background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-moz-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}
--------------------------------------------------------------------------------
/css/bootstrap-theme.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.2 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | .btn-default,
10 | .btn-primary,
11 | .btn-success,
12 | .btn-info,
13 | .btn-warning,
14 | .btn-danger {
15 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
16 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
17 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
18 | }
19 |
20 | .btn-default:active,
21 | .btn-primary:active,
22 | .btn-success:active,
23 | .btn-info:active,
24 | .btn-warning:active,
25 | .btn-danger:active,
26 | .btn-default.active,
27 | .btn-primary.active,
28 | .btn-success.active,
29 | .btn-info.active,
30 | .btn-warning.active,
31 | .btn-danger.active {
32 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
33 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
34 | }
35 |
36 | .btn:active,
37 | .btn.active {
38 | background-image: none;
39 | }
40 |
41 | .btn-default {
42 | text-shadow: 0 1px 0 #fff;
43 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e0e0e0));
44 | background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
45 | background-image: -moz-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
46 | background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
47 | background-repeat: repeat-x;
48 | border-color: #dbdbdb;
49 | border-color: #ccc;
50 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
51 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
52 | }
53 |
54 | .btn-default:hover,
55 | .btn-default:focus {
56 | background-color: #e0e0e0;
57 | background-position: 0 -15px;
58 | }
59 |
60 | .btn-default:active,
61 | .btn-default.active {
62 | background-color: #e0e0e0;
63 | border-color: #dbdbdb;
64 | }
65 |
66 | .btn-primary {
67 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#2d6ca2));
68 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
69 | background-image: -moz-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
70 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
71 | background-repeat: repeat-x;
72 | border-color: #2b669a;
73 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
74 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
75 | }
76 |
77 | .btn-primary:hover,
78 | .btn-primary:focus {
79 | background-color: #2d6ca2;
80 | background-position: 0 -15px;
81 | }
82 |
83 | .btn-primary:active,
84 | .btn-primary.active {
85 | background-color: #2d6ca2;
86 | border-color: #2b669a;
87 | }
88 |
89 | .btn-success {
90 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#419641));
91 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
92 | background-image: -moz-linear-gradient(top, #5cb85c 0%, #419641 100%);
93 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
94 | background-repeat: repeat-x;
95 | border-color: #3e8f3e;
96 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
97 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
98 | }
99 |
100 | .btn-success:hover,
101 | .btn-success:focus {
102 | background-color: #419641;
103 | background-position: 0 -15px;
104 | }
105 |
106 | .btn-success:active,
107 | .btn-success.active {
108 | background-color: #419641;
109 | border-color: #3e8f3e;
110 | }
111 |
112 | .btn-warning {
113 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#eb9316));
114 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
115 | background-image: -moz-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
116 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
117 | background-repeat: repeat-x;
118 | border-color: #e38d13;
119 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
120 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
121 | }
122 |
123 | .btn-warning:hover,
124 | .btn-warning:focus {
125 | background-color: #eb9316;
126 | background-position: 0 -15px;
127 | }
128 |
129 | .btn-warning:active,
130 | .btn-warning.active {
131 | background-color: #eb9316;
132 | border-color: #e38d13;
133 | }
134 |
135 | .btn-danger {
136 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c12e2a));
137 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
138 | background-image: -moz-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
139 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
140 | background-repeat: repeat-x;
141 | border-color: #b92c28;
142 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
143 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
144 | }
145 |
146 | .btn-danger:hover,
147 | .btn-danger:focus {
148 | background-color: #c12e2a;
149 | background-position: 0 -15px;
150 | }
151 |
152 | .btn-danger:active,
153 | .btn-danger.active {
154 | background-color: #c12e2a;
155 | border-color: #b92c28;
156 | }
157 |
158 | .btn-info {
159 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#2aabd2));
160 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
161 | background-image: -moz-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
162 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
163 | background-repeat: repeat-x;
164 | border-color: #28a4c9;
165 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
166 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
167 | }
168 |
169 | .btn-info:hover,
170 | .btn-info:focus {
171 | background-color: #2aabd2;
172 | background-position: 0 -15px;
173 | }
174 |
175 | .btn-info:active,
176 | .btn-info.active {
177 | background-color: #2aabd2;
178 | border-color: #28a4c9;
179 | }
180 |
181 | .thumbnail,
182 | .img-thumbnail {
183 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
184 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
185 | }
186 |
187 | .dropdown-menu > li > a:hover,
188 | .dropdown-menu > li > a:focus {
189 | background-color: #e8e8e8;
190 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
191 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
192 | background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
193 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
194 | background-repeat: repeat-x;
195 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
196 | }
197 |
198 | .dropdown-menu > .active > a,
199 | .dropdown-menu > .active > a:hover,
200 | .dropdown-menu > .active > a:focus {
201 | background-color: #357ebd;
202 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
203 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
204 | background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
205 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
206 | background-repeat: repeat-x;
207 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
208 | }
209 |
210 | .navbar-default {
211 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8));
212 | background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
213 | background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
214 | background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
215 | background-repeat: repeat-x;
216 | border-radius: 4px;
217 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
218 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
219 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
220 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
221 | }
222 |
223 | .navbar-default .navbar-nav > .active > a {
224 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f3f3f3));
225 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
226 | background-image: -moz-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
227 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
228 | background-repeat: repeat-x;
229 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
230 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
231 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
232 | }
233 |
234 | .navbar-brand,
235 | .navbar-nav > li > a {
236 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
237 | }
238 |
239 | .navbar-inverse {
240 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222));
241 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
242 | background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
243 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
244 | background-repeat: repeat-x;
245 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
246 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
247 | }
248 |
249 | .navbar-inverse .navbar-nav > .active > a {
250 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#222222), to(#282828));
251 | background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
252 | background-image: -moz-linear-gradient(top, #222222 0%, #282828 100%);
253 | background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
254 | background-repeat: repeat-x;
255 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
256 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
257 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
258 | }
259 |
260 | .navbar-inverse .navbar-brand,
261 | .navbar-inverse .navbar-nav > li > a {
262 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
263 | }
264 |
265 | .navbar-static-top,
266 | .navbar-fixed-top,
267 | .navbar-fixed-bottom {
268 | border-radius: 0;
269 | }
270 |
271 | .alert {
272 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
273 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
274 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
275 | }
276 |
277 | .alert-success {
278 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc));
279 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
280 | background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
281 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
282 | background-repeat: repeat-x;
283 | border-color: #b2dba1;
284 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
285 | }
286 |
287 | .alert-info {
288 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0));
289 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
290 | background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
291 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
292 | background-repeat: repeat-x;
293 | border-color: #9acfea;
294 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
295 | }
296 |
297 | .alert-warning {
298 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0));
299 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
300 | background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
301 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
302 | background-repeat: repeat-x;
303 | border-color: #f5e79e;
304 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
305 | }
306 |
307 | .alert-danger {
308 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3));
309 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
310 | background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
311 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
312 | background-repeat: repeat-x;
313 | border-color: #dca7a7;
314 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
315 | }
316 |
317 | .progress {
318 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5));
319 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
320 | background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
321 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
322 | background-repeat: repeat-x;
323 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
324 | }
325 |
326 | .progress-bar {
327 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
328 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
329 | background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
330 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
331 | background-repeat: repeat-x;
332 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
333 | }
334 |
335 | .progress-bar-success {
336 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
337 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
338 | background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
339 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
340 | background-repeat: repeat-x;
341 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
342 | }
343 |
344 | .progress-bar-info {
345 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
346 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
347 | background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
348 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
349 | background-repeat: repeat-x;
350 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
351 | }
352 |
353 | .progress-bar-warning {
354 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
355 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
356 | background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
357 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
358 | background-repeat: repeat-x;
359 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
360 | }
361 |
362 | .progress-bar-danger {
363 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
364 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
365 | background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
366 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
367 | background-repeat: repeat-x;
368 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
369 | }
370 |
371 | .list-group {
372 | border-radius: 4px;
373 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
374 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
375 | }
376 |
377 | .list-group-item.active,
378 | .list-group-item.active:hover,
379 | .list-group-item.active:focus {
380 | text-shadow: 0 -1px 0 #3071a9;
381 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3));
382 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
383 | background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%);
384 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
385 | background-repeat: repeat-x;
386 | border-color: #3278b3;
387 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
388 | }
389 |
390 | .panel {
391 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
392 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
393 | }
394 |
395 | .panel-default > .panel-heading {
396 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
397 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
398 | background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
399 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
400 | background-repeat: repeat-x;
401 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
402 | }
403 |
404 | .panel-primary > .panel-heading {
405 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
406 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
407 | background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
408 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
409 | background-repeat: repeat-x;
410 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
411 | }
412 |
413 | .panel-success > .panel-heading {
414 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6));
415 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
416 | background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
417 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
418 | background-repeat: repeat-x;
419 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
420 | }
421 |
422 | .panel-info > .panel-heading {
423 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3));
424 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
425 | background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
426 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
427 | background-repeat: repeat-x;
428 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
429 | }
430 |
431 | .panel-warning > .panel-heading {
432 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc));
433 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
434 | background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
435 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
436 | background-repeat: repeat-x;
437 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
438 | }
439 |
440 | .panel-danger > .panel-heading {
441 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc));
442 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
443 | background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
444 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
445 | background-repeat: repeat-x;
446 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
447 | }
448 |
449 | .well {
450 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5));
451 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
452 | background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
453 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
454 | background-repeat: repeat-x;
455 | border-color: #dcdcdc;
456 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
457 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
458 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
459 | }
--------------------------------------------------------------------------------
/js/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.2 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i ').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
--------------------------------------------------------------------------------